diff --git a/.ci.yaml b/.ci.yaml index 21989f3133d5e..99f134cc81026 100644 --- a/.ci.yaml +++ b/.ci.yaml @@ -56,7 +56,7 @@ platform_properties: device_type: none cpu: x86 os: Mac-12 - xcode: 13a233 # xcode 13.0 + xcode: 14a5294e # xcode 14.0 beta 5 windows: properties: build_host: "false" @@ -194,6 +194,17 @@ targets: lint_android: "false" lint_host: "true" timeout: 60 + runIf: + - DEPS + - .ci.yaml + - tools/** + - ci/** + - "**.h" + - "**.c" + - "**.cc" + - "**.fbs" + - "**.frag" + - "**.vert" - name: Linux Android clang-tidy recipe: engine/engine_lint @@ -203,6 +214,18 @@ targets: lint_android: "true" lint_host: "false" timeout: 60 + runIf: + - DEPS + - .ci.yaml + - tools/** + - ci/** + - "**.h" + - "**.c" + - "**.cc" + - "**.fbs" + - "**.frag" + - "**.vert" + - "**.py" # Run pylint on the fastest clang-tidy builder. - name: Linux Arm Host Engine recipe: engine/engine_arm @@ -213,34 +236,31 @@ targets: - name: Linux linux_arm_host_engine recipe: engine_v2/engine_v2 - bringup: true timeout: 60 properties: + release_build: "true" config_name: linux_arm_host_engine - environment: Staging - name: Linux linux_host_engine recipe: engine_v2/engine_v2 timeout: 60 properties: + release_build: "true" config_name: linux_host_engine - environment: Production - name: Linux linux_android_aot_engine recipe: engine_v2/engine_v2 - bringup: true timeout: 60 properties: + release_build: "true" config_name: linux_android_aot_engine - environment: Staging - name: Linux linux_android_debug_engine recipe: engine_v2/engine_v2 - bringup: true timeout: 60 properties: + release_build: "true" config_name: linux_android_debug_engine - environment: Staging - name: Linux Web Engine recipe: engine/web_engine @@ -306,18 +326,15 @@ targets: - name: Mac mac_android_aot_engine recipe: engine_v2/engine_v2 - bringup: true timeout: 60 properties: config_name: mac_android_aot_engine - environment: Staging - name: Mac mac_host_engine recipe: engine_v2/engine_v2 timeout: 60 properties: config_name: mac_host_engine - environment: Production - name: Mac Unopt recipe: engine/engine_unopt @@ -329,7 +346,6 @@ targets: "ios-13-0", "ios-16-0_14a5294e" ] - xcode: 14a5294e # xcode 14.0 beta 5 timeout: 75 - name: Mac Host clang-tidy @@ -337,20 +353,44 @@ targets: properties: add_recipes_cq: "true" jazzy_version: "0.14.1" - xcode: 14a5294e # xcode 14.0 beta 5 lint_host: "true" lint_ios: "false" timeout: 75 + runIf: + - DEPS + - .ci.yaml + - tools/** + - ci/** + - "**.h" + - "**.c" + - "**.cc" + - "**.fbs" + - "**.frag" + - "**.vert" + - "**.m" + - "**.mm" - name: Mac iOS clang-tidy recipe: engine/engine_lint properties: add_recipes_cq: "true" jazzy_version: "0.14.1" - xcode: 14a5294e # xcode 14.0 beta 5 lint_host: "false" lint_ios: "true" timeout: 75 + runIf: + - DEPS + - .ci.yaml + - tools/** + - ci/** + - "**.h" + - "**.c" + - "**.cc" + - "**.fbs" + - "**.frag" + - "**.vert" + - "**.m" + - "**.mm" - name: Mac iOS Engine recipe: engine/engine @@ -382,11 +422,9 @@ targets: - name: Mac mac_ios_engine recipe: engine_v2/engine_v2 - bringup: true timeout: 60 properties: config_name: mac_ios_engine - environment: Staging dependencies: >- [ {"dependency": "jazzy", "version": "0.14.1"} @@ -394,19 +432,15 @@ targets: - name: Mac mac_ios_engine_profile recipe: engine_v2/engine_v2 - bringup: true timeout: 60 properties: config_name: mac_ios_engine_profile - environment: Staging - name: Mac mac_ios_engine_release recipe: engine_v2/engine_v2 - bringup: true timeout: 60 properties: config_name: mac_ios_engine_release - environment: Staging - name: Windows Android AOT Engine recipe: engine/engine @@ -429,7 +463,6 @@ targets: timeout: 60 properties: config_name: windows_android_aot_engine - environment: Staging - name: Windows windows_host_engine recipe: engine_v2/engine_v2 @@ -437,7 +470,6 @@ targets: timeout: 60 properties: config_name: windows_host_engine - environment: Staging - name: Windows Unopt recipe: engine/engine_unopt @@ -466,6 +498,7 @@ targets: runIf: - DEPS - .ci.yaml + - ci/** - name: Mac iOS Engine Release recipe: engine/engine @@ -477,6 +510,7 @@ targets: runIf: - DEPS - .ci.yaml + - ci/** - name: Linux ci_yaml engine roller bringup: true diff --git a/.clang-tidy b/.clang-tidy index 60dc76bf226fc..9103fd70bd432 100644 --- a/.clang-tidy +++ b/.clang-tidy @@ -1,4 +1,6 @@ # Prefix check with "-" to ignore. +# Note: Some of the checks here are used as errors selectively, see +# //ci/lint.sh Checks: "bugprone-use-after-move,\ clang-analyzer-*,\ clang-diagnostic-*,\ @@ -19,6 +21,8 @@ performance-unnecessary-value-param" # Add checks when all warnings are fixed # to prevent new warnings being introduced. # https://github.com/flutter/flutter/issues/93279 +# Note: There are platform specific warnings as errors in +# //ci/lint.sh WarningsAsErrors: "bugprone-use-after-move,\ clang-analyzer-*,\ readability-identifier-naming,\ diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index f5872c2b8a7dd..cacf41257f6b5 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -10,8 +10,7 @@ - [ ] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [ ] I read and followed the [Flutter Style Guide] and the [C++, Objective-C, Java style guides]. - [ ] I listed at least one issue that this PR fixes in the description above. -- [ ] I added new tests to check the change I am making or feature I am adding, or Hixie said the PR is test-exempt. See [testing the engine] for instructions on -writing and running engine tests. +- [ ] I added new tests to check the change I am making or feature I am adding, or Hixie said the PR is test-exempt. See [testing the engine] for instructions on writing and running engine tests. - [ ] I updated/added relevant documentation (doc comments with `///`). - [ ] I signed the [CLA]. - [ ] All existing and new tests are passing. diff --git a/.github/workflows/scorecards-analysis.yml b/.github/workflows/scorecards-analysis.yml index efb5b3cf5d8f7..1309fc70b2e26 100644 --- a/.github/workflows/scorecards-analysis.yml +++ b/.github/workflows/scorecards-analysis.yml @@ -15,11 +15,11 @@ jobs: if: ${{ github.repository == 'flutter/engine' }} steps: - name: "Checkout code" - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b + uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 with: persist-credentials: false - name: "setup python" - uses: actions/setup-python@b55428b1882923874294fa556849718a1d7f2ca5 + uses: actions/setup-python@13ae5bb136fac2878aff31522b9efb785519f984 with: python-version: '3.7.7' # install the python version needed - name: "execute py script" @@ -38,11 +38,11 @@ jobs: id-token: write steps: - name: "Checkout code" - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b + uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 with: persist-credentials: false - name: "Run analysis" - uses: ossf/scorecard-action@865b4092859256271290c77adbd10a43f4779972 + uses: ossf/scorecard-action@e363bfca00e752f91de7b7d2a77340e2e523cb18 with: results_file: results.sarif results_format: sarif @@ -65,6 +65,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@86f3159a697a097a813ad9bfa0002412d97690a4 + uses: github/codeql-action/upload-sarif@ec3cf9c605b848da5f1e41e8452719eb1ccfb9a6 with: sarif_file: results.sarif diff --git a/BUILD.gn b/BUILD.gn index c4e5d0f049d1b..60615f520c68c 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -12,6 +12,8 @@ import("//third_party/dart/build/dart/copy_tree.gni") # Whether to build the dartdevc sdk, libraries, and source files # required for the flutter web sdk. +# TODO(jacksongardner): remove this poorly named argument once the recipes stop +# using it. https://github.com/flutter/flutter/issues/113303 declare_args() { full_dart_sdk = false } @@ -33,7 +35,7 @@ config("export_dynamic_symbols") { if (is_linux || is_fuchsia) { inputs = [ "//flutter/common/exported_symbols.sym" ] ldflags = [ "-Wl,--dynamic-list=" + rebase_path(inputs[0], root_build_dir) ] - } else if (is_mac && !use_xcode) { + } else if (is_mac) { inputs = [ "//flutter/common/exported_symbols_mac.sym" ] ldflags = [ "-Xlinker", @@ -44,30 +46,6 @@ config("export_dynamic_symbols") { } } -if (flutter_prebuilt_dart_sdk) { - copy_trees("_copy_trees") { - sources = [ - { - target = "copy_dart_sdk" - visibility = [ ":dart_sdk" ] - source = prebuilt_dart_sdk - dest = "$root_out_dir/dart-sdk" - ignore_patterns = "{}" - }, - ] - } -} - -group("dart_sdk") { - if (build_engine_artifacts) { - if (flutter_prebuilt_dart_sdk) { - public_deps = [ ":copy_dart_sdk" ] - } else { - public_deps = [ "//third_party/dart:create_sdk" ] - } - } -} - group("flutter") { testonly = true @@ -96,7 +74,7 @@ group("flutter") { if (build_engine_artifacts) { public_deps += [ - ":dart_sdk", + "//flutter/build/dart:dart_sdk", "//flutter/flutter_frontend_server:frontend_server", # This must be listed explicitly for desktop cross-builds since @@ -135,6 +113,7 @@ group("flutter") { "//flutter/display_list:display_list_benchmarks", "//flutter/display_list:display_list_builder_benchmarks", "//flutter/fml:fml_benchmarks", + "//flutter/impeller/geometry:geometry_benchmarks", "//flutter/lib/ui:ui_benchmarks", "//flutter/shell/common:shell_benchmarks", "//flutter/third_party/txt:txt_benchmarks", @@ -272,3 +251,13 @@ if (is_fuchsia && enable_unittests) { deps = [ "//flutter/shell/platform/fuchsia:tests" ] } } + +# On Windows, when targeting Android, we only build gen_snapshot. This +# top-level target provides a convenient shorthand for the full path into the +# Dart tree, and is less ambiguous than specifying the binary to build since +# we can specify the toolchain to use, too. +if (host_os == "win") { + group("gen_snapshot") { + deps = [ "//third_party/dart/runtime/bin:gen_snapshot($host_toolchain)" ] + } +} diff --git a/DEPS b/DEPS index 77b06b2973bea..3f5703914ec33 100644 --- a/DEPS +++ b/DEPS @@ -18,7 +18,7 @@ vars = { 'llvm_git': 'https://llvm.googlesource.com', # OCMock is for testing only so there is no google clone 'ocmock_git': 'https://github.com/erikdoe/ocmock.git', - 'skia_revision': '105debc5df603531791519aa23e5d648ae6f7fed', + 'skia_revision': '8e48bb8ea52ef62f1e6d5cb3f101be29e37cc3e5', # WARNING: DO NOT EDIT canvaskit_cipd_instance MANUALLY # See `lib/web_ui/README.md` for how to roll CanvasKit to a new version. @@ -30,12 +30,17 @@ vars = { # for the web engine. 'download_emsdk': False, + # For experimental features some dependencies may only be avaialable in the master/main + # channels. This variable is being set when CI is checking out the repository. + 'release_candidate': False, + + # As Dart does, we use Fuchsia's GN and Clang toolchain. These revision # should be kept up to date with the revisions pulled by Dart. # The list of revisions for these tools comes from Fuchsia, here: # https://fuchsia.googlesource.com/integration/+/HEAD/toolchain # If there are problems with the toolchain, contact fuchsia-toolchain@. - 'clang_revision': '039b969b32b64b64123dce30dd28ec4e343d893f', + 'clang_version': 'git_revision:bca75abc01f303512da409cf25a1d267b89b7276', # When updating the Dart revision, ensure that all entries that are # dependencies of Dart are also updated to match the entries in the @@ -43,7 +48,7 @@ vars = { # Dart is: https://github.com/dart-lang/sdk/blob/main/DEPS. # You can use //tools/dart/create_updated_flutter_deps.py to produce # updated revision list of existing dependencies. - 'dart_revision': 'c3a81848d916f1993d3ebf6bf99f59675c7df170', + 'dart_revision': 'c6e0307f38491e645b615c50a012dc8e8b3d1b6c', # WARNING: DO NOT EDIT MANUALLY # The lines between blank lines above and below are generated by a script. See create_updated_flutter_deps.py @@ -51,14 +56,14 @@ vars = { 'dart_boringssl_rev': '87f316d7748268eb56f2dc147bd593254ae93198', 'dart_browser_launcher_rev': '981ca8847dd2b0fe022f9e742045cfb8f214d35f', 'dart_clock_rev': '97026d1657566bb0c9f5a33642712ec350e45084', - 'dart_collection_rev': '414ffa1bc8ba18bd608bbf916d95715311d89ac1', - 'dart_devtools_rev': '40aae5e5ea2118e2b6dee8a8a20f166f7cec4270', - 'dart_protobuf_rev': '1d175bef6043bc4bdef5970f6dbd6d3001124373', - 'dart_pub_rev': 'ec35d46261b610e558dfd0d8525ca3fc8387b4b7', + 'dart_collection_rev': 'efd709fc1760a595f8575f4137a1847de1b49d76', + 'dart_devtools_rev': '23444af89d716818f099974df3e4fffac87fd886', + 'dart_protobuf_rev': 'ba29983968de5b54196c6c2a5cff1afbdda24ae2', + 'dart_pub_rev': '6506cc01b1bd17aff782037817d86a88a1c312e8', 'dart_root_certificates_rev': '692f6d6488af68e0121317a9c2c9eb393eb0ee50', - 'dart_watcher_rev': 'e00c0ea769e32821d91c0880da8eb736839a6e6d', - 'dart_webdev_rev': '741695691a7a8d357e404888ebe8d3e614a84e71', - 'dart_webkit_inspection_protocol_rev': '4e5eb8d4a48fb97603d90f2b5aac5483ebbdeb1d', + 'dart_watcher_rev': '32591071a83f632478e702f67e29de6e54428ce9', + 'dart_webdev_rev': 'c350055204b37a7fb287ae5ce63c2b8f932e53d9', + 'dart_webkit_inspection_protocol_rev': 'b825c8f6a12200d619729903207ac826cce278da', 'dart_yaml_edit_rev': '01589b3ce447b03aed991db49f1ec6445ad5476d', 'dart_zlib_rev': '27c2f474b71d0d20764f86f60ef8b00da1a16cda', @@ -101,15 +106,19 @@ gclient_gn_args = [ # Only these hosts are allowed for dependencies in this DEPS file. # If you need to add a new host, contact chrome infrastructure team. allowed_hosts = [ + 'boringssl.googlesource.com', + 'chrome-infra-packages.appspot.com', 'chromium.googlesource.com', + 'dart.googlesource.com', 'flutter.googlesource.com', 'fuchsia.googlesource.com', - 'github.com', + 'llvm.googlesource.com', 'skia.googlesource.com', + 'swiftshader.googlesource.com', ] deps = { - 'src': 'https://github.com/flutter/buildroot.git' + '@' + '64d07cbd3d9fa0c15f06c8e24c3bdbf5a9a06329', + 'src': 'https://github.com/flutter/buildroot.git' + '@' + 'ad96f00615dc306c22cc09d433eee50392f8033c', # Fuchsia compatibility # @@ -127,16 +136,16 @@ deps = { Var('llvm_git') + '/llvm-project/libcxx' + '@' + '44079a4cc04cdeffb9cfe8067bfb3c276fb2bab0', 'src/third_party/libcxxabi': - Var('flutter_git') + '/third_party/libcxxabi' + '@' + '483f071ff4780a8884f32d97d2d262fbe9f1ae18', + Var('llvm_git') + '/llvm-project/libcxxabi' + '@' + '2ce528fb5e0f92e57c97ec3ff53b75359d33af12', 'src/third_party/glfw': Var('fuchsia_git') + '/third_party/glfw' + '@' + '78e6a0063d27ed44c2c4805606309744f6fb29fc', 'src/third_party/shaderc': - Var('github_git') + '/google/shaderc.git' + '@' + '948660cccfbbc303d2590c7f44a4cee40b66fdd6', + Var('github_git') + '/google/shaderc.git' + '@' + '7ea834ecc59258a5c13c3d3e6fa0582bdde7c543', 'src/third_party/vulkan-deps': - Var('chromium_git') + '/vulkan-deps' + '@' + '23b710f1a0b3c44d51035c6400a554415f95d9c6', + Var('chromium_git') + '/vulkan-deps' + '@' + 'afc444a0f49a09f67b3dc63ddcd14e2031466ffa', 'src/third_party/flatbuffers': Var('github_git') + '/google/flatbuffers.git' + '@' + '0a80646371179f8a7a5c1f42c31ee1d44dcf6709', @@ -171,19 +180,19 @@ deps = { # WARNING: Unused Dart dependencies in the list below till "WARNING:" marker are removed automatically - see create_updated_flutter_deps.py. 'src/third_party/dart/third_party/devtools': - {'packages': [{'version': 'git_revision:40aae5e5ea2118e2b6dee8a8a20f166f7cec4270', 'package': 'dart/third_party/flutter/devtools'}], 'dep_type': 'cipd'}, + {'packages': [{'version': 'git_revision:23444af89d716818f099974df3e4fffac87fd886', 'package': 'dart/third_party/flutter/devtools'}], 'dep_type': 'cipd'}, 'src/third_party/dart/third_party/pkg/args': - Var('dart_git') + '/args.git@80d4abbd6b38b79bcdbc411b4b517628c7611232', + Var('dart_git') + '/args.git@aaf671c1462108d62b1dba0e4a74f98ed233d939', 'src/third_party/dart/third_party/pkg/async': - Var('dart_git') + '/async.git@f3ed5f690e2ec9dbe1bfc5184705575b4f6480e5', + Var('dart_git') + '/async.git@18a780efd914c3d848ddc1af5f6c83903a8b2d2d', 'src/third_party/dart/third_party/pkg/bazel_worker': - Var('dart_git') + '/bazel_worker.git@9710de6c9c70b1b583183db9d9721ba64e5a16fe', + Var('dart_git') + '/bazel_worker.git@03717ca4c2bbf1d74f26c89673426e076288242a', 'src/third_party/dart/third_party/pkg/boolean_selector': - Var('dart_git') + '/boolean_selector.git@1d3565e2651d16566bb556955b96ea75018cbd0c', + Var('dart_git') + '/boolean_selector.git@ea0ad2775cc682078571997f6c0512c384ac30f0', 'src/third_party/dart/third_party/pkg/browser_launcher': Var('dart_git') + '/browser_launcher.git' + '@' + Var('dart_browser_launcher_rev'), @@ -198,7 +207,7 @@ deps = { Var('dart_git') + '/collection.git' + '@' + Var('dart_collection_rev'), 'src/third_party/dart/third_party/pkg/convert': - Var('dart_git') + '/convert.git@7145da14f9cd730e80fb4c6a10108fcfd205e8e7', + Var('dart_git') + '/convert.git@4feeb10d2f26d22eab461469da0739a57d001edf', 'src/third_party/dart/third_party/pkg/crypto': Var('dart_git') + '/crypto.git@7cf89d35b3d90786d9f7f75211b3b3cd7e4d173f', @@ -207,10 +216,10 @@ deps = { Var('dart_git') + '/csslib.git@ba2eb2d80530eedefadaade338a09c2dd60410f3', 'src/third_party/dart/third_party/pkg/dart_style': - Var('dart_git') + '/dart_style.git@49bc3ff32b5578b6e19f8fd376d668130941ee29', + Var('dart_git') + '/dart_style.git@f79a9828ad07e50d6e8352ac154cc16eb4d78d5c', 'src/third_party/dart/third_party/pkg/dartdoc': - Var('dart_git') + '/dartdoc.git@866338f12eb404217ec5a2e245ba5007779b7a3c', + Var('dart_git') + '/dartdoc.git@3273437229b89289534edd3b15934ac75921fa6b', 'src/third_party/dart/third_party/pkg/ffi': Var('dart_git') + '/ffi.git@fb5f2667826c0900e551d19101052f84e35f41bf', @@ -222,10 +231,10 @@ deps = { Var('dart_git') + '/fixnum.git@e0b17cc1f639c55a9c24947392c64b5a68992535', 'src/third_party/dart/third_party/pkg/glob': - Var('dart_git') + '/glob.git@1d51fcc172e5adfbae6e82c3f8f119774cb2fca2', + Var('dart_git') + '/glob.git@073007c5d00822a0ddc964c027785d1eb5559d68', 'src/third_party/dart/third_party/pkg/html': - Var('dart_git') + '/html.git@faafebfd2965ce38ed8ca22e42791255d48ad5e7', + Var('dart_git') + '/html.git@0bf601959ac98e6cdf1925a1cdab70bd6a5ddc45', 'src/third_party/dart/third_party/pkg/http': Var('dart_git') + '/http.git@738a55b20e391c5a526b86bf4b02af6b7745b494', @@ -234,7 +243,7 @@ deps = { Var('dart_git') + '/http_multi_server.git@20bf079c8955d1250a45afb9cb096472a724a551', 'src/third_party/dart/third_party/pkg/http_parser': - Var('dart_git') + '/http_parser.git@b968f7ddde0588273a6cbd1d2eb6569f418606ac', + Var('dart_git') + '/http_parser.git@c73967535ce31120e218120f70ef98cc22688c82', 'src/third_party/dart/third_party/pkg/json_rpc_2': Var('dart_git') + '/json_rpc_2.git@805e6536dd961d66f6b8cd46d8f3e61774f957c9', @@ -243,10 +252,10 @@ deps = { Var('dart_git') + '/linter.git@f2c55484e8ebda0aec8c2fea637b3bd5b17258ca', 'src/third_party/dart/third_party/pkg/logging': - Var('dart_git') + '/logging.git@f5d64426af1b48966a4b33e97927c9fc456960b6', + Var('dart_git') + '/logging.git@f322480fb9d9e83e677c08db6d09067059f7ff74', 'src/third_party/dart/third_party/pkg/markdown': - Var('dart_git') + '/markdown.git@87e4c689342d5bbaa84ba2999abf0bff503979be', + Var('dart_git') + '/markdown.git@f3873403f5b1a0319f78632a8fbc2b22315a7b83', 'src/third_party/dart/third_party/pkg/matcher': Var('dart_git') + '/matcher.git@6a9b83bbd73e50df2058b3e8e4aa301df49569c6', @@ -255,10 +264,10 @@ deps = { Var('dart_git') + '/mime.git@bf041aa372a27aae6f94e185aa0af3932b9de98b', 'src/third_party/dart/third_party/pkg/mockito': - Var('dart_git') + '/mockito.git@02ad6c793d9ea970b5cc892f45a55d12d8ebf4e8', + Var('dart_git') + '/mockito.git@094d07cdceca1f9f4ef863fb57045295298e8682', 'src/third_party/dart/third_party/pkg/oauth2': - Var('dart_git') + '/oauth2.git@199ebf15cbd5b07958438184f32e41c4447a57bf', + Var('dart_git') + '/oauth2.git@ee5c9b1ef5bfcd282c0637f319155f89634385ed', 'src/third_party/dart/third_party/pkg/package_config': Var('dart_git') + '/package_config.git@cff98c90acc457a3b0750f0a7da0e351a35e5d0c', @@ -276,37 +285,37 @@ deps = { Var('dart_git') + '/pub.git' + '@' + Var('dart_pub_rev'), 'src/third_party/dart/third_party/pkg/pub_semver': - Var('dart_git') + '/pub_semver.git@9fd28757ba45961ac5449e0f2b0020670e921475', + Var('dart_git') + '/pub_semver.git@28159b8c5b96fc2709d0904389d7932880f68659', 'src/third_party/dart/third_party/pkg/shelf': - Var('dart_git') + '/shelf.git@39d820d4e32fc99c65f562786097487d597dcee1', + Var('dart_git') + '/shelf.git@592656f9f5af6392509e9ff20a035fd30e5e5099', 'src/third_party/dart/third_party/pkg/source_map_stack_trace': - Var('dart_git') + '/source_map_stack_trace.git@72dbf21a33293b2b8434d0a9751e36f9463981ac', + Var('dart_git') + '/source_map_stack_trace.git@8d8078fcc81c8f7936805cd277198493e0b7fc62', 'src/third_party/dart/third_party/pkg/source_maps': - Var('dart_git') + '/source_maps.git@e93565b43a7b6b367789de8ffba969c4ebeeb317', + Var('dart_git') + '/source_maps.git@b031e2cdbef5675ab9a92025202d323a5e7cc526', 'src/third_party/dart/third_party/pkg/source_span': - Var('dart_git') + '/source_span.git@ff03af16474ce91c89eb3bc28182866f4cb6dfb0', + Var('dart_git') + '/source_span.git@d1d47e550b6f77ed9b4907339a8a5e430b9ca314', 'src/third_party/dart/third_party/pkg/sse': - Var('dart_git') + '/sse.git@00084c43684ddaf7e09c19c5364c4a27eb04efda', + Var('dart_git') + '/sse.git@283568dd4865cc51e25370ed107fcbdb68759c22', 'src/third_party/dart/third_party/pkg/stack_trace': - Var('dart_git') + '/stack_trace.git@17f09c2c6845bb31c7c385acecce5befb8527a13', + Var('dart_git') + '/stack_trace.git@dce00134f6558086e8963e37d0b1ba0830862c01', 'src/third_party/dart/third_party/pkg/stream_channel': Var('dart_git') + '/stream_channel.git@a5129ca44322a7024074ca38fb98e343dcb638c7', 'src/third_party/dart/third_party/pkg/string_scanner': - Var('dart_git') + '/string_scanner.git@2d84b16d8ae03c3a8c2417b71abe0fe6de7d8bf6', + Var('dart_git') + '/string_scanner.git@10435a4f468e480273f78a6cfa1615c82446ef47', 'src/third_party/dart/third_party/pkg/term_glyph': Var('dart_git') + '/term_glyph.git@ec7cf7bb51ebb7d55760a1359f6697690dbc06ba', 'src/third_party/dart/third_party/pkg/test': - Var('dart_git') + '/test.git@58beb14cf1562429d411efa8926d7c61d0d0b133', + Var('dart_git') + '/test.git@b82fc0b5c11fcfe4e636caef6b869f1a8cd4a803', 'src/third_party/dart/third_party/pkg/test_reflective_loader': Var('dart_git') + '/test_reflective_loader.git@ef934b7a894d78601ba67d8f6207bd4505690456', @@ -315,13 +324,13 @@ deps = { Var('dart_git') + '/typed_data.git@6369490ede1c87a4a5758304a606a6e4eee364b9', 'src/third_party/dart/third_party/pkg/usage': - Var('dart_git') + '/usage.git@9a98c89163c7122bf946954209a69718300392d9', + Var('dart_git') + '/usage.git@fee1d9d9c295362f6edebfeebb9f8187711c55ab', 'src/third_party/dart/third_party/pkg/watcher': Var('dart_git') + '/watcher.git' + '@' + Var('dart_watcher_rev'), 'src/third_party/dart/third_party/pkg/web_socket_channel': - Var('dart_git') + '/web_socket_channel.git@4b46c0c4196a5e76c2b0e2589ed37de247d35938', + Var('dart_git') + '/web_socket_channel.git@eba15419e51836a67fee18d1b7fd1b875d890bc3', 'src/third_party/dart/third_party/pkg/webdev': Var('dart_git') + '/webdev.git' + '@' + Var('dart_webdev_rev'), @@ -399,7 +408,7 @@ deps = { } ], 'dep_type': 'cipd', - 'condition': 'host_os == "win" and download_dart_sdk' + 'condition': 'host_os == "win" and download_dart_sdk and not release_candidate' }, 'src/third_party/colorama/src': @@ -448,7 +457,7 @@ deps = { Var('flutter_git') + '/third_party/inja' + '@' + '88bd6112575a80d004e551c98cf956f88ff4d445', 'src/third_party/libtess2': - Var('flutter_git') + '/third_party/libtess2' + '@' + 'fc52516467dfa124bdd967c15c7cf9faf02a34ca', + Var('flutter_git') + '/third_party/libtess2' + '@' + '725e5e08ec8751477565f1d603fd7eb9058c277c', 'src/third_party/sqlite': Var('flutter_git') + '/third_party/sqlite' + '@' + '0f61bd2023ba94423b4e4c8cfb1a23de1fe6a21c', @@ -465,7 +474,7 @@ deps = { Var('swiftshader_git') + '/SwiftShader.git' + '@' + 'bea8d2471bd912220ba59032e0738f3364632657', 'src/third_party/angle': - Var('chromium_git') + '/angle/angle.git' + '@' + '3faaded8234b31dea24c929e40e33089a34a9aa5', + Var('chromium_git') + '/angle/angle.git' + '@' + '094b49db60cb48ee932a875898b57accbfa656de', 'src/third_party/vulkan_memory_allocator': Var('chromium_git') + '/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator' + '@' + '7de5cc00de50e71a3aab22dea52fbb7ff4efceb6', @@ -481,7 +490,7 @@ deps = { Var('github_git') + '/felangel/equatable.git' + '@' + '0ba67c72db8bed75877fc1caafa74112ee0bd921', # 2.0.2 'src/third_party/pkg/file': - Var('github_git') + '/google/file.dart.git' + '@' + 'b2e31cb6ef40b223701dbfa0b907fe58468484d7', # 6.1.4 + Var('dart_git') + '/external/github.com/google/file.dart.git' + '@' + 'b2e31cb6ef40b223701dbfa0b907fe58468484d7', # 6.1.4 'src/third_party/pkg/flutter_packages': Var('github_git') + '/flutter/packages.git' + '@' + '26990a2f75ab2028c3c77ffc869db11d6d866d18', # various @@ -505,7 +514,7 @@ deps = { Var('github_git') + '/google/quiver-dart.git' + '@' + '66f473cca1332496e34a783ba4527b04388fd561', # 2.1.5 'src/third_party/pkg/vector_math': - Var('github_git') + '/google/vector_math.dart.git' + '@' + '0a5fd95449083d404df9768bc1b321b88a7d2eef', # 2.1.0 + Var('dart_git') + '/external/github.com/google/vector_math.dart.git' + '@' + '0a5fd95449083d404df9768bc1b321b88a7d2eef', # 2.1.0 'src/third_party/imgui': Var('github_git') + '/ocornut/imgui.git' + '@' + '29d462ebce0275345a6ce4621d8fff0ded57c9e5', @@ -619,7 +628,7 @@ deps = { 'packages': [ { 'package': 'fuchsia/third_party/clang/mac-amd64', - 'version': 'git_revision:' + Var('clang_revision'), + 'version': Var('clang_version'), } ], 'condition': 'host_os == "mac"', # On ARM64 Macs too because Goma doesn't support the host-arm64 toolchain. @@ -630,7 +639,7 @@ deps = { 'packages': [ { 'package': 'fuchsia/third_party/clang/mac-arm64', - 'version': 'git_revision:' + Var('clang_revision'), + 'version': Var('clang_version'), } ], 'condition': 'host_os == "mac" and host_cpu == "arm64"', @@ -641,7 +650,7 @@ deps = { 'packages': [ { 'package': 'fuchsia/third_party/clang/linux-amd64', - 'version': 'git_revision:' + Var('clang_revision'), + 'version': Var('clang_version'), } ], 'condition': 'host_os == "linux" and host_cpu == "x64"', @@ -652,7 +661,7 @@ deps = { 'packages': [ { 'package': 'fuchsia/third_party/clang/linux-arm64', - 'version': 'git_revision:' + Var('clang_revision'), + 'version': Var('clang_version'), } ], 'condition': 'host_os == "linux" and host_cpu == "arm64"', @@ -663,7 +672,7 @@ deps = { 'packages': [ { 'package': 'fuchsia/third_party/clang/windows-amd64', - 'version': 'git_revision:' + Var('clang_revision'), + 'version': Var('clang_version'), } ], 'condition': 'download_windows_deps', @@ -677,7 +686,7 @@ deps = { 'packages': [ { 'package': 'fuchsia/sdk/core/mac-amd64', - 'version': 'GBHNBHS7nctZyhNIlnL1pPGdBLAtAzTc7hgmtkN7nmQC' + 'version': 'mOXbRSWGSdWRXIefRzJaS8k52abGSuRLZ0H9b5_fl64C' } ], 'condition': 'host_os == "mac" and not download_fuchsia_sdk', @@ -687,7 +696,7 @@ deps = { 'packages': [ { 'package': 'fuchsia/sdk/core/linux-amd64', - 'version': 'gcHdDsKmQTV_IVNjvMQxyRK0m1Xce2182BPd5NA1B2wC' + 'version': '-0Xq1c-TncmWBWzqgl_gpZJN5tOP5JC5iB80wiquh28C' } ], 'condition': 'host_os == "linux" and not download_fuchsia_sdk', diff --git a/benchmarking/benchmarking.cc b/benchmarking/benchmarking.cc index 2f2125464fafe..03e32e070c00a 100644 --- a/benchmarking/benchmarking.cc +++ b/benchmarking/benchmarking.cc @@ -14,7 +14,7 @@ namespace benchmarking { int Main(int argc, char** argv) { fml::InstallCrashHandler(); #if !defined(FML_OS_ANDROID) - fml::CommandLine cmd = fml::CommandLineFromArgcArgv(argc, argv); + fml::CommandLine cmd = fml::CommandLineFromPlatformOrArgcArgv(argc, argv); std::string icudtl_path = cmd.GetOptionValueWithDefault("icu-data-file-path", "icudtl.dat"); fml::icu::InitializeICU(icudtl_path); diff --git a/build/archives/BUILD.gn b/build/archives/BUILD.gn index dbe31d4af91b6..7743e1ad911c8 100644 --- a/build/archives/BUILD.gn +++ b/build/archives/BUILD.gn @@ -91,6 +91,10 @@ if (build_engine_artifacts && !is_android) { source = "$root_out_dir/impellerc$exe" destination = "impellerc$exe" }, + { + source = "//flutter/impeller/compiler/shader_lib" + destination = "shader_lib" + }, { source = "$root_out_dir/${lib_prefix}path_ops$dll" destination = "${lib_prefix}path_ops$dll" @@ -220,13 +224,6 @@ if (build_engine_artifacts && !flutter_prebuilt_dart_sdk) { } } -# Archives Flutter Web SDK -if (!is_fuchsia) { - group("flutter_web_sdk") { - deps = [ "//flutter/web_sdk:flutter_web_sdk_archive" ] - } -} - # Archives Flutter Windows Artifacts if (host_os == "win") { zip_bundle("windows_flutter") { diff --git a/build/copy_info_plist.py b/build/copy_info_plist.py index b589e7ce04c1b..37e60bef3b6e9 100644 --- a/build/copy_info_plist.py +++ b/build/copy_info_plist.py @@ -11,7 +11,7 @@ Precondition: $CWD/../../flutter is the path to the flutter engine repo. usage: copy_info_plist.py --source --destination - --bitcode --minversion= + --minversion= """ import argparse @@ -21,14 +21,12 @@ import git_revision -def get_clang_version(bitcode): +def get_clang_version(): clang_executable = str( os.path.join( '..', '..', 'buildtools', 'mac-x64', 'clang', 'bin', 'clang++' ) ) - if bitcode: - clang_executable = 'clang++' version = subprocess.check_output([clang_executable, '--version']) return version.splitlines()[0] @@ -52,9 +50,6 @@ def main(): type=str, required=True ) - parser.add_argument( - '--bitcode', help='Built with bitcode', action='store_true' - ) parser.add_argument( '--minversion', help='Minimum device OS version like "9.0"', type=str ) @@ -64,8 +59,7 @@ def main(): text = open(args.source).read() engine_path = os.path.join(os.getcwd(), '..', '..', 'flutter') revision = git_revision.get_repository_version(engine_path) - bitcode = args.bitcode is not None - clang_version = get_clang_version(bitcode) + clang_version = get_clang_version() text = text.format( revision=revision, clang_version=clang_version, diff --git a/build/dart/BUILD.gn b/build/dart/BUILD.gn index a52bb11e409d7..304249ad86919 100644 --- a/build/dart/BUILD.gn +++ b/build/dart/BUILD.gn @@ -3,6 +3,8 @@ # found in the LICENSE file. import("//flutter/build/concurrent_jobs.gni") +import("//flutter/common/config.gni") +import("//third_party/dart/build/dart/copy_tree.gni") declare_args() { # Maximum number of Dart processes to run in parallel. @@ -14,3 +16,27 @@ declare_args() { pool("dart_pool") { depth = concurrent_dart_jobs } + +if (flutter_prebuilt_dart_sdk) { + copy_trees("_copy_trees") { + sources = [ + { + target = "copy_dart_sdk" + visibility = [ ":dart_sdk" ] + source = prebuilt_dart_sdk + dest = "$root_out_dir/dart-sdk" + ignore_patterns = "{}" + }, + ] + } +} + +if (build_engine_artifacts) { + group("dart_sdk") { + if (flutter_prebuilt_dart_sdk) { + public_deps = [ ":copy_dart_sdk" ] + } else { + public_deps = [ "//third_party/dart:create_sdk" ] + } + } +} diff --git a/ci/builders/linux_host_engine.json b/ci/builders/linux_host_engine.json index adc349d77e1fb..876fca52c101c 100644 --- a/ci/builders/linux_host_engine.json +++ b/ci/builders/linux_host_engine.json @@ -26,6 +26,48 @@ "tests": [] }, { + "archives": [], + "drone_dimensions": [ + "device_type=none", + "os=Linux" + ], + "gclient_custom_vars": { + "download_android_deps": false + }, + "gn": [ + "--runtime-mode", + "debug", + "--unoptimized", + "--prebuilt-dart-sdk", + "--enable-impeller-vulkan", + "--target-dir", + "host_debug_impeller_vulkan" + ], + "name": "host_debug_impeller_vulkan", + "ninja": { + "config": "host_debug_impeller_vulkan", + "targets": [ + "flutter", + "flutter/sky/packages" + ] + }, + "tests": [ + { + "language": "python", + "name": "Host Tests for host_debug_impeller_vulkan", + "parameters": [ + "--variant", + "host_debug_impeller_vulkan", + "--type", + "impeller-vulkan", + "--engine-capture-core-dump" + ], + "script": "flutter/testing/run_tests.py", + "type": "local" + } + ] + }, + { "archives": [ { "name": "host_debug", @@ -64,7 +106,7 @@ "flutter/build/archives:embedder", "flutter/build/archives:flutter_patched_sdk", "flutter/build/archives:dart_sdk_archive", - "flutter/build/archives:flutter_web_sdk", + "flutter/web_sdk", "flutter/tools/font-subset", "flutter/shell/platform/linux:flutter_gtk" ] @@ -151,8 +193,7 @@ "targets": [ "flutter:unittests", "flutter/build/archives:flutter_patched_sdk", - "flutter/shell/platform/linux:flutter_gtk", - "flutter/build/archives:flutter_web_sdk" + "flutter/shell/platform/linux:flutter_gtk" ] }, "tests": [ diff --git a/ci/builders/mac_host_engine.json b/ci/builders/mac_host_engine.json index d5288a222cda4..834563eeb142a 100644 --- a/ci/builders/mac_host_engine.json +++ b/ci/builders/mac_host_engine.json @@ -37,7 +37,7 @@ "flutter/shell/platform/darwin/macos:zip_macos_flutter_framework", "flutter/build/archives:artifacts", "flutter/build/archives:dart_sdk_archive", - "flutter/build/archives:flutter_web_sdk", + "flutter/web_sdk", "flutter/build/archives:archive_gen_snapshot", "flutter/build/archives:flutter_embedder_framework" ] diff --git a/ci/builders/mac_ios_engine.json b/ci/builders/mac_ios_engine.json index b3907394140dc..68fc73f63ba68 100644 --- a/ci/builders/mac_ios_engine.json +++ b/ci/builders/mac_ios_engine.json @@ -34,8 +34,7 @@ "debug", "--simulator", "--simulator-cpu=arm64", - "--no-lto", - "--no-goma" + "--no-lto" ], "name": "ios_debug_sim_arm64", "ninja": { @@ -58,7 +57,6 @@ "os=Mac-12" ], "gn": [ - "--bitcode", "--ios", "--runtime-mode", "debug" diff --git a/ci/builders/mac_ios_engine_profile.json b/ci/builders/mac_ios_engine_profile.json index 591dfc153ef08..ee762339ded0b 100644 --- a/ci/builders/mac_ios_engine_profile.json +++ b/ci/builders/mac_ios_engine_profile.json @@ -35,8 +35,7 @@ "debug", "--simulator", "--simulator-cpu=arm64", - "--no-lto", - "--no-goma" + "--no-lto" ], "name": "ios_debug_sim_arm64", "ninja": { @@ -55,8 +54,7 @@ "gn": [ "--ios", "--runtime-mode", - "profile", - "--bitcode" + "profile" ], "name": "ios_profile", "ninja": { diff --git a/ci/builders/mac_ios_engine_release.json b/ci/builders/mac_ios_engine_release.json index 65d02956f2516..b6df4be2fc888 100644 --- a/ci/builders/mac_ios_engine_release.json +++ b/ci/builders/mac_ios_engine_release.json @@ -31,9 +31,7 @@ "gn": [ "--ios", "--runtime-mode", - "release", - "--bitcode", - "--no-goma" + "release" ], "name": "ios_release", "ninja": { @@ -60,8 +58,7 @@ "debug", "--simulator", "--simulator-cpu=arm64", - "--no-lto", - "--no-goma" + "--no-lto" ], "name": "ios_debug_sim_arm64", "ninja": { @@ -103,7 +100,6 @@ "out/ios_debug_sim", "--simulator-arm64-out-dir", "out/ios_debug_sim_arm64", - "--strip-bitcode", "--dsym", "--strip" ], diff --git a/ci/builders/windows_host_engine.json b/ci/builders/windows_host_engine.json index 27de7be80d8cc..a22943aae63db 100644 --- a/ci/builders/windows_host_engine.json +++ b/ci/builders/windows_host_engine.json @@ -41,7 +41,7 @@ "flutter/build/archives:dart_sdk_archive", "flutter/shell/platform/windows/client_wrapper:client_wrapper_archive", "flutter/build/archives:windows_flutter", - "flutter/build/archives:flutter_web_sdk" + "flutter/web_sdk" ] }, "tests": [ diff --git a/ci/licenses_golden/licenses_flutter b/ci/licenses_golden/licenses_flutter index 5d167e125da85..cc116ffcef933 100644 --- a/ci/licenses_golden/licenses_flutter +++ b/ci/licenses_golden/licenses_flutter @@ -5,2905 +5,315 @@ UNUSED LICENSES: USED LICENSES: ==================================================================================================== -LIBRARY: accessibility -LIBRARY: engine -LIBRARY: tonic LIBRARY: txt -ORIGIN: ../../../flutter/LICENSE -TYPE: LicenseType.bsd -FILE: ../../../flutter/.clang-tidy -FILE: ../../../flutter/.pylintrc -FILE: ../../../flutter/.style.yapf -FILE: ../../../flutter/DEPS -FILE: ../../../flutter/assets/asset_manager.cc -FILE: ../../../flutter/assets/asset_manager.h -FILE: ../../../flutter/assets/asset_resolver.h -FILE: ../../../flutter/assets/directory_asset_bundle.cc -FILE: ../../../flutter/assets/directory_asset_bundle.h -FILE: ../../../flutter/benchmarking/benchmarking.cc -FILE: ../../../flutter/benchmarking/benchmarking.h -FILE: ../../../flutter/benchmarking/library.cc -FILE: ../../../flutter/benchmarking/library.h -FILE: ../../../flutter/common/constants.h -FILE: ../../../flutter/common/exported_symbols.sym -FILE: ../../../flutter/common/exported_symbols_mac.sym -FILE: ../../../flutter/common/graphics/gl_context_switch.cc -FILE: ../../../flutter/common/graphics/gl_context_switch.h -FILE: ../../../flutter/common/graphics/msaa_sample_count.h -FILE: ../../../flutter/common/graphics/persistent_cache.cc -FILE: ../../../flutter/common/graphics/persistent_cache.h -FILE: ../../../flutter/common/graphics/texture.cc -FILE: ../../../flutter/common/graphics/texture.h -FILE: ../../../flutter/common/settings.cc -FILE: ../../../flutter/common/settings.h -FILE: ../../../flutter/common/task_runners.cc -FILE: ../../../flutter/common/task_runners.h -FILE: ../../../flutter/display_list/display_list.cc -FILE: ../../../flutter/display_list/display_list.h -FILE: ../../../flutter/display_list/display_list_attributes.h -FILE: ../../../flutter/display_list/display_list_attributes_testing.h -FILE: ../../../flutter/display_list/display_list_benchmarks.cc -FILE: ../../../flutter/display_list/display_list_benchmarks.h -FILE: ../../../flutter/display_list/display_list_benchmarks_canvas_provider.h -FILE: ../../../flutter/display_list/display_list_benchmarks_gl.cc -FILE: ../../../flutter/display_list/display_list_benchmarks_gl.h -FILE: ../../../flutter/display_list/display_list_benchmarks_metal.cc -FILE: ../../../flutter/display_list/display_list_benchmarks_metal.h -FILE: ../../../flutter/display_list/display_list_benchmarks_software.cc -FILE: ../../../flutter/display_list/display_list_benchmarks_software.h -FILE: ../../../flutter/display_list/display_list_blend_mode.cc -FILE: ../../../flutter/display_list/display_list_blend_mode.h -FILE: ../../../flutter/display_list/display_list_builder.cc -FILE: ../../../flutter/display_list/display_list_builder.h -FILE: ../../../flutter/display_list/display_list_builder_benchmarks.cc -FILE: ../../../flutter/display_list/display_list_builder_multiplexer.cc -FILE: ../../../flutter/display_list/display_list_builder_multiplexer.h -FILE: ../../../flutter/display_list/display_list_canvas_dispatcher.cc -FILE: ../../../flutter/display_list/display_list_canvas_dispatcher.h -FILE: ../../../flutter/display_list/display_list_canvas_recorder.cc -FILE: ../../../flutter/display_list/display_list_canvas_recorder.h -FILE: ../../../flutter/display_list/display_list_canvas_unittests.cc -FILE: ../../../flutter/display_list/display_list_color.h -FILE: ../../../flutter/display_list/display_list_color_filter.cc -FILE: ../../../flutter/display_list/display_list_color_filter.h -FILE: ../../../flutter/display_list/display_list_color_filter_unittests.cc -FILE: ../../../flutter/display_list/display_list_color_source.cc -FILE: ../../../flutter/display_list/display_list_color_source.h -FILE: ../../../flutter/display_list/display_list_color_source_unittests.cc -FILE: ../../../flutter/display_list/display_list_color_unittests.cc -FILE: ../../../flutter/display_list/display_list_comparable.h -FILE: ../../../flutter/display_list/display_list_complexity.cc -FILE: ../../../flutter/display_list/display_list_complexity.h -FILE: ../../../flutter/display_list/display_list_complexity_gl.cc -FILE: ../../../flutter/display_list/display_list_complexity_gl.h -FILE: ../../../flutter/display_list/display_list_complexity_helper.h -FILE: ../../../flutter/display_list/display_list_complexity_metal.cc -FILE: ../../../flutter/display_list/display_list_complexity_metal.h -FILE: ../../../flutter/display_list/display_list_complexity_unittests.cc -FILE: ../../../flutter/display_list/display_list_dispatcher.cc -FILE: ../../../flutter/display_list/display_list_dispatcher.h -FILE: ../../../flutter/display_list/display_list_enum_unittests.cc -FILE: ../../../flutter/display_list/display_list_flags.cc -FILE: ../../../flutter/display_list/display_list_flags.h -FILE: ../../../flutter/display_list/display_list_image.cc -FILE: ../../../flutter/display_list/display_list_image.h -FILE: ../../../flutter/display_list/display_list_image_filter.cc -FILE: ../../../flutter/display_list/display_list_image_filter.h -FILE: ../../../flutter/display_list/display_list_image_filter_unittests.cc -FILE: ../../../flutter/display_list/display_list_image_skia.cc -FILE: ../../../flutter/display_list/display_list_image_skia.h -FILE: ../../../flutter/display_list/display_list_mask_filter.cc -FILE: ../../../flutter/display_list/display_list_mask_filter.h -FILE: ../../../flutter/display_list/display_list_mask_filter_unittests.cc -FILE: ../../../flutter/display_list/display_list_ops.cc -FILE: ../../../flutter/display_list/display_list_ops.h -FILE: ../../../flutter/display_list/display_list_paint.cc -FILE: ../../../flutter/display_list/display_list_paint.h -FILE: ../../../flutter/display_list/display_list_paint_unittests.cc -FILE: ../../../flutter/display_list/display_list_path_effect.cc -FILE: ../../../flutter/display_list/display_list_path_effect.h -FILE: ../../../flutter/display_list/display_list_path_effect_unittests.cc -FILE: ../../../flutter/display_list/display_list_rtree.cc -FILE: ../../../flutter/display_list/display_list_rtree.h -FILE: ../../../flutter/display_list/display_list_sampling_options.h -FILE: ../../../flutter/display_list/display_list_test_utils.cc -FILE: ../../../flutter/display_list/display_list_test_utils.h -FILE: ../../../flutter/display_list/display_list_tile_mode.h -FILE: ../../../flutter/display_list/display_list_unittests.cc -FILE: ../../../flutter/display_list/display_list_utils.cc -FILE: ../../../flutter/display_list/display_list_utils.h -FILE: ../../../flutter/display_list/display_list_utils_unittests.cc -FILE: ../../../flutter/display_list/display_list_vertices.cc -FILE: ../../../flutter/display_list/display_list_vertices.h -FILE: ../../../flutter/display_list/display_list_vertices_unittests.cc -FILE: ../../../flutter/display_list/types.h -FILE: ../../../flutter/flow/compositor_context.cc -FILE: ../../../flutter/flow/compositor_context.h -FILE: ../../../flutter/flow/diff_context.cc -FILE: ../../../flutter/flow/diff_context.h -FILE: ../../../flutter/flow/diff_context_unittests.cc -FILE: ../../../flutter/flow/embedded_view_params_unittests.cc -FILE: ../../../flutter/flow/embedded_views.cc -FILE: ../../../flutter/flow/embedded_views.h -FILE: ../../../flutter/flow/flow_run_all_unittests.cc -FILE: ../../../flutter/flow/flow_test_utils.cc -FILE: ../../../flutter/flow/flow_test_utils.h -FILE: ../../../flutter/flow/frame_timings.cc -FILE: ../../../flutter/flow/frame_timings.h -FILE: ../../../flutter/flow/frame_timings_recorder_unittests.cc -FILE: ../../../flutter/flow/gl_context_switch_unittests.cc -FILE: ../../../flutter/flow/instrumentation.cc -FILE: ../../../flutter/flow/instrumentation.h -FILE: ../../../flutter/flow/instrumentation_unittests.cc -FILE: ../../../flutter/flow/layer_snapshot_store.cc -FILE: ../../../flutter/flow/layer_snapshot_store.h -FILE: ../../../flutter/flow/layers/backdrop_filter_layer.cc -FILE: ../../../flutter/flow/layers/backdrop_filter_layer.h -FILE: ../../../flutter/flow/layers/backdrop_filter_layer_unittests.cc -FILE: ../../../flutter/flow/layers/cacheable_layer.cc -FILE: ../../../flutter/flow/layers/cacheable_layer.h -FILE: ../../../flutter/flow/layers/checkerboard_layertree_unittests.cc -FILE: ../../../flutter/flow/layers/clip_path_layer.cc -FILE: ../../../flutter/flow/layers/clip_path_layer.h -FILE: ../../../flutter/flow/layers/clip_path_layer_unittests.cc -FILE: ../../../flutter/flow/layers/clip_rect_layer.cc -FILE: ../../../flutter/flow/layers/clip_rect_layer.h -FILE: ../../../flutter/flow/layers/clip_rect_layer_unittests.cc -FILE: ../../../flutter/flow/layers/clip_rrect_layer.cc -FILE: ../../../flutter/flow/layers/clip_rrect_layer.h -FILE: ../../../flutter/flow/layers/clip_rrect_layer_unittests.cc -FILE: ../../../flutter/flow/layers/clip_shape_layer.h -FILE: ../../../flutter/flow/layers/color_filter_layer.cc -FILE: ../../../flutter/flow/layers/color_filter_layer.h -FILE: ../../../flutter/flow/layers/color_filter_layer_unittests.cc -FILE: ../../../flutter/flow/layers/container_layer.cc -FILE: ../../../flutter/flow/layers/container_layer.h -FILE: ../../../flutter/flow/layers/container_layer_unittests.cc -FILE: ../../../flutter/flow/layers/display_list_layer.cc -FILE: ../../../flutter/flow/layers/display_list_layer.h -FILE: ../../../flutter/flow/layers/display_list_layer_unittests.cc -FILE: ../../../flutter/flow/layers/display_list_raster_cache_item.cc -FILE: ../../../flutter/flow/layers/display_list_raster_cache_item.h -FILE: ../../../flutter/flow/layers/image_filter_layer.cc -FILE: ../../../flutter/flow/layers/image_filter_layer.h -FILE: ../../../flutter/flow/layers/image_filter_layer_unittests.cc -FILE: ../../../flutter/flow/layers/layer.cc -FILE: ../../../flutter/flow/layers/layer.h -FILE: ../../../flutter/flow/layers/layer_raster_cache_item.cc -FILE: ../../../flutter/flow/layers/layer_raster_cache_item.h -FILE: ../../../flutter/flow/layers/layer_tree.cc -FILE: ../../../flutter/flow/layers/layer_tree.h -FILE: ../../../flutter/flow/layers/layer_tree_unittests.cc -FILE: ../../../flutter/flow/layers/offscreen_surface.cc -FILE: ../../../flutter/flow/layers/offscreen_surface.h -FILE: ../../../flutter/flow/layers/offscreen_surface_unittests.cc -FILE: ../../../flutter/flow/layers/opacity_layer.cc -FILE: ../../../flutter/flow/layers/opacity_layer.h -FILE: ../../../flutter/flow/layers/opacity_layer_unittests.cc -FILE: ../../../flutter/flow/layers/performance_overlay_layer.cc -FILE: ../../../flutter/flow/layers/performance_overlay_layer.h -FILE: ../../../flutter/flow/layers/performance_overlay_layer_unittests.cc -FILE: ../../../flutter/flow/layers/physical_shape_layer.cc -FILE: ../../../flutter/flow/layers/physical_shape_layer.h -FILE: ../../../flutter/flow/layers/physical_shape_layer_unittests.cc -FILE: ../../../flutter/flow/layers/platform_view_layer.cc -FILE: ../../../flutter/flow/layers/platform_view_layer.h -FILE: ../../../flutter/flow/layers/platform_view_layer_unittests.cc -FILE: ../../../flutter/flow/layers/shader_mask_layer.cc -FILE: ../../../flutter/flow/layers/shader_mask_layer.h -FILE: ../../../flutter/flow/layers/shader_mask_layer_unittests.cc -FILE: ../../../flutter/flow/layers/texture_layer.cc -FILE: ../../../flutter/flow/layers/texture_layer.h -FILE: ../../../flutter/flow/layers/texture_layer_unittests.cc -FILE: ../../../flutter/flow/layers/transform_layer.cc -FILE: ../../../flutter/flow/layers/transform_layer.h -FILE: ../../../flutter/flow/layers/transform_layer_unittests.cc -FILE: ../../../flutter/flow/mutators_stack_unittests.cc -FILE: ../../../flutter/flow/paint_region.cc -FILE: ../../../flutter/flow/paint_region.h -FILE: ../../../flutter/flow/paint_utils.cc -FILE: ../../../flutter/flow/paint_utils.h -FILE: ../../../flutter/flow/raster_cache.cc -FILE: ../../../flutter/flow/raster_cache.h -FILE: ../../../flutter/flow/raster_cache_item.h -FILE: ../../../flutter/flow/raster_cache_key.cc -FILE: ../../../flutter/flow/raster_cache_key.h -FILE: ../../../flutter/flow/raster_cache_unittests.cc -FILE: ../../../flutter/flow/raster_cache_util.cc -FILE: ../../../flutter/flow/raster_cache_util.h -FILE: ../../../flutter/flow/rtree.cc -FILE: ../../../flutter/flow/rtree.h -FILE: ../../../flutter/flow/rtree_unittests.cc -FILE: ../../../flutter/flow/skia_gpu_object.h -FILE: ../../../flutter/flow/skia_gpu_object_unittests.cc -FILE: ../../../flutter/flow/surface.cc -FILE: ../../../flutter/flow/surface.h -FILE: ../../../flutter/flow/surface_frame.cc -FILE: ../../../flutter/flow/surface_frame.h -FILE: ../../../flutter/flow/surface_frame_unittests.cc -FILE: ../../../flutter/flow/texture_unittests.cc -FILE: ../../../flutter/fml/ascii_trie.cc -FILE: ../../../flutter/fml/ascii_trie.h -FILE: ../../../flutter/fml/ascii_trie_unittests.cc -FILE: ../../../flutter/fml/backtrace.cc -FILE: ../../../flutter/fml/backtrace.h -FILE: ../../../flutter/fml/backtrace_stub.cc -FILE: ../../../flutter/fml/backtrace_unittests.cc -FILE: ../../../flutter/fml/base32.cc -FILE: ../../../flutter/fml/base32.h -FILE: ../../../flutter/fml/base32_unittest.cc -FILE: ../../../flutter/fml/build_config.h -FILE: ../../../flutter/fml/closure.h -FILE: ../../../flutter/fml/command_line.cc -FILE: ../../../flutter/fml/command_line.h -FILE: ../../../flutter/fml/command_line_unittest.cc -FILE: ../../../flutter/fml/compiler_specific.h -FILE: ../../../flutter/fml/concurrent_message_loop.cc -FILE: ../../../flutter/fml/concurrent_message_loop.h -FILE: ../../../flutter/fml/dart/dart_converter.cc -FILE: ../../../flutter/fml/dart/dart_converter.h -FILE: ../../../flutter/fml/delayed_task.cc -FILE: ../../../flutter/fml/delayed_task.h -FILE: ../../../flutter/fml/eintr_wrapper.h -FILE: ../../../flutter/fml/endianness.cc -FILE: ../../../flutter/fml/endianness.h -FILE: ../../../flutter/fml/endianness_unittests.cc -FILE: ../../../flutter/fml/file.cc -FILE: ../../../flutter/fml/file.h -FILE: ../../../flutter/fml/file_unittest.cc -FILE: ../../../flutter/fml/hash_combine.h -FILE: ../../../flutter/fml/hash_combine_unittests.cc -FILE: ../../../flutter/fml/hex_codec.cc -FILE: ../../../flutter/fml/hex_codec.h -FILE: ../../../flutter/fml/hex_codec_unittest.cc -FILE: ../../../flutter/fml/icu_util.cc -FILE: ../../../flutter/fml/icu_util.h -FILE: ../../../flutter/fml/log_level.h -FILE: ../../../flutter/fml/log_settings.cc -FILE: ../../../flutter/fml/log_settings.h -FILE: ../../../flutter/fml/log_settings_state.cc -FILE: ../../../flutter/fml/logging.cc -FILE: ../../../flutter/fml/logging.h -FILE: ../../../flutter/fml/logging_unittests.cc -FILE: ../../../flutter/fml/macros.h -FILE: ../../../flutter/fml/make_copyable.h -FILE: ../../../flutter/fml/mapping.cc -FILE: ../../../flutter/fml/mapping.h -FILE: ../../../flutter/fml/mapping_unittests.cc -FILE: ../../../flutter/fml/math.h -FILE: ../../../flutter/fml/math_unittests.cc -FILE: ../../../flutter/fml/memory/ref_counted.h -FILE: ../../../flutter/fml/memory/ref_counted_internal.h -FILE: ../../../flutter/fml/memory/ref_counted_unittest.cc -FILE: ../../../flutter/fml/memory/ref_ptr.h -FILE: ../../../flutter/fml/memory/ref_ptr_internal.h -FILE: ../../../flutter/fml/memory/task_runner_checker.cc -FILE: ../../../flutter/fml/memory/task_runner_checker.h -FILE: ../../../flutter/fml/memory/task_runner_checker_unittest.cc -FILE: ../../../flutter/fml/memory/thread_checker.h -FILE: ../../../flutter/fml/memory/weak_ptr.h -FILE: ../../../flutter/fml/memory/weak_ptr_internal.cc -FILE: ../../../flutter/fml/memory/weak_ptr_internal.h -FILE: ../../../flutter/fml/memory/weak_ptr_unittest.cc -FILE: ../../../flutter/fml/message_loop.cc -FILE: ../../../flutter/fml/message_loop.h -FILE: ../../../flutter/fml/message_loop_impl.cc -FILE: ../../../flutter/fml/message_loop_impl.h -FILE: ../../../flutter/fml/message_loop_impl_unittests.cc -FILE: ../../../flutter/fml/message_loop_task_queues.cc -FILE: ../../../flutter/fml/message_loop_task_queues.h -FILE: ../../../flutter/fml/message_loop_task_queues_benchmark.cc -FILE: ../../../flutter/fml/message_loop_task_queues_merge_unmerge_unittests.cc -FILE: ../../../flutter/fml/message_loop_task_queues_unittests.cc -FILE: ../../../flutter/fml/message_loop_unittests.cc -FILE: ../../../flutter/fml/native_library.h -FILE: ../../../flutter/fml/paths.cc -FILE: ../../../flutter/fml/paths.h -FILE: ../../../flutter/fml/paths_unittests.cc -FILE: ../../../flutter/fml/platform/android/jni_util.cc -FILE: ../../../flutter/fml/platform/android/jni_util.h -FILE: ../../../flutter/fml/platform/android/jni_weak_ref.cc -FILE: ../../../flutter/fml/platform/android/jni_weak_ref.h -FILE: ../../../flutter/fml/platform/android/message_loop_android.cc -FILE: ../../../flutter/fml/platform/android/message_loop_android.h -FILE: ../../../flutter/fml/platform/android/paths_android.cc -FILE: ../../../flutter/fml/platform/android/paths_android.h -FILE: ../../../flutter/fml/platform/android/scoped_java_ref.cc -FILE: ../../../flutter/fml/platform/android/scoped_java_ref.h -FILE: ../../../flutter/fml/platform/darwin/cf_utils.cc -FILE: ../../../flutter/fml/platform/darwin/cf_utils.h -FILE: ../../../flutter/fml/platform/darwin/cf_utils_unittests.mm -FILE: ../../../flutter/fml/platform/darwin/message_loop_darwin.h -FILE: ../../../flutter/fml/platform/darwin/message_loop_darwin.mm -FILE: ../../../flutter/fml/platform/darwin/paths_darwin.mm -FILE: ../../../flutter/fml/platform/darwin/platform_version.h -FILE: ../../../flutter/fml/platform/darwin/platform_version.mm -FILE: ../../../flutter/fml/platform/darwin/scoped_block.h -FILE: ../../../flutter/fml/platform/darwin/scoped_block.mm -FILE: ../../../flutter/fml/platform/darwin/scoped_nsobject.h -FILE: ../../../flutter/fml/platform/darwin/scoped_nsobject.mm -FILE: ../../../flutter/fml/platform/darwin/string_range_sanitization.h -FILE: ../../../flutter/fml/platform/darwin/string_range_sanitization.mm -FILE: ../../../flutter/fml/platform/darwin/string_range_sanitization_unittests.mm -FILE: ../../../flutter/fml/platform/fuchsia/message_loop_fuchsia.cc -FILE: ../../../flutter/fml/platform/fuchsia/message_loop_fuchsia.h -FILE: ../../../flutter/fml/platform/fuchsia/paths_fuchsia.cc -FILE: ../../../flutter/fml/platform/fuchsia/task_observers.cc -FILE: ../../../flutter/fml/platform/fuchsia/task_observers.h -FILE: ../../../flutter/fml/platform/linux/message_loop_linux.cc -FILE: ../../../flutter/fml/platform/linux/message_loop_linux.h -FILE: ../../../flutter/fml/platform/linux/paths_linux.cc -FILE: ../../../flutter/fml/platform/linux/timerfd.cc -FILE: ../../../flutter/fml/platform/linux/timerfd.h -FILE: ../../../flutter/fml/platform/posix/command_line_posix.cc -FILE: ../../../flutter/fml/platform/posix/file_posix.cc -FILE: ../../../flutter/fml/platform/posix/mapping_posix.cc -FILE: ../../../flutter/fml/platform/posix/native_library_posix.cc -FILE: ../../../flutter/fml/platform/posix/paths_posix.cc -FILE: ../../../flutter/fml/platform/posix/posix_wrappers_posix.cc -FILE: ../../../flutter/fml/platform/posix/shared_mutex_posix.cc -FILE: ../../../flutter/fml/platform/posix/shared_mutex_posix.h -FILE: ../../../flutter/fml/platform/win/command_line_win.cc -FILE: ../../../flutter/fml/platform/win/errors_win.cc -FILE: ../../../flutter/fml/platform/win/errors_win.h -FILE: ../../../flutter/fml/platform/win/file_win.cc -FILE: ../../../flutter/fml/platform/win/mapping_win.cc -FILE: ../../../flutter/fml/platform/win/message_loop_win.cc -FILE: ../../../flutter/fml/platform/win/message_loop_win.h -FILE: ../../../flutter/fml/platform/win/native_library_win.cc -FILE: ../../../flutter/fml/platform/win/paths_win.cc -FILE: ../../../flutter/fml/platform/win/posix_wrappers_win.cc -FILE: ../../../flutter/fml/platform/win/wstring_conversion.cc -FILE: ../../../flutter/fml/platform/win/wstring_conversion.h -FILE: ../../../flutter/fml/platform/win/wstring_conversion_unittests.cc -FILE: ../../../flutter/fml/posix_wrappers.h -FILE: ../../../flutter/fml/raster_thread_merger.cc -FILE: ../../../flutter/fml/raster_thread_merger.h -FILE: ../../../flutter/fml/raster_thread_merger_unittests.cc -FILE: ../../../flutter/fml/shared_thread_merger.cc -FILE: ../../../flutter/fml/shared_thread_merger.h -FILE: ../../../flutter/fml/size.h -FILE: ../../../flutter/fml/status.h -FILE: ../../../flutter/fml/string_conversion.cc -FILE: ../../../flutter/fml/string_conversion.h -FILE: ../../../flutter/fml/string_conversion_unittests.cc -FILE: ../../../flutter/fml/synchronization/atomic_object.h -FILE: ../../../flutter/fml/synchronization/count_down_latch.cc -FILE: ../../../flutter/fml/synchronization/count_down_latch.h -FILE: ../../../flutter/fml/synchronization/count_down_latch_unittests.cc -FILE: ../../../flutter/fml/synchronization/semaphore.cc -FILE: ../../../flutter/fml/synchronization/semaphore.h -FILE: ../../../flutter/fml/synchronization/semaphore_unittest.cc -FILE: ../../../flutter/fml/synchronization/shared_mutex.h -FILE: ../../../flutter/fml/synchronization/shared_mutex_std.cc -FILE: ../../../flutter/fml/synchronization/shared_mutex_std.h -FILE: ../../../flutter/fml/synchronization/sync_switch.cc -FILE: ../../../flutter/fml/synchronization/sync_switch.h -FILE: ../../../flutter/fml/synchronization/sync_switch_unittest.cc -FILE: ../../../flutter/fml/synchronization/waitable_event.cc -FILE: ../../../flutter/fml/synchronization/waitable_event.h -FILE: ../../../flutter/fml/synchronization/waitable_event_unittest.cc -FILE: ../../../flutter/fml/task_queue_id.h -FILE: ../../../flutter/fml/task_runner.cc -FILE: ../../../flutter/fml/task_runner.h -FILE: ../../../flutter/fml/task_source.cc -FILE: ../../../flutter/fml/task_source.h -FILE: ../../../flutter/fml/task_source_grade.h -FILE: ../../../flutter/fml/task_source_unittests.cc -FILE: ../../../flutter/fml/thread.cc -FILE: ../../../flutter/fml/thread.h -FILE: ../../../flutter/fml/thread_local.cc -FILE: ../../../flutter/fml/thread_local.h -FILE: ../../../flutter/fml/thread_local_unittests.cc -FILE: ../../../flutter/fml/thread_unittests.cc -FILE: ../../../flutter/fml/time/chrono_timestamp_provider.cc -FILE: ../../../flutter/fml/time/chrono_timestamp_provider.h -FILE: ../../../flutter/fml/time/time_delta.h -FILE: ../../../flutter/fml/time/time_delta_unittest.cc -FILE: ../../../flutter/fml/time/time_point.cc -FILE: ../../../flutter/fml/time/time_point.h -FILE: ../../../flutter/fml/time/time_point_unittest.cc -FILE: ../../../flutter/fml/time/time_unittest.cc -FILE: ../../../flutter/fml/time/timestamp_provider.h -FILE: ../../../flutter/fml/trace_event.cc -FILE: ../../../flutter/fml/trace_event.h -FILE: ../../../flutter/fml/unique_fd.cc -FILE: ../../../flutter/fml/unique_fd.h -FILE: ../../../flutter/fml/unique_object.h -FILE: ../../../flutter/fml/wakeable.h -FILE: ../../../flutter/impeller/aiks/aiks_context.cc -FILE: ../../../flutter/impeller/aiks/aiks_context.h -FILE: ../../../flutter/impeller/aiks/aiks_playground.cc -FILE: ../../../flutter/impeller/aiks/aiks_playground.h -FILE: ../../../flutter/impeller/aiks/aiks_unittests.cc -FILE: ../../../flutter/impeller/aiks/canvas.cc -FILE: ../../../flutter/impeller/aiks/canvas.h -FILE: ../../../flutter/impeller/aiks/image.cc -FILE: ../../../flutter/impeller/aiks/image.h -FILE: ../../../flutter/impeller/aiks/paint.cc -FILE: ../../../flutter/impeller/aiks/paint.h -FILE: ../../../flutter/impeller/aiks/paint_pass_delegate.cc -FILE: ../../../flutter/impeller/aiks/paint_pass_delegate.h -FILE: ../../../flutter/impeller/aiks/picture.cc -FILE: ../../../flutter/impeller/aiks/picture.h -FILE: ../../../flutter/impeller/aiks/picture_recorder.cc -FILE: ../../../flutter/impeller/aiks/picture_recorder.h -FILE: ../../../flutter/impeller/archivist/archivable.cc -FILE: ../../../flutter/impeller/archivist/archivable.h -FILE: ../../../flutter/impeller/archivist/archive.cc -FILE: ../../../flutter/impeller/archivist/archive.h -FILE: ../../../flutter/impeller/archivist/archive_class_registration.cc -FILE: ../../../flutter/impeller/archivist/archive_class_registration.h -FILE: ../../../flutter/impeller/archivist/archive_database.cc -FILE: ../../../flutter/impeller/archivist/archive_database.h -FILE: ../../../flutter/impeller/archivist/archive_location.cc -FILE: ../../../flutter/impeller/archivist/archive_location.h -FILE: ../../../flutter/impeller/archivist/archive_statement.cc -FILE: ../../../flutter/impeller/archivist/archive_statement.h -FILE: ../../../flutter/impeller/archivist/archive_transaction.cc -FILE: ../../../flutter/impeller/archivist/archive_transaction.h -FILE: ../../../flutter/impeller/archivist/archive_vector.cc -FILE: ../../../flutter/impeller/archivist/archive_vector.h -FILE: ../../../flutter/impeller/archivist/archivist_fixture.cc -FILE: ../../../flutter/impeller/archivist/archivist_fixture.h -FILE: ../../../flutter/impeller/archivist/archivist_unittests.cc -FILE: ../../../flutter/impeller/base/allocation.cc -FILE: ../../../flutter/impeller/base/allocation.h -FILE: ../../../flutter/impeller/base/backend_cast.h -FILE: ../../../flutter/impeller/base/base_unittests.cc -FILE: ../../../flutter/impeller/base/comparable.cc -FILE: ../../../flutter/impeller/base/comparable.h -FILE: ../../../flutter/impeller/base/config.h -FILE: ../../../flutter/impeller/base/platform/darwin/work_queue_darwin.cc -FILE: ../../../flutter/impeller/base/platform/darwin/work_queue_darwin.h -FILE: ../../../flutter/impeller/base/promise.cc -FILE: ../../../flutter/impeller/base/promise.h -FILE: ../../../flutter/impeller/base/strings.cc -FILE: ../../../flutter/impeller/base/strings.h -FILE: ../../../flutter/impeller/base/thread.cc -FILE: ../../../flutter/impeller/base/thread.h -FILE: ../../../flutter/impeller/base/thread_safety.cc -FILE: ../../../flutter/impeller/base/thread_safety.h -FILE: ../../../flutter/impeller/base/validation.cc -FILE: ../../../flutter/impeller/base/validation.h -FILE: ../../../flutter/impeller/base/version.cc -FILE: ../../../flutter/impeller/base/version.h -FILE: ../../../flutter/impeller/base/work_queue.cc -FILE: ../../../flutter/impeller/base/work_queue.h -FILE: ../../../flutter/impeller/base/work_queue_common.cc -FILE: ../../../flutter/impeller/base/work_queue_common.h -FILE: ../../../flutter/impeller/blobcat/blob.fbs -FILE: ../../../flutter/impeller/blobcat/blob_library.cc -FILE: ../../../flutter/impeller/blobcat/blob_library.h -FILE: ../../../flutter/impeller/blobcat/blob_types.h -FILE: ../../../flutter/impeller/blobcat/blob_writer.cc -FILE: ../../../flutter/impeller/blobcat/blob_writer.h -FILE: ../../../flutter/impeller/blobcat/blobcat_main.cc -FILE: ../../../flutter/impeller/blobcat/blobcat_unittests.cc -FILE: ../../../flutter/impeller/compiler/code_gen_template.h -FILE: ../../../flutter/impeller/compiler/compiler.cc -FILE: ../../../flutter/impeller/compiler/compiler.h -FILE: ../../../flutter/impeller/compiler/compiler_backend.cc -FILE: ../../../flutter/impeller/compiler/compiler_backend.h -FILE: ../../../flutter/impeller/compiler/compiler_test.cc -FILE: ../../../flutter/impeller/compiler/compiler_test.h -FILE: ../../../flutter/impeller/compiler/compiler_unittests.cc -FILE: ../../../flutter/impeller/compiler/impellerc_main.cc -FILE: ../../../flutter/impeller/compiler/include_dir.h -FILE: ../../../flutter/impeller/compiler/includer.cc -FILE: ../../../flutter/impeller/compiler/includer.h -FILE: ../../../flutter/impeller/compiler/logger.h -FILE: ../../../flutter/impeller/compiler/reflector.cc -FILE: ../../../flutter/impeller/compiler/reflector.h -FILE: ../../../flutter/impeller/compiler/runtime_stage_data.cc -FILE: ../../../flutter/impeller/compiler/runtime_stage_data.h -FILE: ../../../flutter/impeller/compiler/shader_lib/impeller/blending.glsl -FILE: ../../../flutter/impeller/compiler/shader_lib/impeller/branching.glsl -FILE: ../../../flutter/impeller/compiler/shader_lib/impeller/color.glsl -FILE: ../../../flutter/impeller/compiler/shader_lib/impeller/constants.glsl -FILE: ../../../flutter/impeller/compiler/shader_lib/impeller/texture.glsl -FILE: ../../../flutter/impeller/compiler/shader_lib/impeller/transform.glsl -FILE: ../../../flutter/impeller/compiler/shader_lib/impeller/types.glsl -FILE: ../../../flutter/impeller/compiler/source_options.cc -FILE: ../../../flutter/impeller/compiler/source_options.h -FILE: ../../../flutter/impeller/compiler/spirv_sksl.cc -FILE: ../../../flutter/impeller/compiler/spirv_sksl.h -FILE: ../../../flutter/impeller/compiler/switches.cc -FILE: ../../../flutter/impeller/compiler/switches.h -FILE: ../../../flutter/impeller/compiler/types.cc -FILE: ../../../flutter/impeller/compiler/types.h -FILE: ../../../flutter/impeller/compiler/utilities.cc -FILE: ../../../flutter/impeller/compiler/utilities.h -FILE: ../../../flutter/impeller/display_list/display_list_dispatcher.cc -FILE: ../../../flutter/impeller/display_list/display_list_dispatcher.h -FILE: ../../../flutter/impeller/display_list/display_list_image_impeller.cc -FILE: ../../../flutter/impeller/display_list/display_list_image_impeller.h -FILE: ../../../flutter/impeller/display_list/display_list_playground.cc -FILE: ../../../flutter/impeller/display_list/display_list_playground.h -FILE: ../../../flutter/impeller/display_list/display_list_unittests.cc -FILE: ../../../flutter/impeller/display_list/nine_patch_converter.cc -FILE: ../../../flutter/impeller/display_list/nine_patch_converter.h -FILE: ../../../flutter/impeller/display_list/vertices_converter.cc -FILE: ../../../flutter/impeller/display_list/vertices_converter.h -FILE: ../../../flutter/impeller/docs/assets/read_frame_captures/image1.png -FILE: ../../../flutter/impeller/docs/assets/read_frame_captures/image10.png -FILE: ../../../flutter/impeller/docs/assets/read_frame_captures/image11.png -FILE: ../../../flutter/impeller/docs/assets/read_frame_captures/image12.png -FILE: ../../../flutter/impeller/docs/assets/read_frame_captures/image13.png -FILE: ../../../flutter/impeller/docs/assets/read_frame_captures/image14.png -FILE: ../../../flutter/impeller/docs/assets/read_frame_captures/image15.png -FILE: ../../../flutter/impeller/docs/assets/read_frame_captures/image16.png -FILE: ../../../flutter/impeller/docs/assets/read_frame_captures/image17.png -FILE: ../../../flutter/impeller/docs/assets/read_frame_captures/image18.png -FILE: ../../../flutter/impeller/docs/assets/read_frame_captures/image2.png -FILE: ../../../flutter/impeller/docs/assets/read_frame_captures/image3.png -FILE: ../../../flutter/impeller/docs/assets/read_frame_captures/image4.png -FILE: ../../../flutter/impeller/docs/assets/read_frame_captures/image5.png -FILE: ../../../flutter/impeller/docs/assets/read_frame_captures/image6.png -FILE: ../../../flutter/impeller/docs/assets/read_frame_captures/image7.png -FILE: ../../../flutter/impeller/docs/assets/read_frame_captures/image8.png -FILE: ../../../flutter/impeller/docs/assets/read_frame_captures/image9.png -FILE: ../../../flutter/impeller/docs/assets/shader_pipeline.png -FILE: ../../../flutter/impeller/docs/assets/showcase.png -FILE: ../../../flutter/impeller/docs/assets/xcode_frame_capture/image1.png -FILE: ../../../flutter/impeller/docs/assets/xcode_frame_capture/image10.png -FILE: ../../../flutter/impeller/docs/assets/xcode_frame_capture/image11.png -FILE: ../../../flutter/impeller/docs/assets/xcode_frame_capture/image12.png -FILE: ../../../flutter/impeller/docs/assets/xcode_frame_capture/image2.png -FILE: ../../../flutter/impeller/docs/assets/xcode_frame_capture/image3.png -FILE: ../../../flutter/impeller/docs/assets/xcode_frame_capture/image4.png -FILE: ../../../flutter/impeller/docs/assets/xcode_frame_capture/image5.png -FILE: ../../../flutter/impeller/docs/assets/xcode_frame_capture/image6.png -FILE: ../../../flutter/impeller/docs/assets/xcode_frame_capture/image7.png -FILE: ../../../flutter/impeller/docs/assets/xcode_frame_capture/image8.png -FILE: ../../../flutter/impeller/docs/assets/xcode_frame_capture/image9.png -FILE: ../../../flutter/impeller/entity/contents/atlas_contents.cc -FILE: ../../../flutter/impeller/entity/contents/atlas_contents.h -FILE: ../../../flutter/impeller/entity/contents/clip_contents.cc -FILE: ../../../flutter/impeller/entity/contents/clip_contents.h -FILE: ../../../flutter/impeller/entity/contents/color_source_contents.cc -FILE: ../../../flutter/impeller/entity/contents/color_source_contents.h -FILE: ../../../flutter/impeller/entity/contents/content_context.cc -FILE: ../../../flutter/impeller/entity/contents/content_context.h -FILE: ../../../flutter/impeller/entity/contents/contents.cc -FILE: ../../../flutter/impeller/entity/contents/contents.h -FILE: ../../../flutter/impeller/entity/contents/filters/blend_filter_contents.cc -FILE: ../../../flutter/impeller/entity/contents/filters/blend_filter_contents.h -FILE: ../../../flutter/impeller/entity/contents/filters/border_mask_blur_filter_contents.cc -FILE: ../../../flutter/impeller/entity/contents/filters/border_mask_blur_filter_contents.h -FILE: ../../../flutter/impeller/entity/contents/filters/color_matrix_filter_contents.cc -FILE: ../../../flutter/impeller/entity/contents/filters/color_matrix_filter_contents.h -FILE: ../../../flutter/impeller/entity/contents/filters/filter_contents.cc -FILE: ../../../flutter/impeller/entity/contents/filters/filter_contents.h -FILE: ../../../flutter/impeller/entity/contents/filters/gaussian_blur_filter_contents.cc -FILE: ../../../flutter/impeller/entity/contents/filters/gaussian_blur_filter_contents.h -FILE: ../../../flutter/impeller/entity/contents/filters/inputs/contents_filter_input.cc -FILE: ../../../flutter/impeller/entity/contents/filters/inputs/contents_filter_input.h -FILE: ../../../flutter/impeller/entity/contents/filters/inputs/filter_contents_filter_input.cc -FILE: ../../../flutter/impeller/entity/contents/filters/inputs/filter_contents_filter_input.h -FILE: ../../../flutter/impeller/entity/contents/filters/inputs/filter_input.cc -FILE: ../../../flutter/impeller/entity/contents/filters/inputs/filter_input.h -FILE: ../../../flutter/impeller/entity/contents/filters/inputs/filter_input_unittests.cc -FILE: ../../../flutter/impeller/entity/contents/filters/inputs/texture_filter_input.cc -FILE: ../../../flutter/impeller/entity/contents/filters/inputs/texture_filter_input.h -FILE: ../../../flutter/impeller/entity/contents/filters/linear_to_srgb_filter_contents.cc -FILE: ../../../flutter/impeller/entity/contents/filters/linear_to_srgb_filter_contents.h -FILE: ../../../flutter/impeller/entity/contents/filters/local_matrix_filter_contents.cc -FILE: ../../../flutter/impeller/entity/contents/filters/local_matrix_filter_contents.h -FILE: ../../../flutter/impeller/entity/contents/filters/matrix_filter_contents.cc -FILE: ../../../flutter/impeller/entity/contents/filters/matrix_filter_contents.h -FILE: ../../../flutter/impeller/entity/contents/filters/morphology_filter_contents.cc -FILE: ../../../flutter/impeller/entity/contents/filters/morphology_filter_contents.h -FILE: ../../../flutter/impeller/entity/contents/filters/srgb_to_linear_filter_contents.cc -FILE: ../../../flutter/impeller/entity/contents/filters/srgb_to_linear_filter_contents.h -FILE: ../../../flutter/impeller/entity/contents/gradient_generator.cc -FILE: ../../../flutter/impeller/entity/contents/gradient_generator.h -FILE: ../../../flutter/impeller/entity/contents/linear_gradient_contents.cc -FILE: ../../../flutter/impeller/entity/contents/linear_gradient_contents.h -FILE: ../../../flutter/impeller/entity/contents/radial_gradient_contents.cc -FILE: ../../../flutter/impeller/entity/contents/radial_gradient_contents.h -FILE: ../../../flutter/impeller/entity/contents/rrect_shadow_contents.cc -FILE: ../../../flutter/impeller/entity/contents/rrect_shadow_contents.h -FILE: ../../../flutter/impeller/entity/contents/solid_color_contents.cc -FILE: ../../../flutter/impeller/entity/contents/solid_color_contents.h -FILE: ../../../flutter/impeller/entity/contents/solid_fill_utils.cc -FILE: ../../../flutter/impeller/entity/contents/solid_fill_utils.h -FILE: ../../../flutter/impeller/entity/contents/solid_stroke_contents.cc -FILE: ../../../flutter/impeller/entity/contents/solid_stroke_contents.h -FILE: ../../../flutter/impeller/entity/contents/sweep_gradient_contents.cc -FILE: ../../../flutter/impeller/entity/contents/sweep_gradient_contents.h -FILE: ../../../flutter/impeller/entity/contents/text_contents.cc -FILE: ../../../flutter/impeller/entity/contents/text_contents.h -FILE: ../../../flutter/impeller/entity/contents/texture_contents.cc -FILE: ../../../flutter/impeller/entity/contents/texture_contents.h -FILE: ../../../flutter/impeller/entity/contents/tiled_texture_contents.cc -FILE: ../../../flutter/impeller/entity/contents/tiled_texture_contents.h -FILE: ../../../flutter/impeller/entity/contents/vertices_contents.cc -FILE: ../../../flutter/impeller/entity/contents/vertices_contents.h -FILE: ../../../flutter/impeller/entity/entity.cc -FILE: ../../../flutter/impeller/entity/entity.h -FILE: ../../../flutter/impeller/entity/entity_pass.cc -FILE: ../../../flutter/impeller/entity/entity_pass.h -FILE: ../../../flutter/impeller/entity/entity_pass_delegate.cc -FILE: ../../../flutter/impeller/entity/entity_pass_delegate.h -FILE: ../../../flutter/impeller/entity/entity_playground.cc -FILE: ../../../flutter/impeller/entity/entity_playground.h -FILE: ../../../flutter/impeller/entity/entity_unittests.cc -FILE: ../../../flutter/impeller/entity/inline_pass_context.cc -FILE: ../../../flutter/impeller/entity/inline_pass_context.h -FILE: ../../../flutter/impeller/entity/shaders/atlas_fill.frag -FILE: ../../../flutter/impeller/entity/shaders/atlas_fill.vert -FILE: ../../../flutter/impeller/entity/shaders/blending/advanced_blend.glsl -FILE: ../../../flutter/impeller/entity/shaders/blending/advanced_blend.vert -FILE: ../../../flutter/impeller/entity/shaders/blending/advanced_blend_color.frag -FILE: ../../../flutter/impeller/entity/shaders/blending/advanced_blend_colorburn.frag -FILE: ../../../flutter/impeller/entity/shaders/blending/advanced_blend_colordodge.frag -FILE: ../../../flutter/impeller/entity/shaders/blending/advanced_blend_darken.frag -FILE: ../../../flutter/impeller/entity/shaders/blending/advanced_blend_difference.frag -FILE: ../../../flutter/impeller/entity/shaders/blending/advanced_blend_exclusion.frag -FILE: ../../../flutter/impeller/entity/shaders/blending/advanced_blend_hardlight.frag -FILE: ../../../flutter/impeller/entity/shaders/blending/advanced_blend_hue.frag -FILE: ../../../flutter/impeller/entity/shaders/blending/advanced_blend_lighten.frag -FILE: ../../../flutter/impeller/entity/shaders/blending/advanced_blend_luminosity.frag -FILE: ../../../flutter/impeller/entity/shaders/blending/advanced_blend_multiply.frag -FILE: ../../../flutter/impeller/entity/shaders/blending/advanced_blend_overlay.frag -FILE: ../../../flutter/impeller/entity/shaders/blending/advanced_blend_saturation.frag -FILE: ../../../flutter/impeller/entity/shaders/blending/advanced_blend_screen.frag -FILE: ../../../flutter/impeller/entity/shaders/blending/advanced_blend_softlight.frag -FILE: ../../../flutter/impeller/entity/shaders/blending/blend.frag -FILE: ../../../flutter/impeller/entity/shaders/blending/blend.vert -FILE: ../../../flutter/impeller/entity/shaders/border_mask_blur.frag -FILE: ../../../flutter/impeller/entity/shaders/border_mask_blur.vert -FILE: ../../../flutter/impeller/entity/shaders/color_matrix_color_filter.frag -FILE: ../../../flutter/impeller/entity/shaders/color_matrix_color_filter.vert -FILE: ../../../flutter/impeller/entity/shaders/gaussian_blur.frag -FILE: ../../../flutter/impeller/entity/shaders/gaussian_blur.vert -FILE: ../../../flutter/impeller/entity/shaders/glyph_atlas.frag -FILE: ../../../flutter/impeller/entity/shaders/glyph_atlas.vert -FILE: ../../../flutter/impeller/entity/shaders/glyph_atlas_sdf.frag -FILE: ../../../flutter/impeller/entity/shaders/glyph_atlas_sdf.vert -FILE: ../../../flutter/impeller/entity/shaders/gradient_fill.vert -FILE: ../../../flutter/impeller/entity/shaders/linear_gradient_fill.frag -FILE: ../../../flutter/impeller/entity/shaders/linear_to_srgb_filter.frag -FILE: ../../../flutter/impeller/entity/shaders/linear_to_srgb_filter.vert -FILE: ../../../flutter/impeller/entity/shaders/morphology_filter.frag -FILE: ../../../flutter/impeller/entity/shaders/morphology_filter.vert -FILE: ../../../flutter/impeller/entity/shaders/radial_gradient_fill.frag -FILE: ../../../flutter/impeller/entity/shaders/rrect_blur.frag -FILE: ../../../flutter/impeller/entity/shaders/rrect_blur.vert -FILE: ../../../flutter/impeller/entity/shaders/solid_fill.frag -FILE: ../../../flutter/impeller/entity/shaders/solid_fill.vert -FILE: ../../../flutter/impeller/entity/shaders/solid_stroke.frag -FILE: ../../../flutter/impeller/entity/shaders/solid_stroke.vert -FILE: ../../../flutter/impeller/entity/shaders/srgb_to_linear_filter.frag -FILE: ../../../flutter/impeller/entity/shaders/srgb_to_linear_filter.vert -FILE: ../../../flutter/impeller/entity/shaders/sweep_gradient_fill.frag -FILE: ../../../flutter/impeller/entity/shaders/texture_fill.frag -FILE: ../../../flutter/impeller/entity/shaders/texture_fill.vert -FILE: ../../../flutter/impeller/entity/shaders/tiled_texture_fill.frag -FILE: ../../../flutter/impeller/entity/shaders/tiled_texture_fill.vert -FILE: ../../../flutter/impeller/entity/shaders/vertices.frag -FILE: ../../../flutter/impeller/entity/shaders/vertices.vert -FILE: ../../../flutter/impeller/geometry/color.cc -FILE: ../../../flutter/impeller/geometry/color.h -FILE: ../../../flutter/impeller/geometry/constants.cc -FILE: ../../../flutter/impeller/geometry/constants.h -FILE: ../../../flutter/impeller/geometry/geometry_unittests.cc -FILE: ../../../flutter/impeller/geometry/geometry_unittests.h -FILE: ../../../flutter/impeller/geometry/gradient.cc -FILE: ../../../flutter/impeller/geometry/gradient.h -FILE: ../../../flutter/impeller/geometry/matrix.cc -FILE: ../../../flutter/impeller/geometry/matrix.h -FILE: ../../../flutter/impeller/geometry/matrix_decomposition.cc -FILE: ../../../flutter/impeller/geometry/matrix_decomposition.h -FILE: ../../../flutter/impeller/geometry/path.cc -FILE: ../../../flutter/impeller/geometry/path.h -FILE: ../../../flutter/impeller/geometry/path_builder.cc -FILE: ../../../flutter/impeller/geometry/path_builder.h -FILE: ../../../flutter/impeller/geometry/path_component.cc -FILE: ../../../flutter/impeller/geometry/path_component.h -FILE: ../../../flutter/impeller/geometry/point.cc -FILE: ../../../flutter/impeller/geometry/point.h -FILE: ../../../flutter/impeller/geometry/quaternion.cc -FILE: ../../../flutter/impeller/geometry/quaternion.h -FILE: ../../../flutter/impeller/geometry/rect.cc -FILE: ../../../flutter/impeller/geometry/rect.h -FILE: ../../../flutter/impeller/geometry/scalar.h -FILE: ../../../flutter/impeller/geometry/shear.cc -FILE: ../../../flutter/impeller/geometry/shear.h -FILE: ../../../flutter/impeller/geometry/sigma.cc -FILE: ../../../flutter/impeller/geometry/sigma.h -FILE: ../../../flutter/impeller/geometry/size.cc -FILE: ../../../flutter/impeller/geometry/size.h -FILE: ../../../flutter/impeller/geometry/type_traits.cc -FILE: ../../../flutter/impeller/geometry/type_traits.h -FILE: ../../../flutter/impeller/geometry/vector.cc -FILE: ../../../flutter/impeller/geometry/vector.h -FILE: ../../../flutter/impeller/geometry/vertices.cc -FILE: ../../../flutter/impeller/geometry/vertices.h -FILE: ../../../flutter/impeller/image/backends/skia/compressed_image_skia.cc -FILE: ../../../flutter/impeller/image/backends/skia/compressed_image_skia.h -FILE: ../../../flutter/impeller/image/compressed_image.cc -FILE: ../../../flutter/impeller/image/compressed_image.h -FILE: ../../../flutter/impeller/image/decompressed_image.cc -FILE: ../../../flutter/impeller/image/decompressed_image.h -FILE: ../../../flutter/impeller/renderer/allocator.cc -FILE: ../../../flutter/impeller/renderer/allocator.h -FILE: ../../../flutter/impeller/renderer/backend/gles/allocator_gles.cc -FILE: ../../../flutter/impeller/renderer/backend/gles/allocator_gles.h -FILE: ../../../flutter/impeller/renderer/backend/gles/blit_command_gles.cc -FILE: ../../../flutter/impeller/renderer/backend/gles/blit_command_gles.h -FILE: ../../../flutter/impeller/renderer/backend/gles/blit_pass_gles.cc -FILE: ../../../flutter/impeller/renderer/backend/gles/blit_pass_gles.h -FILE: ../../../flutter/impeller/renderer/backend/gles/buffer_bindings_gles.cc -FILE: ../../../flutter/impeller/renderer/backend/gles/buffer_bindings_gles.h -FILE: ../../../flutter/impeller/renderer/backend/gles/capabilities_gles.cc -FILE: ../../../flutter/impeller/renderer/backend/gles/capabilities_gles.h -FILE: ../../../flutter/impeller/renderer/backend/gles/command_buffer_gles.cc -FILE: ../../../flutter/impeller/renderer/backend/gles/command_buffer_gles.h -FILE: ../../../flutter/impeller/renderer/backend/gles/context_gles.cc -FILE: ../../../flutter/impeller/renderer/backend/gles/context_gles.h -FILE: ../../../flutter/impeller/renderer/backend/gles/description_gles.cc -FILE: ../../../flutter/impeller/renderer/backend/gles/description_gles.h -FILE: ../../../flutter/impeller/renderer/backend/gles/device_buffer_gles.cc -FILE: ../../../flutter/impeller/renderer/backend/gles/device_buffer_gles.h -FILE: ../../../flutter/impeller/renderer/backend/gles/formats_gles.cc -FILE: ../../../flutter/impeller/renderer/backend/gles/formats_gles.h -FILE: ../../../flutter/impeller/renderer/backend/gles/gles.h -FILE: ../../../flutter/impeller/renderer/backend/gles/handle_gles.cc -FILE: ../../../flutter/impeller/renderer/backend/gles/handle_gles.h -FILE: ../../../flutter/impeller/renderer/backend/gles/pipeline_gles.cc -FILE: ../../../flutter/impeller/renderer/backend/gles/pipeline_gles.h -FILE: ../../../flutter/impeller/renderer/backend/gles/pipeline_library_gles.cc -FILE: ../../../flutter/impeller/renderer/backend/gles/pipeline_library_gles.h -FILE: ../../../flutter/impeller/renderer/backend/gles/proc_table_gles.cc -FILE: ../../../flutter/impeller/renderer/backend/gles/proc_table_gles.h -FILE: ../../../flutter/impeller/renderer/backend/gles/reactor_gles.cc -FILE: ../../../flutter/impeller/renderer/backend/gles/reactor_gles.h -FILE: ../../../flutter/impeller/renderer/backend/gles/render_pass_gles.cc -FILE: ../../../flutter/impeller/renderer/backend/gles/render_pass_gles.h -FILE: ../../../flutter/impeller/renderer/backend/gles/sampler_gles.cc -FILE: ../../../flutter/impeller/renderer/backend/gles/sampler_gles.h -FILE: ../../../flutter/impeller/renderer/backend/gles/sampler_library_gles.cc -FILE: ../../../flutter/impeller/renderer/backend/gles/sampler_library_gles.h -FILE: ../../../flutter/impeller/renderer/backend/gles/shader_function_gles.cc -FILE: ../../../flutter/impeller/renderer/backend/gles/shader_function_gles.h -FILE: ../../../flutter/impeller/renderer/backend/gles/shader_library_gles.cc -FILE: ../../../flutter/impeller/renderer/backend/gles/shader_library_gles.h -FILE: ../../../flutter/impeller/renderer/backend/gles/surface_gles.cc -FILE: ../../../flutter/impeller/renderer/backend/gles/surface_gles.h -FILE: ../../../flutter/impeller/renderer/backend/gles/texture_gles.cc -FILE: ../../../flutter/impeller/renderer/backend/gles/texture_gles.h -FILE: ../../../flutter/impeller/renderer/backend/metal/allocator_mtl.h -FILE: ../../../flutter/impeller/renderer/backend/metal/allocator_mtl.mm -FILE: ../../../flutter/impeller/renderer/backend/metal/blit_command_mtl.h -FILE: ../../../flutter/impeller/renderer/backend/metal/blit_command_mtl.mm -FILE: ../../../flutter/impeller/renderer/backend/metal/blit_pass_mtl.h -FILE: ../../../flutter/impeller/renderer/backend/metal/blit_pass_mtl.mm -FILE: ../../../flutter/impeller/renderer/backend/metal/command_buffer_mtl.h -FILE: ../../../flutter/impeller/renderer/backend/metal/command_buffer_mtl.mm -FILE: ../../../flutter/impeller/renderer/backend/metal/compute_pass_mtl.h -FILE: ../../../flutter/impeller/renderer/backend/metal/compute_pass_mtl.mm -FILE: ../../../flutter/impeller/renderer/backend/metal/compute_pipeline_mtl.h -FILE: ../../../flutter/impeller/renderer/backend/metal/compute_pipeline_mtl.mm -FILE: ../../../flutter/impeller/renderer/backend/metal/context_mtl.h -FILE: ../../../flutter/impeller/renderer/backend/metal/context_mtl.mm -FILE: ../../../flutter/impeller/renderer/backend/metal/device_buffer_mtl.h -FILE: ../../../flutter/impeller/renderer/backend/metal/device_buffer_mtl.mm -FILE: ../../../flutter/impeller/renderer/backend/metal/formats_mtl.h -FILE: ../../../flutter/impeller/renderer/backend/metal/formats_mtl.mm -FILE: ../../../flutter/impeller/renderer/backend/metal/pipeline_library_mtl.h -FILE: ../../../flutter/impeller/renderer/backend/metal/pipeline_library_mtl.mm -FILE: ../../../flutter/impeller/renderer/backend/metal/pipeline_mtl.h -FILE: ../../../flutter/impeller/renderer/backend/metal/pipeline_mtl.mm -FILE: ../../../flutter/impeller/renderer/backend/metal/render_pass_mtl.h -FILE: ../../../flutter/impeller/renderer/backend/metal/render_pass_mtl.mm -FILE: ../../../flutter/impeller/renderer/backend/metal/sampler_library_mtl.h -FILE: ../../../flutter/impeller/renderer/backend/metal/sampler_library_mtl.mm -FILE: ../../../flutter/impeller/renderer/backend/metal/sampler_mtl.h -FILE: ../../../flutter/impeller/renderer/backend/metal/sampler_mtl.mm -FILE: ../../../flutter/impeller/renderer/backend/metal/shader_function_mtl.h -FILE: ../../../flutter/impeller/renderer/backend/metal/shader_function_mtl.mm -FILE: ../../../flutter/impeller/renderer/backend/metal/shader_library_mtl.h -FILE: ../../../flutter/impeller/renderer/backend/metal/shader_library_mtl.mm -FILE: ../../../flutter/impeller/renderer/backend/metal/surface_mtl.h -FILE: ../../../flutter/impeller/renderer/backend/metal/surface_mtl.mm -FILE: ../../../flutter/impeller/renderer/backend/metal/texture_mtl.h -FILE: ../../../flutter/impeller/renderer/backend/metal/texture_mtl.mm -FILE: ../../../flutter/impeller/renderer/backend/metal/vertex_descriptor_mtl.h -FILE: ../../../flutter/impeller/renderer/backend/metal/vertex_descriptor_mtl.mm -FILE: ../../../flutter/impeller/renderer/backend/vulkan/allocator_vk.cc -FILE: ../../../flutter/impeller/renderer/backend/vulkan/allocator_vk.h -FILE: ../../../flutter/impeller/renderer/backend/vulkan/blit_pass_vk.cc -FILE: ../../../flutter/impeller/renderer/backend/vulkan/blit_pass_vk.h -FILE: ../../../flutter/impeller/renderer/backend/vulkan/capabilities_vk.cc -FILE: ../../../flutter/impeller/renderer/backend/vulkan/capabilities_vk.h -FILE: ../../../flutter/impeller/renderer/backend/vulkan/command_buffer_vk.cc -FILE: ../../../flutter/impeller/renderer/backend/vulkan/command_buffer_vk.h -FILE: ../../../flutter/impeller/renderer/backend/vulkan/command_pool_vk.cc -FILE: ../../../flutter/impeller/renderer/backend/vulkan/command_pool_vk.h -FILE: ../../../flutter/impeller/renderer/backend/vulkan/context_vk.cc -FILE: ../../../flutter/impeller/renderer/backend/vulkan/context_vk.h -FILE: ../../../flutter/impeller/renderer/backend/vulkan/descriptor_pool_vk.cc -FILE: ../../../flutter/impeller/renderer/backend/vulkan/descriptor_pool_vk.h -FILE: ../../../flutter/impeller/renderer/backend/vulkan/device_buffer_vk.cc -FILE: ../../../flutter/impeller/renderer/backend/vulkan/device_buffer_vk.h -FILE: ../../../flutter/impeller/renderer/backend/vulkan/formats_vk.cc -FILE: ../../../flutter/impeller/renderer/backend/vulkan/formats_vk.h -FILE: ../../../flutter/impeller/renderer/backend/vulkan/pipeline_library_vk.cc -FILE: ../../../flutter/impeller/renderer/backend/vulkan/pipeline_library_vk.h -FILE: ../../../flutter/impeller/renderer/backend/vulkan/pipeline_vk.cc -FILE: ../../../flutter/impeller/renderer/backend/vulkan/pipeline_vk.h -FILE: ../../../flutter/impeller/renderer/backend/vulkan/render_pass_vk.cc -FILE: ../../../flutter/impeller/renderer/backend/vulkan/render_pass_vk.h -FILE: ../../../flutter/impeller/renderer/backend/vulkan/sampler_library_vk.cc -FILE: ../../../flutter/impeller/renderer/backend/vulkan/sampler_library_vk.h -FILE: ../../../flutter/impeller/renderer/backend/vulkan/sampler_vk.cc -FILE: ../../../flutter/impeller/renderer/backend/vulkan/sampler_vk.h -FILE: ../../../flutter/impeller/renderer/backend/vulkan/shader_function_vk.cc -FILE: ../../../flutter/impeller/renderer/backend/vulkan/shader_function_vk.h -FILE: ../../../flutter/impeller/renderer/backend/vulkan/shader_library_vk.cc -FILE: ../../../flutter/impeller/renderer/backend/vulkan/shader_library_vk.h -FILE: ../../../flutter/impeller/renderer/backend/vulkan/surface_producer_vk.cc -FILE: ../../../flutter/impeller/renderer/backend/vulkan/surface_producer_vk.h -FILE: ../../../flutter/impeller/renderer/backend/vulkan/surface_vk.cc -FILE: ../../../flutter/impeller/renderer/backend/vulkan/surface_vk.h -FILE: ../../../flutter/impeller/renderer/backend/vulkan/swapchain_details_vk.cc -FILE: ../../../flutter/impeller/renderer/backend/vulkan/swapchain_details_vk.h -FILE: ../../../flutter/impeller/renderer/backend/vulkan/swapchain_vk.cc -FILE: ../../../flutter/impeller/renderer/backend/vulkan/swapchain_vk.h -FILE: ../../../flutter/impeller/renderer/backend/vulkan/texture_vk.cc -FILE: ../../../flutter/impeller/renderer/backend/vulkan/texture_vk.h -FILE: ../../../flutter/impeller/renderer/backend/vulkan/vertex_descriptor_vk.cc -FILE: ../../../flutter/impeller/renderer/backend/vulkan/vertex_descriptor_vk.h -FILE: ../../../flutter/impeller/renderer/backend/vulkan/vk.h -FILE: ../../../flutter/impeller/renderer/blit_command.cc -FILE: ../../../flutter/impeller/renderer/blit_command.h -FILE: ../../../flutter/impeller/renderer/blit_pass.cc -FILE: ../../../flutter/impeller/renderer/blit_pass.h -FILE: ../../../flutter/impeller/renderer/buffer.cc -FILE: ../../../flutter/impeller/renderer/buffer.h -FILE: ../../../flutter/impeller/renderer/buffer_view.cc -FILE: ../../../flutter/impeller/renderer/buffer_view.h -FILE: ../../../flutter/impeller/renderer/command.cc -FILE: ../../../flutter/impeller/renderer/command.h -FILE: ../../../flutter/impeller/renderer/command_buffer.cc -FILE: ../../../flutter/impeller/renderer/command_buffer.h -FILE: ../../../flutter/impeller/renderer/compute_command.cc -FILE: ../../../flutter/impeller/renderer/compute_command.h -FILE: ../../../flutter/impeller/renderer/compute_pass.cc -FILE: ../../../flutter/impeller/renderer/compute_pass.h -FILE: ../../../flutter/impeller/renderer/compute_pipeline_builder.cc -FILE: ../../../flutter/impeller/renderer/compute_pipeline_builder.h -FILE: ../../../flutter/impeller/renderer/compute_pipeline_descriptor.cc -FILE: ../../../flutter/impeller/renderer/compute_pipeline_descriptor.h -FILE: ../../../flutter/impeller/renderer/compute_unittests.cc -FILE: ../../../flutter/impeller/renderer/context.cc -FILE: ../../../flutter/impeller/renderer/context.h -FILE: ../../../flutter/impeller/renderer/descriptor_set_layout.h -FILE: ../../../flutter/impeller/renderer/device_buffer.cc -FILE: ../../../flutter/impeller/renderer/device_buffer.h -FILE: ../../../flutter/impeller/renderer/device_buffer_descriptor.cc -FILE: ../../../flutter/impeller/renderer/device_buffer_descriptor.h -FILE: ../../../flutter/impeller/renderer/device_buffer_unittests.cc -FILE: ../../../flutter/impeller/renderer/formats.cc -FILE: ../../../flutter/impeller/renderer/formats.h -FILE: ../../../flutter/impeller/renderer/host_buffer.cc -FILE: ../../../flutter/impeller/renderer/host_buffer.h -FILE: ../../../flutter/impeller/renderer/host_buffer_unittests.cc -FILE: ../../../flutter/impeller/renderer/pipeline.cc -FILE: ../../../flutter/impeller/renderer/pipeline.h -FILE: ../../../flutter/impeller/renderer/pipeline_builder.cc -FILE: ../../../flutter/impeller/renderer/pipeline_builder.h -FILE: ../../../flutter/impeller/renderer/pipeline_descriptor.cc -FILE: ../../../flutter/impeller/renderer/pipeline_descriptor.h -FILE: ../../../flutter/impeller/renderer/pipeline_library.cc -FILE: ../../../flutter/impeller/renderer/pipeline_library.h -FILE: ../../../flutter/impeller/renderer/platform.cc -FILE: ../../../flutter/impeller/renderer/platform.h -FILE: ../../../flutter/impeller/renderer/range.cc -FILE: ../../../flutter/impeller/renderer/range.h -FILE: ../../../flutter/impeller/renderer/render_pass.cc -FILE: ../../../flutter/impeller/renderer/render_pass.h -FILE: ../../../flutter/impeller/renderer/render_target.cc -FILE: ../../../flutter/impeller/renderer/render_target.h -FILE: ../../../flutter/impeller/renderer/renderer.cc -FILE: ../../../flutter/impeller/renderer/renderer.h -FILE: ../../../flutter/impeller/renderer/renderer_unittests.cc -FILE: ../../../flutter/impeller/renderer/sampler.cc -FILE: ../../../flutter/impeller/renderer/sampler.h -FILE: ../../../flutter/impeller/renderer/sampler_descriptor.cc -FILE: ../../../flutter/impeller/renderer/sampler_descriptor.h -FILE: ../../../flutter/impeller/renderer/sampler_library.cc -FILE: ../../../flutter/impeller/renderer/sampler_library.h -FILE: ../../../flutter/impeller/renderer/shader_function.cc -FILE: ../../../flutter/impeller/renderer/shader_function.h -FILE: ../../../flutter/impeller/renderer/shader_key.cc -FILE: ../../../flutter/impeller/renderer/shader_key.h -FILE: ../../../flutter/impeller/renderer/shader_library.cc -FILE: ../../../flutter/impeller/renderer/shader_library.h -FILE: ../../../flutter/impeller/renderer/shader_types.cc -FILE: ../../../flutter/impeller/renderer/shader_types.h -FILE: ../../../flutter/impeller/renderer/snapshot.cc -FILE: ../../../flutter/impeller/renderer/snapshot.h -FILE: ../../../flutter/impeller/renderer/surface.cc -FILE: ../../../flutter/impeller/renderer/surface.h -FILE: ../../../flutter/impeller/renderer/texture.cc -FILE: ../../../flutter/impeller/renderer/texture.h -FILE: ../../../flutter/impeller/renderer/texture_descriptor.cc -FILE: ../../../flutter/impeller/renderer/texture_descriptor.h -FILE: ../../../flutter/impeller/renderer/vertex_buffer.cc -FILE: ../../../flutter/impeller/renderer/vertex_buffer.h -FILE: ../../../flutter/impeller/renderer/vertex_buffer_builder.cc -FILE: ../../../flutter/impeller/renderer/vertex_buffer_builder.h -FILE: ../../../flutter/impeller/renderer/vertex_descriptor.cc -FILE: ../../../flutter/impeller/renderer/vertex_descriptor.h -FILE: ../../../flutter/impeller/runtime_stage/runtime_stage.cc -FILE: ../../../flutter/impeller/runtime_stage/runtime_stage.fbs -FILE: ../../../flutter/impeller/runtime_stage/runtime_stage.h -FILE: ../../../flutter/impeller/runtime_stage/runtime_stage_playground.cc -FILE: ../../../flutter/impeller/runtime_stage/runtime_stage_playground.h -FILE: ../../../flutter/impeller/runtime_stage/runtime_stage_unittests.cc -FILE: ../../../flutter/impeller/runtime_stage/runtime_types.h -FILE: ../../../flutter/impeller/tessellator/c/tessellator.cc -FILE: ../../../flutter/impeller/tessellator/c/tessellator.h -FILE: ../../../flutter/impeller/tessellator/dart/lib/tessellator.dart -FILE: ../../../flutter/impeller/tessellator/tessellator.cc -FILE: ../../../flutter/impeller/tessellator/tessellator.h -FILE: ../../../flutter/impeller/tessellator/tessellator_unittests.cc -FILE: ../../../flutter/impeller/toolkit/egl/config.cc -FILE: ../../../flutter/impeller/toolkit/egl/config.h -FILE: ../../../flutter/impeller/toolkit/egl/context.cc -FILE: ../../../flutter/impeller/toolkit/egl/context.h -FILE: ../../../flutter/impeller/toolkit/egl/display.cc -FILE: ../../../flutter/impeller/toolkit/egl/display.h -FILE: ../../../flutter/impeller/toolkit/egl/egl.cc -FILE: ../../../flutter/impeller/toolkit/egl/egl.h -FILE: ../../../flutter/impeller/toolkit/egl/surface.cc -FILE: ../../../flutter/impeller/toolkit/egl/surface.h -FILE: ../../../flutter/impeller/typographer/backends/skia/text_frame_skia.cc -FILE: ../../../flutter/impeller/typographer/backends/skia/text_frame_skia.h -FILE: ../../../flutter/impeller/typographer/backends/skia/text_render_context_skia.cc -FILE: ../../../flutter/impeller/typographer/backends/skia/text_render_context_skia.h -FILE: ../../../flutter/impeller/typographer/backends/skia/typeface_skia.cc -FILE: ../../../flutter/impeller/typographer/backends/skia/typeface_skia.h -FILE: ../../../flutter/impeller/typographer/font.cc -FILE: ../../../flutter/impeller/typographer/font.h -FILE: ../../../flutter/impeller/typographer/font_glyph_pair.cc -FILE: ../../../flutter/impeller/typographer/font_glyph_pair.h -FILE: ../../../flutter/impeller/typographer/glyph.cc -FILE: ../../../flutter/impeller/typographer/glyph.h -FILE: ../../../flutter/impeller/typographer/glyph_atlas.cc -FILE: ../../../flutter/impeller/typographer/glyph_atlas.h -FILE: ../../../flutter/impeller/typographer/lazy_glyph_atlas.cc -FILE: ../../../flutter/impeller/typographer/lazy_glyph_atlas.h -FILE: ../../../flutter/impeller/typographer/text_frame.cc -FILE: ../../../flutter/impeller/typographer/text_frame.h -FILE: ../../../flutter/impeller/typographer/text_render_context.cc -FILE: ../../../flutter/impeller/typographer/text_render_context.h -FILE: ../../../flutter/impeller/typographer/text_run.cc -FILE: ../../../flutter/impeller/typographer/text_run.h -FILE: ../../../flutter/impeller/typographer/typeface.cc -FILE: ../../../flutter/impeller/typographer/typeface.h -FILE: ../../../flutter/impeller/typographer/typographer_unittests.cc -FILE: ../../../flutter/lib/io/dart_io.cc -FILE: ../../../flutter/lib/io/dart_io.h -FILE: ../../../flutter/lib/snapshot/libraries.json -FILE: ../../../flutter/lib/snapshot/snapshot.h -FILE: ../../../flutter/lib/ui/annotations.dart -FILE: ../../../flutter/lib/ui/channel_buffers.dart -FILE: ../../../flutter/lib/ui/compositing.dart -FILE: ../../../flutter/lib/ui/compositing/scene.cc -FILE: ../../../flutter/lib/ui/compositing/scene.h -FILE: ../../../flutter/lib/ui/compositing/scene_builder.cc -FILE: ../../../flutter/lib/ui/compositing/scene_builder.h -FILE: ../../../flutter/lib/ui/compositing/scene_builder_unittests.cc -FILE: ../../../flutter/lib/ui/dart_runtime_hooks.cc -FILE: ../../../flutter/lib/ui/dart_runtime_hooks.h -FILE: ../../../flutter/lib/ui/dart_ui.cc -FILE: ../../../flutter/lib/ui/dart_ui.h -FILE: ../../../flutter/lib/ui/dart_wrapper.h -FILE: ../../../flutter/lib/ui/geometry.dart -FILE: ../../../flutter/lib/ui/hash_codes.dart -FILE: ../../../flutter/lib/ui/hooks.dart -FILE: ../../../flutter/lib/ui/hooks_unittests.cc -FILE: ../../../flutter/lib/ui/io_manager.cc -FILE: ../../../flutter/lib/ui/io_manager.h -FILE: ../../../flutter/lib/ui/isolate_name_server.dart -FILE: ../../../flutter/lib/ui/isolate_name_server/isolate_name_server.cc -FILE: ../../../flutter/lib/ui/isolate_name_server/isolate_name_server.h -FILE: ../../../flutter/lib/ui/isolate_name_server/isolate_name_server_natives.cc -FILE: ../../../flutter/lib/ui/isolate_name_server/isolate_name_server_natives.h -FILE: ../../../flutter/lib/ui/key.dart -FILE: ../../../flutter/lib/ui/lerp.dart -FILE: ../../../flutter/lib/ui/math.dart -FILE: ../../../flutter/lib/ui/natives.dart -FILE: ../../../flutter/lib/ui/painting.dart -FILE: ../../../flutter/lib/ui/painting/canvas.cc -FILE: ../../../flutter/lib/ui/painting/canvas.h -FILE: ../../../flutter/lib/ui/painting/codec.cc -FILE: ../../../flutter/lib/ui/painting/codec.h -FILE: ../../../flutter/lib/ui/painting/color_filter.cc -FILE: ../../../flutter/lib/ui/painting/color_filter.h -FILE: ../../../flutter/lib/ui/painting/display_list_deferred_image_gpu_impeller.cc -FILE: ../../../flutter/lib/ui/painting/display_list_deferred_image_gpu_impeller.h -FILE: ../../../flutter/lib/ui/painting/display_list_deferred_image_gpu_skia.cc -FILE: ../../../flutter/lib/ui/painting/display_list_deferred_image_gpu_skia.h -FILE: ../../../flutter/lib/ui/painting/display_list_image_gpu.cc -FILE: ../../../flutter/lib/ui/painting/display_list_image_gpu.h -FILE: ../../../flutter/lib/ui/painting/engine_layer.cc -FILE: ../../../flutter/lib/ui/painting/engine_layer.h -FILE: ../../../flutter/lib/ui/painting/fragment_program.cc -FILE: ../../../flutter/lib/ui/painting/fragment_program.h -FILE: ../../../flutter/lib/ui/painting/fragment_shader.cc -FILE: ../../../flutter/lib/ui/painting/fragment_shader.h -FILE: ../../../flutter/lib/ui/painting/gradient.cc -FILE: ../../../flutter/lib/ui/painting/gradient.h -FILE: ../../../flutter/lib/ui/painting/image.cc -FILE: ../../../flutter/lib/ui/painting/image.h -FILE: ../../../flutter/lib/ui/painting/image_decoder.cc -FILE: ../../../flutter/lib/ui/painting/image_decoder.h -FILE: ../../../flutter/lib/ui/painting/image_decoder_impeller.cc -FILE: ../../../flutter/lib/ui/painting/image_decoder_impeller.h -FILE: ../../../flutter/lib/ui/painting/image_decoder_skia.cc -FILE: ../../../flutter/lib/ui/painting/image_decoder_skia.h -FILE: ../../../flutter/lib/ui/painting/image_decoder_unittests.cc -FILE: ../../../flutter/lib/ui/painting/image_descriptor.cc -FILE: ../../../flutter/lib/ui/painting/image_descriptor.h -FILE: ../../../flutter/lib/ui/painting/image_dispose_unittests.cc -FILE: ../../../flutter/lib/ui/painting/image_encoding.cc -FILE: ../../../flutter/lib/ui/painting/image_encoding.h -FILE: ../../../flutter/lib/ui/painting/image_encoding_impl.h -FILE: ../../../flutter/lib/ui/painting/image_encoding_unittests.cc -FILE: ../../../flutter/lib/ui/painting/image_filter.cc -FILE: ../../../flutter/lib/ui/painting/image_filter.h -FILE: ../../../flutter/lib/ui/painting/image_generator.cc -FILE: ../../../flutter/lib/ui/painting/image_generator.h -FILE: ../../../flutter/lib/ui/painting/image_generator_registry.cc -FILE: ../../../flutter/lib/ui/painting/image_generator_registry.h -FILE: ../../../flutter/lib/ui/painting/image_generator_registry_unittests.cc -FILE: ../../../flutter/lib/ui/painting/image_shader.cc -FILE: ../../../flutter/lib/ui/painting/image_shader.h -FILE: ../../../flutter/lib/ui/painting/immutable_buffer.cc -FILE: ../../../flutter/lib/ui/painting/immutable_buffer.h -FILE: ../../../flutter/lib/ui/painting/matrix.cc -FILE: ../../../flutter/lib/ui/painting/matrix.h -FILE: ../../../flutter/lib/ui/painting/multi_frame_codec.cc -FILE: ../../../flutter/lib/ui/painting/multi_frame_codec.h -FILE: ../../../flutter/lib/ui/painting/paint.cc -FILE: ../../../flutter/lib/ui/painting/paint.h -FILE: ../../../flutter/lib/ui/painting/path.cc -FILE: ../../../flutter/lib/ui/painting/path.h -FILE: ../../../flutter/lib/ui/painting/path_measure.cc -FILE: ../../../flutter/lib/ui/painting/path_measure.h -FILE: ../../../flutter/lib/ui/painting/path_unittests.cc -FILE: ../../../flutter/lib/ui/painting/picture.cc -FILE: ../../../flutter/lib/ui/painting/picture.h -FILE: ../../../flutter/lib/ui/painting/picture_recorder.cc -FILE: ../../../flutter/lib/ui/painting/picture_recorder.h -FILE: ../../../flutter/lib/ui/painting/rrect.cc -FILE: ../../../flutter/lib/ui/painting/rrect.h -FILE: ../../../flutter/lib/ui/painting/shader.cc -FILE: ../../../flutter/lib/ui/painting/shader.h -FILE: ../../../flutter/lib/ui/painting/single_frame_codec.cc -FILE: ../../../flutter/lib/ui/painting/single_frame_codec.h -FILE: ../../../flutter/lib/ui/painting/single_frame_codec_unittests.cc -FILE: ../../../flutter/lib/ui/painting/vertices.cc -FILE: ../../../flutter/lib/ui/painting/vertices.h -FILE: ../../../flutter/lib/ui/platform_dispatcher.dart -FILE: ../../../flutter/lib/ui/plugins.dart -FILE: ../../../flutter/lib/ui/plugins/callback_cache.cc -FILE: ../../../flutter/lib/ui/plugins/callback_cache.h -FILE: ../../../flutter/lib/ui/pointer.dart -FILE: ../../../flutter/lib/ui/semantics.dart -FILE: ../../../flutter/lib/ui/semantics/custom_accessibility_action.cc -FILE: ../../../flutter/lib/ui/semantics/custom_accessibility_action.h -FILE: ../../../flutter/lib/ui/semantics/semantics_node.cc -FILE: ../../../flutter/lib/ui/semantics/semantics_node.h -FILE: ../../../flutter/lib/ui/semantics/semantics_update.cc -FILE: ../../../flutter/lib/ui/semantics/semantics_update.h -FILE: ../../../flutter/lib/ui/semantics/semantics_update_builder.cc -FILE: ../../../flutter/lib/ui/semantics/semantics_update_builder.h -FILE: ../../../flutter/lib/ui/semantics/semantics_update_builder_unittests.cc -FILE: ../../../flutter/lib/ui/semantics/string_attribute.cc -FILE: ../../../flutter/lib/ui/semantics/string_attribute.h -FILE: ../../../flutter/lib/ui/snapshot_delegate.h -FILE: ../../../flutter/lib/ui/text.dart -FILE: ../../../flutter/lib/ui/text/asset_manager_font_provider.cc -FILE: ../../../flutter/lib/ui/text/asset_manager_font_provider.h -FILE: ../../../flutter/lib/ui/text/font_collection.cc -FILE: ../../../flutter/lib/ui/text/font_collection.h -FILE: ../../../flutter/lib/ui/text/line_metrics.h -FILE: ../../../flutter/lib/ui/text/paragraph.cc -FILE: ../../../flutter/lib/ui/text/paragraph.h -FILE: ../../../flutter/lib/ui/text/paragraph_builder.cc -FILE: ../../../flutter/lib/ui/text/paragraph_builder.h -FILE: ../../../flutter/lib/ui/text/text_box.h -FILE: ../../../flutter/lib/ui/ui.dart -FILE: ../../../flutter/lib/ui/ui_benchmarks.cc -FILE: ../../../flutter/lib/ui/ui_dart_state.cc -FILE: ../../../flutter/lib/ui/ui_dart_state.h -FILE: ../../../flutter/lib/ui/volatile_path_tracker.cc -FILE: ../../../flutter/lib/ui/volatile_path_tracker.h -FILE: ../../../flutter/lib/ui/window.dart -FILE: ../../../flutter/lib/ui/window/key_data.cc -FILE: ../../../flutter/lib/ui/window/key_data.h -FILE: ../../../flutter/lib/ui/window/key_data_packet.cc -FILE: ../../../flutter/lib/ui/window/key_data_packet.h -FILE: ../../../flutter/lib/ui/window/platform_configuration.cc -FILE: ../../../flutter/lib/ui/window/platform_configuration.h -FILE: ../../../flutter/lib/ui/window/platform_configuration_unittests.cc -FILE: ../../../flutter/lib/ui/window/platform_message.cc -FILE: ../../../flutter/lib/ui/window/platform_message.h -FILE: ../../../flutter/lib/ui/window/platform_message_response.cc -FILE: ../../../flutter/lib/ui/window/platform_message_response.h -FILE: ../../../flutter/lib/ui/window/platform_message_response_dart.cc -FILE: ../../../flutter/lib/ui/window/platform_message_response_dart.h -FILE: ../../../flutter/lib/ui/window/platform_message_response_dart_port.cc -FILE: ../../../flutter/lib/ui/window/platform_message_response_dart_port.h -FILE: ../../../flutter/lib/ui/window/platform_message_response_dart_port_unittests.cc -FILE: ../../../flutter/lib/ui/window/platform_message_response_dart_unittests.cc -FILE: ../../../flutter/lib/ui/window/pointer_data.cc -FILE: ../../../flutter/lib/ui/window/pointer_data.h -FILE: ../../../flutter/lib/ui/window/pointer_data_packet.cc -FILE: ../../../flutter/lib/ui/window/pointer_data_packet.h -FILE: ../../../flutter/lib/ui/window/pointer_data_packet_converter.cc -FILE: ../../../flutter/lib/ui/window/pointer_data_packet_converter.h -FILE: ../../../flutter/lib/ui/window/pointer_data_packet_converter_unittests.cc -FILE: ../../../flutter/lib/ui/window/viewport_metrics.cc -FILE: ../../../flutter/lib/ui/window/viewport_metrics.h -FILE: ../../../flutter/lib/ui/window/window.cc -FILE: ../../../flutter/lib/ui/window/window.h -FILE: ../../../flutter/lib/web_ui/lib/annotations.dart -FILE: ../../../flutter/lib/web_ui/lib/canvas.dart -FILE: ../../../flutter/lib/web_ui/lib/channel_buffers.dart -FILE: ../../../flutter/lib/web_ui/lib/compositing.dart -FILE: ../../../flutter/lib/web_ui/lib/geometry.dart -FILE: ../../../flutter/lib/web_ui/lib/hash_codes.dart -FILE: ../../../flutter/lib/web_ui/lib/initialization.dart -FILE: ../../../flutter/lib/web_ui/lib/key.dart -FILE: ../../../flutter/lib/web_ui/lib/lerp.dart -FILE: ../../../flutter/lib/web_ui/lib/math.dart -FILE: ../../../flutter/lib/web_ui/lib/natives.dart -FILE: ../../../flutter/lib/web_ui/lib/painting.dart -FILE: ../../../flutter/lib/web_ui/lib/path.dart -FILE: ../../../flutter/lib/web_ui/lib/path_metrics.dart -FILE: ../../../flutter/lib/web_ui/lib/platform_dispatcher.dart -FILE: ../../../flutter/lib/web_ui/lib/pointer.dart -FILE: ../../../flutter/lib/web_ui/lib/semantics.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/alarm_clock.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/app_bootstrap.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/assets.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/browser_detection.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvas_pool.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/canvas.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/canvaskit_api.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/canvaskit_canvas.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/color_filter.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/embedded_views.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/embedded_views_diff.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/font_fallback_data.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/font_fallbacks.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/fonts.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/image.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/image_filter.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/image_wasm_codecs.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/image_web_codecs.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/interval_tree.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/layer.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/layer_scene_builder.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/layer_tree.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/mask_filter.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/n_way_canvas.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/noto_font.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/painting.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/path.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/path_metrics.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/picture.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/picture_recorder.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/platform_message.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/raster_cache.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/rasterizer.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/renderer.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/shader.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/skia_object_cache.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/surface.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/surface_factory.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/text.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/util.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/vertices.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/viewport_metrics.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/clipboard.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/color_filter.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/configuration.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/dom.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/embedder.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/engine_canvas.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/font_change_util.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/fonts.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/frame_reference.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/host_node.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/backdrop_filter.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/bitmap_canvas.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/canvas.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/clip.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/color_filter.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/debug_canvas_reuse_overlay.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/dom_canvas.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/image_filter.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/offset.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/opacity.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/painting.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/path/conic.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/path/cubic.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/path/path.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/path/path_iterator.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/path/path_metrics.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/path/path_ref.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/path/path_to_svg.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/path/path_utils.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/path/path_windings.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/path/tangent.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/path_to_svg_clip.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/picture.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/platform_view.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/recording_canvas.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/render_vertices.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/renderer.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/scene.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/scene_builder.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/shader_mask.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/shaders/image_shader.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/shaders/normalized_gradient.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/shaders/shader.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/shaders/shader_builder.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/shaders/vertex_shaders.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/surface.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/surface_stats.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/transform.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/html_image_codec.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/initialization.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/js_interop/js_loader.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/js_interop/js_promise.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/key_map.g.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/keyboard.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/keyboard_binding.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/mouse_cursor.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/navigation.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/navigation/history.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/navigation/js_url_strategy.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/navigation/url_strategy.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/onscreen_logging.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/picture.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/platform_dispatcher.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/platform_views.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/platform_views/content_manager.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/platform_views/message_handler.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/platform_views/slots.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/plugins.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/pointer_binding.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/pointer_converter.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/profiler.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/renderer.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/rrect_renderer.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/safe_browser_api.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/semantics.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/semantics/accessibility.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/semantics/checkable.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/semantics/image.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/semantics/incrementable.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/semantics/label_and_value.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/semantics/live_region.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/semantics/scrollable.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/semantics/semantics.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/semantics/semantics_helper.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/semantics/tappable.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/semantics/text_field.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/services.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/services/buffers.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/services/message_codec.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/services/message_codecs.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/services/serialization.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/shadow.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/skwasm/skwasm_impl.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/skwasm/skwasm_impl/renderer.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/skwasm/skwasm_stub.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/skwasm/skwasm_stub/renderer.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/svg.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/test_embedding.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/text/canvas_paragraph.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/text/font_collection.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/text/layout_service.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/text/line_break_properties.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/text/line_breaker.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/text/measurement.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/text/paint_service.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/text/paragraph.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/text/ruler.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/text/text_direction.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/text/unicode_range.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/text/word_break_properties.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/text/word_breaker.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/text_editing/autofill_hint.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/text_editing/composition_aware_mixin.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/text_editing/input_action.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/text_editing/input_type.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/text_editing/text_capitalization.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/text_editing/text_editing.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/ulps.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/util.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/validators.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/vector_math.dart -FILE: ../../../flutter/lib/web_ui/lib/src/engine/window.dart -FILE: ../../../flutter/lib/web_ui/lib/text.dart -FILE: ../../../flutter/lib/web_ui/lib/tile_mode.dart -FILE: ../../../flutter/lib/web_ui/lib/ui.dart -FILE: ../../../flutter/lib/web_ui/lib/window.dart -FILE: ../../../flutter/lib/web_ui/tool/unicode_sync_script.dart -FILE: ../../../flutter/runtime/dart_isolate.cc -FILE: ../../../flutter/runtime/dart_isolate.h -FILE: ../../../flutter/runtime/dart_isolate_group_data.cc -FILE: ../../../flutter/runtime/dart_isolate_group_data.h -FILE: ../../../flutter/runtime/dart_isolate_unittests.cc -FILE: ../../../flutter/runtime/dart_lifecycle_unittests.cc -FILE: ../../../flutter/runtime/dart_plugin_registrant.cc -FILE: ../../../flutter/runtime/dart_plugin_registrant.h -FILE: ../../../flutter/runtime/dart_plugin_registrant_unittests.cc -FILE: ../../../flutter/runtime/dart_service_isolate.cc -FILE: ../../../flutter/runtime/dart_service_isolate.h -FILE: ../../../flutter/runtime/dart_service_isolate_unittests.cc -FILE: ../../../flutter/runtime/dart_snapshot.cc -FILE: ../../../flutter/runtime/dart_snapshot.h -FILE: ../../../flutter/runtime/dart_timestamp_provider.cc -FILE: ../../../flutter/runtime/dart_timestamp_provider.h -FILE: ../../../flutter/runtime/dart_vm.cc -FILE: ../../../flutter/runtime/dart_vm.h -FILE: ../../../flutter/runtime/dart_vm_data.cc -FILE: ../../../flutter/runtime/dart_vm_data.h -FILE: ../../../flutter/runtime/dart_vm_initializer.cc -FILE: ../../../flutter/runtime/dart_vm_initializer.h -FILE: ../../../flutter/runtime/dart_vm_lifecycle.cc -FILE: ../../../flutter/runtime/dart_vm_lifecycle.h -FILE: ../../../flutter/runtime/dart_vm_unittests.cc -FILE: ../../../flutter/runtime/embedder_resources.cc -FILE: ../../../flutter/runtime/embedder_resources.h -FILE: ../../../flutter/runtime/isolate_configuration.cc -FILE: ../../../flutter/runtime/isolate_configuration.h -FILE: ../../../flutter/runtime/no_dart_plugin_registrant_unittests.cc -FILE: ../../../flutter/runtime/platform_data.cc -FILE: ../../../flutter/runtime/platform_data.h -FILE: ../../../flutter/runtime/ptrace_check.cc -FILE: ../../../flutter/runtime/ptrace_check.h -FILE: ../../../flutter/runtime/runtime_controller.cc -FILE: ../../../flutter/runtime/runtime_controller.h -FILE: ../../../flutter/runtime/runtime_delegate.cc -FILE: ../../../flutter/runtime/runtime_delegate.h -FILE: ../../../flutter/runtime/service_protocol.cc -FILE: ../../../flutter/runtime/service_protocol.h -FILE: ../../../flutter/runtime/skia_concurrent_executor.cc -FILE: ../../../flutter/runtime/skia_concurrent_executor.h -FILE: ../../../flutter/runtime/test_font_data.cc -FILE: ../../../flutter/runtime/test_font_data.h -FILE: ../../../flutter/runtime/type_conversions_unittests.cc -FILE: ../../../flutter/shell/common/animator.cc -FILE: ../../../flutter/shell/common/animator.h -FILE: ../../../flutter/shell/common/animator_unittests.cc -FILE: ../../../flutter/shell/common/canvas_spy.cc -FILE: ../../../flutter/shell/common/canvas_spy.h -FILE: ../../../flutter/shell/common/canvas_spy_unittests.cc -FILE: ../../../flutter/shell/common/context_options.cc -FILE: ../../../flutter/shell/common/context_options.h -FILE: ../../../flutter/shell/common/context_options_unittests.cc -FILE: ../../../flutter/shell/common/dart_native_benchmarks.cc -FILE: ../../../flutter/shell/common/display.cc -FILE: ../../../flutter/shell/common/display.h -FILE: ../../../flutter/shell/common/display_manager.cc -FILE: ../../../flutter/shell/common/display_manager.h -FILE: ../../../flutter/shell/common/engine.cc -FILE: ../../../flutter/shell/common/engine.h -FILE: ../../../flutter/shell/common/engine_unittests.cc -FILE: ../../../flutter/shell/common/input_events_unittests.cc -FILE: ../../../flutter/shell/common/persistent_cache_unittests.cc -FILE: ../../../flutter/shell/common/pipeline.cc -FILE: ../../../flutter/shell/common/pipeline.h -FILE: ../../../flutter/shell/common/pipeline_unittests.cc -FILE: ../../../flutter/shell/common/platform_message_handler.h -FILE: ../../../flutter/shell/common/platform_view.cc -FILE: ../../../flutter/shell/common/platform_view.h -FILE: ../../../flutter/shell/common/pointer_data_dispatcher.cc -FILE: ../../../flutter/shell/common/pointer_data_dispatcher.h -FILE: ../../../flutter/shell/common/rasterizer.cc -FILE: ../../../flutter/shell/common/rasterizer.h -FILE: ../../../flutter/shell/common/rasterizer_unittests.cc -FILE: ../../../flutter/shell/common/resource_cache_limit_calculator.cc -FILE: ../../../flutter/shell/common/resource_cache_limit_calculator.h -FILE: ../../../flutter/shell/common/resource_cache_limit_calculator_unittests.cc -FILE: ../../../flutter/shell/common/run_configuration.cc -FILE: ../../../flutter/shell/common/run_configuration.h -FILE: ../../../flutter/shell/common/serialization_callbacks.cc -FILE: ../../../flutter/shell/common/serialization_callbacks.h -FILE: ../../../flutter/shell/common/shell.cc -FILE: ../../../flutter/shell/common/shell.h -FILE: ../../../flutter/shell/common/shell_benchmarks.cc -FILE: ../../../flutter/shell/common/shell_fuchsia_unittests.cc -FILE: ../../../flutter/shell/common/shell_io_manager.cc -FILE: ../../../flutter/shell/common/shell_io_manager.h -FILE: ../../../flutter/shell/common/shell_io_manager_unittests.cc -FILE: ../../../flutter/shell/common/shell_test.cc -FILE: ../../../flutter/shell/common/shell_test.h -FILE: ../../../flutter/shell/common/shell_test_external_view_embedder.cc -FILE: ../../../flutter/shell/common/shell_test_external_view_embedder.h -FILE: ../../../flutter/shell/common/shell_test_platform_view.cc -FILE: ../../../flutter/shell/common/shell_test_platform_view.h -FILE: ../../../flutter/shell/common/shell_test_platform_view_gl.cc -FILE: ../../../flutter/shell/common/shell_test_platform_view_gl.h -FILE: ../../../flutter/shell/common/shell_test_platform_view_metal.h -FILE: ../../../flutter/shell/common/shell_test_platform_view_metal.mm -FILE: ../../../flutter/shell/common/shell_test_platform_view_vulkan.cc -FILE: ../../../flutter/shell/common/shell_test_platform_view_vulkan.h -FILE: ../../../flutter/shell/common/shell_unittests.cc -FILE: ../../../flutter/shell/common/skia_event_tracer_impl.cc -FILE: ../../../flutter/shell/common/skia_event_tracer_impl.h -FILE: ../../../flutter/shell/common/snapshot_controller.cc -FILE: ../../../flutter/shell/common/snapshot_controller.h -FILE: ../../../flutter/shell/common/snapshot_controller_impeller.cc -FILE: ../../../flutter/shell/common/snapshot_controller_impeller.h -FILE: ../../../flutter/shell/common/snapshot_controller_skia.cc -FILE: ../../../flutter/shell/common/snapshot_controller_skia.h -FILE: ../../../flutter/shell/common/snapshot_surface_producer.h -FILE: ../../../flutter/shell/common/switches.cc -FILE: ../../../flutter/shell/common/switches.h -FILE: ../../../flutter/shell/common/switches_unittests.cc -FILE: ../../../flutter/shell/common/thread_host.cc -FILE: ../../../flutter/shell/common/thread_host.h -FILE: ../../../flutter/shell/common/variable_refresh_rate_display.cc -FILE: ../../../flutter/shell/common/variable_refresh_rate_display.h -FILE: ../../../flutter/shell/common/variable_refresh_rate_display_unittests.cc -FILE: ../../../flutter/shell/common/variable_refresh_rate_reporter.h -FILE: ../../../flutter/shell/common/vsync_waiter.cc -FILE: ../../../flutter/shell/common/vsync_waiter.h -FILE: ../../../flutter/shell/common/vsync_waiter_fallback.cc -FILE: ../../../flutter/shell/common/vsync_waiter_fallback.h -FILE: ../../../flutter/shell/common/vsync_waiters_test.cc -FILE: ../../../flutter/shell/common/vsync_waiters_test.h -FILE: ../../../flutter/shell/gpu/gpu_surface_gl_delegate.cc -FILE: ../../../flutter/shell/gpu/gpu_surface_gl_delegate.h -FILE: ../../../flutter/shell/gpu/gpu_surface_gl_impeller.cc -FILE: ../../../flutter/shell/gpu/gpu_surface_gl_impeller.h -FILE: ../../../flutter/shell/gpu/gpu_surface_gl_skia.cc -FILE: ../../../flutter/shell/gpu/gpu_surface_gl_skia.h -FILE: ../../../flutter/shell/gpu/gpu_surface_metal_delegate.cc -FILE: ../../../flutter/shell/gpu/gpu_surface_metal_delegate.h -FILE: ../../../flutter/shell/gpu/gpu_surface_metal_impeller.h -FILE: ../../../flutter/shell/gpu/gpu_surface_metal_impeller.mm -FILE: ../../../flutter/shell/gpu/gpu_surface_metal_skia.h -FILE: ../../../flutter/shell/gpu/gpu_surface_metal_skia.mm -FILE: ../../../flutter/shell/gpu/gpu_surface_software.cc -FILE: ../../../flutter/shell/gpu/gpu_surface_software.h -FILE: ../../../flutter/shell/gpu/gpu_surface_software_delegate.cc -FILE: ../../../flutter/shell/gpu/gpu_surface_software_delegate.h -FILE: ../../../flutter/shell/gpu/gpu_surface_vulkan.cc -FILE: ../../../flutter/shell/gpu/gpu_surface_vulkan.h -FILE: ../../../flutter/shell/gpu/gpu_surface_vulkan_delegate.cc -FILE: ../../../flutter/shell/gpu/gpu_surface_vulkan_delegate.h -FILE: ../../../flutter/shell/platform/android/AndroidManifest.xml -FILE: ../../../flutter/shell/platform/android/android_choreographer.cc -FILE: ../../../flutter/shell/platform/android/android_choreographer.h -FILE: ../../../flutter/shell/platform/android/android_context_gl_impeller.cc -FILE: ../../../flutter/shell/platform/android/android_context_gl_impeller.h -FILE: ../../../flutter/shell/platform/android/android_context_gl_skia.cc -FILE: ../../../flutter/shell/platform/android/android_context_gl_skia.h -FILE: ../../../flutter/shell/platform/android/android_context_gl_unittests.cc -FILE: ../../../flutter/shell/platform/android/android_display.cc -FILE: ../../../flutter/shell/platform/android/android_display.h -FILE: ../../../flutter/shell/platform/android/android_egl_surface.cc -FILE: ../../../flutter/shell/platform/android/android_egl_surface.h -FILE: ../../../flutter/shell/platform/android/android_environment_gl.cc -FILE: ../../../flutter/shell/platform/android/android_environment_gl.h -FILE: ../../../flutter/shell/platform/android/android_exports.lst -FILE: ../../../flutter/shell/platform/android/android_external_texture_gl.cc -FILE: ../../../flutter/shell/platform/android/android_external_texture_gl.h -FILE: ../../../flutter/shell/platform/android/android_image_generator.cc -FILE: ../../../flutter/shell/platform/android/android_image_generator.h -FILE: ../../../flutter/shell/platform/android/android_shell_holder.cc -FILE: ../../../flutter/shell/platform/android/android_shell_holder.h -FILE: ../../../flutter/shell/platform/android/android_shell_holder_unittests.cc -FILE: ../../../flutter/shell/platform/android/android_surface_gl_impeller.cc -FILE: ../../../flutter/shell/platform/android/android_surface_gl_impeller.h -FILE: ../../../flutter/shell/platform/android/android_surface_gl_skia.cc -FILE: ../../../flutter/shell/platform/android/android_surface_gl_skia.h -FILE: ../../../flutter/shell/platform/android/android_surface_software.cc -FILE: ../../../flutter/shell/platform/android/android_surface_software.h -FILE: ../../../flutter/shell/platform/android/apk_asset_provider.cc -FILE: ../../../flutter/shell/platform/android/apk_asset_provider.h -FILE: ../../../flutter/shell/platform/android/apk_asset_provider_unittests.cc -FILE: ../../../flutter/shell/platform/android/context/android_context.cc -FILE: ../../../flutter/shell/platform/android/context/android_context.h -FILE: ../../../flutter/shell/platform/android/external_view_embedder/external_view_embedder.cc -FILE: ../../../flutter/shell/platform/android/external_view_embedder/external_view_embedder.h -FILE: ../../../flutter/shell/platform/android/external_view_embedder/external_view_embedder_unittests.cc -FILE: ../../../flutter/shell/platform/android/external_view_embedder/surface_pool.cc -FILE: ../../../flutter/shell/platform/android/external_view_embedder/surface_pool.h -FILE: ../../../flutter/shell/platform/android/external_view_embedder/surface_pool_unittests.cc -FILE: ../../../flutter/shell/platform/android/flutter_main.cc -FILE: ../../../flutter/shell/platform/android/flutter_main.h -FILE: ../../../flutter/shell/platform/android/flutter_shell_native_unittests.cc -FILE: ../../../flutter/shell/platform/android/io/flutter/FlutterInjector.java -FILE: ../../../flutter/shell/platform/android/io/flutter/Log.java -FILE: ../../../flutter/shell/platform/android/io/flutter/app/FlutterActivity.java -FILE: ../../../flutter/shell/platform/android/io/flutter/app/FlutterActivityDelegate.java -FILE: ../../../flutter/shell/platform/android/io/flutter/app/FlutterActivityEvents.java -FILE: ../../../flutter/shell/platform/android/io/flutter/app/FlutterApplication.java -FILE: ../../../flutter/shell/platform/android/io/flutter/app/FlutterFragmentActivity.java -FILE: ../../../flutter/shell/platform/android/io/flutter/app/FlutterPlayStoreSplitApplication.java -FILE: ../../../flutter/shell/platform/android/io/flutter/app/FlutterPluginRegistry.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/android/AndroidTouchProcessor.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/android/DrawableSplashScreen.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/android/ExclusiveAppComponent.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/android/FlutterActivity.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/android/FlutterActivityAndFragmentDelegate.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/android/FlutterActivityLaunchConfigs.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/android/FlutterEngineConfigurator.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/android/FlutterEngineProvider.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/android/FlutterFragment.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/android/FlutterFragmentActivity.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/android/FlutterImageView.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/android/FlutterPlayStoreSplitApplication.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/android/FlutterSplashView.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/android/FlutterSurfaceView.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/android/FlutterTextureView.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/android/FlutterView.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/android/KeyChannelResponder.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/android/KeyData.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/android/KeyEmbedderResponder.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/android/KeyboardManager.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/android/KeyboardMap.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/android/MotionEventTracker.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/android/RenderMode.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/android/SplashScreen.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/android/SplashScreenProvider.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/android/TransparencyMode.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/android/WindowInfoRepositoryCallbackAdapterWrapper.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/FlutterEngine.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/FlutterEngineCache.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/FlutterEngineConnectionRegistry.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/FlutterEngineGroup.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/FlutterJNI.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/FlutterOverlaySurface.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/FlutterShellArgs.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/dart/DartExecutor.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/dart/DartMessenger.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/dart/PlatformMessageHandler.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/dart/PlatformTaskQueue.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/deferredcomponents/DeferredComponentManager.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/deferredcomponents/PlayStoreDeferredComponentManager.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/loader/ApplicationInfoLoader.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/loader/FlutterApplicationInfo.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/loader/FlutterLoader.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/loader/ResourceExtractor.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/mutatorsstack/FlutterMutatorView.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/mutatorsstack/FlutterMutatorsStack.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/plugins/FlutterPlugin.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/plugins/PluginRegistry.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/plugins/activity/ActivityAware.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/plugins/activity/ActivityControlSurface.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/plugins/activity/ActivityPluginBinding.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/plugins/broadcastreceiver/BroadcastReceiverAware.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/plugins/broadcastreceiver/BroadcastReceiverControlSurface.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/plugins/broadcastreceiver/BroadcastReceiverPluginBinding.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/plugins/contentprovider/ContentProviderAware.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/plugins/contentprovider/ContentProviderControlSurface.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/plugins/contentprovider/ContentProviderPluginBinding.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/plugins/lifecycle/HiddenLifecycleReference.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/plugins/service/ServiceAware.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/plugins/service/ServiceControlSurface.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/plugins/service/ServicePluginBinding.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/plugins/shim/ShimPluginRegistry.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/plugins/shim/ShimRegistrar.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/plugins/util/GeneratedPluginRegister.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/renderer/FlutterRenderer.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/renderer/FlutterUiDisplayListener.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/renderer/RenderSurface.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/renderer/SurfaceTextureWrapper.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/systemchannels/AccessibilityChannel.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/systemchannels/DeferredComponentChannel.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/systemchannels/KeyEventChannel.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/systemchannels/LifecycleChannel.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/systemchannels/LocalizationChannel.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/systemchannels/MouseCursorChannel.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/systemchannels/NavigationChannel.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/systemchannels/PlatformChannel.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/systemchannels/PlatformViewsChannel.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/systemchannels/RestorationChannel.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/systemchannels/SettingsChannel.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/systemchannels/SpellCheckChannel.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/systemchannels/SystemChannel.java -FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/systemchannels/TextInputChannel.java -FILE: ../../../flutter/shell/platform/android/io/flutter/plugin/common/ActivityLifecycleListener.java -FILE: ../../../flutter/shell/platform/android/io/flutter/plugin/common/BasicMessageChannel.java -FILE: ../../../flutter/shell/platform/android/io/flutter/plugin/common/BinaryCodec.java -FILE: ../../../flutter/shell/platform/android/io/flutter/plugin/common/BinaryMessenger.java -FILE: ../../../flutter/shell/platform/android/io/flutter/plugin/common/ErrorLogResult.java -FILE: ../../../flutter/shell/platform/android/io/flutter/plugin/common/EventChannel.java -FILE: ../../../flutter/shell/platform/android/io/flutter/plugin/common/FlutterException.java -FILE: ../../../flutter/shell/platform/android/io/flutter/plugin/common/JSONMessageCodec.java -FILE: ../../../flutter/shell/platform/android/io/flutter/plugin/common/JSONMethodCodec.java -FILE: ../../../flutter/shell/platform/android/io/flutter/plugin/common/JSONUtil.java -FILE: ../../../flutter/shell/platform/android/io/flutter/plugin/common/MessageCodec.java -FILE: ../../../flutter/shell/platform/android/io/flutter/plugin/common/MethodCall.java -FILE: ../../../flutter/shell/platform/android/io/flutter/plugin/common/MethodChannel.java -FILE: ../../../flutter/shell/platform/android/io/flutter/plugin/common/MethodCodec.java -FILE: ../../../flutter/shell/platform/android/io/flutter/plugin/common/PluginRegistry.java -FILE: ../../../flutter/shell/platform/android/io/flutter/plugin/common/StandardMessageCodec.java -FILE: ../../../flutter/shell/platform/android/io/flutter/plugin/common/StandardMethodCodec.java -FILE: ../../../flutter/shell/platform/android/io/flutter/plugin/common/StringCodec.java -FILE: ../../../flutter/shell/platform/android/io/flutter/plugin/editing/FlutterTextUtils.java -FILE: ../../../flutter/shell/platform/android/io/flutter/plugin/editing/ImeSyncDeferringInsetsCallback.java -FILE: ../../../flutter/shell/platform/android/io/flutter/plugin/editing/InputConnectionAdaptor.java -FILE: ../../../flutter/shell/platform/android/io/flutter/plugin/editing/ListenableEditingState.java -FILE: ../../../flutter/shell/platform/android/io/flutter/plugin/editing/SpellCheckPlugin.java -FILE: ../../../flutter/shell/platform/android/io/flutter/plugin/editing/TextEditingDelta.java -FILE: ../../../flutter/shell/platform/android/io/flutter/plugin/editing/TextInputPlugin.java -FILE: ../../../flutter/shell/platform/android/io/flutter/plugin/localization/LocalizationPlugin.java -FILE: ../../../flutter/shell/platform/android/io/flutter/plugin/mouse/MouseCursorPlugin.java -FILE: ../../../flutter/shell/platform/android/io/flutter/plugin/platform/AccessibilityEventsDelegate.java -FILE: ../../../flutter/shell/platform/android/io/flutter/plugin/platform/PlatformPlugin.java -FILE: ../../../flutter/shell/platform/android/io/flutter/plugin/platform/PlatformView.java -FILE: ../../../flutter/shell/platform/android/io/flutter/plugin/platform/PlatformViewFactory.java -FILE: ../../../flutter/shell/platform/android/io/flutter/plugin/platform/PlatformViewRegistry.java -FILE: ../../../flutter/shell/platform/android/io/flutter/plugin/platform/PlatformViewRegistryImpl.java -FILE: ../../../flutter/shell/platform/android/io/flutter/plugin/platform/PlatformViewWrapper.java -FILE: ../../../flutter/shell/platform/android/io/flutter/plugin/platform/PlatformViewsAccessibilityDelegate.java -FILE: ../../../flutter/shell/platform/android/io/flutter/plugin/platform/PlatformViewsController.java -FILE: ../../../flutter/shell/platform/android/io/flutter/plugin/platform/SingleViewPresentation.java -FILE: ../../../flutter/shell/platform/android/io/flutter/plugin/platform/VirtualDisplayController.java -FILE: ../../../flutter/shell/platform/android/io/flutter/util/HandlerCompat.java -FILE: ../../../flutter/shell/platform/android/io/flutter/util/PathUtils.java -FILE: ../../../flutter/shell/platform/android/io/flutter/util/Preconditions.java -FILE: ../../../flutter/shell/platform/android/io/flutter/util/Predicate.java -FILE: ../../../flutter/shell/platform/android/io/flutter/util/TraceSection.java -FILE: ../../../flutter/shell/platform/android/io/flutter/util/ViewUtils.java -FILE: ../../../flutter/shell/platform/android/io/flutter/view/AccessibilityBridge.java -FILE: ../../../flutter/shell/platform/android/io/flutter/view/AccessibilityViewEmbedder.java -FILE: ../../../flutter/shell/platform/android/io/flutter/view/FlutterCallbackInformation.java -FILE: ../../../flutter/shell/platform/android/io/flutter/view/FlutterMain.java -FILE: ../../../flutter/shell/platform/android/io/flutter/view/FlutterNativeView.java -FILE: ../../../flutter/shell/platform/android/io/flutter/view/FlutterRunArguments.java -FILE: ../../../flutter/shell/platform/android/io/flutter/view/FlutterView.java -FILE: ../../../flutter/shell/platform/android/io/flutter/view/TextureRegistry.java -FILE: ../../../flutter/shell/platform/android/io/flutter/view/VsyncWaiter.java -FILE: ../../../flutter/shell/platform/android/jni/jni_mock.h -FILE: ../../../flutter/shell/platform/android/jni/jni_mock_unittest.cc -FILE: ../../../flutter/shell/platform/android/jni/platform_view_android_jni.cc -FILE: ../../../flutter/shell/platform/android/jni/platform_view_android_jni.h -FILE: ../../../flutter/shell/platform/android/library_loader.cc -FILE: ../../../flutter/shell/platform/android/platform_message_handler_android.cc -FILE: ../../../flutter/shell/platform/android/platform_message_handler_android.h -FILE: ../../../flutter/shell/platform/android/platform_message_response_android.cc -FILE: ../../../flutter/shell/platform/android/platform_message_response_android.h -FILE: ../../../flutter/shell/platform/android/platform_view_android.cc -FILE: ../../../flutter/shell/platform/android/platform_view_android.h -FILE: ../../../flutter/shell/platform/android/platform_view_android_delegate/platform_view_android_delegate.cc -FILE: ../../../flutter/shell/platform/android/platform_view_android_delegate/platform_view_android_delegate.h -FILE: ../../../flutter/shell/platform/android/platform_view_android_delegate/platform_view_android_delegate_unittests.cc -FILE: ../../../flutter/shell/platform/android/platform_view_android_jni_impl.cc -FILE: ../../../flutter/shell/platform/android/platform_view_android_jni_impl.h -FILE: ../../../flutter/shell/platform/android/surface/android_native_window.cc -FILE: ../../../flutter/shell/platform/android/surface/android_native_window.h -FILE: ../../../flutter/shell/platform/android/surface/android_surface.cc -FILE: ../../../flutter/shell/platform/android/surface/android_surface.h -FILE: ../../../flutter/shell/platform/android/surface/android_surface_mock.cc -FILE: ../../../flutter/shell/platform/android/surface/android_surface_mock.h -FILE: ../../../flutter/shell/platform/android/surface/snapshot_surface_producer.cc -FILE: ../../../flutter/shell/platform/android/surface/snapshot_surface_producer.h -FILE: ../../../flutter/shell/platform/android/vsync_waiter_android.cc -FILE: ../../../flutter/shell/platform/android/vsync_waiter_android.h -FILE: ../../../flutter/shell/platform/common/accessibility_bridge.cc -FILE: ../../../flutter/shell/platform/common/accessibility_bridge.h -FILE: ../../../flutter/shell/platform/common/accessibility_bridge_unittests.cc -FILE: ../../../flutter/shell/platform/common/client_wrapper/basic_message_channel_unittests.cc -FILE: ../../../flutter/shell/platform/common/client_wrapper/binary_messenger_impl.h -FILE: ../../../flutter/shell/platform/common/client_wrapper/byte_buffer_streams.h -FILE: ../../../flutter/shell/platform/common/client_wrapper/core_implementations.cc -FILE: ../../../flutter/shell/platform/common/client_wrapper/encodable_value_unittests.cc -FILE: ../../../flutter/shell/platform/common/client_wrapper/engine_method_result.cc -FILE: ../../../flutter/shell/platform/common/client_wrapper/event_channel_unittests.cc -FILE: ../../../flutter/shell/platform/common/client_wrapper/include/flutter/basic_message_channel.h -FILE: ../../../flutter/shell/platform/common/client_wrapper/include/flutter/binary_messenger.h -FILE: ../../../flutter/shell/platform/common/client_wrapper/include/flutter/byte_streams.h -FILE: ../../../flutter/shell/platform/common/client_wrapper/include/flutter/encodable_value.h -FILE: ../../../flutter/shell/platform/common/client_wrapper/include/flutter/engine_method_result.h -FILE: ../../../flutter/shell/platform/common/client_wrapper/include/flutter/event_channel.h -FILE: ../../../flutter/shell/platform/common/client_wrapper/include/flutter/event_sink.h -FILE: ../../../flutter/shell/platform/common/client_wrapper/include/flutter/event_stream_handler.h -FILE: ../../../flutter/shell/platform/common/client_wrapper/include/flutter/event_stream_handler_functions.h -FILE: ../../../flutter/shell/platform/common/client_wrapper/include/flutter/message_codec.h -FILE: ../../../flutter/shell/platform/common/client_wrapper/include/flutter/method_call.h -FILE: ../../../flutter/shell/platform/common/client_wrapper/include/flutter/method_channel.h -FILE: ../../../flutter/shell/platform/common/client_wrapper/include/flutter/method_codec.h -FILE: ../../../flutter/shell/platform/common/client_wrapper/include/flutter/method_result.h -FILE: ../../../flutter/shell/platform/common/client_wrapper/include/flutter/method_result_functions.h -FILE: ../../../flutter/shell/platform/common/client_wrapper/include/flutter/plugin_registrar.h -FILE: ../../../flutter/shell/platform/common/client_wrapper/include/flutter/plugin_registry.h -FILE: ../../../flutter/shell/platform/common/client_wrapper/include/flutter/standard_codec_serializer.h -FILE: ../../../flutter/shell/platform/common/client_wrapper/include/flutter/standard_message_codec.h -FILE: ../../../flutter/shell/platform/common/client_wrapper/include/flutter/standard_method_codec.h -FILE: ../../../flutter/shell/platform/common/client_wrapper/include/flutter/texture_registrar.h -FILE: ../../../flutter/shell/platform/common/client_wrapper/method_call_unittests.cc -FILE: ../../../flutter/shell/platform/common/client_wrapper/method_channel_unittests.cc -FILE: ../../../flutter/shell/platform/common/client_wrapper/method_result_functions_unittests.cc -FILE: ../../../flutter/shell/platform/common/client_wrapper/plugin_registrar.cc -FILE: ../../../flutter/shell/platform/common/client_wrapper/plugin_registrar_unittests.cc -FILE: ../../../flutter/shell/platform/common/client_wrapper/standard_codec.cc -FILE: ../../../flutter/shell/platform/common/client_wrapper/standard_message_codec_unittests.cc -FILE: ../../../flutter/shell/platform/common/client_wrapper/standard_method_codec_unittests.cc -FILE: ../../../flutter/shell/platform/common/client_wrapper/texture_registrar_impl.h -FILE: ../../../flutter/shell/platform/common/client_wrapper/texture_registrar_unittests.cc -FILE: ../../../flutter/shell/platform/common/engine_switches.cc -FILE: ../../../flutter/shell/platform/common/engine_switches.h -FILE: ../../../flutter/shell/platform/common/engine_switches_unittests.cc -FILE: ../../../flutter/shell/platform/common/flutter_platform_node_delegate.cc -FILE: ../../../flutter/shell/platform/common/flutter_platform_node_delegate.h -FILE: ../../../flutter/shell/platform/common/flutter_platform_node_delegate_unittests.cc -FILE: ../../../flutter/shell/platform/common/geometry.h -FILE: ../../../flutter/shell/platform/common/geometry_unittests.cc -FILE: ../../../flutter/shell/platform/common/incoming_message_dispatcher.cc -FILE: ../../../flutter/shell/platform/common/incoming_message_dispatcher.h -FILE: ../../../flutter/shell/platform/common/incoming_message_dispatcher_unittests.cc -FILE: ../../../flutter/shell/platform/common/json_message_codec.cc -FILE: ../../../flutter/shell/platform/common/json_message_codec.h -FILE: ../../../flutter/shell/platform/common/json_message_codec_unittests.cc -FILE: ../../../flutter/shell/platform/common/json_method_codec.cc -FILE: ../../../flutter/shell/platform/common/json_method_codec.h -FILE: ../../../flutter/shell/platform/common/json_method_codec_unittests.cc -FILE: ../../../flutter/shell/platform/common/path_utils.cc -FILE: ../../../flutter/shell/platform/common/path_utils.h -FILE: ../../../flutter/shell/platform/common/path_utils_unittests.cc -FILE: ../../../flutter/shell/platform/common/platform_provided_menu.h -FILE: ../../../flutter/shell/platform/common/public/flutter_export.h -FILE: ../../../flutter/shell/platform/common/public/flutter_macros.h -FILE: ../../../flutter/shell/platform/common/public/flutter_messenger.h -FILE: ../../../flutter/shell/platform/common/public/flutter_plugin_registrar.h -FILE: ../../../flutter/shell/platform/common/public/flutter_texture_registrar.h -FILE: ../../../flutter/shell/platform/common/test_accessibility_bridge.cc -FILE: ../../../flutter/shell/platform/common/test_accessibility_bridge.h -FILE: ../../../flutter/shell/platform/common/text_editing_delta.cc -FILE: ../../../flutter/shell/platform/common/text_editing_delta.h -FILE: ../../../flutter/shell/platform/common/text_editing_delta_unittests.cc -FILE: ../../../flutter/shell/platform/common/text_input_model.cc -FILE: ../../../flutter/shell/platform/common/text_input_model.h -FILE: ../../../flutter/shell/platform/common/text_input_model_unittests.cc -FILE: ../../../flutter/shell/platform/common/text_range.h -FILE: ../../../flutter/shell/platform/common/text_range_unittests.cc -FILE: ../../../flutter/shell/platform/darwin/common/buffer_conversions.h -FILE: ../../../flutter/shell/platform/darwin/common/buffer_conversions.mm -FILE: ../../../flutter/shell/platform/darwin/common/command_line.h -FILE: ../../../flutter/shell/platform/darwin/common/command_line.mm -FILE: ../../../flutter/shell/platform/darwin/common/framework/Headers/FlutterBinaryMessenger.h -FILE: ../../../flutter/shell/platform/darwin/common/framework/Headers/FlutterChannels.h -FILE: ../../../flutter/shell/platform/darwin/common/framework/Headers/FlutterCodecs.h -FILE: ../../../flutter/shell/platform/darwin/common/framework/Headers/FlutterMacros.h -FILE: ../../../flutter/shell/platform/darwin/common/framework/Headers/FlutterTexture.h -FILE: ../../../flutter/shell/platform/darwin/common/framework/Source/FlutterChannels.mm -FILE: ../../../flutter/shell/platform/darwin/common/framework/Source/FlutterChannelsTest.m -FILE: ../../../flutter/shell/platform/darwin/common/framework/Source/FlutterCodecs.mm -FILE: ../../../flutter/shell/platform/darwin/common/framework/Source/FlutterStandardCodec.mm -FILE: ../../../flutter/shell/platform/darwin/common/framework/Source/FlutterStandardCodec_Internal.h -FILE: ../../../flutter/shell/platform/darwin/common/framework/Source/flutter_codecs_unittest.mm -FILE: ../../../flutter/shell/platform/darwin/common/framework/Source/flutter_standard_codec_unittest.mm -FILE: ../../../flutter/shell/platform/darwin/graphics/FlutterDarwinContextMetal.h -FILE: ../../../flutter/shell/platform/darwin/graphics/FlutterDarwinContextMetal.mm -FILE: ../../../flutter/shell/platform/darwin/graphics/FlutterDarwinExternalTextureMetal.h -FILE: ../../../flutter/shell/platform/darwin/graphics/FlutterDarwinExternalTextureMetal.mm -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Headers/Flutter.h -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Headers/FlutterAppDelegate.h -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Headers/FlutterCallbackCache.h -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Headers/FlutterDartProject.h -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Headers/FlutterEngine.h -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Headers/FlutterEngineGroup.h -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Headers/FlutterHeadlessDartRunner.h -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Headers/FlutterPlatformViews.h -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Headers/FlutterPlugin.h -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Headers/FlutterPluginAppLifeCycleDelegate.h -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Headers/FlutterViewController.h -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Info.plist -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterAppDelegate.mm -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterAppDelegateTest.mm -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterAppDelegate_Test.h -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterBinaryMessengerRelay.h -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterBinaryMessengerRelay.mm -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterBinaryMessengerRelayTest.mm -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterCallbackCache.mm -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterCallbackCache_Internal.h -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterChannelKeyResponder.h -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterChannelKeyResponder.mm -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterChannelKeyResponderTest.mm -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterDartProject.mm -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterDartProjectTest.mm -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterDartProject_Internal.h -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterEmbedderKeyResponder.h -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterEmbedderKeyResponder.mm -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterEmbedderKeyResponderTest.mm -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterEngine.mm -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterEngineGroup.mm -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterEngineGroupTest.mm -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterEnginePlatformViewTest.mm -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterEngineTest.mm -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterEngineTest_mrc.mm -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterEngine_Internal.h -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterEngine_Test.h -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterFakeKeyEvents.h -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterFakeKeyEvents.mm -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterHeadlessDartRunner.mm -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterIndirectScribbleDelegate.h -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterKeyPrimaryResponder.h -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterKeySecondaryResponder.h -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterKeyboardManager.h -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterKeyboardManager.mm -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterKeyboardManagerTest.mm -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterObservatoryPublisher.h -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterObservatoryPublisher.mm -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterOverlayView.h -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterOverlayView.mm -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterPlatformPlugin.h -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterPlatformPlugin.mm -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterPlatformPluginTest.mm -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterPlatformViews.mm -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterPlatformViewsTest.mm -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterPlatformViews_Internal.h -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterPlatformViews_Internal.mm -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterPluginAppLifeCycleDelegate.mm -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterPluginAppLifeCycleDelegateTest.mm -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterPluginAppLifeCycleDelegate_internal.h -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterRestorationPlugin.h -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterRestorationPlugin.mm -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterRestorationPluginTest.mm -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterSemanticsScrollView.h -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterSemanticsScrollView.mm -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterSpellCheckPlugin.h -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterSpellCheckPlugin.mm -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterSpellCheckPluginTest.mm -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterTextInputDelegate.h -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterTextInputPlugin.h -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterTextInputPlugin.mm -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterTextInputPluginTest.mm -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterUIPressProxy.h -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterUIPressProxy.mm -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterUmbrellaImport.m -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterUndoManagerDelegate.h -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterUndoManagerPlugin.h -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterUndoManagerPlugin.mm -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterUndoManagerPluginTest.mm -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterView.h -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterView.mm -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterViewController.mm -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterViewControllerTest.mm -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterViewControllerTest_mrc.mm -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterViewController_Internal.h -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterViewResponder.h -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterViewTest.mm -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/IOKit.h -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/KeyCodeMap.g.mm -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/KeyCodeMap_Internal.h -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/SemanticsObject.h -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/SemanticsObject.mm -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/SemanticsObjectTest.mm -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/VsyncWaiterIosTest.mm -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/accessibility_bridge.h -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/accessibility_bridge.mm -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/accessibility_bridge_ios.h -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/accessibility_bridge_test.mm -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/accessibility_text_entry.h -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/accessibility_text_entry.mm -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/connection_collection.h -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/connection_collection.mm -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/connection_collection_test.mm -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/platform_message_response_darwin.h -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/platform_message_response_darwin.mm -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/profiler_metrics_ios.h -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/profiler_metrics_ios.mm -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/vsync_waiter_ios.h -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/vsync_waiter_ios.mm -FILE: ../../../flutter/shell/platform/darwin/ios/framework/module.modulemap -FILE: ../../../flutter/shell/platform/darwin/ios/ios_context.h -FILE: ../../../flutter/shell/platform/darwin/ios/ios_context.mm -FILE: ../../../flutter/shell/platform/darwin/ios/ios_context_metal_impeller.h -FILE: ../../../flutter/shell/platform/darwin/ios/ios_context_metal_impeller.mm -FILE: ../../../flutter/shell/platform/darwin/ios/ios_context_metal_skia.h -FILE: ../../../flutter/shell/platform/darwin/ios/ios_context_metal_skia.mm -FILE: ../../../flutter/shell/platform/darwin/ios/ios_context_software.h -FILE: ../../../flutter/shell/platform/darwin/ios/ios_context_software.mm -FILE: ../../../flutter/shell/platform/darwin/ios/ios_external_texture_metal.h -FILE: ../../../flutter/shell/platform/darwin/ios/ios_external_texture_metal.mm -FILE: ../../../flutter/shell/platform/darwin/ios/ios_external_view_embedder.h -FILE: ../../../flutter/shell/platform/darwin/ios/ios_external_view_embedder.mm -FILE: ../../../flutter/shell/platform/darwin/ios/ios_surface.h -FILE: ../../../flutter/shell/platform/darwin/ios/ios_surface.mm -FILE: ../../../flutter/shell/platform/darwin/ios/ios_surface_metal_impeller.h -FILE: ../../../flutter/shell/platform/darwin/ios/ios_surface_metal_impeller.mm -FILE: ../../../flutter/shell/platform/darwin/ios/ios_surface_metal_skia.h -FILE: ../../../flutter/shell/platform/darwin/ios/ios_surface_metal_skia.mm -FILE: ../../../flutter/shell/platform/darwin/ios/ios_surface_software.h -FILE: ../../../flutter/shell/platform/darwin/ios/ios_surface_software.mm -FILE: ../../../flutter/shell/platform/darwin/ios/platform_message_handler_ios.h -FILE: ../../../flutter/shell/platform/darwin/ios/platform_message_handler_ios.mm -FILE: ../../../flutter/shell/platform/darwin/ios/platform_message_handler_ios_test.mm -FILE: ../../../flutter/shell/platform/darwin/ios/platform_view_ios.h -FILE: ../../../flutter/shell/platform/darwin/ios/platform_view_ios.mm -FILE: ../../../flutter/shell/platform/darwin/ios/rendering_api_selection.h -FILE: ../../../flutter/shell/platform/darwin/ios/rendering_api_selection.mm -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Headers/FlutterAppDelegate.h -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Headers/FlutterDartProject.h -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Headers/FlutterEngine.h -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Headers/FlutterMacOS.h -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Headers/FlutterPlatformViews.h -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Headers/FlutterPluginMacOS.h -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Headers/FlutterPluginRegistrarMacOS.h -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Headers/FlutterViewController.h -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Info.plist -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/AccessibilityBridgeMacDelegate.h -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/AccessibilityBridgeMacDelegate.mm -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/AccessibilityBridgeMacDelegateTest.mm -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterAppDelegate.mm -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterBackingStore.h -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterBackingStore.mm -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterBackingStoreData.h -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterBackingStoreData.mm -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterChannelKeyResponder.h -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterChannelKeyResponder.mm -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterChannelKeyResponderUnittests.mm -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterCompositor.h -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterCompositor.mm -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterDartProject.mm -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterDartProject_Internal.h -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterEmbedderExternalTextureUnittests.mm -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterEmbedderKeyResponder.h -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterEmbedderKeyResponder.mm -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterEmbedderKeyResponderUnittests.mm -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterEngine.mm -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterEngineTest.mm -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterEngineTestUtils.h -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterEngineTestUtils.mm -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterEngine_Internal.h -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterExternalTextureGL.h -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterExternalTextureGL.mm -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterExternalTextureMetal.h -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterExternalTextureMetal.mm -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterFrameBufferProvider.h -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterFrameBufferProvider.mm -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterFrameBufferProviderUnittests.mm -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterGLCompositor.h -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterGLCompositor.mm -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterGLCompositorUnittests.mm -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterIOSurfaceHolder.h -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterIOSurfaceHolder.mm -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterKeyPrimaryResponder.h -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterKeyboardManager.h -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterKeyboardManager.mm -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterKeyboardManagerUnittests.mm -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterKeyboardViewDelegate.h -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterMacOSExternalTexture.h -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterMenuPlugin.h -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterMenuPlugin.mm -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterMenuPluginTest.mm -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterMenuPlugin_Internal.h -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterMetalCompositor.h -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterMetalCompositor.mm -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterMetalCompositorUnittests.mm -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterMetalRenderer.h -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterMetalRenderer.mm -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterMetalRendererTest.mm -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterMetalSurfaceManagerTest.mm -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterMouseCursorPlugin.h -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterMouseCursorPlugin.mm -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterOpenGLRenderer.h -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterOpenGLRenderer.mm -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterOpenGLRendererTest.mm -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterPlatformNodeDelegateMac.h -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterPlatformNodeDelegateMac.mm -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterPlatformNodeDelegateMacTest.mm -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterPlatformViewController.h -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterPlatformViewController.mm -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterPlatformViewControllerTest.mm -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterRenderer.h -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterRenderingBackend.h -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterRenderingBackend.mm -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterResizableBackingStoreProvider.h -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterResizableBackingStoreProvider.mm -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterResizeSynchronizer.h -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterResizeSynchronizer.mm -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterSurfaceManager.h -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterSurfaceManager.mm -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterTextInputPlugin.h -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterTextInputPlugin.mm -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterTextInputPluginTest.mm -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterTextInputSemanticsObject.h -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterTextInputSemanticsObject.mm -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterTextInputSemanticsObjectTest.mm -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterTextureRegistrar.h -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterTextureRegistrar.mm -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterView.h -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterView.mm -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterViewController.mm -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterViewControllerTest.mm -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterViewControllerTestUtils.h -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterViewControllerTestUtils.mm -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterViewController_Internal.h -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/KeyCodeMap.g.mm -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/KeyCodeMap_Internal.h -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/MacOSGLContextSwitch.h -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/MacOSGLContextSwitch.mm -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/TestFlutterPlatformView.h -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/TestFlutterPlatformView.mm -FILE: ../../../flutter/shell/platform/darwin/macos/framework/module.modulemap -FILE: ../../../flutter/shell/platform/embedder/assets/EmbedderInfo.plist -FILE: ../../../flutter/shell/platform/embedder/assets/embedder.modulemap -FILE: ../../../flutter/shell/platform/embedder/embedder.cc -FILE: ../../../flutter/shell/platform/embedder/embedder.h -FILE: ../../../flutter/shell/platform/embedder/embedder_engine.cc -FILE: ../../../flutter/shell/platform/embedder/embedder_engine.h -FILE: ../../../flutter/shell/platform/embedder/embedder_exports.lst -FILE: ../../../flutter/shell/platform/embedder/embedder_external_texture_gl.cc -FILE: ../../../flutter/shell/platform/embedder/embedder_external_texture_gl.h -FILE: ../../../flutter/shell/platform/embedder/embedder_external_texture_metal.h -FILE: ../../../flutter/shell/platform/embedder/embedder_external_texture_metal.mm -FILE: ../../../flutter/shell/platform/embedder/embedder_external_texture_resolver.cc -FILE: ../../../flutter/shell/platform/embedder/embedder_external_texture_resolver.h -FILE: ../../../flutter/shell/platform/embedder/embedder_external_view.cc -FILE: ../../../flutter/shell/platform/embedder/embedder_external_view.h -FILE: ../../../flutter/shell/platform/embedder/embedder_external_view_embedder.cc -FILE: ../../../flutter/shell/platform/embedder/embedder_external_view_embedder.h -FILE: ../../../flutter/shell/platform/embedder/embedder_include.c -FILE: ../../../flutter/shell/platform/embedder/embedder_include2.c -FILE: ../../../flutter/shell/platform/embedder/embedder_layers.cc -FILE: ../../../flutter/shell/platform/embedder/embedder_layers.h -FILE: ../../../flutter/shell/platform/embedder/embedder_platform_message_response.cc -FILE: ../../../flutter/shell/platform/embedder/embedder_platform_message_response.h -FILE: ../../../flutter/shell/platform/embedder/embedder_render_target.cc -FILE: ../../../flutter/shell/platform/embedder/embedder_render_target.h -FILE: ../../../flutter/shell/platform/embedder/embedder_render_target_cache.cc -FILE: ../../../flutter/shell/platform/embedder/embedder_render_target_cache.h -FILE: ../../../flutter/shell/platform/embedder/embedder_struct_macros.h -FILE: ../../../flutter/shell/platform/embedder/embedder_surface.cc -FILE: ../../../flutter/shell/platform/embedder/embedder_surface.h -FILE: ../../../flutter/shell/platform/embedder/embedder_surface_gl.cc -FILE: ../../../flutter/shell/platform/embedder/embedder_surface_gl.h -FILE: ../../../flutter/shell/platform/embedder/embedder_surface_metal.h -FILE: ../../../flutter/shell/platform/embedder/embedder_surface_metal.mm -FILE: ../../../flutter/shell/platform/embedder/embedder_surface_software.cc -FILE: ../../../flutter/shell/platform/embedder/embedder_surface_software.h -FILE: ../../../flutter/shell/platform/embedder/embedder_surface_vulkan.cc -FILE: ../../../flutter/shell/platform/embedder/embedder_surface_vulkan.h -FILE: ../../../flutter/shell/platform/embedder/embedder_task_runner.cc -FILE: ../../../flutter/shell/platform/embedder/embedder_task_runner.h -FILE: ../../../flutter/shell/platform/embedder/embedder_thread_host.cc -FILE: ../../../flutter/shell/platform/embedder/embedder_thread_host.h -FILE: ../../../flutter/shell/platform/embedder/pixel_formats.cc -FILE: ../../../flutter/shell/platform/embedder/pixel_formats.h -FILE: ../../../flutter/shell/platform/embedder/platform_view_embedder.cc -FILE: ../../../flutter/shell/platform/embedder/platform_view_embedder.h -FILE: ../../../flutter/shell/platform/embedder/platform_view_embedder_unittests.cc -FILE: ../../../flutter/shell/platform/embedder/test_utils/key_codes.g.h -FILE: ../../../flutter/shell/platform/embedder/test_utils/proc_table_replacement.h -FILE: ../../../flutter/shell/platform/embedder/vsync_waiter_embedder.cc -FILE: ../../../flutter/shell/platform/embedder/vsync_waiter_embedder.h -FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/fuchsia/lib/fuchsia.dart -FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/fuchsia/sdk_ext/fuchsia.cc -FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/fuchsia/sdk_ext/fuchsia.h -FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/zircon/lib/src/handle.dart -FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/zircon/lib/src/handle_disposition.dart -FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/zircon/lib/src/handle_waiter.dart -FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/zircon/lib/src/init.dart -FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/zircon/lib/src/system.dart -FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/zircon/lib/src/zd_channel.dart -FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/zircon/lib/src/zd_handle.dart -FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/zircon/lib/zircon.dart -FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/zircon/sdk_ext/handle.cc -FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/zircon/sdk_ext/handle.h -FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/zircon/sdk_ext/handle_disposition.cc -FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/zircon/sdk_ext/handle_disposition.h -FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/zircon/sdk_ext/handle_waiter.cc -FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/zircon/sdk_ext/handle_waiter.h -FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/zircon/sdk_ext/natives.cc -FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/zircon/sdk_ext/natives.h -FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/zircon/sdk_ext/system.cc -FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/zircon/sdk_ext/system.h -FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/zircon_ffi/basic_types.cc -FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/zircon_ffi/basic_types.h -FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/zircon_ffi/channel.cc -FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/zircon_ffi/channel.h -FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/zircon_ffi/clock.cc -FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/zircon_ffi/clock.h -FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/zircon_ffi/dart_dl.cc -FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/zircon_ffi/dart_dl.h -FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/zircon_ffi/handle.cc -FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/zircon_ffi/handle.h -FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/zircon_ffi/lib/zircon_ffi.dart -FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/zircon_ffi/macros.h -FILE: ../../../flutter/shell/platform/fuchsia/dart/compiler.dart -FILE: ../../../flutter/shell/platform/fuchsia/dart_runner/builtin_libraries.cc -FILE: ../../../flutter/shell/platform/fuchsia/dart_runner/builtin_libraries.h -FILE: ../../../flutter/shell/platform/fuchsia/dart_runner/dart_component_controller.cc -FILE: ../../../flutter/shell/platform/fuchsia/dart_runner/dart_component_controller.h -FILE: ../../../flutter/shell/platform/fuchsia/dart_runner/dart_runner.cc -FILE: ../../../flutter/shell/platform/fuchsia/dart_runner/dart_runner.h -FILE: ../../../flutter/shell/platform/fuchsia/dart_runner/dart_test_component_controller.cc -FILE: ../../../flutter/shell/platform/fuchsia/dart_runner/dart_test_component_controller.h -FILE: ../../../flutter/shell/platform/fuchsia/dart_runner/embedder/builtin.dart -FILE: ../../../flutter/shell/platform/fuchsia/dart_runner/embedder/script_runner_snapshot.dart -FILE: ../../../flutter/shell/platform/fuchsia/dart_runner/embedder/shim.dart -FILE: ../../../flutter/shell/platform/fuchsia/dart_runner/embedder/snapshot.cc.tmpl -FILE: ../../../flutter/shell/platform/fuchsia/dart_runner/embedder/snapshot.dart -FILE: ../../../flutter/shell/platform/fuchsia/dart_runner/embedder/snapshot.h -FILE: ../../../flutter/shell/platform/fuchsia/dart_runner/kernel/libraries.json -FILE: ../../../flutter/shell/platform/fuchsia/dart_runner/logging.h -FILE: ../../../flutter/shell/platform/fuchsia/dart_runner/main.cc -FILE: ../../../flutter/shell/platform/fuchsia/dart_runner/meta/common.shard.cml -FILE: ../../../flutter/shell/platform/fuchsia/dart_runner/meta/dart_aot_product_runner.cml -FILE: ../../../flutter/shell/platform/fuchsia/dart_runner/meta/dart_aot_runner.cml -FILE: ../../../flutter/shell/platform/fuchsia/dart_runner/meta/dart_jit_product_runner.cml -FILE: ../../../flutter/shell/platform/fuchsia/dart_runner/meta/dart_jit_runner.cml -FILE: ../../../flutter/shell/platform/fuchsia/dart_runner/service_isolate.cc -FILE: ../../../flutter/shell/platform/fuchsia/dart_runner/service_isolate.h -FILE: ../../../flutter/shell/platform/fuchsia/dart_runner/vmservice/empty.dart -FILE: ../../../flutter/shell/platform/fuchsia/flutter/accessibility_bridge.cc -FILE: ../../../flutter/shell/platform/fuchsia/flutter/accessibility_bridge.h -FILE: ../../../flutter/shell/platform/fuchsia/flutter/accessibility_bridge_unittest.cc -FILE: ../../../flutter/shell/platform/fuchsia/flutter/component_v1.cc -FILE: ../../../flutter/shell/platform/fuchsia/flutter/component_v1.h -FILE: ../../../flutter/shell/platform/fuchsia/flutter/component_v1_unittest.cc -FILE: ../../../flutter/shell/platform/fuchsia/flutter/component_v2.cc -FILE: ../../../flutter/shell/platform/fuchsia/flutter/component_v2.h -FILE: ../../../flutter/shell/platform/fuchsia/flutter/component_v2_unittest.cc -FILE: ../../../flutter/shell/platform/fuchsia/flutter/engine.cc -FILE: ../../../flutter/shell/platform/fuchsia/flutter/engine.h -FILE: ../../../flutter/shell/platform/fuchsia/flutter/file_in_namespace_buffer.cc -FILE: ../../../flutter/shell/platform/fuchsia/flutter/file_in_namespace_buffer.h -FILE: ../../../flutter/shell/platform/fuchsia/flutter/flatland_connection.cc -FILE: ../../../flutter/shell/platform/fuchsia/flutter/flatland_connection.h -FILE: ../../../flutter/shell/platform/fuchsia/flutter/flatland_external_view_embedder.cc -FILE: ../../../flutter/shell/platform/fuchsia/flutter/flatland_external_view_embedder.h -FILE: ../../../flutter/shell/platform/fuchsia/flutter/flatland_platform_view.cc -FILE: ../../../flutter/shell/platform/fuchsia/flutter/flatland_platform_view.h -FILE: ../../../flutter/shell/platform/fuchsia/flutter/flutter_runner_fakes.h -FILE: ../../../flutter/shell/platform/fuchsia/flutter/flutter_runner_product_configuration.cc -FILE: ../../../flutter/shell/platform/fuchsia/flutter/flutter_runner_product_configuration.h -FILE: ../../../flutter/shell/platform/fuchsia/flutter/focus_delegate.cc -FILE: ../../../flutter/shell/platform/fuchsia/flutter/focus_delegate.h -FILE: ../../../flutter/shell/platform/fuchsia/flutter/focus_delegate_unittests.cc -FILE: ../../../flutter/shell/platform/fuchsia/flutter/fuchsia_intl.cc -FILE: ../../../flutter/shell/platform/fuchsia/flutter/fuchsia_intl.h -FILE: ../../../flutter/shell/platform/fuchsia/flutter/fuchsia_intl_unittest.cc -FILE: ../../../flutter/shell/platform/fuchsia/flutter/gfx_external_view_embedder.cc -FILE: ../../../flutter/shell/platform/fuchsia/flutter/gfx_external_view_embedder.h -FILE: ../../../flutter/shell/platform/fuchsia/flutter/gfx_platform_view.cc -FILE: ../../../flutter/shell/platform/fuchsia/flutter/gfx_platform_view.h -FILE: ../../../flutter/shell/platform/fuchsia/flutter/gfx_session_connection.cc -FILE: ../../../flutter/shell/platform/fuchsia/flutter/gfx_session_connection.h -FILE: ../../../flutter/shell/platform/fuchsia/flutter/isolate_configurator.cc -FILE: ../../../flutter/shell/platform/fuchsia/flutter/isolate_configurator.h -FILE: ../../../flutter/shell/platform/fuchsia/flutter/kernel/framework_shim.dart -FILE: ../../../flutter/shell/platform/fuchsia/flutter/kernel/libraries.json -FILE: ../../../flutter/shell/platform/fuchsia/flutter/keyboard.cc -FILE: ../../../flutter/shell/platform/fuchsia/flutter/keyboard.h -FILE: ../../../flutter/shell/platform/fuchsia/flutter/keyboard_unittest.cc -FILE: ../../../flutter/shell/platform/fuchsia/flutter/logging.h -FILE: ../../../flutter/shell/platform/fuchsia/flutter/main.cc -FILE: ../../../flutter/shell/platform/fuchsia/flutter/meta/aot_product_runtime -FILE: ../../../flutter/shell/platform/fuchsia/flutter/meta/aot_runtime -FILE: ../../../flutter/shell/platform/fuchsia/flutter/meta/common.shard.cml -FILE: ../../../flutter/shell/platform/fuchsia/flutter/meta/flutter_aot_product_runner.cml -FILE: ../../../flutter/shell/platform/fuchsia/flutter/meta/flutter_aot_product_runner.cmx -FILE: ../../../flutter/shell/platform/fuchsia/flutter/meta/flutter_aot_runner.cml -FILE: ../../../flutter/shell/platform/fuchsia/flutter/meta/flutter_aot_runner.cmx -FILE: ../../../flutter/shell/platform/fuchsia/flutter/meta/flutter_jit_product_runner.cml -FILE: ../../../flutter/shell/platform/fuchsia/flutter/meta/flutter_jit_product_runner.cmx -FILE: ../../../flutter/shell/platform/fuchsia/flutter/meta/flutter_jit_runner.cml -FILE: ../../../flutter/shell/platform/fuchsia/flutter/meta/flutter_jit_runner.cmx -FILE: ../../../flutter/shell/platform/fuchsia/flutter/meta/jit_product_runtime -FILE: ../../../flutter/shell/platform/fuchsia/flutter/meta/jit_runtime -FILE: ../../../flutter/shell/platform/fuchsia/flutter/platform_view.cc -FILE: ../../../flutter/shell/platform/fuchsia/flutter/platform_view.h -FILE: ../../../flutter/shell/platform/fuchsia/flutter/platform_view_unittest.cc -FILE: ../../../flutter/shell/platform/fuchsia/flutter/pointer_delegate.cc -FILE: ../../../flutter/shell/platform/fuchsia/flutter/pointer_delegate.h -FILE: ../../../flutter/shell/platform/fuchsia/flutter/pointer_delegate_unittests.cc -FILE: ../../../flutter/shell/platform/fuchsia/flutter/pointer_injector_delegate.cc -FILE: ../../../flutter/shell/platform/fuchsia/flutter/pointer_injector_delegate.h -FILE: ../../../flutter/shell/platform/fuchsia/flutter/pointer_injector_delegate_unittest.cc -FILE: ../../../flutter/shell/platform/fuchsia/flutter/program_metadata.h -FILE: ../../../flutter/shell/platform/fuchsia/flutter/runner.cc -FILE: ../../../flutter/shell/platform/fuchsia/flutter/runner.h -FILE: ../../../flutter/shell/platform/fuchsia/flutter/runner_tzdata_missing_unittest.cc -FILE: ../../../flutter/shell/platform/fuchsia/flutter/runner_tzdata_unittest.cc -FILE: ../../../flutter/shell/platform/fuchsia/flutter/software_surface.cc -FILE: ../../../flutter/shell/platform/fuchsia/flutter/software_surface.h -FILE: ../../../flutter/shell/platform/fuchsia/flutter/software_surface_producer.cc -FILE: ../../../flutter/shell/platform/fuchsia/flutter/software_surface_producer.h -FILE: ../../../flutter/shell/platform/fuchsia/flutter/surface.cc -FILE: ../../../flutter/shell/platform/fuchsia/flutter/surface.h -FILE: ../../../flutter/shell/platform/fuchsia/flutter/surface_producer.h -FILE: ../../../flutter/shell/platform/fuchsia/flutter/task_runner_adapter.cc -FILE: ../../../flutter/shell/platform/fuchsia/flutter/task_runner_adapter.h -FILE: ../../../flutter/shell/platform/fuchsia/flutter/text_delegate.cc -FILE: ../../../flutter/shell/platform/fuchsia/flutter/text_delegate.h -FILE: ../../../flutter/shell/platform/fuchsia/flutter/text_delegate_unittests.cc -FILE: ../../../flutter/shell/platform/fuchsia/flutter/unique_fdio_ns.h -FILE: ../../../flutter/shell/platform/fuchsia/flutter/vsync_waiter.cc -FILE: ../../../flutter/shell/platform/fuchsia/flutter/vsync_waiter.h -FILE: ../../../flutter/shell/platform/fuchsia/flutter/vsync_waiter_unittest.cc -FILE: ../../../flutter/shell/platform/fuchsia/flutter/vulkan_surface.cc -FILE: ../../../flutter/shell/platform/fuchsia/flutter/vulkan_surface.h -FILE: ../../../flutter/shell/platform/fuchsia/flutter/vulkan_surface_pool.cc -FILE: ../../../flutter/shell/platform/fuchsia/flutter/vulkan_surface_pool.h -FILE: ../../../flutter/shell/platform/fuchsia/flutter/vulkan_surface_producer.cc -FILE: ../../../flutter/shell/platform/fuchsia/flutter/vulkan_surface_producer.h -FILE: ../../../flutter/shell/platform/fuchsia/runtime/dart/profiler_symbols/dart_profiler_symbols.dart -FILE: ../../../flutter/shell/platform/fuchsia/runtime/dart/utils/build_info.h -FILE: ../../../flutter/shell/platform/fuchsia/runtime/dart/utils/build_info_in.cc -FILE: ../../../flutter/shell/platform/fuchsia/runtime/dart/utils/build_info_unittests.cc -FILE: ../../../flutter/shell/platform/fuchsia/runtime/dart/utils/files.cc -FILE: ../../../flutter/shell/platform/fuchsia/runtime/dart/utils/files.h -FILE: ../../../flutter/shell/platform/fuchsia/runtime/dart/utils/handle_exception.cc -FILE: ../../../flutter/shell/platform/fuchsia/runtime/dart/utils/handle_exception.h -FILE: ../../../flutter/shell/platform/fuchsia/runtime/dart/utils/inlines.h -FILE: ../../../flutter/shell/platform/fuchsia/runtime/dart/utils/logging.h -FILE: ../../../flutter/shell/platform/fuchsia/runtime/dart/utils/mapped_resource.cc -FILE: ../../../flutter/shell/platform/fuchsia/runtime/dart/utils/mapped_resource.h -FILE: ../../../flutter/shell/platform/fuchsia/runtime/dart/utils/root_inspect_node.cc -FILE: ../../../flutter/shell/platform/fuchsia/runtime/dart/utils/root_inspect_node.h -FILE: ../../../flutter/shell/platform/fuchsia/runtime/dart/utils/tempfs.cc -FILE: ../../../flutter/shell/platform/fuchsia/runtime/dart/utils/tempfs.h -FILE: ../../../flutter/shell/platform/fuchsia/runtime/dart/utils/vmo.cc -FILE: ../../../flutter/shell/platform/fuchsia/runtime/dart/utils/vmo.h -FILE: ../../../flutter/shell/platform/fuchsia/runtime/dart/utils/vmservice_object.cc -FILE: ../../../flutter/shell/platform/fuchsia/runtime/dart/utils/vmservice_object.h -FILE: ../../../flutter/shell/platform/glfw/client_wrapper/flutter_engine.cc -FILE: ../../../flutter/shell/platform/glfw/client_wrapper/flutter_engine_unittests.cc -FILE: ../../../flutter/shell/platform/glfw/client_wrapper/flutter_window_controller.cc -FILE: ../../../flutter/shell/platform/glfw/client_wrapper/flutter_window_controller_unittests.cc -FILE: ../../../flutter/shell/platform/glfw/client_wrapper/flutter_window_unittests.cc -FILE: ../../../flutter/shell/platform/glfw/client_wrapper/include/flutter/flutter_engine.h -FILE: ../../../flutter/shell/platform/glfw/client_wrapper/include/flutter/flutter_window.h -FILE: ../../../flutter/shell/platform/glfw/client_wrapper/include/flutter/flutter_window_controller.h -FILE: ../../../flutter/shell/platform/glfw/client_wrapper/include/flutter/plugin_registrar_glfw.h -FILE: ../../../flutter/shell/platform/glfw/client_wrapper/plugin_registrar_glfw_unittests.cc -FILE: ../../../flutter/shell/platform/glfw/event_loop.cc -FILE: ../../../flutter/shell/platform/glfw/event_loop.h -FILE: ../../../flutter/shell/platform/glfw/flutter_glfw.cc -FILE: ../../../flutter/shell/platform/glfw/glfw_event_loop.cc -FILE: ../../../flutter/shell/platform/glfw/glfw_event_loop.h -FILE: ../../../flutter/shell/platform/glfw/headless_event_loop.cc -FILE: ../../../flutter/shell/platform/glfw/headless_event_loop.h -FILE: ../../../flutter/shell/platform/glfw/key_event_handler.cc -FILE: ../../../flutter/shell/platform/glfw/key_event_handler.h -FILE: ../../../flutter/shell/platform/glfw/keyboard_hook_handler.h -FILE: ../../../flutter/shell/platform/glfw/platform_handler.cc -FILE: ../../../flutter/shell/platform/glfw/platform_handler.h -FILE: ../../../flutter/shell/platform/glfw/public/flutter_glfw.h -FILE: ../../../flutter/shell/platform/glfw/system_utils.cc -FILE: ../../../flutter/shell/platform/glfw/system_utils.h -FILE: ../../../flutter/shell/platform/glfw/system_utils_test.cc -FILE: ../../../flutter/shell/platform/glfw/text_input_plugin.cc -FILE: ../../../flutter/shell/platform/glfw/text_input_plugin.h -FILE: ../../../flutter/shell/platform/linux/fl_accessibility_plugin.cc -FILE: ../../../flutter/shell/platform/linux/fl_accessibility_plugin.h -FILE: ../../../flutter/shell/platform/linux/fl_accessible_node.cc -FILE: ../../../flutter/shell/platform/linux/fl_accessible_node.h -FILE: ../../../flutter/shell/platform/linux/fl_accessible_node_test.cc -FILE: ../../../flutter/shell/platform/linux/fl_accessible_text_field.cc -FILE: ../../../flutter/shell/platform/linux/fl_accessible_text_field.h -FILE: ../../../flutter/shell/platform/linux/fl_accessible_text_field_test.cc -FILE: ../../../flutter/shell/platform/linux/fl_backing_store_provider.cc -FILE: ../../../flutter/shell/platform/linux/fl_backing_store_provider.h -FILE: ../../../flutter/shell/platform/linux/fl_basic_message_channel.cc -FILE: ../../../flutter/shell/platform/linux/fl_basic_message_channel_test.cc -FILE: ../../../flutter/shell/platform/linux/fl_binary_codec.cc -FILE: ../../../flutter/shell/platform/linux/fl_binary_codec_test.cc -FILE: ../../../flutter/shell/platform/linux/fl_binary_messenger.cc -FILE: ../../../flutter/shell/platform/linux/fl_binary_messenger_private.h -FILE: ../../../flutter/shell/platform/linux/fl_binary_messenger_test.cc -FILE: ../../../flutter/shell/platform/linux/fl_dart_project.cc -FILE: ../../../flutter/shell/platform/linux/fl_dart_project_private.h -FILE: ../../../flutter/shell/platform/linux/fl_dart_project_test.cc -FILE: ../../../flutter/shell/platform/linux/fl_engine.cc -FILE: ../../../flutter/shell/platform/linux/fl_engine_private.h -FILE: ../../../flutter/shell/platform/linux/fl_engine_test.cc -FILE: ../../../flutter/shell/platform/linux/fl_event_channel.cc -FILE: ../../../flutter/shell/platform/linux/fl_event_channel_test.cc -FILE: ../../../flutter/shell/platform/linux/fl_gl_area.cc -FILE: ../../../flutter/shell/platform/linux/fl_gl_area.h -FILE: ../../../flutter/shell/platform/linux/fl_gnome_settings.cc -FILE: ../../../flutter/shell/platform/linux/fl_gnome_settings.h -FILE: ../../../flutter/shell/platform/linux/fl_gnome_settings_test.cc -FILE: ../../../flutter/shell/platform/linux/fl_json_message_codec.cc -FILE: ../../../flutter/shell/platform/linux/fl_json_message_codec_test.cc -FILE: ../../../flutter/shell/platform/linux/fl_json_method_codec.cc -FILE: ../../../flutter/shell/platform/linux/fl_json_method_codec_test.cc -FILE: ../../../flutter/shell/platform/linux/fl_key_channel_responder.cc -FILE: ../../../flutter/shell/platform/linux/fl_key_channel_responder.h -FILE: ../../../flutter/shell/platform/linux/fl_key_channel_responder_test.cc -FILE: ../../../flutter/shell/platform/linux/fl_key_embedder_responder.cc -FILE: ../../../flutter/shell/platform/linux/fl_key_embedder_responder.h -FILE: ../../../flutter/shell/platform/linux/fl_key_embedder_responder_private.h -FILE: ../../../flutter/shell/platform/linux/fl_key_embedder_responder_test.cc -FILE: ../../../flutter/shell/platform/linux/fl_key_event.cc -FILE: ../../../flutter/shell/platform/linux/fl_key_event.h -FILE: ../../../flutter/shell/platform/linux/fl_key_responder.cc -FILE: ../../../flutter/shell/platform/linux/fl_key_responder.h -FILE: ../../../flutter/shell/platform/linux/fl_keyboard_manager.cc -FILE: ../../../flutter/shell/platform/linux/fl_keyboard_manager.h -FILE: ../../../flutter/shell/platform/linux/fl_keyboard_manager_test.cc -FILE: ../../../flutter/shell/platform/linux/fl_keyboard_view_delegate.cc -FILE: ../../../flutter/shell/platform/linux/fl_keyboard_view_delegate.h -FILE: ../../../flutter/shell/platform/linux/fl_message_codec.cc -FILE: ../../../flutter/shell/platform/linux/fl_message_codec_test.cc -FILE: ../../../flutter/shell/platform/linux/fl_method_call.cc -FILE: ../../../flutter/shell/platform/linux/fl_method_call_private.h -FILE: ../../../flutter/shell/platform/linux/fl_method_channel.cc -FILE: ../../../flutter/shell/platform/linux/fl_method_channel_private.h -FILE: ../../../flutter/shell/platform/linux/fl_method_channel_test.cc -FILE: ../../../flutter/shell/platform/linux/fl_method_codec.cc -FILE: ../../../flutter/shell/platform/linux/fl_method_codec_private.h -FILE: ../../../flutter/shell/platform/linux/fl_method_codec_test.cc -FILE: ../../../flutter/shell/platform/linux/fl_method_response.cc -FILE: ../../../flutter/shell/platform/linux/fl_method_response_test.cc -FILE: ../../../flutter/shell/platform/linux/fl_mouse_cursor_plugin.cc -FILE: ../../../flutter/shell/platform/linux/fl_mouse_cursor_plugin.h -FILE: ../../../flutter/shell/platform/linux/fl_pixel_buffer_texture.cc -FILE: ../../../flutter/shell/platform/linux/fl_pixel_buffer_texture_private.h -FILE: ../../../flutter/shell/platform/linux/fl_pixel_buffer_texture_test.cc -FILE: ../../../flutter/shell/platform/linux/fl_platform_plugin.cc -FILE: ../../../flutter/shell/platform/linux/fl_platform_plugin.h -FILE: ../../../flutter/shell/platform/linux/fl_plugin_registrar.cc -FILE: ../../../flutter/shell/platform/linux/fl_plugin_registrar_private.h -FILE: ../../../flutter/shell/platform/linux/fl_plugin_registrar_test.cc -FILE: ../../../flutter/shell/platform/linux/fl_plugin_registry.cc -FILE: ../../../flutter/shell/platform/linux/fl_renderer.cc -FILE: ../../../flutter/shell/platform/linux/fl_renderer.h -FILE: ../../../flutter/shell/platform/linux/fl_renderer_gl.cc -FILE: ../../../flutter/shell/platform/linux/fl_renderer_gl.h -FILE: ../../../flutter/shell/platform/linux/fl_renderer_headless.cc -FILE: ../../../flutter/shell/platform/linux/fl_renderer_headless.h -FILE: ../../../flutter/shell/platform/linux/fl_scrolling_manager.cc -FILE: ../../../flutter/shell/platform/linux/fl_scrolling_manager.h -FILE: ../../../flutter/shell/platform/linux/fl_scrolling_manager_test.cc -FILE: ../../../flutter/shell/platform/linux/fl_scrolling_view_delegate.cc -FILE: ../../../flutter/shell/platform/linux/fl_scrolling_view_delegate.h -FILE: ../../../flutter/shell/platform/linux/fl_settings.cc -FILE: ../../../flutter/shell/platform/linux/fl_settings.h -FILE: ../../../flutter/shell/platform/linux/fl_settings_plugin.cc -FILE: ../../../flutter/shell/platform/linux/fl_settings_plugin.h -FILE: ../../../flutter/shell/platform/linux/fl_settings_plugin_test.cc -FILE: ../../../flutter/shell/platform/linux/fl_settings_portal.cc -FILE: ../../../flutter/shell/platform/linux/fl_settings_portal.h -FILE: ../../../flutter/shell/platform/linux/fl_settings_portal_test.cc -FILE: ../../../flutter/shell/platform/linux/fl_standard_message_codec.cc -FILE: ../../../flutter/shell/platform/linux/fl_standard_message_codec_private.h -FILE: ../../../flutter/shell/platform/linux/fl_standard_message_codec_test.cc -FILE: ../../../flutter/shell/platform/linux/fl_standard_method_codec.cc -FILE: ../../../flutter/shell/platform/linux/fl_standard_method_codec_test.cc -FILE: ../../../flutter/shell/platform/linux/fl_string_codec.cc -FILE: ../../../flutter/shell/platform/linux/fl_string_codec_test.cc -FILE: ../../../flutter/shell/platform/linux/fl_task_runner.cc -FILE: ../../../flutter/shell/platform/linux/fl_task_runner.h -FILE: ../../../flutter/shell/platform/linux/fl_text_input_plugin.cc -FILE: ../../../flutter/shell/platform/linux/fl_text_input_plugin.h -FILE: ../../../flutter/shell/platform/linux/fl_text_input_plugin_test.cc -FILE: ../../../flutter/shell/platform/linux/fl_text_input_view_delegate.cc -FILE: ../../../flutter/shell/platform/linux/fl_text_input_view_delegate.h -FILE: ../../../flutter/shell/platform/linux/fl_texture.cc -FILE: ../../../flutter/shell/platform/linux/fl_texture_gl.cc -FILE: ../../../flutter/shell/platform/linux/fl_texture_gl_private.h -FILE: ../../../flutter/shell/platform/linux/fl_texture_gl_test.cc -FILE: ../../../flutter/shell/platform/linux/fl_texture_private.h -FILE: ../../../flutter/shell/platform/linux/fl_texture_registrar.cc -FILE: ../../../flutter/shell/platform/linux/fl_texture_registrar_private.h -FILE: ../../../flutter/shell/platform/linux/fl_texture_registrar_test.cc -FILE: ../../../flutter/shell/platform/linux/fl_value.cc -FILE: ../../../flutter/shell/platform/linux/fl_value_test.cc -FILE: ../../../flutter/shell/platform/linux/fl_view.cc -FILE: ../../../flutter/shell/platform/linux/fl_view_accessible.cc -FILE: ../../../flutter/shell/platform/linux/fl_view_accessible.h -FILE: ../../../flutter/shell/platform/linux/fl_view_accessible_test.cc -FILE: ../../../flutter/shell/platform/linux/fl_view_private.h -FILE: ../../../flutter/shell/platform/linux/key_mapping.g.cc -FILE: ../../../flutter/shell/platform/linux/key_mapping.h -FILE: ../../../flutter/shell/platform/linux/public/flutter_linux/fl_basic_message_channel.h -FILE: ../../../flutter/shell/platform/linux/public/flutter_linux/fl_binary_codec.h -FILE: ../../../flutter/shell/platform/linux/public/flutter_linux/fl_binary_messenger.h -FILE: ../../../flutter/shell/platform/linux/public/flutter_linux/fl_dart_project.h -FILE: ../../../flutter/shell/platform/linux/public/flutter_linux/fl_engine.h -FILE: ../../../flutter/shell/platform/linux/public/flutter_linux/fl_event_channel.h -FILE: ../../../flutter/shell/platform/linux/public/flutter_linux/fl_json_message_codec.h -FILE: ../../../flutter/shell/platform/linux/public/flutter_linux/fl_json_method_codec.h -FILE: ../../../flutter/shell/platform/linux/public/flutter_linux/fl_message_codec.h -FILE: ../../../flutter/shell/platform/linux/public/flutter_linux/fl_method_call.h -FILE: ../../../flutter/shell/platform/linux/public/flutter_linux/fl_method_channel.h -FILE: ../../../flutter/shell/platform/linux/public/flutter_linux/fl_method_codec.h -FILE: ../../../flutter/shell/platform/linux/public/flutter_linux/fl_method_response.h -FILE: ../../../flutter/shell/platform/linux/public/flutter_linux/fl_pixel_buffer_texture.h -FILE: ../../../flutter/shell/platform/linux/public/flutter_linux/fl_plugin_registrar.h -FILE: ../../../flutter/shell/platform/linux/public/flutter_linux/fl_plugin_registry.h -FILE: ../../../flutter/shell/platform/linux/public/flutter_linux/fl_standard_message_codec.h -FILE: ../../../flutter/shell/platform/linux/public/flutter_linux/fl_standard_method_codec.h -FILE: ../../../flutter/shell/platform/linux/public/flutter_linux/fl_string_codec.h -FILE: ../../../flutter/shell/platform/linux/public/flutter_linux/fl_texture.h -FILE: ../../../flutter/shell/platform/linux/public/flutter_linux/fl_texture_gl.h -FILE: ../../../flutter/shell/platform/linux/public/flutter_linux/fl_texture_registrar.h -FILE: ../../../flutter/shell/platform/linux/public/flutter_linux/fl_value.h -FILE: ../../../flutter/shell/platform/linux/public/flutter_linux/fl_view.h -FILE: ../../../flutter/shell/platform/linux/public/flutter_linux/flutter_linux.h -FILE: ../../../flutter/shell/platform/windows/accessibility_bridge_delegate_windows.cc -FILE: ../../../flutter/shell/platform/windows/accessibility_bridge_delegate_windows.h -FILE: ../../../flutter/shell/platform/windows/accessibility_bridge_delegate_windows_unittests.cc -FILE: ../../../flutter/shell/platform/windows/angle_surface_manager.cc -FILE: ../../../flutter/shell/platform/windows/angle_surface_manager.h -FILE: ../../../flutter/shell/platform/windows/client_wrapper/dart_project_unittests.cc -FILE: ../../../flutter/shell/platform/windows/client_wrapper/flutter_engine.cc -FILE: ../../../flutter/shell/platform/windows/client_wrapper/flutter_engine_unittests.cc -FILE: ../../../flutter/shell/platform/windows/client_wrapper/flutter_view_controller.cc -FILE: ../../../flutter/shell/platform/windows/client_wrapper/flutter_view_controller_unittests.cc -FILE: ../../../flutter/shell/platform/windows/client_wrapper/flutter_view_unittests.cc -FILE: ../../../flutter/shell/platform/windows/client_wrapper/include/flutter/dart_project.h -FILE: ../../../flutter/shell/platform/windows/client_wrapper/include/flutter/flutter_engine.h -FILE: ../../../flutter/shell/platform/windows/client_wrapper/include/flutter/flutter_view.h -FILE: ../../../flutter/shell/platform/windows/client_wrapper/include/flutter/flutter_view_controller.h -FILE: ../../../flutter/shell/platform/windows/client_wrapper/include/flutter/plugin_registrar_windows.h -FILE: ../../../flutter/shell/platform/windows/client_wrapper/plugin_registrar_windows_unittests.cc -FILE: ../../../flutter/shell/platform/windows/cursor_handler.cc -FILE: ../../../flutter/shell/platform/windows/cursor_handler.h -FILE: ../../../flutter/shell/platform/windows/direct_manipulation.cc -FILE: ../../../flutter/shell/platform/windows/direct_manipulation.h -FILE: ../../../flutter/shell/platform/windows/direct_manipulation_unittests.cc -FILE: ../../../flutter/shell/platform/windows/dpi_utils.cc -FILE: ../../../flutter/shell/platform/windows/dpi_utils.h -FILE: ../../../flutter/shell/platform/windows/dpi_utils_unittests.cc -FILE: ../../../flutter/shell/platform/windows/event_watcher.cc -FILE: ../../../flutter/shell/platform/windows/event_watcher.h -FILE: ../../../flutter/shell/platform/windows/external_texture.h -FILE: ../../../flutter/shell/platform/windows/external_texture_d3d.cc -FILE: ../../../flutter/shell/platform/windows/external_texture_d3d.h -FILE: ../../../flutter/shell/platform/windows/external_texture_pixelbuffer.cc -FILE: ../../../flutter/shell/platform/windows/external_texture_pixelbuffer.h -FILE: ../../../flutter/shell/platform/windows/flutter_key_map.g.cc -FILE: ../../../flutter/shell/platform/windows/flutter_platform_node_delegate_windows.cc -FILE: ../../../flutter/shell/platform/windows/flutter_platform_node_delegate_windows.h -FILE: ../../../flutter/shell/platform/windows/flutter_project_bundle.cc -FILE: ../../../flutter/shell/platform/windows/flutter_project_bundle.h -FILE: ../../../flutter/shell/platform/windows/flutter_project_bundle_unittests.cc -FILE: ../../../flutter/shell/platform/windows/flutter_window.cc -FILE: ../../../flutter/shell/platform/windows/flutter_window.h -FILE: ../../../flutter/shell/platform/windows/flutter_window_unittests.cc -FILE: ../../../flutter/shell/platform/windows/flutter_windows.cc -FILE: ../../../flutter/shell/platform/windows/flutter_windows_engine.cc -FILE: ../../../flutter/shell/platform/windows/flutter_windows_engine.h -FILE: ../../../flutter/shell/platform/windows/flutter_windows_engine_unittests.cc -FILE: ../../../flutter/shell/platform/windows/flutter_windows_texture_registrar.cc -FILE: ../../../flutter/shell/platform/windows/flutter_windows_texture_registrar.h -FILE: ../../../flutter/shell/platform/windows/flutter_windows_texture_registrar_unittests.cc -FILE: ../../../flutter/shell/platform/windows/flutter_windows_unittests.cc -FILE: ../../../flutter/shell/platform/windows/flutter_windows_view.cc -FILE: ../../../flutter/shell/platform/windows/flutter_windows_view.h -FILE: ../../../flutter/shell/platform/windows/flutter_windows_view_unittests.cc -FILE: ../../../flutter/shell/platform/windows/keyboard_handler_base.h -FILE: ../../../flutter/shell/platform/windows/keyboard_key_channel_handler.cc -FILE: ../../../flutter/shell/platform/windows/keyboard_key_channel_handler.h -FILE: ../../../flutter/shell/platform/windows/keyboard_key_channel_handler_unittests.cc -FILE: ../../../flutter/shell/platform/windows/keyboard_key_embedder_handler.cc -FILE: ../../../flutter/shell/platform/windows/keyboard_key_embedder_handler.h -FILE: ../../../flutter/shell/platform/windows/keyboard_key_embedder_handler_unittests.cc -FILE: ../../../flutter/shell/platform/windows/keyboard_key_handler.cc -FILE: ../../../flutter/shell/platform/windows/keyboard_key_handler.h -FILE: ../../../flutter/shell/platform/windows/keyboard_key_handler_unittests.cc -FILE: ../../../flutter/shell/platform/windows/keyboard_manager.cc -FILE: ../../../flutter/shell/platform/windows/keyboard_manager.h -FILE: ../../../flutter/shell/platform/windows/keyboard_unittests.cc -FILE: ../../../flutter/shell/platform/windows/keyboard_utils.cc -FILE: ../../../flutter/shell/platform/windows/keyboard_utils.h -FILE: ../../../flutter/shell/platform/windows/keyboard_utils_unittests.cc -FILE: ../../../flutter/shell/platform/windows/platform_handler.cc -FILE: ../../../flutter/shell/platform/windows/platform_handler.h -FILE: ../../../flutter/shell/platform/windows/platform_handler_unittests.cc -FILE: ../../../flutter/shell/platform/windows/public/flutter_windows.h -FILE: ../../../flutter/shell/platform/windows/sequential_id_generator.cc -FILE: ../../../flutter/shell/platform/windows/sequential_id_generator.h -FILE: ../../../flutter/shell/platform/windows/sequential_id_generator_unittests.cc -FILE: ../../../flutter/shell/platform/windows/settings_plugin.cc -FILE: ../../../flutter/shell/platform/windows/settings_plugin.h -FILE: ../../../flutter/shell/platform/windows/settings_plugin_unittests.cc -FILE: ../../../flutter/shell/platform/windows/system_utils.cc -FILE: ../../../flutter/shell/platform/windows/system_utils.h -FILE: ../../../flutter/shell/platform/windows/system_utils_unittests.cc -FILE: ../../../flutter/shell/platform/windows/task_runner.cc -FILE: ../../../flutter/shell/platform/windows/task_runner.h -FILE: ../../../flutter/shell/platform/windows/task_runner_unittests.cc -FILE: ../../../flutter/shell/platform/windows/task_runner_window.cc -FILE: ../../../flutter/shell/platform/windows/task_runner_window.h -FILE: ../../../flutter/shell/platform/windows/text_input_manager.cc -FILE: ../../../flutter/shell/platform/windows/text_input_manager.h -FILE: ../../../flutter/shell/platform/windows/text_input_plugin.cc -FILE: ../../../flutter/shell/platform/windows/text_input_plugin.h -FILE: ../../../flutter/shell/platform/windows/text_input_plugin_delegate.h -FILE: ../../../flutter/shell/platform/windows/text_input_plugin_unittest.cc -FILE: ../../../flutter/shell/platform/windows/window.cc -FILE: ../../../flutter/shell/platform/windows/window.h -FILE: ../../../flutter/shell/platform/windows/window_binding_handler.h -FILE: ../../../flutter/shell/platform/windows/window_binding_handler_delegate.h -FILE: ../../../flutter/shell/platform/windows/window_proc_delegate_manager.cc -FILE: ../../../flutter/shell/platform/windows/window_proc_delegate_manager.h -FILE: ../../../flutter/shell/platform/windows/window_proc_delegate_manager_unittests.cc -FILE: ../../../flutter/shell/platform/windows/window_state.h -FILE: ../../../flutter/shell/platform/windows/window_unittests.cc -FILE: ../../../flutter/shell/platform/windows/windows_proc_table.cc -FILE: ../../../flutter/shell/platform/windows/windows_proc_table.h -FILE: ../../../flutter/shell/profiling/sampling_profiler.cc -FILE: ../../../flutter/shell/profiling/sampling_profiler.h -FILE: ../../../flutter/shell/profiling/sampling_profiler_unittest.cc -FILE: ../../../flutter/shell/version/version.cc -FILE: ../../../flutter/shell/version/version.h -FILE: ../../../flutter/shell/vmservice/empty.dart -FILE: ../../../flutter/sky/tools/roll/patches/chromium/android_build.patch -FILE: ../../../flutter/third_party/accessibility/base/color_utils.h -FILE: ../../../flutter/third_party/accessibility/base/compiler_specific.h -FILE: ../../../flutter/third_party/accessibility/base/container_utils.h -FILE: ../../../flutter/third_party/accessibility/base/logging.cc -FILE: ../../../flutter/third_party/accessibility/base/logging.h -FILE: ../../../flutter/third_party/accessibility/base/logging_unittests.cc -FILE: ../../../flutter/third_party/accessibility/base/macros.h -FILE: ../../../flutter/third_party/accessibility/base/platform/darwin/scoped_nsobject.h -FILE: ../../../flutter/third_party/accessibility/base/platform/darwin/scoped_nsobject.mm -FILE: ../../../flutter/third_party/accessibility/base/simple_token.cc -FILE: ../../../flutter/third_party/accessibility/base/simple_token.h -FILE: ../../../flutter/third_party/accessibility/base/string_utils.cc -FILE: ../../../flutter/third_party/accessibility/base/string_utils.h -FILE: ../../../flutter/third_party/accessibility/base/string_utils_unittest.cc -FILE: ../../../flutter/third_party/accessibility/gfx/transform.cc -FILE: ../../../flutter/third_party/accessibility/gfx/transform.h -FILE: ../../../flutter/third_party/tonic/common/build_config.h -FILE: ../../../flutter/third_party/tonic/common/log.cc -FILE: ../../../flutter/third_party/tonic/common/log.h -FILE: ../../../flutter/third_party/tonic/common/macros.h -FILE: ../../../flutter/third_party/tonic/converter/dart_converter.cc -FILE: ../../../flutter/third_party/tonic/converter/dart_converter.h -FILE: ../../../flutter/third_party/tonic/dart_args.h -FILE: ../../../flutter/third_party/tonic/dart_binding_macros.h -FILE: ../../../flutter/third_party/tonic/dart_class_library.cc -FILE: ../../../flutter/third_party/tonic/dart_class_library.h -FILE: ../../../flutter/third_party/tonic/dart_class_provider.cc -FILE: ../../../flutter/third_party/tonic/dart_class_provider.h -FILE: ../../../flutter/third_party/tonic/dart_library_natives.cc -FILE: ../../../flutter/third_party/tonic/dart_library_natives.h -FILE: ../../../flutter/third_party/tonic/dart_list.cc -FILE: ../../../flutter/third_party/tonic/dart_list.h -FILE: ../../../flutter/third_party/tonic/dart_message_handler.cc -FILE: ../../../flutter/third_party/tonic/dart_message_handler.h -FILE: ../../../flutter/third_party/tonic/dart_microtask_queue.cc -FILE: ../../../flutter/third_party/tonic/dart_microtask_queue.h -FILE: ../../../flutter/third_party/tonic/dart_persistent_value.cc -FILE: ../../../flutter/third_party/tonic/dart_persistent_value.h -FILE: ../../../flutter/third_party/tonic/dart_state.cc -FILE: ../../../flutter/third_party/tonic/dart_state.h -FILE: ../../../flutter/third_party/tonic/dart_weak_persistent_value.cc -FILE: ../../../flutter/third_party/tonic/dart_weak_persistent_value.h -FILE: ../../../flutter/third_party/tonic/dart_wrappable.cc -FILE: ../../../flutter/third_party/tonic/dart_wrappable.h -FILE: ../../../flutter/third_party/tonic/dart_wrapper_info.h -FILE: ../../../flutter/third_party/tonic/file_loader/file_loader.cc -FILE: ../../../flutter/third_party/tonic/file_loader/file_loader.h -FILE: ../../../flutter/third_party/tonic/file_loader/file_loader_fuchsia.cc -FILE: ../../../flutter/third_party/tonic/file_loader/file_loader_posix.cc -FILE: ../../../flutter/third_party/tonic/file_loader/file_loader_win.cc -FILE: ../../../flutter/third_party/tonic/filesystem/filesystem/eintr_wrapper.h -FILE: ../../../flutter/third_party/tonic/filesystem/filesystem/file.cc -FILE: ../../../flutter/third_party/tonic/filesystem/filesystem/file.h -FILE: ../../../flutter/third_party/tonic/filesystem/filesystem/path.h -FILE: ../../../flutter/third_party/tonic/filesystem/filesystem/path_posix.cc -FILE: ../../../flutter/third_party/tonic/filesystem/filesystem/path_win.cc -FILE: ../../../flutter/third_party/tonic/filesystem/filesystem/portable_unistd.h -FILE: ../../../flutter/third_party/tonic/logging/dart_error.cc -FILE: ../../../flutter/third_party/tonic/logging/dart_error.h -FILE: ../../../flutter/third_party/tonic/logging/dart_invoke.cc -FILE: ../../../flutter/third_party/tonic/logging/dart_invoke.h -FILE: ../../../flutter/third_party/tonic/parsers/packages_map.cc -FILE: ../../../flutter/third_party/tonic/parsers/packages_map.h -FILE: ../../../flutter/third_party/tonic/scopes/dart_api_scope.h -FILE: ../../../flutter/third_party/tonic/scopes/dart_isolate_scope.cc -FILE: ../../../flutter/third_party/tonic/scopes/dart_isolate_scope.h -FILE: ../../../flutter/third_party/tonic/typed_data/dart_byte_data.cc -FILE: ../../../flutter/third_party/tonic/typed_data/dart_byte_data.h -FILE: ../../../flutter/third_party/tonic/typed_data/float32_list.h -FILE: ../../../flutter/third_party/tonic/typed_data/float64_list.h -FILE: ../../../flutter/third_party/tonic/typed_data/int32_list.h -FILE: ../../../flutter/third_party/tonic/typed_data/typed_list.cc -FILE: ../../../flutter/third_party/tonic/typed_data/typed_list.h -FILE: ../../../flutter/third_party/tonic/typed_data/uint16_list.h -FILE: ../../../flutter/third_party/tonic/typed_data/uint8_list.h -FILE: ../../../flutter/third_party/txt/src/txt/platform.cc -FILE: ../../../flutter/third_party/txt/src/txt/platform.h -FILE: ../../../flutter/third_party/txt/src/txt/platform_android.cc -FILE: ../../../flutter/third_party/txt/src/txt/platform_fuchsia.cc -FILE: ../../../flutter/third_party/txt/src/txt/platform_linux.cc -FILE: ../../../flutter/third_party/txt/src/txt/platform_mac.mm -FILE: ../../../flutter/third_party/txt/src/txt/platform_windows.cc -FILE: ../../../flutter/vulkan/vulkan_application.cc -FILE: ../../../flutter/vulkan/vulkan_application.h -FILE: ../../../flutter/vulkan/vulkan_backbuffer.cc -FILE: ../../../flutter/vulkan/vulkan_backbuffer.h -FILE: ../../../flutter/vulkan/vulkan_command_buffer.cc -FILE: ../../../flutter/vulkan/vulkan_command_buffer.h -FILE: ../../../flutter/vulkan/vulkan_debug_report.cc -FILE: ../../../flutter/vulkan/vulkan_debug_report.h -FILE: ../../../flutter/vulkan/vulkan_device.cc -FILE: ../../../flutter/vulkan/vulkan_device.h -FILE: ../../../flutter/vulkan/vulkan_handle.cc -FILE: ../../../flutter/vulkan/vulkan_handle.h -FILE: ../../../flutter/vulkan/vulkan_image.cc -FILE: ../../../flutter/vulkan/vulkan_image.h -FILE: ../../../flutter/vulkan/vulkan_interface.cc -FILE: ../../../flutter/vulkan/vulkan_interface.h -FILE: ../../../flutter/vulkan/vulkan_native_surface.cc -FILE: ../../../flutter/vulkan/vulkan_native_surface.h -FILE: ../../../flutter/vulkan/vulkan_native_surface_android.cc -FILE: ../../../flutter/vulkan/vulkan_native_surface_android.h -FILE: ../../../flutter/vulkan/vulkan_proc_table.cc -FILE: ../../../flutter/vulkan/vulkan_proc_table.h -FILE: ../../../flutter/vulkan/vulkan_provider.cc -FILE: ../../../flutter/vulkan/vulkan_provider.h -FILE: ../../../flutter/vulkan/vulkan_surface.cc -FILE: ../../../flutter/vulkan/vulkan_surface.h -FILE: ../../../flutter/vulkan/vulkan_swapchain.cc -FILE: ../../../flutter/vulkan/vulkan_swapchain.h -FILE: ../../../flutter/vulkan/vulkan_swapchain_stub.cc -FILE: ../../../flutter/vulkan/vulkan_utilities.cc -FILE: ../../../flutter/vulkan/vulkan_utilities.h -FILE: ../../../flutter/vulkan/vulkan_window.cc -FILE: ../../../flutter/vulkan/vulkan_window.h +ORIGIN: ../../../flutter/third_party/txt/LICENSE +TYPE: LicenseType.apache +FILE: ../../../flutter/third_party/txt/benchmarks/paint_record_benchmarks.cc +FILE: ../../../flutter/third_party/txt/benchmarks/paragraph_benchmarks.cc +FILE: ../../../flutter/third_party/txt/benchmarks/paragraph_builder_benchmarks.cc +FILE: ../../../flutter/third_party/txt/benchmarks/skparagraph_benchmarks.cc +FILE: ../../../flutter/third_party/txt/benchmarks/txt_run_all_benchmarks.cc +FILE: ../../../flutter/third_party/txt/src/log/log.cc +FILE: ../../../flutter/third_party/txt/src/log/log.h +FILE: ../../../flutter/third_party/txt/src/minikin/CmapCoverage.cpp +FILE: ../../../flutter/third_party/txt/src/minikin/CmapCoverage.h +FILE: ../../../flutter/third_party/txt/src/minikin/Emoji.cpp +FILE: ../../../flutter/third_party/txt/src/minikin/Emoji.h +FILE: ../../../flutter/third_party/txt/src/minikin/FontCollection.cpp +FILE: ../../../flutter/third_party/txt/src/minikin/FontCollection.h +FILE: ../../../flutter/third_party/txt/src/minikin/FontFamily.cpp +FILE: ../../../flutter/third_party/txt/src/minikin/FontFamily.h +FILE: ../../../flutter/third_party/txt/src/minikin/FontLanguage.cpp +FILE: ../../../flutter/third_party/txt/src/minikin/FontLanguage.h +FILE: ../../../flutter/third_party/txt/src/minikin/FontLanguageListCache.cpp +FILE: ../../../flutter/third_party/txt/src/minikin/FontLanguageListCache.h +FILE: ../../../flutter/third_party/txt/src/minikin/FontUtils.cpp +FILE: ../../../flutter/third_party/txt/src/minikin/FontUtils.h +FILE: ../../../flutter/third_party/txt/src/minikin/GraphemeBreak.cpp +FILE: ../../../flutter/third_party/txt/src/minikin/GraphemeBreak.h +FILE: ../../../flutter/third_party/txt/src/minikin/HbFontCache.cpp +FILE: ../../../flutter/third_party/txt/src/minikin/HbFontCache.h +FILE: ../../../flutter/third_party/txt/src/minikin/Hyphenator.cpp +FILE: ../../../flutter/third_party/txt/src/minikin/Hyphenator.h +FILE: ../../../flutter/third_party/txt/src/minikin/Layout.cpp +FILE: ../../../flutter/third_party/txt/src/minikin/Layout.h +FILE: ../../../flutter/third_party/txt/src/minikin/LayoutUtils.cpp +FILE: ../../../flutter/third_party/txt/src/minikin/LayoutUtils.h +FILE: ../../../flutter/third_party/txt/src/minikin/LineBreaker.cpp +FILE: ../../../flutter/third_party/txt/src/minikin/LineBreaker.h +FILE: ../../../flutter/third_party/txt/src/minikin/Measurement.cpp +FILE: ../../../flutter/third_party/txt/src/minikin/Measurement.h +FILE: ../../../flutter/third_party/txt/src/minikin/MinikinFont.cpp +FILE: ../../../flutter/third_party/txt/src/minikin/MinikinFont.h +FILE: ../../../flutter/third_party/txt/src/minikin/MinikinInternal.cpp +FILE: ../../../flutter/third_party/txt/src/minikin/MinikinInternal.h +FILE: ../../../flutter/third_party/txt/src/minikin/SparseBitSet.cpp +FILE: ../../../flutter/third_party/txt/src/minikin/SparseBitSet.h +FILE: ../../../flutter/third_party/txt/src/minikin/WordBreaker.cpp +FILE: ../../../flutter/third_party/txt/src/minikin/WordBreaker.h +FILE: ../../../flutter/third_party/txt/src/skia/paragraph_builder_skia.cc +FILE: ../../../flutter/third_party/txt/src/skia/paragraph_builder_skia.h +FILE: ../../../flutter/third_party/txt/src/skia/paragraph_skia.cc +FILE: ../../../flutter/third_party/txt/src/skia/paragraph_skia.h +FILE: ../../../flutter/third_party/txt/src/txt/asset_font_manager.cc +FILE: ../../../flutter/third_party/txt/src/txt/asset_font_manager.h +FILE: ../../../flutter/third_party/txt/src/txt/font_asset_provider.cc +FILE: ../../../flutter/third_party/txt/src/txt/font_asset_provider.h +FILE: ../../../flutter/third_party/txt/src/txt/font_collection.cc +FILE: ../../../flutter/third_party/txt/src/txt/font_collection.h +FILE: ../../../flutter/third_party/txt/src/txt/font_features.cc +FILE: ../../../flutter/third_party/txt/src/txt/font_features.h +FILE: ../../../flutter/third_party/txt/src/txt/font_skia.cc +FILE: ../../../flutter/third_party/txt/src/txt/font_skia.h +FILE: ../../../flutter/third_party/txt/src/txt/font_style.h +FILE: ../../../flutter/third_party/txt/src/txt/font_weight.h +FILE: ../../../flutter/third_party/txt/src/txt/line_metrics.h +FILE: ../../../flutter/third_party/txt/src/txt/paint_record.cc +FILE: ../../../flutter/third_party/txt/src/txt/paint_record.h +FILE: ../../../flutter/third_party/txt/src/txt/paragraph.h +FILE: ../../../flutter/third_party/txt/src/txt/paragraph_builder.cc +FILE: ../../../flutter/third_party/txt/src/txt/paragraph_builder.h +FILE: ../../../flutter/third_party/txt/src/txt/paragraph_builder_txt.cc +FILE: ../../../flutter/third_party/txt/src/txt/paragraph_builder_txt.h +FILE: ../../../flutter/third_party/txt/src/txt/paragraph_style.cc +FILE: ../../../flutter/third_party/txt/src/txt/paragraph_style.h +FILE: ../../../flutter/third_party/txt/src/txt/paragraph_txt.cc +FILE: ../../../flutter/third_party/txt/src/txt/paragraph_txt.h +FILE: ../../../flutter/third_party/txt/src/txt/placeholder_run.cc +FILE: ../../../flutter/third_party/txt/src/txt/placeholder_run.h +FILE: ../../../flutter/third_party/txt/src/txt/run_metrics.h +FILE: ../../../flutter/third_party/txt/src/txt/styled_runs.cc +FILE: ../../../flutter/third_party/txt/src/txt/styled_runs.h +FILE: ../../../flutter/third_party/txt/src/txt/test_font_manager.cc +FILE: ../../../flutter/third_party/txt/src/txt/test_font_manager.h +FILE: ../../../flutter/third_party/txt/src/txt/text_baseline.h +FILE: ../../../flutter/third_party/txt/src/txt/text_decoration.cc +FILE: ../../../flutter/third_party/txt/src/txt/text_decoration.h +FILE: ../../../flutter/third_party/txt/src/txt/text_shadow.cc +FILE: ../../../flutter/third_party/txt/src/txt/text_shadow.h +FILE: ../../../flutter/third_party/txt/src/txt/text_style.cc +FILE: ../../../flutter/third_party/txt/src/txt/text_style.h +FILE: ../../../flutter/third_party/txt/src/txt/typeface_font_asset_provider.cc +FILE: ../../../flutter/third_party/txt/src/txt/typeface_font_asset_provider.h +FILE: ../../../flutter/third_party/txt/src/utils/JenkinsHash.cpp +FILE: ../../../flutter/third_party/txt/src/utils/JenkinsHash.h +FILE: ../../../flutter/third_party/txt/src/utils/LinuxUtils.h +FILE: ../../../flutter/third_party/txt/src/utils/LruCache.h +FILE: ../../../flutter/third_party/txt/src/utils/MacUtils.h +FILE: ../../../flutter/third_party/txt/src/utils/TypeHelpers.h +FILE: ../../../flutter/third_party/txt/src/utils/WindowsUtils.h ---------------------------------------------------------------------------------------------------- -Copyright 2013 The Flutter Authors. All rights reserved. +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - * Neither the name of Google Inc. nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. +1. Definitions. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. -==================================================================================================== -LIBRARY: accessibility -ORIGIN: ../../../LICENSE -TYPE: LicenseType.bsd -FILE: ../../../flutter/third_party/accessibility/ax/ax_tree_id_registry.cc -FILE: ../../../flutter/third_party/accessibility/ax/ax_tree_id_registry.h -FILE: ../../../flutter/third_party/accessibility/ax/platform/ax_platform_node.cc -FILE: ../../../flutter/third_party/accessibility/ax/platform/ax_platform_node.h -FILE: ../../../flutter/third_party/accessibility/ax/platform/ax_platform_node_base.cc -FILE: ../../../flutter/third_party/accessibility/ax/platform/ax_platform_node_base.h -FILE: ../../../flutter/third_party/accessibility/ax/platform/ax_platform_node_delegate.h -FILE: ../../../flutter/third_party/accessibility/ax/platform/ax_platform_node_delegate_base.h -FILE: ../../../flutter/third_party/accessibility/ax/platform/ax_platform_node_mac.h -FILE: ../../../flutter/third_party/accessibility/ax/platform/ax_platform_node_mac.mm -FILE: ../../../flutter/third_party/accessibility/base/numerics/safe_conversions.h -FILE: ../../../flutter/third_party/accessibility/base/numerics/safe_conversions_impl.h -FILE: ../../../flutter/third_party/accessibility/gfx/mac/coordinate_conversion.h -FILE: ../../../flutter/third_party/accessibility/gfx/mac/coordinate_conversion.mm ----------------------------------------------------------------------------------------------------- -Copyright 2014 The Chromium Authors. All rights reserved. + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. -==================================================================================================== -LIBRARY: accessibility -ORIGIN: ../../../flutter/third_party/accessibility/ax/ax_action_data.cc + ../../../LICENSE -TYPE: LicenseType.bsd -FILE: ../../../flutter/third_party/accessibility/ax/ax_action_data.cc -FILE: ../../../flutter/third_party/accessibility/ax/ax_action_data.h -FILE: ../../../flutter/third_party/accessibility/ax/ax_node_position.cc -FILE: ../../../flutter/third_party/accessibility/ax/ax_node_position.h -FILE: ../../../flutter/third_party/accessibility/ax/ax_node_position_unittest.cc -FILE: ../../../flutter/third_party/accessibility/ax/ax_position.h -FILE: ../../../flutter/third_party/accessibility/ax/ax_range.h -FILE: ../../../flutter/third_party/accessibility/ax/ax_relative_bounds.cc -FILE: ../../../flutter/third_party/accessibility/ax/ax_relative_bounds.h -FILE: ../../../flutter/third_party/accessibility/gfx/range/gfx_range_export.h ----------------------------------------------------------------------------------------------------- -Copyright 2016 The Chromium Authors. All rights reserved. + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. -==================================================================================================== -LIBRARY: accessibility -ORIGIN: ../../../flutter/third_party/accessibility/ax/ax_export.h + ../../../LICENSE -TYPE: LicenseType.bsd -FILE: ../../../flutter/third_party/accessibility/ax/ax_export.h -FILE: ../../../flutter/third_party/accessibility/ax/ax_node.cc -FILE: ../../../flutter/third_party/accessibility/ax/ax_node.h -FILE: ../../../flutter/third_party/accessibility/ax/ax_node_data.cc -FILE: ../../../flutter/third_party/accessibility/ax/ax_node_data.h -FILE: ../../../flutter/third_party/accessibility/ax/ax_tree.cc -FILE: ../../../flutter/third_party/accessibility/ax/ax_tree.h -FILE: ../../../flutter/third_party/accessibility/ax/ax_tree_unittest.cc -FILE: ../../../flutter/third_party/accessibility/ax/ax_tree_update.h ----------------------------------------------------------------------------------------------------- -Copyright 2013 The Chromium Authors. All rights reserved. +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. +END OF TERMS AND CONDITIONS -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== +APPENDIX: How to apply the Apache License to your work. -==================================================================================================== -LIBRARY: accessibility -ORIGIN: ../../../flutter/third_party/accessibility/ax/platform/ax_fragment_root_delegate_win.h + ../../../LICENSE -TYPE: LicenseType.bsd -FILE: ../../../flutter/third_party/accessibility/ax/ax_active_popup.cc -FILE: ../../../flutter/third_party/accessibility/ax/ax_active_popup.h -FILE: ../../../flutter/third_party/accessibility/ax/ax_clipping_behavior.h -FILE: ../../../flutter/third_party/accessibility/ax/ax_constants.h -FILE: ../../../flutter/third_party/accessibility/ax/ax_coordinate_system.h -FILE: ../../../flutter/third_party/accessibility/ax/ax_enum_util_unittest.cc -FILE: ../../../flutter/third_party/accessibility/ax/ax_mode.cc -FILE: ../../../flutter/third_party/accessibility/ax/ax_node_text_styles.cc -FILE: ../../../flutter/third_party/accessibility/ax/ax_node_text_styles.h -FILE: ../../../flutter/third_party/accessibility/ax/ax_offscreen_result.h -FILE: ../../../flutter/third_party/accessibility/ax/ax_range_unittest.cc -FILE: ../../../flutter/third_party/accessibility/ax/ax_role_properties_unittest.cc -FILE: ../../../flutter/third_party/accessibility/ax/ax_tree_manager.h -FILE: ../../../flutter/third_party/accessibility/ax/ax_tree_manager_map.cc -FILE: ../../../flutter/third_party/accessibility/ax/ax_tree_manager_map.h -FILE: ../../../flutter/third_party/accessibility/ax/platform/ax_fragment_root_delegate_win.h -FILE: ../../../flutter/third_party/accessibility/ax/platform/ax_fragment_root_win.cc -FILE: ../../../flutter/third_party/accessibility/ax/platform/ax_fragment_root_win.h -FILE: ../../../flutter/third_party/accessibility/ax/platform/ax_fragment_root_win_unittest.cc -FILE: ../../../flutter/third_party/accessibility/ax/platform/ax_platform_node_base_unittest.cc -FILE: ../../../flutter/third_party/accessibility/ax/platform/ax_platform_node_delegate_utils_win.cc -FILE: ../../../flutter/third_party/accessibility/ax/platform/ax_platform_node_delegate_utils_win.h -FILE: ../../../flutter/third_party/accessibility/ax/platform/ax_platform_node_win_unittest.h -FILE: ../../../flutter/third_party/accessibility/base/win/scoped_safearray.h -FILE: ../../../flutter/third_party/accessibility/base/win/scoped_safearray_unittest.cc ----------------------------------------------------------------------------------------------------- -Copyright 2019 The Chromium Authors. All rights reserved. + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +Copyright [yyyy] [name of copyright owner] - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. ==================================================================================================== ==================================================================================================== LIBRARY: accessibility -ORIGIN: ../../../flutter/third_party/accessibility/ax/platform/ax_platform_node_delegate_base.cc + ../../../LICENSE +ORIGIN: ../../../flutter/third_party/accessibility/gfx/geometry/insets.cc + ../../../LICENSE TYPE: LicenseType.bsd -FILE: ../../../flutter/third_party/accessibility/ax/ax_enum_util.cc -FILE: ../../../flutter/third_party/accessibility/ax/ax_enum_util.h -FILE: ../../../flutter/third_party/accessibility/ax/ax_enums.h -FILE: ../../../flutter/third_party/accessibility/ax/ax_node_data_unittest.cc -FILE: ../../../flutter/third_party/accessibility/ax/ax_table_info.cc -FILE: ../../../flutter/third_party/accessibility/ax/ax_table_info.h -FILE: ../../../flutter/third_party/accessibility/ax/ax_table_info_unittest.cc -FILE: ../../../flutter/third_party/accessibility/ax/ax_tree_id.cc -FILE: ../../../flutter/third_party/accessibility/ax/ax_tree_id.h -FILE: ../../../flutter/third_party/accessibility/ax/ax_tree_observer.cc -FILE: ../../../flutter/third_party/accessibility/ax/ax_tree_observer.h -FILE: ../../../flutter/third_party/accessibility/ax/platform/ax_platform_node_delegate_base.cc -FILE: ../../../flutter/third_party/accessibility/ax/platform/compute_attributes.cc -FILE: ../../../flutter/third_party/accessibility/ax/platform/compute_attributes.h -FILE: ../../../flutter/third_party/accessibility/base/no_destructor.h -FILE: ../../../flutter/third_party/accessibility/base/win/atl.h +FILE: ../../../flutter/third_party/accessibility/gfx/geometry/insets.cc +FILE: ../../../flutter/third_party/accessibility/gfx/geometry/insets_unittest.cc ---------------------------------------------------------------------------------------------------- -Copyright 2018 The Chromium Authors. All rights reserved. +Copyright (c) 2009 The Chromium Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are @@ -2934,36 +344,13 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ==================================================================================================== LIBRARY: accessibility -ORIGIN: ../../../flutter/third_party/accessibility/ax/platform/ax_platform_node_unittest.cc + ../../../LICENSE +ORIGIN: ../../../flutter/third_party/accessibility/base/win/scoped_bstr.cc + ../../../LICENSE TYPE: LicenseType.bsd -FILE: ../../../flutter/third_party/accessibility/ax/ax_action_handler.cc -FILE: ../../../flutter/third_party/accessibility/ax/ax_action_handler.h -FILE: ../../../flutter/third_party/accessibility/ax/ax_event_generator.cc -FILE: ../../../flutter/third_party/accessibility/ax/ax_event_generator.h -FILE: ../../../flutter/third_party/accessibility/ax/ax_event_generator_unittest.cc -FILE: ../../../flutter/third_party/accessibility/ax/ax_mode.h -FILE: ../../../flutter/third_party/accessibility/ax/ax_mode_observer.h -FILE: ../../../flutter/third_party/accessibility/ax/ax_role_properties.cc -FILE: ../../../flutter/third_party/accessibility/ax/ax_role_properties.h -FILE: ../../../flutter/third_party/accessibility/ax/platform/ax_platform_node_unittest.cc -FILE: ../../../flutter/third_party/accessibility/ax/platform/ax_platform_node_unittest.h -FILE: ../../../flutter/third_party/accessibility/ax/platform/ax_platform_relation_win.cc -FILE: ../../../flutter/third_party/accessibility/ax/platform/ax_platform_relation_win.h -FILE: ../../../flutter/third_party/accessibility/ax/platform/ax_unique_id.cc -FILE: ../../../flutter/third_party/accessibility/ax/platform/ax_unique_id.h -FILE: ../../../flutter/third_party/accessibility/base/numerics/checked_math.h -FILE: ../../../flutter/third_party/accessibility/base/numerics/checked_math_impl.h -FILE: ../../../flutter/third_party/accessibility/base/numerics/clamped_math.h -FILE: ../../../flutter/third_party/accessibility/base/numerics/clamped_math_impl.h -FILE: ../../../flutter/third_party/accessibility/base/numerics/math_constants.h -FILE: ../../../flutter/third_party/accessibility/base/numerics/ranges.h -FILE: ../../../flutter/third_party/accessibility/base/numerics/safe_conversions_arm_impl.h -FILE: ../../../flutter/third_party/accessibility/base/numerics/safe_math.h -FILE: ../../../flutter/third_party/accessibility/base/numerics/safe_math_arm_impl.h -FILE: ../../../flutter/third_party/accessibility/base/numerics/safe_math_clang_gcc_impl.h -FILE: ../../../flutter/third_party/accessibility/base/numerics/safe_math_shared_impl.h +FILE: ../../../flutter/third_party/accessibility/base/win/scoped_bstr.cc +FILE: ../../../flutter/third_party/accessibility/base/win/scoped_bstr_unittest.cc +FILE: ../../../flutter/third_party/accessibility/base/win/scoped_variant.cc ---------------------------------------------------------------------------------------------------- -Copyright 2017 The Chromium Authors. All rights reserved. +Copyright (c) 2010 The Chromium Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are @@ -2982,39 +369,34 @@ this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: accessibility -ORIGIN: ../../../flutter/third_party/accessibility/ax/platform/uia_registrar_win.cc + ../../../LICENSE -TYPE: LicenseType.bsd -FILE: ../../../flutter/third_party/accessibility/ax/ax_action_handler_base.cc -FILE: ../../../flutter/third_party/accessibility/ax/ax_action_handler_base.h -FILE: ../../../flutter/third_party/accessibility/ax/ax_base_export.h -FILE: ../../../flutter/third_party/accessibility/ax/ax_event_intent.cc -FILE: ../../../flutter/third_party/accessibility/ax/ax_event_intent.h -FILE: ../../../flutter/third_party/accessibility/ax/platform/uia_registrar_win.cc -FILE: ../../../flutter/third_party/accessibility/ax/platform/uia_registrar_win.h -FILE: ../../../flutter/third_party/accessibility/ax/test_ax_node_helper.cc -FILE: ../../../flutter/third_party/accessibility/ax/test_ax_node_helper.h -FILE: ../../../flutter/third_party/accessibility/ax/test_ax_tree_manager.cc -FILE: ../../../flutter/third_party/accessibility/ax/test_ax_tree_manager.h -FILE: ../../../flutter/third_party/accessibility/base/win/dispatch_stub.cc -FILE: ../../../flutter/third_party/accessibility/base/win/dispatch_stub.h -FILE: ../../../flutter/third_party/accessibility/base/win/variant_util.h -FILE: ../../../flutter/third_party/accessibility/base/win/variant_vector.cc -FILE: ../../../flutter/third_party/accessibility/base/win/variant_vector.h -FILE: ../../../flutter/third_party/accessibility/base/win/variant_vector_unittest.cc +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: accessibility +ORIGIN: ../../../flutter/third_party/accessibility/base/win/atl_module.h + ../../../LICENSE +TYPE: LicenseType.bsd +FILE: ../../../flutter/third_party/accessibility/base/auto_reset.h +FILE: ../../../flutter/third_party/accessibility/base/win/atl_module.h +FILE: ../../../flutter/third_party/accessibility/base/win/display.cc +FILE: ../../../flutter/third_party/accessibility/base/win/display.h +FILE: ../../../flutter/third_party/accessibility/base/win/display_unittest.cc +FILE: ../../../flutter/third_party/accessibility/base/win/enum_variant.cc +FILE: ../../../flutter/third_party/accessibility/base/win/enum_variant.h +FILE: ../../../flutter/third_party/accessibility/base/win/enum_variant_unittest.cc +FILE: ../../../flutter/third_party/accessibility/base/win/scoped_bstr.h +FILE: ../../../flutter/third_party/accessibility/base/win/scoped_variant.h +FILE: ../../../flutter/third_party/accessibility/base/win/scoped_variant_unittest.cc +FILE: ../../../flutter/third_party/accessibility/gfx/range/range_unittest.cc ---------------------------------------------------------------------------------------------------- -Copyright 2020 The Chromium Authors. All rights reserved. +Copyright (c) 2011 The Chromium Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are @@ -3114,22 +496,12 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ==================================================================================================== LIBRARY: accessibility -ORIGIN: ../../../flutter/third_party/accessibility/base/win/atl_module.h + ../../../LICENSE +ORIGIN: ../../../flutter/third_party/accessibility/gfx/geometry/rect_unittest.cc + ../../../LICENSE TYPE: LicenseType.bsd -FILE: ../../../flutter/third_party/accessibility/base/auto_reset.h -FILE: ../../../flutter/third_party/accessibility/base/win/atl_module.h -FILE: ../../../flutter/third_party/accessibility/base/win/display.cc -FILE: ../../../flutter/third_party/accessibility/base/win/display.h -FILE: ../../../flutter/third_party/accessibility/base/win/display_unittest.cc -FILE: ../../../flutter/third_party/accessibility/base/win/enum_variant.cc -FILE: ../../../flutter/third_party/accessibility/base/win/enum_variant.h -FILE: ../../../flutter/third_party/accessibility/base/win/enum_variant_unittest.cc -FILE: ../../../flutter/third_party/accessibility/base/win/scoped_bstr.h -FILE: ../../../flutter/third_party/accessibility/base/win/scoped_variant.h -FILE: ../../../flutter/third_party/accessibility/base/win/scoped_variant_unittest.cc -FILE: ../../../flutter/third_party/accessibility/gfx/range/range_unittest.cc +FILE: ../../../flutter/third_party/accessibility/gfx/geometry/rect_unittest.cc +FILE: ../../../flutter/third_party/accessibility/gfx/gfx_export.h ---------------------------------------------------------------------------------------------------- -Copyright (c) 2011 The Chromium Authors. All rights reserved. +Copyright (c) 2013 The Chromium Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are @@ -3160,13 +532,11 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ==================================================================================================== LIBRARY: accessibility -ORIGIN: ../../../flutter/third_party/accessibility/base/win/scoped_bstr.cc + ../../../LICENSE +ORIGIN: ../../../flutter/third_party/accessibility/base/win/windows_types.h + ../../../LICENSE TYPE: LicenseType.bsd -FILE: ../../../flutter/third_party/accessibility/base/win/scoped_bstr.cc -FILE: ../../../flutter/third_party/accessibility/base/win/scoped_bstr_unittest.cc -FILE: ../../../flutter/third_party/accessibility/base/win/scoped_variant.cc +FILE: ../../../flutter/third_party/accessibility/base/win/windows_types.h ---------------------------------------------------------------------------------------------------- -Copyright (c) 2010 The Chromium Authors. All rights reserved. +Copyright (c) 2014 The Chromium Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are @@ -3197,47 +567,2797 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ==================================================================================================== LIBRARY: accessibility -ORIGIN: ../../../flutter/third_party/accessibility/base/win/windows_types.h + ../../../LICENSE +ORIGIN: ../../../flutter/third_party/accessibility/ax/ax_export.h + ../../../LICENSE TYPE: LicenseType.bsd -FILE: ../../../flutter/third_party/accessibility/base/win/windows_types.h +FILE: ../../../flutter/third_party/accessibility/ax/ax_export.h +FILE: ../../../flutter/third_party/accessibility/ax/ax_node.cc +FILE: ../../../flutter/third_party/accessibility/ax/ax_node.h +FILE: ../../../flutter/third_party/accessibility/ax/ax_node_data.cc +FILE: ../../../flutter/third_party/accessibility/ax/ax_node_data.h +FILE: ../../../flutter/third_party/accessibility/ax/ax_tree.cc +FILE: ../../../flutter/third_party/accessibility/ax/ax_tree.h +FILE: ../../../flutter/third_party/accessibility/ax/ax_tree_unittest.cc +FILE: ../../../flutter/third_party/accessibility/ax/ax_tree_update.h +---------------------------------------------------------------------------------------------------- +Copyright 2013 The Chromium Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: accessibility +LIBRARY: engine +LIBRARY: tonic +LIBRARY: txt +ORIGIN: ../../../flutter/LICENSE +TYPE: LicenseType.bsd +FILE: ../../../flutter/.clang-tidy +FILE: ../../../flutter/.pylintrc +FILE: ../../../flutter/.style.yapf +FILE: ../../../flutter/DEPS +FILE: ../../../flutter/assets/asset_manager.cc +FILE: ../../../flutter/assets/asset_manager.h +FILE: ../../../flutter/assets/asset_resolver.h +FILE: ../../../flutter/assets/directory_asset_bundle.cc +FILE: ../../../flutter/assets/directory_asset_bundle.h +FILE: ../../../flutter/benchmarking/benchmarking.cc +FILE: ../../../flutter/benchmarking/benchmarking.h +FILE: ../../../flutter/benchmarking/library.cc +FILE: ../../../flutter/benchmarking/library.h +FILE: ../../../flutter/common/constants.h +FILE: ../../../flutter/common/exported_symbols.sym +FILE: ../../../flutter/common/exported_symbols_mac.sym +FILE: ../../../flutter/common/graphics/gl_context_switch.cc +FILE: ../../../flutter/common/graphics/gl_context_switch.h +FILE: ../../../flutter/common/graphics/msaa_sample_count.h +FILE: ../../../flutter/common/graphics/persistent_cache.cc +FILE: ../../../flutter/common/graphics/persistent_cache.h +FILE: ../../../flutter/common/graphics/texture.cc +FILE: ../../../flutter/common/graphics/texture.h +FILE: ../../../flutter/common/settings.cc +FILE: ../../../flutter/common/settings.h +FILE: ../../../flutter/common/task_runners.cc +FILE: ../../../flutter/common/task_runners.h +FILE: ../../../flutter/display_list/display_list.cc +FILE: ../../../flutter/display_list/display_list.h +FILE: ../../../flutter/display_list/display_list_attributes.h +FILE: ../../../flutter/display_list/display_list_attributes_testing.h +FILE: ../../../flutter/display_list/display_list_benchmarks.cc +FILE: ../../../flutter/display_list/display_list_benchmarks.h +FILE: ../../../flutter/display_list/display_list_benchmarks_canvas_provider.h +FILE: ../../../flutter/display_list/display_list_benchmarks_gl.cc +FILE: ../../../flutter/display_list/display_list_benchmarks_gl.h +FILE: ../../../flutter/display_list/display_list_benchmarks_metal.cc +FILE: ../../../flutter/display_list/display_list_benchmarks_metal.h +FILE: ../../../flutter/display_list/display_list_benchmarks_software.cc +FILE: ../../../flutter/display_list/display_list_benchmarks_software.h +FILE: ../../../flutter/display_list/display_list_blend_mode.cc +FILE: ../../../flutter/display_list/display_list_blend_mode.h +FILE: ../../../flutter/display_list/display_list_builder.cc +FILE: ../../../flutter/display_list/display_list_builder.h +FILE: ../../../flutter/display_list/display_list_builder_benchmarks.cc +FILE: ../../../flutter/display_list/display_list_builder_multiplexer.cc +FILE: ../../../flutter/display_list/display_list_builder_multiplexer.h +FILE: ../../../flutter/display_list/display_list_canvas_dispatcher.cc +FILE: ../../../flutter/display_list/display_list_canvas_dispatcher.h +FILE: ../../../flutter/display_list/display_list_canvas_recorder.cc +FILE: ../../../flutter/display_list/display_list_canvas_recorder.h +FILE: ../../../flutter/display_list/display_list_canvas_unittests.cc +FILE: ../../../flutter/display_list/display_list_color.h +FILE: ../../../flutter/display_list/display_list_color_filter.cc +FILE: ../../../flutter/display_list/display_list_color_filter.h +FILE: ../../../flutter/display_list/display_list_color_filter_unittests.cc +FILE: ../../../flutter/display_list/display_list_color_source.cc +FILE: ../../../flutter/display_list/display_list_color_source.h +FILE: ../../../flutter/display_list/display_list_color_source_unittests.cc +FILE: ../../../flutter/display_list/display_list_color_unittests.cc +FILE: ../../../flutter/display_list/display_list_comparable.h +FILE: ../../../flutter/display_list/display_list_complexity.cc +FILE: ../../../flutter/display_list/display_list_complexity.h +FILE: ../../../flutter/display_list/display_list_complexity_gl.cc +FILE: ../../../flutter/display_list/display_list_complexity_gl.h +FILE: ../../../flutter/display_list/display_list_complexity_helper.h +FILE: ../../../flutter/display_list/display_list_complexity_metal.cc +FILE: ../../../flutter/display_list/display_list_complexity_metal.h +FILE: ../../../flutter/display_list/display_list_complexity_unittests.cc +FILE: ../../../flutter/display_list/display_list_dispatcher.cc +FILE: ../../../flutter/display_list/display_list_dispatcher.h +FILE: ../../../flutter/display_list/display_list_enum_unittests.cc +FILE: ../../../flutter/display_list/display_list_flags.cc +FILE: ../../../flutter/display_list/display_list_flags.h +FILE: ../../../flutter/display_list/display_list_image.cc +FILE: ../../../flutter/display_list/display_list_image.h +FILE: ../../../flutter/display_list/display_list_image_filter.cc +FILE: ../../../flutter/display_list/display_list_image_filter.h +FILE: ../../../flutter/display_list/display_list_image_filter_unittests.cc +FILE: ../../../flutter/display_list/display_list_image_skia.cc +FILE: ../../../flutter/display_list/display_list_image_skia.h +FILE: ../../../flutter/display_list/display_list_mask_filter.cc +FILE: ../../../flutter/display_list/display_list_mask_filter.h +FILE: ../../../flutter/display_list/display_list_mask_filter_unittests.cc +FILE: ../../../flutter/display_list/display_list_ops.cc +FILE: ../../../flutter/display_list/display_list_ops.h +FILE: ../../../flutter/display_list/display_list_paint.cc +FILE: ../../../flutter/display_list/display_list_paint.h +FILE: ../../../flutter/display_list/display_list_paint_unittests.cc +FILE: ../../../flutter/display_list/display_list_path_effect.cc +FILE: ../../../flutter/display_list/display_list_path_effect.h +FILE: ../../../flutter/display_list/display_list_path_effect_unittests.cc +FILE: ../../../flutter/display_list/display_list_rtree.cc +FILE: ../../../flutter/display_list/display_list_rtree.h +FILE: ../../../flutter/display_list/display_list_runtime_effect.cc +FILE: ../../../flutter/display_list/display_list_runtime_effect.h +FILE: ../../../flutter/display_list/display_list_sampling_options.h +FILE: ../../../flutter/display_list/display_list_test_utils.cc +FILE: ../../../flutter/display_list/display_list_test_utils.h +FILE: ../../../flutter/display_list/display_list_tile_mode.h +FILE: ../../../flutter/display_list/display_list_unittests.cc +FILE: ../../../flutter/display_list/display_list_utils.cc +FILE: ../../../flutter/display_list/display_list_utils.h +FILE: ../../../flutter/display_list/display_list_utils_unittests.cc +FILE: ../../../flutter/display_list/display_list_vertices.cc +FILE: ../../../flutter/display_list/display_list_vertices.h +FILE: ../../../flutter/display_list/display_list_vertices_unittests.cc +FILE: ../../../flutter/display_list/types.h +FILE: ../../../flutter/flow/compositor_context.cc +FILE: ../../../flutter/flow/compositor_context.h +FILE: ../../../flutter/flow/diff_context.cc +FILE: ../../../flutter/flow/diff_context.h +FILE: ../../../flutter/flow/diff_context_unittests.cc +FILE: ../../../flutter/flow/embedded_view_params_unittests.cc +FILE: ../../../flutter/flow/embedded_views.cc +FILE: ../../../flutter/flow/embedded_views.h +FILE: ../../../flutter/flow/flow_run_all_unittests.cc +FILE: ../../../flutter/flow/flow_test_utils.cc +FILE: ../../../flutter/flow/flow_test_utils.h +FILE: ../../../flutter/flow/frame_timings.cc +FILE: ../../../flutter/flow/frame_timings.h +FILE: ../../../flutter/flow/frame_timings_recorder_unittests.cc +FILE: ../../../flutter/flow/gl_context_switch_unittests.cc +FILE: ../../../flutter/flow/instrumentation.cc +FILE: ../../../flutter/flow/instrumentation.h +FILE: ../../../flutter/flow/instrumentation_unittests.cc +FILE: ../../../flutter/flow/layer_snapshot_store.cc +FILE: ../../../flutter/flow/layer_snapshot_store.h +FILE: ../../../flutter/flow/layers/backdrop_filter_layer.cc +FILE: ../../../flutter/flow/layers/backdrop_filter_layer.h +FILE: ../../../flutter/flow/layers/backdrop_filter_layer_unittests.cc +FILE: ../../../flutter/flow/layers/cacheable_layer.cc +FILE: ../../../flutter/flow/layers/cacheable_layer.h +FILE: ../../../flutter/flow/layers/checkerboard_layertree_unittests.cc +FILE: ../../../flutter/flow/layers/clip_path_layer.cc +FILE: ../../../flutter/flow/layers/clip_path_layer.h +FILE: ../../../flutter/flow/layers/clip_path_layer_unittests.cc +FILE: ../../../flutter/flow/layers/clip_rect_layer.cc +FILE: ../../../flutter/flow/layers/clip_rect_layer.h +FILE: ../../../flutter/flow/layers/clip_rect_layer_unittests.cc +FILE: ../../../flutter/flow/layers/clip_rrect_layer.cc +FILE: ../../../flutter/flow/layers/clip_rrect_layer.h +FILE: ../../../flutter/flow/layers/clip_rrect_layer_unittests.cc +FILE: ../../../flutter/flow/layers/clip_shape_layer.h +FILE: ../../../flutter/flow/layers/color_filter_layer.cc +FILE: ../../../flutter/flow/layers/color_filter_layer.h +FILE: ../../../flutter/flow/layers/color_filter_layer_unittests.cc +FILE: ../../../flutter/flow/layers/container_layer.cc +FILE: ../../../flutter/flow/layers/container_layer.h +FILE: ../../../flutter/flow/layers/container_layer_unittests.cc +FILE: ../../../flutter/flow/layers/display_list_layer.cc +FILE: ../../../flutter/flow/layers/display_list_layer.h +FILE: ../../../flutter/flow/layers/display_list_layer_unittests.cc +FILE: ../../../flutter/flow/layers/display_list_raster_cache_item.cc +FILE: ../../../flutter/flow/layers/display_list_raster_cache_item.h +FILE: ../../../flutter/flow/layers/image_filter_layer.cc +FILE: ../../../flutter/flow/layers/image_filter_layer.h +FILE: ../../../flutter/flow/layers/image_filter_layer_unittests.cc +FILE: ../../../flutter/flow/layers/layer.cc +FILE: ../../../flutter/flow/layers/layer.h +FILE: ../../../flutter/flow/layers/layer_raster_cache_item.cc +FILE: ../../../flutter/flow/layers/layer_raster_cache_item.h +FILE: ../../../flutter/flow/layers/layer_tree.cc +FILE: ../../../flutter/flow/layers/layer_tree.h +FILE: ../../../flutter/flow/layers/layer_tree_unittests.cc +FILE: ../../../flutter/flow/layers/offscreen_surface.cc +FILE: ../../../flutter/flow/layers/offscreen_surface.h +FILE: ../../../flutter/flow/layers/offscreen_surface_unittests.cc +FILE: ../../../flutter/flow/layers/opacity_layer.cc +FILE: ../../../flutter/flow/layers/opacity_layer.h +FILE: ../../../flutter/flow/layers/opacity_layer_unittests.cc +FILE: ../../../flutter/flow/layers/performance_overlay_layer.cc +FILE: ../../../flutter/flow/layers/performance_overlay_layer.h +FILE: ../../../flutter/flow/layers/performance_overlay_layer_unittests.cc +FILE: ../../../flutter/flow/layers/physical_shape_layer.cc +FILE: ../../../flutter/flow/layers/physical_shape_layer.h +FILE: ../../../flutter/flow/layers/physical_shape_layer_unittests.cc +FILE: ../../../flutter/flow/layers/platform_view_layer.cc +FILE: ../../../flutter/flow/layers/platform_view_layer.h +FILE: ../../../flutter/flow/layers/platform_view_layer_unittests.cc +FILE: ../../../flutter/flow/layers/shader_mask_layer.cc +FILE: ../../../flutter/flow/layers/shader_mask_layer.h +FILE: ../../../flutter/flow/layers/shader_mask_layer_unittests.cc +FILE: ../../../flutter/flow/layers/texture_layer.cc +FILE: ../../../flutter/flow/layers/texture_layer.h +FILE: ../../../flutter/flow/layers/texture_layer_unittests.cc +FILE: ../../../flutter/flow/layers/transform_layer.cc +FILE: ../../../flutter/flow/layers/transform_layer.h +FILE: ../../../flutter/flow/layers/transform_layer_unittests.cc +FILE: ../../../flutter/flow/mutators_stack_unittests.cc +FILE: ../../../flutter/flow/paint_region.cc +FILE: ../../../flutter/flow/paint_region.h +FILE: ../../../flutter/flow/paint_utils.cc +FILE: ../../../flutter/flow/paint_utils.h +FILE: ../../../flutter/flow/raster_cache.cc +FILE: ../../../flutter/flow/raster_cache.h +FILE: ../../../flutter/flow/raster_cache_item.h +FILE: ../../../flutter/flow/raster_cache_key.cc +FILE: ../../../flutter/flow/raster_cache_key.h +FILE: ../../../flutter/flow/raster_cache_unittests.cc +FILE: ../../../flutter/flow/raster_cache_util.cc +FILE: ../../../flutter/flow/raster_cache_util.h +FILE: ../../../flutter/flow/rtree.cc +FILE: ../../../flutter/flow/rtree.h +FILE: ../../../flutter/flow/rtree_unittests.cc +FILE: ../../../flutter/flow/skia_gpu_object.h +FILE: ../../../flutter/flow/skia_gpu_object_unittests.cc +FILE: ../../../flutter/flow/surface.cc +FILE: ../../../flutter/flow/surface.h +FILE: ../../../flutter/flow/surface_frame.cc +FILE: ../../../flutter/flow/surface_frame.h +FILE: ../../../flutter/flow/surface_frame_unittests.cc +FILE: ../../../flutter/flow/texture_unittests.cc +FILE: ../../../flutter/flutter_vma/flutter_skia_vma.cc +FILE: ../../../flutter/flutter_vma/flutter_skia_vma.h +FILE: ../../../flutter/flutter_vma/flutter_vma.cc +FILE: ../../../flutter/flutter_vma/flutter_vma.h +FILE: ../../../flutter/fml/ascii_trie.cc +FILE: ../../../flutter/fml/ascii_trie.h +FILE: ../../../flutter/fml/ascii_trie_unittests.cc +FILE: ../../../flutter/fml/backtrace.cc +FILE: ../../../flutter/fml/backtrace.h +FILE: ../../../flutter/fml/backtrace_stub.cc +FILE: ../../../flutter/fml/backtrace_unittests.cc +FILE: ../../../flutter/fml/base32.cc +FILE: ../../../flutter/fml/base32.h +FILE: ../../../flutter/fml/base32_unittest.cc +FILE: ../../../flutter/fml/build_config.h +FILE: ../../../flutter/fml/closure.h +FILE: ../../../flutter/fml/command_line.cc +FILE: ../../../flutter/fml/command_line.h +FILE: ../../../flutter/fml/command_line_unittest.cc +FILE: ../../../flutter/fml/compiler_specific.h +FILE: ../../../flutter/fml/concurrent_message_loop.cc +FILE: ../../../flutter/fml/concurrent_message_loop.h +FILE: ../../../flutter/fml/dart/dart_converter.cc +FILE: ../../../flutter/fml/dart/dart_converter.h +FILE: ../../../flutter/fml/delayed_task.cc +FILE: ../../../flutter/fml/delayed_task.h +FILE: ../../../flutter/fml/eintr_wrapper.h +FILE: ../../../flutter/fml/endianness.cc +FILE: ../../../flutter/fml/endianness.h +FILE: ../../../flutter/fml/endianness_unittests.cc +FILE: ../../../flutter/fml/file.cc +FILE: ../../../flutter/fml/file.h +FILE: ../../../flutter/fml/file_unittest.cc +FILE: ../../../flutter/fml/hash_combine.h +FILE: ../../../flutter/fml/hash_combine_unittests.cc +FILE: ../../../flutter/fml/hex_codec.cc +FILE: ../../../flutter/fml/hex_codec.h +FILE: ../../../flutter/fml/hex_codec_unittest.cc +FILE: ../../../flutter/fml/icu_util.cc +FILE: ../../../flutter/fml/icu_util.h +FILE: ../../../flutter/fml/log_level.h +FILE: ../../../flutter/fml/log_settings.cc +FILE: ../../../flutter/fml/log_settings.h +FILE: ../../../flutter/fml/log_settings_state.cc +FILE: ../../../flutter/fml/logging.cc +FILE: ../../../flutter/fml/logging.h +FILE: ../../../flutter/fml/logging_unittests.cc +FILE: ../../../flutter/fml/macros.h +FILE: ../../../flutter/fml/make_copyable.h +FILE: ../../../flutter/fml/mapping.cc +FILE: ../../../flutter/fml/mapping.h +FILE: ../../../flutter/fml/mapping_unittests.cc +FILE: ../../../flutter/fml/math.h +FILE: ../../../flutter/fml/math_unittests.cc +FILE: ../../../flutter/fml/memory/ref_counted.h +FILE: ../../../flutter/fml/memory/ref_counted_internal.h +FILE: ../../../flutter/fml/memory/ref_counted_unittest.cc +FILE: ../../../flutter/fml/memory/ref_ptr.h +FILE: ../../../flutter/fml/memory/ref_ptr_internal.h +FILE: ../../../flutter/fml/memory/task_runner_checker.cc +FILE: ../../../flutter/fml/memory/task_runner_checker.h +FILE: ../../../flutter/fml/memory/task_runner_checker_unittest.cc +FILE: ../../../flutter/fml/memory/thread_checker.h +FILE: ../../../flutter/fml/memory/weak_ptr.h +FILE: ../../../flutter/fml/memory/weak_ptr_internal.cc +FILE: ../../../flutter/fml/memory/weak_ptr_internal.h +FILE: ../../../flutter/fml/memory/weak_ptr_unittest.cc +FILE: ../../../flutter/fml/message_loop.cc +FILE: ../../../flutter/fml/message_loop.h +FILE: ../../../flutter/fml/message_loop_impl.cc +FILE: ../../../flutter/fml/message_loop_impl.h +FILE: ../../../flutter/fml/message_loop_impl_unittests.cc +FILE: ../../../flutter/fml/message_loop_task_queues.cc +FILE: ../../../flutter/fml/message_loop_task_queues.h +FILE: ../../../flutter/fml/message_loop_task_queues_benchmark.cc +FILE: ../../../flutter/fml/message_loop_task_queues_merge_unmerge_unittests.cc +FILE: ../../../flutter/fml/message_loop_task_queues_unittests.cc +FILE: ../../../flutter/fml/message_loop_unittests.cc +FILE: ../../../flutter/fml/native_library.h +FILE: ../../../flutter/fml/paths.cc +FILE: ../../../flutter/fml/paths.h +FILE: ../../../flutter/fml/paths_unittests.cc +FILE: ../../../flutter/fml/platform/android/jni_util.cc +FILE: ../../../flutter/fml/platform/android/jni_util.h +FILE: ../../../flutter/fml/platform/android/jni_weak_ref.cc +FILE: ../../../flutter/fml/platform/android/jni_weak_ref.h +FILE: ../../../flutter/fml/platform/android/message_loop_android.cc +FILE: ../../../flutter/fml/platform/android/message_loop_android.h +FILE: ../../../flutter/fml/platform/android/paths_android.cc +FILE: ../../../flutter/fml/platform/android/paths_android.h +FILE: ../../../flutter/fml/platform/android/scoped_java_ref.cc +FILE: ../../../flutter/fml/platform/android/scoped_java_ref.h +FILE: ../../../flutter/fml/platform/darwin/cf_utils.cc +FILE: ../../../flutter/fml/platform/darwin/cf_utils.h +FILE: ../../../flutter/fml/platform/darwin/cf_utils_unittests.mm +FILE: ../../../flutter/fml/platform/darwin/message_loop_darwin.h +FILE: ../../../flutter/fml/platform/darwin/message_loop_darwin.mm +FILE: ../../../flutter/fml/platform/darwin/paths_darwin.mm +FILE: ../../../flutter/fml/platform/darwin/platform_version.h +FILE: ../../../flutter/fml/platform/darwin/platform_version.mm +FILE: ../../../flutter/fml/platform/darwin/scoped_block.h +FILE: ../../../flutter/fml/platform/darwin/scoped_block.mm +FILE: ../../../flutter/fml/platform/darwin/scoped_nsobject.h +FILE: ../../../flutter/fml/platform/darwin/scoped_nsobject.mm +FILE: ../../../flutter/fml/platform/darwin/string_range_sanitization.h +FILE: ../../../flutter/fml/platform/darwin/string_range_sanitization.mm +FILE: ../../../flutter/fml/platform/darwin/string_range_sanitization_unittests.mm +FILE: ../../../flutter/fml/platform/fuchsia/message_loop_fuchsia.cc +FILE: ../../../flutter/fml/platform/fuchsia/message_loop_fuchsia.h +FILE: ../../../flutter/fml/platform/fuchsia/paths_fuchsia.cc +FILE: ../../../flutter/fml/platform/fuchsia/task_observers.cc +FILE: ../../../flutter/fml/platform/fuchsia/task_observers.h +FILE: ../../../flutter/fml/platform/linux/message_loop_linux.cc +FILE: ../../../flutter/fml/platform/linux/message_loop_linux.h +FILE: ../../../flutter/fml/platform/linux/paths_linux.cc +FILE: ../../../flutter/fml/platform/linux/timerfd.cc +FILE: ../../../flutter/fml/platform/linux/timerfd.h +FILE: ../../../flutter/fml/platform/posix/command_line_posix.cc +FILE: ../../../flutter/fml/platform/posix/file_posix.cc +FILE: ../../../flutter/fml/platform/posix/mapping_posix.cc +FILE: ../../../flutter/fml/platform/posix/native_library_posix.cc +FILE: ../../../flutter/fml/platform/posix/paths_posix.cc +FILE: ../../../flutter/fml/platform/posix/posix_wrappers_posix.cc +FILE: ../../../flutter/fml/platform/posix/shared_mutex_posix.cc +FILE: ../../../flutter/fml/platform/posix/shared_mutex_posix.h +FILE: ../../../flutter/fml/platform/win/command_line_win.cc +FILE: ../../../flutter/fml/platform/win/errors_win.cc +FILE: ../../../flutter/fml/platform/win/errors_win.h +FILE: ../../../flutter/fml/platform/win/file_win.cc +FILE: ../../../flutter/fml/platform/win/mapping_win.cc +FILE: ../../../flutter/fml/platform/win/message_loop_win.cc +FILE: ../../../flutter/fml/platform/win/message_loop_win.h +FILE: ../../../flutter/fml/platform/win/native_library_win.cc +FILE: ../../../flutter/fml/platform/win/paths_win.cc +FILE: ../../../flutter/fml/platform/win/posix_wrappers_win.cc +FILE: ../../../flutter/fml/platform/win/wstring_conversion.cc +FILE: ../../../flutter/fml/platform/win/wstring_conversion.h +FILE: ../../../flutter/fml/platform/win/wstring_conversion_unittests.cc +FILE: ../../../flutter/fml/posix_wrappers.h +FILE: ../../../flutter/fml/raster_thread_merger.cc +FILE: ../../../flutter/fml/raster_thread_merger.h +FILE: ../../../flutter/fml/raster_thread_merger_unittests.cc +FILE: ../../../flutter/fml/shared_thread_merger.cc +FILE: ../../../flutter/fml/shared_thread_merger.h +FILE: ../../../flutter/fml/size.h +FILE: ../../../flutter/fml/status.h +FILE: ../../../flutter/fml/string_conversion.cc +FILE: ../../../flutter/fml/string_conversion.h +FILE: ../../../flutter/fml/string_conversion_unittests.cc +FILE: ../../../flutter/fml/synchronization/atomic_object.h +FILE: ../../../flutter/fml/synchronization/count_down_latch.cc +FILE: ../../../flutter/fml/synchronization/count_down_latch.h +FILE: ../../../flutter/fml/synchronization/count_down_latch_unittests.cc +FILE: ../../../flutter/fml/synchronization/semaphore.cc +FILE: ../../../flutter/fml/synchronization/semaphore.h +FILE: ../../../flutter/fml/synchronization/semaphore_unittest.cc +FILE: ../../../flutter/fml/synchronization/shared_mutex.h +FILE: ../../../flutter/fml/synchronization/shared_mutex_std.cc +FILE: ../../../flutter/fml/synchronization/shared_mutex_std.h +FILE: ../../../flutter/fml/synchronization/sync_switch.cc +FILE: ../../../flutter/fml/synchronization/sync_switch.h +FILE: ../../../flutter/fml/synchronization/sync_switch_unittest.cc +FILE: ../../../flutter/fml/synchronization/waitable_event.cc +FILE: ../../../flutter/fml/synchronization/waitable_event.h +FILE: ../../../flutter/fml/synchronization/waitable_event_unittest.cc +FILE: ../../../flutter/fml/task_queue_id.h +FILE: ../../../flutter/fml/task_runner.cc +FILE: ../../../flutter/fml/task_runner.h +FILE: ../../../flutter/fml/task_source.cc +FILE: ../../../flutter/fml/task_source.h +FILE: ../../../flutter/fml/task_source_grade.h +FILE: ../../../flutter/fml/task_source_unittests.cc +FILE: ../../../flutter/fml/thread.cc +FILE: ../../../flutter/fml/thread.h +FILE: ../../../flutter/fml/thread_local.cc +FILE: ../../../flutter/fml/thread_local.h +FILE: ../../../flutter/fml/thread_local_unittests.cc +FILE: ../../../flutter/fml/thread_unittests.cc +FILE: ../../../flutter/fml/time/chrono_timestamp_provider.cc +FILE: ../../../flutter/fml/time/chrono_timestamp_provider.h +FILE: ../../../flutter/fml/time/time_delta.h +FILE: ../../../flutter/fml/time/time_delta_unittest.cc +FILE: ../../../flutter/fml/time/time_point.cc +FILE: ../../../flutter/fml/time/time_point.h +FILE: ../../../flutter/fml/time/time_point_unittest.cc +FILE: ../../../flutter/fml/time/time_unittest.cc +FILE: ../../../flutter/fml/time/timestamp_provider.h +FILE: ../../../flutter/fml/trace_event.cc +FILE: ../../../flutter/fml/trace_event.h +FILE: ../../../flutter/fml/unique_fd.cc +FILE: ../../../flutter/fml/unique_fd.h +FILE: ../../../flutter/fml/unique_object.h +FILE: ../../../flutter/fml/wakeable.h +FILE: ../../../flutter/impeller/aiks/aiks_context.cc +FILE: ../../../flutter/impeller/aiks/aiks_context.h +FILE: ../../../flutter/impeller/aiks/aiks_playground.cc +FILE: ../../../flutter/impeller/aiks/aiks_playground.h +FILE: ../../../flutter/impeller/aiks/aiks_unittests.cc +FILE: ../../../flutter/impeller/aiks/canvas.cc +FILE: ../../../flutter/impeller/aiks/canvas.h +FILE: ../../../flutter/impeller/aiks/image.cc +FILE: ../../../flutter/impeller/aiks/image.h +FILE: ../../../flutter/impeller/aiks/paint.cc +FILE: ../../../flutter/impeller/aiks/paint.h +FILE: ../../../flutter/impeller/aiks/paint_pass_delegate.cc +FILE: ../../../flutter/impeller/aiks/paint_pass_delegate.h +FILE: ../../../flutter/impeller/aiks/picture.cc +FILE: ../../../flutter/impeller/aiks/picture.h +FILE: ../../../flutter/impeller/aiks/picture_recorder.cc +FILE: ../../../flutter/impeller/aiks/picture_recorder.h +FILE: ../../../flutter/impeller/archivist/archivable.cc +FILE: ../../../flutter/impeller/archivist/archivable.h +FILE: ../../../flutter/impeller/archivist/archive.cc +FILE: ../../../flutter/impeller/archivist/archive.h +FILE: ../../../flutter/impeller/archivist/archive_class_registration.cc +FILE: ../../../flutter/impeller/archivist/archive_class_registration.h +FILE: ../../../flutter/impeller/archivist/archive_database.cc +FILE: ../../../flutter/impeller/archivist/archive_database.h +FILE: ../../../flutter/impeller/archivist/archive_location.cc +FILE: ../../../flutter/impeller/archivist/archive_location.h +FILE: ../../../flutter/impeller/archivist/archive_statement.cc +FILE: ../../../flutter/impeller/archivist/archive_statement.h +FILE: ../../../flutter/impeller/archivist/archive_transaction.cc +FILE: ../../../flutter/impeller/archivist/archive_transaction.h +FILE: ../../../flutter/impeller/archivist/archive_vector.cc +FILE: ../../../flutter/impeller/archivist/archive_vector.h +FILE: ../../../flutter/impeller/archivist/archivist_fixture.cc +FILE: ../../../flutter/impeller/archivist/archivist_fixture.h +FILE: ../../../flutter/impeller/archivist/archivist_unittests.cc +FILE: ../../../flutter/impeller/base/allocation.cc +FILE: ../../../flutter/impeller/base/allocation.h +FILE: ../../../flutter/impeller/base/backend_cast.h +FILE: ../../../flutter/impeller/base/base_unittests.cc +FILE: ../../../flutter/impeller/base/comparable.cc +FILE: ../../../flutter/impeller/base/comparable.h +FILE: ../../../flutter/impeller/base/config.h +FILE: ../../../flutter/impeller/base/platform/darwin/work_queue_darwin.cc +FILE: ../../../flutter/impeller/base/platform/darwin/work_queue_darwin.h +FILE: ../../../flutter/impeller/base/promise.cc +FILE: ../../../flutter/impeller/base/promise.h +FILE: ../../../flutter/impeller/base/strings.cc +FILE: ../../../flutter/impeller/base/strings.h +FILE: ../../../flutter/impeller/base/thread.cc +FILE: ../../../flutter/impeller/base/thread.h +FILE: ../../../flutter/impeller/base/thread_safety.cc +FILE: ../../../flutter/impeller/base/thread_safety.h +FILE: ../../../flutter/impeller/base/validation.cc +FILE: ../../../flutter/impeller/base/validation.h +FILE: ../../../flutter/impeller/base/version.cc +FILE: ../../../flutter/impeller/base/version.h +FILE: ../../../flutter/impeller/base/work_queue.cc +FILE: ../../../flutter/impeller/base/work_queue.h +FILE: ../../../flutter/impeller/base/work_queue_common.cc +FILE: ../../../flutter/impeller/base/work_queue_common.h +FILE: ../../../flutter/impeller/blobcat/blob.fbs +FILE: ../../../flutter/impeller/blobcat/blob_library.cc +FILE: ../../../flutter/impeller/blobcat/blob_library.h +FILE: ../../../flutter/impeller/blobcat/blob_types.h +FILE: ../../../flutter/impeller/blobcat/blob_writer.cc +FILE: ../../../flutter/impeller/blobcat/blob_writer.h +FILE: ../../../flutter/impeller/blobcat/blobcat_main.cc +FILE: ../../../flutter/impeller/blobcat/blobcat_unittests.cc +FILE: ../../../flutter/impeller/compiler/code_gen_template.h +FILE: ../../../flutter/impeller/compiler/compiler.cc +FILE: ../../../flutter/impeller/compiler/compiler.h +FILE: ../../../flutter/impeller/compiler/compiler_backend.cc +FILE: ../../../flutter/impeller/compiler/compiler_backend.h +FILE: ../../../flutter/impeller/compiler/compiler_test.cc +FILE: ../../../flutter/impeller/compiler/compiler_test.h +FILE: ../../../flutter/impeller/compiler/compiler_unittests.cc +FILE: ../../../flutter/impeller/compiler/impellerc_main.cc +FILE: ../../../flutter/impeller/compiler/include_dir.h +FILE: ../../../flutter/impeller/compiler/includer.cc +FILE: ../../../flutter/impeller/compiler/includer.h +FILE: ../../../flutter/impeller/compiler/logger.h +FILE: ../../../flutter/impeller/compiler/reflector.cc +FILE: ../../../flutter/impeller/compiler/reflector.h +FILE: ../../../flutter/impeller/compiler/runtime_stage_data.cc +FILE: ../../../flutter/impeller/compiler/runtime_stage_data.h +FILE: ../../../flutter/impeller/compiler/shader_lib/flutter/runtime_effect.glsl +FILE: ../../../flutter/impeller/compiler/shader_lib/impeller/blending.glsl +FILE: ../../../flutter/impeller/compiler/shader_lib/impeller/branching.glsl +FILE: ../../../flutter/impeller/compiler/shader_lib/impeller/color.glsl +FILE: ../../../flutter/impeller/compiler/shader_lib/impeller/constants.glsl +FILE: ../../../flutter/impeller/compiler/shader_lib/impeller/gaussian.glsl +FILE: ../../../flutter/impeller/compiler/shader_lib/impeller/texture.glsl +FILE: ../../../flutter/impeller/compiler/shader_lib/impeller/transform.glsl +FILE: ../../../flutter/impeller/compiler/shader_lib/impeller/types.glsl +FILE: ../../../flutter/impeller/compiler/source_options.cc +FILE: ../../../flutter/impeller/compiler/source_options.h +FILE: ../../../flutter/impeller/compiler/spirv_sksl.cc +FILE: ../../../flutter/impeller/compiler/spirv_sksl.h +FILE: ../../../flutter/impeller/compiler/switches.cc +FILE: ../../../flutter/impeller/compiler/switches.h +FILE: ../../../flutter/impeller/compiler/types.cc +FILE: ../../../flutter/impeller/compiler/types.h +FILE: ../../../flutter/impeller/compiler/utilities.cc +FILE: ../../../flutter/impeller/compiler/utilities.h +FILE: ../../../flutter/impeller/display_list/display_list_dispatcher.cc +FILE: ../../../flutter/impeller/display_list/display_list_dispatcher.h +FILE: ../../../flutter/impeller/display_list/display_list_image_impeller.cc +FILE: ../../../flutter/impeller/display_list/display_list_image_impeller.h +FILE: ../../../flutter/impeller/display_list/display_list_playground.cc +FILE: ../../../flutter/impeller/display_list/display_list_playground.h +FILE: ../../../flutter/impeller/display_list/display_list_unittests.cc +FILE: ../../../flutter/impeller/display_list/nine_patch_converter.cc +FILE: ../../../flutter/impeller/display_list/nine_patch_converter.h +FILE: ../../../flutter/impeller/display_list/vertices_converter.cc +FILE: ../../../flutter/impeller/display_list/vertices_converter.h +FILE: ../../../flutter/impeller/docs/assets/launch-app.png +FILE: ../../../flutter/impeller/docs/assets/read_frame_captures/image1.png +FILE: ../../../flutter/impeller/docs/assets/read_frame_captures/image10.png +FILE: ../../../flutter/impeller/docs/assets/read_frame_captures/image11.png +FILE: ../../../flutter/impeller/docs/assets/read_frame_captures/image12.png +FILE: ../../../flutter/impeller/docs/assets/read_frame_captures/image13.png +FILE: ../../../flutter/impeller/docs/assets/read_frame_captures/image14.png +FILE: ../../../flutter/impeller/docs/assets/read_frame_captures/image15.png +FILE: ../../../flutter/impeller/docs/assets/read_frame_captures/image16.png +FILE: ../../../flutter/impeller/docs/assets/read_frame_captures/image17.png +FILE: ../../../flutter/impeller/docs/assets/read_frame_captures/image18.png +FILE: ../../../flutter/impeller/docs/assets/read_frame_captures/image2.png +FILE: ../../../flutter/impeller/docs/assets/read_frame_captures/image3.png +FILE: ../../../flutter/impeller/docs/assets/read_frame_captures/image4.png +FILE: ../../../flutter/impeller/docs/assets/read_frame_captures/image5.png +FILE: ../../../flutter/impeller/docs/assets/read_frame_captures/image6.png +FILE: ../../../flutter/impeller/docs/assets/read_frame_captures/image7.png +FILE: ../../../flutter/impeller/docs/assets/read_frame_captures/image8.png +FILE: ../../../flutter/impeller/docs/assets/read_frame_captures/image9.png +FILE: ../../../flutter/impeller/docs/assets/render-doc-capture.png +FILE: ../../../flutter/impeller/docs/assets/shader_pipeline.png +FILE: ../../../flutter/impeller/docs/assets/showcase.png +FILE: ../../../flutter/impeller/docs/assets/xcode_frame_capture/image1.png +FILE: ../../../flutter/impeller/docs/assets/xcode_frame_capture/image10.png +FILE: ../../../flutter/impeller/docs/assets/xcode_frame_capture/image11.png +FILE: ../../../flutter/impeller/docs/assets/xcode_frame_capture/image12.png +FILE: ../../../flutter/impeller/docs/assets/xcode_frame_capture/image2.png +FILE: ../../../flutter/impeller/docs/assets/xcode_frame_capture/image3.png +FILE: ../../../flutter/impeller/docs/assets/xcode_frame_capture/image4.png +FILE: ../../../flutter/impeller/docs/assets/xcode_frame_capture/image5.png +FILE: ../../../flutter/impeller/docs/assets/xcode_frame_capture/image6.png +FILE: ../../../flutter/impeller/docs/assets/xcode_frame_capture/image7.png +FILE: ../../../flutter/impeller/docs/assets/xcode_frame_capture/image8.png +FILE: ../../../flutter/impeller/docs/assets/xcode_frame_capture/image9.png +FILE: ../../../flutter/impeller/entity/contents/atlas_contents.cc +FILE: ../../../flutter/impeller/entity/contents/atlas_contents.h +FILE: ../../../flutter/impeller/entity/contents/clip_contents.cc +FILE: ../../../flutter/impeller/entity/contents/clip_contents.h +FILE: ../../../flutter/impeller/entity/contents/color_source_contents.cc +FILE: ../../../flutter/impeller/entity/contents/color_source_contents.h +FILE: ../../../flutter/impeller/entity/contents/content_context.cc +FILE: ../../../flutter/impeller/entity/contents/content_context.h +FILE: ../../../flutter/impeller/entity/contents/contents.cc +FILE: ../../../flutter/impeller/entity/contents/contents.h +FILE: ../../../flutter/impeller/entity/contents/filters/blend_filter_contents.cc +FILE: ../../../flutter/impeller/entity/contents/filters/blend_filter_contents.h +FILE: ../../../flutter/impeller/entity/contents/filters/border_mask_blur_filter_contents.cc +FILE: ../../../flutter/impeller/entity/contents/filters/border_mask_blur_filter_contents.h +FILE: ../../../flutter/impeller/entity/contents/filters/color_filter_contents.cc +FILE: ../../../flutter/impeller/entity/contents/filters/color_filter_contents.h +FILE: ../../../flutter/impeller/entity/contents/filters/color_matrix_filter_contents.cc +FILE: ../../../flutter/impeller/entity/contents/filters/color_matrix_filter_contents.h +FILE: ../../../flutter/impeller/entity/contents/filters/filter_contents.cc +FILE: ../../../flutter/impeller/entity/contents/filters/filter_contents.h +FILE: ../../../flutter/impeller/entity/contents/filters/gaussian_blur_filter_contents.cc +FILE: ../../../flutter/impeller/entity/contents/filters/gaussian_blur_filter_contents.h +FILE: ../../../flutter/impeller/entity/contents/filters/inputs/contents_filter_input.cc +FILE: ../../../flutter/impeller/entity/contents/filters/inputs/contents_filter_input.h +FILE: ../../../flutter/impeller/entity/contents/filters/inputs/filter_contents_filter_input.cc +FILE: ../../../flutter/impeller/entity/contents/filters/inputs/filter_contents_filter_input.h +FILE: ../../../flutter/impeller/entity/contents/filters/inputs/filter_input.cc +FILE: ../../../flutter/impeller/entity/contents/filters/inputs/filter_input.h +FILE: ../../../flutter/impeller/entity/contents/filters/inputs/filter_input_unittests.cc +FILE: ../../../flutter/impeller/entity/contents/filters/inputs/texture_filter_input.cc +FILE: ../../../flutter/impeller/entity/contents/filters/inputs/texture_filter_input.h +FILE: ../../../flutter/impeller/entity/contents/filters/linear_to_srgb_filter_contents.cc +FILE: ../../../flutter/impeller/entity/contents/filters/linear_to_srgb_filter_contents.h +FILE: ../../../flutter/impeller/entity/contents/filters/local_matrix_filter_contents.cc +FILE: ../../../flutter/impeller/entity/contents/filters/local_matrix_filter_contents.h +FILE: ../../../flutter/impeller/entity/contents/filters/matrix_filter_contents.cc +FILE: ../../../flutter/impeller/entity/contents/filters/matrix_filter_contents.h +FILE: ../../../flutter/impeller/entity/contents/filters/morphology_filter_contents.cc +FILE: ../../../flutter/impeller/entity/contents/filters/morphology_filter_contents.h +FILE: ../../../flutter/impeller/entity/contents/filters/srgb_to_linear_filter_contents.cc +FILE: ../../../flutter/impeller/entity/contents/filters/srgb_to_linear_filter_contents.h +FILE: ../../../flutter/impeller/entity/contents/filters/yuv_to_rgb_filter_contents.cc +FILE: ../../../flutter/impeller/entity/contents/filters/yuv_to_rgb_filter_contents.h +FILE: ../../../flutter/impeller/entity/contents/gradient_generator.cc +FILE: ../../../flutter/impeller/entity/contents/gradient_generator.h +FILE: ../../../flutter/impeller/entity/contents/linear_gradient_contents.cc +FILE: ../../../flutter/impeller/entity/contents/linear_gradient_contents.h +FILE: ../../../flutter/impeller/entity/contents/radial_gradient_contents.cc +FILE: ../../../flutter/impeller/entity/contents/radial_gradient_contents.h +FILE: ../../../flutter/impeller/entity/contents/rrect_shadow_contents.cc +FILE: ../../../flutter/impeller/entity/contents/rrect_shadow_contents.h +FILE: ../../../flutter/impeller/entity/contents/runtime_effect_contents.cc +FILE: ../../../flutter/impeller/entity/contents/runtime_effect_contents.h +FILE: ../../../flutter/impeller/entity/contents/solid_color_contents.cc +FILE: ../../../flutter/impeller/entity/contents/solid_color_contents.h +FILE: ../../../flutter/impeller/entity/contents/sweep_gradient_contents.cc +FILE: ../../../flutter/impeller/entity/contents/sweep_gradient_contents.h +FILE: ../../../flutter/impeller/entity/contents/text_contents.cc +FILE: ../../../flutter/impeller/entity/contents/text_contents.h +FILE: ../../../flutter/impeller/entity/contents/texture_contents.cc +FILE: ../../../flutter/impeller/entity/contents/texture_contents.h +FILE: ../../../flutter/impeller/entity/contents/tiled_texture_contents.cc +FILE: ../../../flutter/impeller/entity/contents/tiled_texture_contents.h +FILE: ../../../flutter/impeller/entity/contents/vertices_contents.cc +FILE: ../../../flutter/impeller/entity/contents/vertices_contents.h +FILE: ../../../flutter/impeller/entity/entity.cc +FILE: ../../../flutter/impeller/entity/entity.h +FILE: ../../../flutter/impeller/entity/entity_pass.cc +FILE: ../../../flutter/impeller/entity/entity_pass.h +FILE: ../../../flutter/impeller/entity/entity_pass_delegate.cc +FILE: ../../../flutter/impeller/entity/entity_pass_delegate.h +FILE: ../../../flutter/impeller/entity/entity_playground.cc +FILE: ../../../flutter/impeller/entity/entity_playground.h +FILE: ../../../flutter/impeller/entity/entity_unittests.cc +FILE: ../../../flutter/impeller/entity/geometry.cc +FILE: ../../../flutter/impeller/entity/geometry.h +FILE: ../../../flutter/impeller/entity/inline_pass_context.cc +FILE: ../../../flutter/impeller/entity/inline_pass_context.h +FILE: ../../../flutter/impeller/entity/shaders/atlas_fill.frag +FILE: ../../../flutter/impeller/entity/shaders/atlas_fill.vert +FILE: ../../../flutter/impeller/entity/shaders/blending/advanced_blend.glsl +FILE: ../../../flutter/impeller/entity/shaders/blending/advanced_blend.vert +FILE: ../../../flutter/impeller/entity/shaders/blending/advanced_blend_color.frag +FILE: ../../../flutter/impeller/entity/shaders/blending/advanced_blend_colorburn.frag +FILE: ../../../flutter/impeller/entity/shaders/blending/advanced_blend_colordodge.frag +FILE: ../../../flutter/impeller/entity/shaders/blending/advanced_blend_darken.frag +FILE: ../../../flutter/impeller/entity/shaders/blending/advanced_blend_difference.frag +FILE: ../../../flutter/impeller/entity/shaders/blending/advanced_blend_exclusion.frag +FILE: ../../../flutter/impeller/entity/shaders/blending/advanced_blend_hardlight.frag +FILE: ../../../flutter/impeller/entity/shaders/blending/advanced_blend_hue.frag +FILE: ../../../flutter/impeller/entity/shaders/blending/advanced_blend_lighten.frag +FILE: ../../../flutter/impeller/entity/shaders/blending/advanced_blend_luminosity.frag +FILE: ../../../flutter/impeller/entity/shaders/blending/advanced_blend_multiply.frag +FILE: ../../../flutter/impeller/entity/shaders/blending/advanced_blend_overlay.frag +FILE: ../../../flutter/impeller/entity/shaders/blending/advanced_blend_saturation.frag +FILE: ../../../flutter/impeller/entity/shaders/blending/advanced_blend_screen.frag +FILE: ../../../flutter/impeller/entity/shaders/blending/advanced_blend_softlight.frag +FILE: ../../../flutter/impeller/entity/shaders/blending/blend.frag +FILE: ../../../flutter/impeller/entity/shaders/blending/blend.vert +FILE: ../../../flutter/impeller/entity/shaders/border_mask_blur.frag +FILE: ../../../flutter/impeller/entity/shaders/border_mask_blur.vert +FILE: ../../../flutter/impeller/entity/shaders/color_matrix_color_filter.frag +FILE: ../../../flutter/impeller/entity/shaders/color_matrix_color_filter.vert +FILE: ../../../flutter/impeller/entity/shaders/gaussian_blur.frag +FILE: ../../../flutter/impeller/entity/shaders/gaussian_blur.vert +FILE: ../../../flutter/impeller/entity/shaders/glyph_atlas.frag +FILE: ../../../flutter/impeller/entity/shaders/glyph_atlas.vert +FILE: ../../../flutter/impeller/entity/shaders/glyph_atlas_sdf.frag +FILE: ../../../flutter/impeller/entity/shaders/glyph_atlas_sdf.vert +FILE: ../../../flutter/impeller/entity/shaders/gradient_fill.vert +FILE: ../../../flutter/impeller/entity/shaders/linear_gradient_fill.frag +FILE: ../../../flutter/impeller/entity/shaders/linear_to_srgb_filter.frag +FILE: ../../../flutter/impeller/entity/shaders/linear_to_srgb_filter.vert +FILE: ../../../flutter/impeller/entity/shaders/morphology_filter.frag +FILE: ../../../flutter/impeller/entity/shaders/morphology_filter.vert +FILE: ../../../flutter/impeller/entity/shaders/position.vert +FILE: ../../../flutter/impeller/entity/shaders/position_color.vert +FILE: ../../../flutter/impeller/entity/shaders/position_uv.vert +FILE: ../../../flutter/impeller/entity/shaders/radial_gradient_fill.frag +FILE: ../../../flutter/impeller/entity/shaders/rrect_blur.frag +FILE: ../../../flutter/impeller/entity/shaders/rrect_blur.vert +FILE: ../../../flutter/impeller/entity/shaders/runtime_effect.vert +FILE: ../../../flutter/impeller/entity/shaders/solid_fill.frag +FILE: ../../../flutter/impeller/entity/shaders/solid_fill.vert +FILE: ../../../flutter/impeller/entity/shaders/srgb_to_linear_filter.frag +FILE: ../../../flutter/impeller/entity/shaders/srgb_to_linear_filter.vert +FILE: ../../../flutter/impeller/entity/shaders/sweep_gradient_fill.frag +FILE: ../../../flutter/impeller/entity/shaders/texture_fill.frag +FILE: ../../../flutter/impeller/entity/shaders/texture_fill.vert +FILE: ../../../flutter/impeller/entity/shaders/tiled_texture_fill.frag +FILE: ../../../flutter/impeller/entity/shaders/tiled_texture_fill.vert +FILE: ../../../flutter/impeller/entity/shaders/vertices.frag +FILE: ../../../flutter/impeller/entity/shaders/yuv_to_rgb_filter.frag +FILE: ../../../flutter/impeller/entity/shaders/yuv_to_rgb_filter.vert +FILE: ../../../flutter/impeller/geometry/color.cc +FILE: ../../../flutter/impeller/geometry/color.h +FILE: ../../../flutter/impeller/geometry/constants.cc +FILE: ../../../flutter/impeller/geometry/constants.h +FILE: ../../../flutter/impeller/geometry/geometry_benchmarks.cc +FILE: ../../../flutter/impeller/geometry/geometry_unittests.cc +FILE: ../../../flutter/impeller/geometry/geometry_unittests.h +FILE: ../../../flutter/impeller/geometry/gradient.cc +FILE: ../../../flutter/impeller/geometry/gradient.h +FILE: ../../../flutter/impeller/geometry/matrix.cc +FILE: ../../../flutter/impeller/geometry/matrix.h +FILE: ../../../flutter/impeller/geometry/matrix_decomposition.cc +FILE: ../../../flutter/impeller/geometry/matrix_decomposition.h +FILE: ../../../flutter/impeller/geometry/path.cc +FILE: ../../../flutter/impeller/geometry/path.h +FILE: ../../../flutter/impeller/geometry/path_builder.cc +FILE: ../../../flutter/impeller/geometry/path_builder.h +FILE: ../../../flutter/impeller/geometry/path_component.cc +FILE: ../../../flutter/impeller/geometry/path_component.h +FILE: ../../../flutter/impeller/geometry/point.cc +FILE: ../../../flutter/impeller/geometry/point.h +FILE: ../../../flutter/impeller/geometry/quaternion.cc +FILE: ../../../flutter/impeller/geometry/quaternion.h +FILE: ../../../flutter/impeller/geometry/rect.cc +FILE: ../../../flutter/impeller/geometry/rect.h +FILE: ../../../flutter/impeller/geometry/scalar.h +FILE: ../../../flutter/impeller/geometry/shear.cc +FILE: ../../../flutter/impeller/geometry/shear.h +FILE: ../../../flutter/impeller/geometry/sigma.cc +FILE: ../../../flutter/impeller/geometry/sigma.h +FILE: ../../../flutter/impeller/geometry/size.cc +FILE: ../../../flutter/impeller/geometry/size.h +FILE: ../../../flutter/impeller/geometry/type_traits.cc +FILE: ../../../flutter/impeller/geometry/type_traits.h +FILE: ../../../flutter/impeller/geometry/vector.cc +FILE: ../../../flutter/impeller/geometry/vector.h +FILE: ../../../flutter/impeller/geometry/vertices.cc +FILE: ../../../flutter/impeller/geometry/vertices.h +FILE: ../../../flutter/impeller/image/backends/skia/compressed_image_skia.cc +FILE: ../../../flutter/impeller/image/backends/skia/compressed_image_skia.h +FILE: ../../../flutter/impeller/image/compressed_image.cc +FILE: ../../../flutter/impeller/image/compressed_image.h +FILE: ../../../flutter/impeller/image/decompressed_image.cc +FILE: ../../../flutter/impeller/image/decompressed_image.h +FILE: ../../../flutter/impeller/renderer/allocator.cc +FILE: ../../../flutter/impeller/renderer/allocator.h +FILE: ../../../flutter/impeller/renderer/backend/gles/allocator_gles.cc +FILE: ../../../flutter/impeller/renderer/backend/gles/allocator_gles.h +FILE: ../../../flutter/impeller/renderer/backend/gles/blit_command_gles.cc +FILE: ../../../flutter/impeller/renderer/backend/gles/blit_command_gles.h +FILE: ../../../flutter/impeller/renderer/backend/gles/blit_pass_gles.cc +FILE: ../../../flutter/impeller/renderer/backend/gles/blit_pass_gles.h +FILE: ../../../flutter/impeller/renderer/backend/gles/buffer_bindings_gles.cc +FILE: ../../../flutter/impeller/renderer/backend/gles/buffer_bindings_gles.h +FILE: ../../../flutter/impeller/renderer/backend/gles/capabilities_gles.cc +FILE: ../../../flutter/impeller/renderer/backend/gles/capabilities_gles.h +FILE: ../../../flutter/impeller/renderer/backend/gles/command_buffer_gles.cc +FILE: ../../../flutter/impeller/renderer/backend/gles/command_buffer_gles.h +FILE: ../../../flutter/impeller/renderer/backend/gles/context_gles.cc +FILE: ../../../flutter/impeller/renderer/backend/gles/context_gles.h +FILE: ../../../flutter/impeller/renderer/backend/gles/description_gles.cc +FILE: ../../../flutter/impeller/renderer/backend/gles/description_gles.h +FILE: ../../../flutter/impeller/renderer/backend/gles/device_buffer_gles.cc +FILE: ../../../flutter/impeller/renderer/backend/gles/device_buffer_gles.h +FILE: ../../../flutter/impeller/renderer/backend/gles/formats_gles.cc +FILE: ../../../flutter/impeller/renderer/backend/gles/formats_gles.h +FILE: ../../../flutter/impeller/renderer/backend/gles/gles.h +FILE: ../../../flutter/impeller/renderer/backend/gles/handle_gles.cc +FILE: ../../../flutter/impeller/renderer/backend/gles/handle_gles.h +FILE: ../../../flutter/impeller/renderer/backend/gles/pipeline_gles.cc +FILE: ../../../flutter/impeller/renderer/backend/gles/pipeline_gles.h +FILE: ../../../flutter/impeller/renderer/backend/gles/pipeline_library_gles.cc +FILE: ../../../flutter/impeller/renderer/backend/gles/pipeline_library_gles.h +FILE: ../../../flutter/impeller/renderer/backend/gles/proc_table_gles.cc +FILE: ../../../flutter/impeller/renderer/backend/gles/proc_table_gles.h +FILE: ../../../flutter/impeller/renderer/backend/gles/reactor_gles.cc +FILE: ../../../flutter/impeller/renderer/backend/gles/reactor_gles.h +FILE: ../../../flutter/impeller/renderer/backend/gles/render_pass_gles.cc +FILE: ../../../flutter/impeller/renderer/backend/gles/render_pass_gles.h +FILE: ../../../flutter/impeller/renderer/backend/gles/sampler_gles.cc +FILE: ../../../flutter/impeller/renderer/backend/gles/sampler_gles.h +FILE: ../../../flutter/impeller/renderer/backend/gles/sampler_library_gles.cc +FILE: ../../../flutter/impeller/renderer/backend/gles/sampler_library_gles.h +FILE: ../../../flutter/impeller/renderer/backend/gles/shader_function_gles.cc +FILE: ../../../flutter/impeller/renderer/backend/gles/shader_function_gles.h +FILE: ../../../flutter/impeller/renderer/backend/gles/shader_library_gles.cc +FILE: ../../../flutter/impeller/renderer/backend/gles/shader_library_gles.h +FILE: ../../../flutter/impeller/renderer/backend/gles/surface_gles.cc +FILE: ../../../flutter/impeller/renderer/backend/gles/surface_gles.h +FILE: ../../../flutter/impeller/renderer/backend/gles/texture_gles.cc +FILE: ../../../flutter/impeller/renderer/backend/gles/texture_gles.h +FILE: ../../../flutter/impeller/renderer/backend/metal/allocator_mtl.h +FILE: ../../../flutter/impeller/renderer/backend/metal/allocator_mtl.mm +FILE: ../../../flutter/impeller/renderer/backend/metal/blit_command_mtl.h +FILE: ../../../flutter/impeller/renderer/backend/metal/blit_command_mtl.mm +FILE: ../../../flutter/impeller/renderer/backend/metal/blit_pass_mtl.h +FILE: ../../../flutter/impeller/renderer/backend/metal/blit_pass_mtl.mm +FILE: ../../../flutter/impeller/renderer/backend/metal/command_buffer_mtl.h +FILE: ../../../flutter/impeller/renderer/backend/metal/command_buffer_mtl.mm +FILE: ../../../flutter/impeller/renderer/backend/metal/compute_pass_mtl.h +FILE: ../../../flutter/impeller/renderer/backend/metal/compute_pass_mtl.mm +FILE: ../../../flutter/impeller/renderer/backend/metal/compute_pipeline_mtl.h +FILE: ../../../flutter/impeller/renderer/backend/metal/compute_pipeline_mtl.mm +FILE: ../../../flutter/impeller/renderer/backend/metal/context_mtl.h +FILE: ../../../flutter/impeller/renderer/backend/metal/context_mtl.mm +FILE: ../../../flutter/impeller/renderer/backend/metal/device_buffer_mtl.h +FILE: ../../../flutter/impeller/renderer/backend/metal/device_buffer_mtl.mm +FILE: ../../../flutter/impeller/renderer/backend/metal/formats_mtl.h +FILE: ../../../flutter/impeller/renderer/backend/metal/formats_mtl.mm +FILE: ../../../flutter/impeller/renderer/backend/metal/gpu_tracer_mtl.h +FILE: ../../../flutter/impeller/renderer/backend/metal/gpu_tracer_mtl.mm +FILE: ../../../flutter/impeller/renderer/backend/metal/pipeline_library_mtl.h +FILE: ../../../flutter/impeller/renderer/backend/metal/pipeline_library_mtl.mm +FILE: ../../../flutter/impeller/renderer/backend/metal/pipeline_mtl.h +FILE: ../../../flutter/impeller/renderer/backend/metal/pipeline_mtl.mm +FILE: ../../../flutter/impeller/renderer/backend/metal/render_pass_mtl.h +FILE: ../../../flutter/impeller/renderer/backend/metal/render_pass_mtl.mm +FILE: ../../../flutter/impeller/renderer/backend/metal/sampler_library_mtl.h +FILE: ../../../flutter/impeller/renderer/backend/metal/sampler_library_mtl.mm +FILE: ../../../flutter/impeller/renderer/backend/metal/sampler_mtl.h +FILE: ../../../flutter/impeller/renderer/backend/metal/sampler_mtl.mm +FILE: ../../../flutter/impeller/renderer/backend/metal/shader_function_mtl.h +FILE: ../../../flutter/impeller/renderer/backend/metal/shader_function_mtl.mm +FILE: ../../../flutter/impeller/renderer/backend/metal/shader_library_mtl.h +FILE: ../../../flutter/impeller/renderer/backend/metal/shader_library_mtl.mm +FILE: ../../../flutter/impeller/renderer/backend/metal/surface_mtl.h +FILE: ../../../flutter/impeller/renderer/backend/metal/surface_mtl.mm +FILE: ../../../flutter/impeller/renderer/backend/metal/texture_mtl.h +FILE: ../../../flutter/impeller/renderer/backend/metal/texture_mtl.mm +FILE: ../../../flutter/impeller/renderer/backend/metal/vertex_descriptor_mtl.h +FILE: ../../../flutter/impeller/renderer/backend/metal/vertex_descriptor_mtl.mm +FILE: ../../../flutter/impeller/renderer/backend/vulkan/allocator_vk.cc +FILE: ../../../flutter/impeller/renderer/backend/vulkan/allocator_vk.h +FILE: ../../../flutter/impeller/renderer/backend/vulkan/blit_pass_vk.cc +FILE: ../../../flutter/impeller/renderer/backend/vulkan/blit_pass_vk.h +FILE: ../../../flutter/impeller/renderer/backend/vulkan/capabilities_vk.cc +FILE: ../../../flutter/impeller/renderer/backend/vulkan/capabilities_vk.h +FILE: ../../../flutter/impeller/renderer/backend/vulkan/command_buffer_vk.cc +FILE: ../../../flutter/impeller/renderer/backend/vulkan/command_buffer_vk.h +FILE: ../../../flutter/impeller/renderer/backend/vulkan/command_pool_vk.cc +FILE: ../../../flutter/impeller/renderer/backend/vulkan/command_pool_vk.h +FILE: ../../../flutter/impeller/renderer/backend/vulkan/context_vk.cc +FILE: ../../../flutter/impeller/renderer/backend/vulkan/context_vk.h +FILE: ../../../flutter/impeller/renderer/backend/vulkan/descriptor_pool_vk.cc +FILE: ../../../flutter/impeller/renderer/backend/vulkan/descriptor_pool_vk.h +FILE: ../../../flutter/impeller/renderer/backend/vulkan/device_buffer_vk.cc +FILE: ../../../flutter/impeller/renderer/backend/vulkan/device_buffer_vk.h +FILE: ../../../flutter/impeller/renderer/backend/vulkan/formats_vk.cc +FILE: ../../../flutter/impeller/renderer/backend/vulkan/formats_vk.h +FILE: ../../../flutter/impeller/renderer/backend/vulkan/pipeline_library_vk.cc +FILE: ../../../flutter/impeller/renderer/backend/vulkan/pipeline_library_vk.h +FILE: ../../../flutter/impeller/renderer/backend/vulkan/pipeline_vk.cc +FILE: ../../../flutter/impeller/renderer/backend/vulkan/pipeline_vk.h +FILE: ../../../flutter/impeller/renderer/backend/vulkan/render_pass_vk.cc +FILE: ../../../flutter/impeller/renderer/backend/vulkan/render_pass_vk.h +FILE: ../../../flutter/impeller/renderer/backend/vulkan/sampler_library_vk.cc +FILE: ../../../flutter/impeller/renderer/backend/vulkan/sampler_library_vk.h +FILE: ../../../flutter/impeller/renderer/backend/vulkan/sampler_vk.cc +FILE: ../../../flutter/impeller/renderer/backend/vulkan/sampler_vk.h +FILE: ../../../flutter/impeller/renderer/backend/vulkan/shader_function_vk.cc +FILE: ../../../flutter/impeller/renderer/backend/vulkan/shader_function_vk.h +FILE: ../../../flutter/impeller/renderer/backend/vulkan/shader_library_vk.cc +FILE: ../../../flutter/impeller/renderer/backend/vulkan/shader_library_vk.h +FILE: ../../../flutter/impeller/renderer/backend/vulkan/surface_producer_vk.cc +FILE: ../../../flutter/impeller/renderer/backend/vulkan/surface_producer_vk.h +FILE: ../../../flutter/impeller/renderer/backend/vulkan/surface_vk.cc +FILE: ../../../flutter/impeller/renderer/backend/vulkan/surface_vk.h +FILE: ../../../flutter/impeller/renderer/backend/vulkan/swapchain_details_vk.cc +FILE: ../../../flutter/impeller/renderer/backend/vulkan/swapchain_details_vk.h +FILE: ../../../flutter/impeller/renderer/backend/vulkan/swapchain_vk.cc +FILE: ../../../flutter/impeller/renderer/backend/vulkan/swapchain_vk.h +FILE: ../../../flutter/impeller/renderer/backend/vulkan/texture_vk.cc +FILE: ../../../flutter/impeller/renderer/backend/vulkan/texture_vk.h +FILE: ../../../flutter/impeller/renderer/backend/vulkan/vertex_descriptor_vk.cc +FILE: ../../../flutter/impeller/renderer/backend/vulkan/vertex_descriptor_vk.h +FILE: ../../../flutter/impeller/renderer/backend/vulkan/vk.h +FILE: ../../../flutter/impeller/renderer/blit_command.cc +FILE: ../../../flutter/impeller/renderer/blit_command.h +FILE: ../../../flutter/impeller/renderer/blit_pass.cc +FILE: ../../../flutter/impeller/renderer/blit_pass.h +FILE: ../../../flutter/impeller/renderer/buffer.cc +FILE: ../../../flutter/impeller/renderer/buffer.h +FILE: ../../../flutter/impeller/renderer/buffer_view.cc +FILE: ../../../flutter/impeller/renderer/buffer_view.h +FILE: ../../../flutter/impeller/renderer/command.cc +FILE: ../../../flutter/impeller/renderer/command.h +FILE: ../../../flutter/impeller/renderer/command_buffer.cc +FILE: ../../../flutter/impeller/renderer/command_buffer.h +FILE: ../../../flutter/impeller/renderer/compute_command.cc +FILE: ../../../flutter/impeller/renderer/compute_command.h +FILE: ../../../flutter/impeller/renderer/compute_pass.cc +FILE: ../../../flutter/impeller/renderer/compute_pass.h +FILE: ../../../flutter/impeller/renderer/compute_pipeline_builder.cc +FILE: ../../../flutter/impeller/renderer/compute_pipeline_builder.h +FILE: ../../../flutter/impeller/renderer/compute_pipeline_descriptor.cc +FILE: ../../../flutter/impeller/renderer/compute_pipeline_descriptor.h +FILE: ../../../flutter/impeller/renderer/compute_unittests.cc +FILE: ../../../flutter/impeller/renderer/context.cc +FILE: ../../../flutter/impeller/renderer/context.h +FILE: ../../../flutter/impeller/renderer/descriptor_set_layout.h +FILE: ../../../flutter/impeller/renderer/device_buffer.cc +FILE: ../../../flutter/impeller/renderer/device_buffer.h +FILE: ../../../flutter/impeller/renderer/device_buffer_descriptor.cc +FILE: ../../../flutter/impeller/renderer/device_buffer_descriptor.h +FILE: ../../../flutter/impeller/renderer/device_buffer_unittests.cc +FILE: ../../../flutter/impeller/renderer/formats.cc +FILE: ../../../flutter/impeller/renderer/formats.h +FILE: ../../../flutter/impeller/renderer/gpu_tracer.cc +FILE: ../../../flutter/impeller/renderer/gpu_tracer.h +FILE: ../../../flutter/impeller/renderer/host_buffer.cc +FILE: ../../../flutter/impeller/renderer/host_buffer.h +FILE: ../../../flutter/impeller/renderer/host_buffer_unittests.cc +FILE: ../../../flutter/impeller/renderer/pipeline.cc +FILE: ../../../flutter/impeller/renderer/pipeline.h +FILE: ../../../flutter/impeller/renderer/pipeline_builder.cc +FILE: ../../../flutter/impeller/renderer/pipeline_builder.h +FILE: ../../../flutter/impeller/renderer/pipeline_descriptor.cc +FILE: ../../../flutter/impeller/renderer/pipeline_descriptor.h +FILE: ../../../flutter/impeller/renderer/pipeline_library.cc +FILE: ../../../flutter/impeller/renderer/pipeline_library.h +FILE: ../../../flutter/impeller/renderer/platform.cc +FILE: ../../../flutter/impeller/renderer/platform.h +FILE: ../../../flutter/impeller/renderer/range.cc +FILE: ../../../flutter/impeller/renderer/range.h +FILE: ../../../flutter/impeller/renderer/render_pass.cc +FILE: ../../../flutter/impeller/renderer/render_pass.h +FILE: ../../../flutter/impeller/renderer/render_target.cc +FILE: ../../../flutter/impeller/renderer/render_target.h +FILE: ../../../flutter/impeller/renderer/renderer.cc +FILE: ../../../flutter/impeller/renderer/renderer.h +FILE: ../../../flutter/impeller/renderer/renderer_unittests.cc +FILE: ../../../flutter/impeller/renderer/sampler.cc +FILE: ../../../flutter/impeller/renderer/sampler.h +FILE: ../../../flutter/impeller/renderer/sampler_descriptor.cc +FILE: ../../../flutter/impeller/renderer/sampler_descriptor.h +FILE: ../../../flutter/impeller/renderer/sampler_library.cc +FILE: ../../../flutter/impeller/renderer/sampler_library.h +FILE: ../../../flutter/impeller/renderer/shader_function.cc +FILE: ../../../flutter/impeller/renderer/shader_function.h +FILE: ../../../flutter/impeller/renderer/shader_key.cc +FILE: ../../../flutter/impeller/renderer/shader_key.h +FILE: ../../../flutter/impeller/renderer/shader_library.cc +FILE: ../../../flutter/impeller/renderer/shader_library.h +FILE: ../../../flutter/impeller/renderer/shader_types.cc +FILE: ../../../flutter/impeller/renderer/shader_types.h +FILE: ../../../flutter/impeller/renderer/snapshot.cc +FILE: ../../../flutter/impeller/renderer/snapshot.h +FILE: ../../../flutter/impeller/renderer/surface.cc +FILE: ../../../flutter/impeller/renderer/surface.h +FILE: ../../../flutter/impeller/renderer/texture.cc +FILE: ../../../flutter/impeller/renderer/texture.h +FILE: ../../../flutter/impeller/renderer/texture_descriptor.cc +FILE: ../../../flutter/impeller/renderer/texture_descriptor.h +FILE: ../../../flutter/impeller/renderer/vertex_buffer.cc +FILE: ../../../flutter/impeller/renderer/vertex_buffer.h +FILE: ../../../flutter/impeller/renderer/vertex_buffer_builder.cc +FILE: ../../../flutter/impeller/renderer/vertex_buffer_builder.h +FILE: ../../../flutter/impeller/renderer/vertex_descriptor.cc +FILE: ../../../flutter/impeller/renderer/vertex_descriptor.h +FILE: ../../../flutter/impeller/runtime_stage/runtime_stage.cc +FILE: ../../../flutter/impeller/runtime_stage/runtime_stage.fbs +FILE: ../../../flutter/impeller/runtime_stage/runtime_stage.h +FILE: ../../../flutter/impeller/runtime_stage/runtime_stage_playground.cc +FILE: ../../../flutter/impeller/runtime_stage/runtime_stage_playground.h +FILE: ../../../flutter/impeller/runtime_stage/runtime_stage_unittests.cc +FILE: ../../../flutter/impeller/runtime_stage/runtime_types.cc +FILE: ../../../flutter/impeller/runtime_stage/runtime_types.h +FILE: ../../../flutter/impeller/tessellator/c/tessellator.cc +FILE: ../../../flutter/impeller/tessellator/c/tessellator.h +FILE: ../../../flutter/impeller/tessellator/dart/lib/tessellator.dart +FILE: ../../../flutter/impeller/tessellator/tessellator.cc +FILE: ../../../flutter/impeller/tessellator/tessellator.h +FILE: ../../../flutter/impeller/tessellator/tessellator_unittests.cc +FILE: ../../../flutter/impeller/toolkit/egl/config.cc +FILE: ../../../flutter/impeller/toolkit/egl/config.h +FILE: ../../../flutter/impeller/toolkit/egl/context.cc +FILE: ../../../flutter/impeller/toolkit/egl/context.h +FILE: ../../../flutter/impeller/toolkit/egl/display.cc +FILE: ../../../flutter/impeller/toolkit/egl/display.h +FILE: ../../../flutter/impeller/toolkit/egl/egl.cc +FILE: ../../../flutter/impeller/toolkit/egl/egl.h +FILE: ../../../flutter/impeller/toolkit/egl/surface.cc +FILE: ../../../flutter/impeller/toolkit/egl/surface.h +FILE: ../../../flutter/impeller/typographer/backends/skia/text_frame_skia.cc +FILE: ../../../flutter/impeller/typographer/backends/skia/text_frame_skia.h +FILE: ../../../flutter/impeller/typographer/backends/skia/text_render_context_skia.cc +FILE: ../../../flutter/impeller/typographer/backends/skia/text_render_context_skia.h +FILE: ../../../flutter/impeller/typographer/backends/skia/typeface_skia.cc +FILE: ../../../flutter/impeller/typographer/backends/skia/typeface_skia.h +FILE: ../../../flutter/impeller/typographer/font.cc +FILE: ../../../flutter/impeller/typographer/font.h +FILE: ../../../flutter/impeller/typographer/font_glyph_pair.cc +FILE: ../../../flutter/impeller/typographer/font_glyph_pair.h +FILE: ../../../flutter/impeller/typographer/glyph.cc +FILE: ../../../flutter/impeller/typographer/glyph.h +FILE: ../../../flutter/impeller/typographer/glyph_atlas.cc +FILE: ../../../flutter/impeller/typographer/glyph_atlas.h +FILE: ../../../flutter/impeller/typographer/lazy_glyph_atlas.cc +FILE: ../../../flutter/impeller/typographer/lazy_glyph_atlas.h +FILE: ../../../flutter/impeller/typographer/text_frame.cc +FILE: ../../../flutter/impeller/typographer/text_frame.h +FILE: ../../../flutter/impeller/typographer/text_render_context.cc +FILE: ../../../flutter/impeller/typographer/text_render_context.h +FILE: ../../../flutter/impeller/typographer/text_run.cc +FILE: ../../../flutter/impeller/typographer/text_run.h +FILE: ../../../flutter/impeller/typographer/typeface.cc +FILE: ../../../flutter/impeller/typographer/typeface.h +FILE: ../../../flutter/impeller/typographer/typographer_unittests.cc +FILE: ../../../flutter/lib/io/dart_io.cc +FILE: ../../../flutter/lib/io/dart_io.h +FILE: ../../../flutter/lib/snapshot/libraries.json +FILE: ../../../flutter/lib/snapshot/snapshot.h +FILE: ../../../flutter/lib/ui/annotations.dart +FILE: ../../../flutter/lib/ui/channel_buffers.dart +FILE: ../../../flutter/lib/ui/compositing.dart +FILE: ../../../flutter/lib/ui/compositing/scene.cc +FILE: ../../../flutter/lib/ui/compositing/scene.h +FILE: ../../../flutter/lib/ui/compositing/scene_builder.cc +FILE: ../../../flutter/lib/ui/compositing/scene_builder.h +FILE: ../../../flutter/lib/ui/compositing/scene_builder_unittests.cc +FILE: ../../../flutter/lib/ui/dart_runtime_hooks.cc +FILE: ../../../flutter/lib/ui/dart_runtime_hooks.h +FILE: ../../../flutter/lib/ui/dart_ui.cc +FILE: ../../../flutter/lib/ui/dart_ui.h +FILE: ../../../flutter/lib/ui/dart_wrapper.h +FILE: ../../../flutter/lib/ui/geometry.dart +FILE: ../../../flutter/lib/ui/hash_codes.dart +FILE: ../../../flutter/lib/ui/hooks.dart +FILE: ../../../flutter/lib/ui/hooks_unittests.cc +FILE: ../../../flutter/lib/ui/io_manager.cc +FILE: ../../../flutter/lib/ui/io_manager.h +FILE: ../../../flutter/lib/ui/isolate_name_server.dart +FILE: ../../../flutter/lib/ui/isolate_name_server/isolate_name_server.cc +FILE: ../../../flutter/lib/ui/isolate_name_server/isolate_name_server.h +FILE: ../../../flutter/lib/ui/isolate_name_server/isolate_name_server_natives.cc +FILE: ../../../flutter/lib/ui/isolate_name_server/isolate_name_server_natives.h +FILE: ../../../flutter/lib/ui/key.dart +FILE: ../../../flutter/lib/ui/lerp.dart +FILE: ../../../flutter/lib/ui/math.dart +FILE: ../../../flutter/lib/ui/natives.dart +FILE: ../../../flutter/lib/ui/painting.dart +FILE: ../../../flutter/lib/ui/painting/canvas.cc +FILE: ../../../flutter/lib/ui/painting/canvas.h +FILE: ../../../flutter/lib/ui/painting/codec.cc +FILE: ../../../flutter/lib/ui/painting/codec.h +FILE: ../../../flutter/lib/ui/painting/color_filter.cc +FILE: ../../../flutter/lib/ui/painting/color_filter.h +FILE: ../../../flutter/lib/ui/painting/display_list_deferred_image_gpu_impeller.cc +FILE: ../../../flutter/lib/ui/painting/display_list_deferred_image_gpu_impeller.h +FILE: ../../../flutter/lib/ui/painting/display_list_deferred_image_gpu_skia.cc +FILE: ../../../flutter/lib/ui/painting/display_list_deferred_image_gpu_skia.h +FILE: ../../../flutter/lib/ui/painting/display_list_image_gpu.cc +FILE: ../../../flutter/lib/ui/painting/display_list_image_gpu.h +FILE: ../../../flutter/lib/ui/painting/engine_layer.cc +FILE: ../../../flutter/lib/ui/painting/engine_layer.h +FILE: ../../../flutter/lib/ui/painting/fragment_program.cc +FILE: ../../../flutter/lib/ui/painting/fragment_program.h +FILE: ../../../flutter/lib/ui/painting/fragment_shader.cc +FILE: ../../../flutter/lib/ui/painting/fragment_shader.h +FILE: ../../../flutter/lib/ui/painting/gradient.cc +FILE: ../../../flutter/lib/ui/painting/gradient.h +FILE: ../../../flutter/lib/ui/painting/image.cc +FILE: ../../../flutter/lib/ui/painting/image.h +FILE: ../../../flutter/lib/ui/painting/image_decoder.cc +FILE: ../../../flutter/lib/ui/painting/image_decoder.h +FILE: ../../../flutter/lib/ui/painting/image_decoder_impeller.cc +FILE: ../../../flutter/lib/ui/painting/image_decoder_impeller.h +FILE: ../../../flutter/lib/ui/painting/image_decoder_skia.cc +FILE: ../../../flutter/lib/ui/painting/image_decoder_skia.h +FILE: ../../../flutter/lib/ui/painting/image_decoder_unittests.cc +FILE: ../../../flutter/lib/ui/painting/image_descriptor.cc +FILE: ../../../flutter/lib/ui/painting/image_descriptor.h +FILE: ../../../flutter/lib/ui/painting/image_dispose_unittests.cc +FILE: ../../../flutter/lib/ui/painting/image_encoding.cc +FILE: ../../../flutter/lib/ui/painting/image_encoding.h +FILE: ../../../flutter/lib/ui/painting/image_encoding_impl.h +FILE: ../../../flutter/lib/ui/painting/image_encoding_unittests.cc +FILE: ../../../flutter/lib/ui/painting/image_filter.cc +FILE: ../../../flutter/lib/ui/painting/image_filter.h +FILE: ../../../flutter/lib/ui/painting/image_generator.cc +FILE: ../../../flutter/lib/ui/painting/image_generator.h +FILE: ../../../flutter/lib/ui/painting/image_generator_registry.cc +FILE: ../../../flutter/lib/ui/painting/image_generator_registry.h +FILE: ../../../flutter/lib/ui/painting/image_generator_registry_unittests.cc +FILE: ../../../flutter/lib/ui/painting/image_shader.cc +FILE: ../../../flutter/lib/ui/painting/image_shader.h +FILE: ../../../flutter/lib/ui/painting/immutable_buffer.cc +FILE: ../../../flutter/lib/ui/painting/immutable_buffer.h +FILE: ../../../flutter/lib/ui/painting/matrix.cc +FILE: ../../../flutter/lib/ui/painting/matrix.h +FILE: ../../../flutter/lib/ui/painting/multi_frame_codec.cc +FILE: ../../../flutter/lib/ui/painting/multi_frame_codec.h +FILE: ../../../flutter/lib/ui/painting/paint.cc +FILE: ../../../flutter/lib/ui/painting/paint.h +FILE: ../../../flutter/lib/ui/painting/paint_unittests.cc +FILE: ../../../flutter/lib/ui/painting/path.cc +FILE: ../../../flutter/lib/ui/painting/path.h +FILE: ../../../flutter/lib/ui/painting/path_measure.cc +FILE: ../../../flutter/lib/ui/painting/path_measure.h +FILE: ../../../flutter/lib/ui/painting/path_unittests.cc +FILE: ../../../flutter/lib/ui/painting/picture.cc +FILE: ../../../flutter/lib/ui/painting/picture.h +FILE: ../../../flutter/lib/ui/painting/picture_recorder.cc +FILE: ../../../flutter/lib/ui/painting/picture_recorder.h +FILE: ../../../flutter/lib/ui/painting/rrect.cc +FILE: ../../../flutter/lib/ui/painting/rrect.h +FILE: ../../../flutter/lib/ui/painting/shader.cc +FILE: ../../../flutter/lib/ui/painting/shader.h +FILE: ../../../flutter/lib/ui/painting/single_frame_codec.cc +FILE: ../../../flutter/lib/ui/painting/single_frame_codec.h +FILE: ../../../flutter/lib/ui/painting/single_frame_codec_unittests.cc +FILE: ../../../flutter/lib/ui/painting/vertices.cc +FILE: ../../../flutter/lib/ui/painting/vertices.h +FILE: ../../../flutter/lib/ui/platform_dispatcher.dart +FILE: ../../../flutter/lib/ui/plugins.dart +FILE: ../../../flutter/lib/ui/plugins/callback_cache.cc +FILE: ../../../flutter/lib/ui/plugins/callback_cache.h +FILE: ../../../flutter/lib/ui/pointer.dart +FILE: ../../../flutter/lib/ui/semantics.dart +FILE: ../../../flutter/lib/ui/semantics/custom_accessibility_action.cc +FILE: ../../../flutter/lib/ui/semantics/custom_accessibility_action.h +FILE: ../../../flutter/lib/ui/semantics/semantics_node.cc +FILE: ../../../flutter/lib/ui/semantics/semantics_node.h +FILE: ../../../flutter/lib/ui/semantics/semantics_update.cc +FILE: ../../../flutter/lib/ui/semantics/semantics_update.h +FILE: ../../../flutter/lib/ui/semantics/semantics_update_builder.cc +FILE: ../../../flutter/lib/ui/semantics/semantics_update_builder.h +FILE: ../../../flutter/lib/ui/semantics/semantics_update_builder_unittests.cc +FILE: ../../../flutter/lib/ui/semantics/string_attribute.cc +FILE: ../../../flutter/lib/ui/semantics/string_attribute.h +FILE: ../../../flutter/lib/ui/snapshot_delegate.h +FILE: ../../../flutter/lib/ui/text.dart +FILE: ../../../flutter/lib/ui/text/asset_manager_font_provider.cc +FILE: ../../../flutter/lib/ui/text/asset_manager_font_provider.h +FILE: ../../../flutter/lib/ui/text/font_collection.cc +FILE: ../../../flutter/lib/ui/text/font_collection.h +FILE: ../../../flutter/lib/ui/text/line_metrics.h +FILE: ../../../flutter/lib/ui/text/paragraph.cc +FILE: ../../../flutter/lib/ui/text/paragraph.h +FILE: ../../../flutter/lib/ui/text/paragraph_builder.cc +FILE: ../../../flutter/lib/ui/text/paragraph_builder.h +FILE: ../../../flutter/lib/ui/text/text_box.h +FILE: ../../../flutter/lib/ui/ui.dart +FILE: ../../../flutter/lib/ui/ui_benchmarks.cc +FILE: ../../../flutter/lib/ui/ui_dart_state.cc +FILE: ../../../flutter/lib/ui/ui_dart_state.h +FILE: ../../../flutter/lib/ui/volatile_path_tracker.cc +FILE: ../../../flutter/lib/ui/volatile_path_tracker.h +FILE: ../../../flutter/lib/ui/window.dart +FILE: ../../../flutter/lib/ui/window/key_data.cc +FILE: ../../../flutter/lib/ui/window/key_data.h +FILE: ../../../flutter/lib/ui/window/key_data_packet.cc +FILE: ../../../flutter/lib/ui/window/key_data_packet.h +FILE: ../../../flutter/lib/ui/window/platform_configuration.cc +FILE: ../../../flutter/lib/ui/window/platform_configuration.h +FILE: ../../../flutter/lib/ui/window/platform_configuration_unittests.cc +FILE: ../../../flutter/lib/ui/window/platform_message.cc +FILE: ../../../flutter/lib/ui/window/platform_message.h +FILE: ../../../flutter/lib/ui/window/platform_message_response.cc +FILE: ../../../flutter/lib/ui/window/platform_message_response.h +FILE: ../../../flutter/lib/ui/window/platform_message_response_dart.cc +FILE: ../../../flutter/lib/ui/window/platform_message_response_dart.h +FILE: ../../../flutter/lib/ui/window/platform_message_response_dart_port.cc +FILE: ../../../flutter/lib/ui/window/platform_message_response_dart_port.h +FILE: ../../../flutter/lib/ui/window/platform_message_response_dart_port_unittests.cc +FILE: ../../../flutter/lib/ui/window/platform_message_response_dart_unittests.cc +FILE: ../../../flutter/lib/ui/window/pointer_data.cc +FILE: ../../../flutter/lib/ui/window/pointer_data.h +FILE: ../../../flutter/lib/ui/window/pointer_data_packet.cc +FILE: ../../../flutter/lib/ui/window/pointer_data_packet.h +FILE: ../../../flutter/lib/ui/window/pointer_data_packet_converter.cc +FILE: ../../../flutter/lib/ui/window/pointer_data_packet_converter.h +FILE: ../../../flutter/lib/ui/window/pointer_data_packet_converter_unittests.cc +FILE: ../../../flutter/lib/ui/window/viewport_metrics.cc +FILE: ../../../flutter/lib/ui/window/viewport_metrics.h +FILE: ../../../flutter/lib/ui/window/window.cc +FILE: ../../../flutter/lib/ui/window/window.h +FILE: ../../../flutter/lib/web_ui/lib/annotations.dart +FILE: ../../../flutter/lib/web_ui/lib/canvas.dart +FILE: ../../../flutter/lib/web_ui/lib/channel_buffers.dart +FILE: ../../../flutter/lib/web_ui/lib/compositing.dart +FILE: ../../../flutter/lib/web_ui/lib/geometry.dart +FILE: ../../../flutter/lib/web_ui/lib/hash_codes.dart +FILE: ../../../flutter/lib/web_ui/lib/initialization.dart +FILE: ../../../flutter/lib/web_ui/lib/key.dart +FILE: ../../../flutter/lib/web_ui/lib/lerp.dart +FILE: ../../../flutter/lib/web_ui/lib/math.dart +FILE: ../../../flutter/lib/web_ui/lib/natives.dart +FILE: ../../../flutter/lib/web_ui/lib/painting.dart +FILE: ../../../flutter/lib/web_ui/lib/path.dart +FILE: ../../../flutter/lib/web_ui/lib/path_metrics.dart +FILE: ../../../flutter/lib/web_ui/lib/platform_dispatcher.dart +FILE: ../../../flutter/lib/web_ui/lib/pointer.dart +FILE: ../../../flutter/lib/web_ui/lib/semantics.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/alarm_clock.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/app_bootstrap.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/assets.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/browser_detection.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvas_pool.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/canvas.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/canvaskit_api.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/canvaskit_canvas.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/color_filter.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/embedded_views.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/embedded_views_diff.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/font_fallback_data.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/font_fallbacks.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/fonts.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/image.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/image_filter.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/image_wasm_codecs.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/image_web_codecs.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/interval_tree.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/layer.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/layer_scene_builder.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/layer_tree.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/mask_filter.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/n_way_canvas.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/noto_font.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/painting.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/path.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/path_metrics.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/picture.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/picture_recorder.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/platform_message.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/raster_cache.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/rasterizer.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/renderer.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/shader.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/skia_object_cache.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/surface.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/surface_factory.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/text.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/util.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/vertices.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/viewport_metrics.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/clipboard.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/color_filter.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/configuration.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/dom.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/embedder.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/engine_canvas.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/font_change_util.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/fonts.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/frame_reference.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/host_node.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/backdrop_filter.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/bitmap_canvas.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/canvas.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/clip.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/color_filter.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/debug_canvas_reuse_overlay.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/dom_canvas.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/image_filter.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/offset.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/opacity.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/painting.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/path/conic.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/path/cubic.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/path/path.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/path/path_iterator.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/path/path_metrics.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/path/path_ref.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/path/path_to_svg.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/path/path_utils.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/path/path_windings.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/path/tangent.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/path_to_svg_clip.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/picture.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/platform_view.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/recording_canvas.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/render_vertices.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/renderer.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/scene.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/scene_builder.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/shader_mask.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/shaders/image_shader.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/shaders/normalized_gradient.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/shaders/shader.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/shaders/shader_builder.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/shaders/vertex_shaders.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/surface.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/surface_stats.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/transform.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/html_image_codec.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/initialization.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/js_interop/js_loader.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/js_interop/js_promise.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/key_map.g.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/keyboard_binding.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/mouse_cursor.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/navigation.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/navigation/history.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/navigation/js_url_strategy.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/navigation/url_strategy.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/onscreen_logging.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/picture.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/platform_dispatcher.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/platform_views.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/platform_views/content_manager.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/platform_views/message_handler.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/platform_views/slots.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/plugins.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/pointer_binding.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/pointer_converter.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/profiler.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/raw_keyboard.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/renderer.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/rrect_renderer.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/safe_browser_api.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/semantics.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/semantics/accessibility.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/semantics/checkable.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/semantics/image.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/semantics/incrementable.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/semantics/label_and_value.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/semantics/live_region.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/semantics/scrollable.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/semantics/semantics.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/semantics/semantics_helper.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/semantics/tappable.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/semantics/text_field.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/services.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/services/buffers.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/services/message_codec.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/services/message_codecs.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/services/serialization.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/shadow.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/skwasm/skwasm_impl.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/skwasm/skwasm_impl/renderer.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/skwasm/skwasm_stub.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/skwasm/skwasm_stub/renderer.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/svg.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/test_embedding.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/text/canvas_paragraph.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/text/font_collection.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/text/fragmenter.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/text/layout_fragmenter.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/text/layout_service.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/text/line_break_properties.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/text/line_breaker.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/text/measurement.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/text/paint_service.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/text/paragraph.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/text/ruler.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/text/text_direction.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/text/unicode_range.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/text/word_break_properties.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/text/word_breaker.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/text_editing/autofill_hint.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/text_editing/composition_aware_mixin.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/text_editing/input_action.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/text_editing/input_type.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/text_editing/text_capitalization.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/text_editing/text_editing.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/ulps.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/util.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/validators.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/vector_math.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/window.dart +FILE: ../../../flutter/lib/web_ui/lib/text.dart +FILE: ../../../flutter/lib/web_ui/lib/tile_mode.dart +FILE: ../../../flutter/lib/web_ui/lib/ui.dart +FILE: ../../../flutter/lib/web_ui/lib/window.dart +FILE: ../../../flutter/lib/web_ui/tool/unicode_sync_script.dart +FILE: ../../../flutter/runtime/dart_isolate.cc +FILE: ../../../flutter/runtime/dart_isolate.h +FILE: ../../../flutter/runtime/dart_isolate_group_data.cc +FILE: ../../../flutter/runtime/dart_isolate_group_data.h +FILE: ../../../flutter/runtime/dart_isolate_unittests.cc +FILE: ../../../flutter/runtime/dart_lifecycle_unittests.cc +FILE: ../../../flutter/runtime/dart_plugin_registrant.cc +FILE: ../../../flutter/runtime/dart_plugin_registrant.h +FILE: ../../../flutter/runtime/dart_plugin_registrant_unittests.cc +FILE: ../../../flutter/runtime/dart_service_isolate.cc +FILE: ../../../flutter/runtime/dart_service_isolate.h +FILE: ../../../flutter/runtime/dart_service_isolate_unittests.cc +FILE: ../../../flutter/runtime/dart_snapshot.cc +FILE: ../../../flutter/runtime/dart_snapshot.h +FILE: ../../../flutter/runtime/dart_timestamp_provider.cc +FILE: ../../../flutter/runtime/dart_timestamp_provider.h +FILE: ../../../flutter/runtime/dart_vm.cc +FILE: ../../../flutter/runtime/dart_vm.h +FILE: ../../../flutter/runtime/dart_vm_data.cc +FILE: ../../../flutter/runtime/dart_vm_data.h +FILE: ../../../flutter/runtime/dart_vm_initializer.cc +FILE: ../../../flutter/runtime/dart_vm_initializer.h +FILE: ../../../flutter/runtime/dart_vm_lifecycle.cc +FILE: ../../../flutter/runtime/dart_vm_lifecycle.h +FILE: ../../../flutter/runtime/dart_vm_unittests.cc +FILE: ../../../flutter/runtime/embedder_resources.cc +FILE: ../../../flutter/runtime/embedder_resources.h +FILE: ../../../flutter/runtime/isolate_configuration.cc +FILE: ../../../flutter/runtime/isolate_configuration.h +FILE: ../../../flutter/runtime/no_dart_plugin_registrant_unittests.cc +FILE: ../../../flutter/runtime/platform_data.cc +FILE: ../../../flutter/runtime/platform_data.h +FILE: ../../../flutter/runtime/ptrace_check.cc +FILE: ../../../flutter/runtime/ptrace_check.h +FILE: ../../../flutter/runtime/runtime_controller.cc +FILE: ../../../flutter/runtime/runtime_controller.h +FILE: ../../../flutter/runtime/runtime_delegate.cc +FILE: ../../../flutter/runtime/runtime_delegate.h +FILE: ../../../flutter/runtime/service_protocol.cc +FILE: ../../../flutter/runtime/service_protocol.h +FILE: ../../../flutter/runtime/skia_concurrent_executor.cc +FILE: ../../../flutter/runtime/skia_concurrent_executor.h +FILE: ../../../flutter/runtime/test_font_data.cc +FILE: ../../../flutter/runtime/test_font_data.h +FILE: ../../../flutter/runtime/type_conversions_unittests.cc +FILE: ../../../flutter/shell/common/animator.cc +FILE: ../../../flutter/shell/common/animator.h +FILE: ../../../flutter/shell/common/animator_unittests.cc +FILE: ../../../flutter/shell/common/canvas_spy.cc +FILE: ../../../flutter/shell/common/canvas_spy.h +FILE: ../../../flutter/shell/common/canvas_spy_unittests.cc +FILE: ../../../flutter/shell/common/context_options.cc +FILE: ../../../flutter/shell/common/context_options.h +FILE: ../../../flutter/shell/common/context_options_unittests.cc +FILE: ../../../flutter/shell/common/dart_native_benchmarks.cc +FILE: ../../../flutter/shell/common/display.cc +FILE: ../../../flutter/shell/common/display.h +FILE: ../../../flutter/shell/common/display_manager.cc +FILE: ../../../flutter/shell/common/display_manager.h +FILE: ../../../flutter/shell/common/engine.cc +FILE: ../../../flutter/shell/common/engine.h +FILE: ../../../flutter/shell/common/engine_unittests.cc +FILE: ../../../flutter/shell/common/input_events_unittests.cc +FILE: ../../../flutter/shell/common/persistent_cache_unittests.cc +FILE: ../../../flutter/shell/common/pipeline.cc +FILE: ../../../flutter/shell/common/pipeline.h +FILE: ../../../flutter/shell/common/pipeline_unittests.cc +FILE: ../../../flutter/shell/common/platform_message_handler.h +FILE: ../../../flutter/shell/common/platform_view.cc +FILE: ../../../flutter/shell/common/platform_view.h +FILE: ../../../flutter/shell/common/pointer_data_dispatcher.cc +FILE: ../../../flutter/shell/common/pointer_data_dispatcher.h +FILE: ../../../flutter/shell/common/rasterizer.cc +FILE: ../../../flutter/shell/common/rasterizer.h +FILE: ../../../flutter/shell/common/rasterizer_unittests.cc +FILE: ../../../flutter/shell/common/resource_cache_limit_calculator.cc +FILE: ../../../flutter/shell/common/resource_cache_limit_calculator.h +FILE: ../../../flutter/shell/common/resource_cache_limit_calculator_unittests.cc +FILE: ../../../flutter/shell/common/run_configuration.cc +FILE: ../../../flutter/shell/common/run_configuration.h +FILE: ../../../flutter/shell/common/serialization_callbacks.cc +FILE: ../../../flutter/shell/common/serialization_callbacks.h +FILE: ../../../flutter/shell/common/shell.cc +FILE: ../../../flutter/shell/common/shell.h +FILE: ../../../flutter/shell/common/shell_benchmarks.cc +FILE: ../../../flutter/shell/common/shell_fuchsia_unittests.cc +FILE: ../../../flutter/shell/common/shell_io_manager.cc +FILE: ../../../flutter/shell/common/shell_io_manager.h +FILE: ../../../flutter/shell/common/shell_io_manager_unittests.cc +FILE: ../../../flutter/shell/common/shell_test.cc +FILE: ../../../flutter/shell/common/shell_test.h +FILE: ../../../flutter/shell/common/shell_test_external_view_embedder.cc +FILE: ../../../flutter/shell/common/shell_test_external_view_embedder.h +FILE: ../../../flutter/shell/common/shell_test_platform_view.cc +FILE: ../../../flutter/shell/common/shell_test_platform_view.h +FILE: ../../../flutter/shell/common/shell_test_platform_view_gl.cc +FILE: ../../../flutter/shell/common/shell_test_platform_view_gl.h +FILE: ../../../flutter/shell/common/shell_test_platform_view_metal.h +FILE: ../../../flutter/shell/common/shell_test_platform_view_metal.mm +FILE: ../../../flutter/shell/common/shell_test_platform_view_vulkan.cc +FILE: ../../../flutter/shell/common/shell_test_platform_view_vulkan.h +FILE: ../../../flutter/shell/common/shell_unittests.cc +FILE: ../../../flutter/shell/common/skia_event_tracer_impl.cc +FILE: ../../../flutter/shell/common/skia_event_tracer_impl.h +FILE: ../../../flutter/shell/common/snapshot_controller.cc +FILE: ../../../flutter/shell/common/snapshot_controller.h +FILE: ../../../flutter/shell/common/snapshot_controller_impeller.cc +FILE: ../../../flutter/shell/common/snapshot_controller_impeller.h +FILE: ../../../flutter/shell/common/snapshot_controller_skia.cc +FILE: ../../../flutter/shell/common/snapshot_controller_skia.h +FILE: ../../../flutter/shell/common/snapshot_surface_producer.h +FILE: ../../../flutter/shell/common/switches.cc +FILE: ../../../flutter/shell/common/switches.h +FILE: ../../../flutter/shell/common/switches_unittests.cc +FILE: ../../../flutter/shell/common/thread_host.cc +FILE: ../../../flutter/shell/common/thread_host.h +FILE: ../../../flutter/shell/common/variable_refresh_rate_display.cc +FILE: ../../../flutter/shell/common/variable_refresh_rate_display.h +FILE: ../../../flutter/shell/common/variable_refresh_rate_display_unittests.cc +FILE: ../../../flutter/shell/common/variable_refresh_rate_reporter.h +FILE: ../../../flutter/shell/common/vsync_waiter.cc +FILE: ../../../flutter/shell/common/vsync_waiter.h +FILE: ../../../flutter/shell/common/vsync_waiter_fallback.cc +FILE: ../../../flutter/shell/common/vsync_waiter_fallback.h +FILE: ../../../flutter/shell/common/vsync_waiter_unittests.cc +FILE: ../../../flutter/shell/common/vsync_waiters_test.cc +FILE: ../../../flutter/shell/common/vsync_waiters_test.h +FILE: ../../../flutter/shell/gpu/gpu_surface_gl_delegate.cc +FILE: ../../../flutter/shell/gpu/gpu_surface_gl_delegate.h +FILE: ../../../flutter/shell/gpu/gpu_surface_gl_impeller.cc +FILE: ../../../flutter/shell/gpu/gpu_surface_gl_impeller.h +FILE: ../../../flutter/shell/gpu/gpu_surface_gl_skia.cc +FILE: ../../../flutter/shell/gpu/gpu_surface_gl_skia.h +FILE: ../../../flutter/shell/gpu/gpu_surface_metal_delegate.cc +FILE: ../../../flutter/shell/gpu/gpu_surface_metal_delegate.h +FILE: ../../../flutter/shell/gpu/gpu_surface_metal_impeller.h +FILE: ../../../flutter/shell/gpu/gpu_surface_metal_impeller.mm +FILE: ../../../flutter/shell/gpu/gpu_surface_metal_skia.h +FILE: ../../../flutter/shell/gpu/gpu_surface_metal_skia.mm +FILE: ../../../flutter/shell/gpu/gpu_surface_software.cc +FILE: ../../../flutter/shell/gpu/gpu_surface_software.h +FILE: ../../../flutter/shell/gpu/gpu_surface_software_delegate.cc +FILE: ../../../flutter/shell/gpu/gpu_surface_software_delegate.h +FILE: ../../../flutter/shell/gpu/gpu_surface_vulkan.cc +FILE: ../../../flutter/shell/gpu/gpu_surface_vulkan.h +FILE: ../../../flutter/shell/gpu/gpu_surface_vulkan_delegate.cc +FILE: ../../../flutter/shell/gpu/gpu_surface_vulkan_delegate.h +FILE: ../../../flutter/shell/gpu/gpu_surface_vulkan_impeller.cc +FILE: ../../../flutter/shell/gpu/gpu_surface_vulkan_impeller.h +FILE: ../../../flutter/shell/platform/android/AndroidManifest.xml +FILE: ../../../flutter/shell/platform/android/android_choreographer.cc +FILE: ../../../flutter/shell/platform/android/android_choreographer.h +FILE: ../../../flutter/shell/platform/android/android_context_gl_impeller.cc +FILE: ../../../flutter/shell/platform/android/android_context_gl_impeller.h +FILE: ../../../flutter/shell/platform/android/android_context_gl_skia.cc +FILE: ../../../flutter/shell/platform/android/android_context_gl_skia.h +FILE: ../../../flutter/shell/platform/android/android_context_gl_unittests.cc +FILE: ../../../flutter/shell/platform/android/android_display.cc +FILE: ../../../flutter/shell/platform/android/android_display.h +FILE: ../../../flutter/shell/platform/android/android_egl_surface.cc +FILE: ../../../flutter/shell/platform/android/android_egl_surface.h +FILE: ../../../flutter/shell/platform/android/android_environment_gl.cc +FILE: ../../../flutter/shell/platform/android/android_environment_gl.h +FILE: ../../../flutter/shell/platform/android/android_exports.lst +FILE: ../../../flutter/shell/platform/android/android_external_texture_gl.cc +FILE: ../../../flutter/shell/platform/android/android_external_texture_gl.h +FILE: ../../../flutter/shell/platform/android/android_image_generator.cc +FILE: ../../../flutter/shell/platform/android/android_image_generator.h +FILE: ../../../flutter/shell/platform/android/android_shell_holder.cc +FILE: ../../../flutter/shell/platform/android/android_shell_holder.h +FILE: ../../../flutter/shell/platform/android/android_shell_holder_unittests.cc +FILE: ../../../flutter/shell/platform/android/android_surface_gl_impeller.cc +FILE: ../../../flutter/shell/platform/android/android_surface_gl_impeller.h +FILE: ../../../flutter/shell/platform/android/android_surface_gl_skia.cc +FILE: ../../../flutter/shell/platform/android/android_surface_gl_skia.h +FILE: ../../../flutter/shell/platform/android/android_surface_software.cc +FILE: ../../../flutter/shell/platform/android/android_surface_software.h +FILE: ../../../flutter/shell/platform/android/android_surface_vulkan_impeller.cc +FILE: ../../../flutter/shell/platform/android/android_surface_vulkan_impeller.h +FILE: ../../../flutter/shell/platform/android/apk_asset_provider.cc +FILE: ../../../flutter/shell/platform/android/apk_asset_provider.h +FILE: ../../../flutter/shell/platform/android/apk_asset_provider_unittests.cc +FILE: ../../../flutter/shell/platform/android/context/android_context.cc +FILE: ../../../flutter/shell/platform/android/context/android_context.h +FILE: ../../../flutter/shell/platform/android/external_view_embedder/external_view_embedder.cc +FILE: ../../../flutter/shell/platform/android/external_view_embedder/external_view_embedder.h +FILE: ../../../flutter/shell/platform/android/external_view_embedder/external_view_embedder_unittests.cc +FILE: ../../../flutter/shell/platform/android/external_view_embedder/surface_pool.cc +FILE: ../../../flutter/shell/platform/android/external_view_embedder/surface_pool.h +FILE: ../../../flutter/shell/platform/android/external_view_embedder/surface_pool_unittests.cc +FILE: ../../../flutter/shell/platform/android/flutter_main.cc +FILE: ../../../flutter/shell/platform/android/flutter_main.h +FILE: ../../../flutter/shell/platform/android/flutter_shell_native_unittests.cc +FILE: ../../../flutter/shell/platform/android/io/flutter/FlutterInjector.java +FILE: ../../../flutter/shell/platform/android/io/flutter/Log.java +FILE: ../../../flutter/shell/platform/android/io/flutter/app/FlutterActivity.java +FILE: ../../../flutter/shell/platform/android/io/flutter/app/FlutterActivityDelegate.java +FILE: ../../../flutter/shell/platform/android/io/flutter/app/FlutterActivityEvents.java +FILE: ../../../flutter/shell/platform/android/io/flutter/app/FlutterApplication.java +FILE: ../../../flutter/shell/platform/android/io/flutter/app/FlutterFragmentActivity.java +FILE: ../../../flutter/shell/platform/android/io/flutter/app/FlutterPlayStoreSplitApplication.java +FILE: ../../../flutter/shell/platform/android/io/flutter/app/FlutterPluginRegistry.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/android/AndroidTouchProcessor.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/android/DrawableSplashScreen.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/android/ExclusiveAppComponent.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/android/FlutterActivity.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/android/FlutterActivityAndFragmentDelegate.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/android/FlutterActivityLaunchConfigs.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/android/FlutterEngineConfigurator.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/android/FlutterEngineProvider.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/android/FlutterFragment.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/android/FlutterFragmentActivity.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/android/FlutterImageView.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/android/FlutterPlayStoreSplitApplication.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/android/FlutterSplashView.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/android/FlutterSurfaceView.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/android/FlutterTextureView.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/android/FlutterView.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/android/KeyChannelResponder.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/android/KeyData.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/android/KeyEmbedderResponder.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/android/KeyboardManager.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/android/KeyboardMap.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/android/MotionEventTracker.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/android/RenderMode.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/android/SplashScreen.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/android/SplashScreenProvider.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/android/TransparencyMode.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/android/WindowInfoRepositoryCallbackAdapterWrapper.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/FlutterEngine.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/FlutterEngineCache.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/FlutterEngineConnectionRegistry.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/FlutterEngineGroup.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/FlutterJNI.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/FlutterOverlaySurface.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/FlutterShellArgs.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/dart/DartExecutor.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/dart/DartMessenger.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/dart/PlatformMessageHandler.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/dart/PlatformTaskQueue.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/deferredcomponents/DeferredComponentManager.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/deferredcomponents/PlayStoreDeferredComponentManager.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/loader/ApplicationInfoLoader.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/loader/FlutterApplicationInfo.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/loader/FlutterLoader.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/loader/ResourceExtractor.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/mutatorsstack/FlutterMutatorView.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/mutatorsstack/FlutterMutatorsStack.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/plugins/FlutterPlugin.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/plugins/PluginRegistry.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/plugins/activity/ActivityAware.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/plugins/activity/ActivityControlSurface.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/plugins/activity/ActivityPluginBinding.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/plugins/broadcastreceiver/BroadcastReceiverAware.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/plugins/broadcastreceiver/BroadcastReceiverControlSurface.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/plugins/broadcastreceiver/BroadcastReceiverPluginBinding.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/plugins/contentprovider/ContentProviderAware.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/plugins/contentprovider/ContentProviderControlSurface.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/plugins/contentprovider/ContentProviderPluginBinding.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/plugins/lifecycle/HiddenLifecycleReference.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/plugins/service/ServiceAware.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/plugins/service/ServiceControlSurface.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/plugins/service/ServicePluginBinding.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/plugins/shim/ShimPluginRegistry.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/plugins/shim/ShimRegistrar.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/plugins/util/GeneratedPluginRegister.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/renderer/FlutterRenderer.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/renderer/FlutterUiDisplayListener.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/renderer/RenderSurface.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/renderer/SurfaceTextureWrapper.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/systemchannels/AccessibilityChannel.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/systemchannels/DeferredComponentChannel.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/systemchannels/KeyEventChannel.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/systemchannels/LifecycleChannel.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/systemchannels/LocalizationChannel.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/systemchannels/MouseCursorChannel.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/systemchannels/NavigationChannel.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/systemchannels/PlatformChannel.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/systemchannels/PlatformViewsChannel.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/systemchannels/RestorationChannel.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/systemchannels/SettingsChannel.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/systemchannels/SpellCheckChannel.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/systemchannels/SystemChannel.java +FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/systemchannels/TextInputChannel.java +FILE: ../../../flutter/shell/platform/android/io/flutter/plugin/common/ActivityLifecycleListener.java +FILE: ../../../flutter/shell/platform/android/io/flutter/plugin/common/BasicMessageChannel.java +FILE: ../../../flutter/shell/platform/android/io/flutter/plugin/common/BinaryCodec.java +FILE: ../../../flutter/shell/platform/android/io/flutter/plugin/common/BinaryMessenger.java +FILE: ../../../flutter/shell/platform/android/io/flutter/plugin/common/ErrorLogResult.java +FILE: ../../../flutter/shell/platform/android/io/flutter/plugin/common/EventChannel.java +FILE: ../../../flutter/shell/platform/android/io/flutter/plugin/common/FlutterException.java +FILE: ../../../flutter/shell/platform/android/io/flutter/plugin/common/JSONMessageCodec.java +FILE: ../../../flutter/shell/platform/android/io/flutter/plugin/common/JSONMethodCodec.java +FILE: ../../../flutter/shell/platform/android/io/flutter/plugin/common/JSONUtil.java +FILE: ../../../flutter/shell/platform/android/io/flutter/plugin/common/MessageCodec.java +FILE: ../../../flutter/shell/platform/android/io/flutter/plugin/common/MethodCall.java +FILE: ../../../flutter/shell/platform/android/io/flutter/plugin/common/MethodChannel.java +FILE: ../../../flutter/shell/platform/android/io/flutter/plugin/common/MethodCodec.java +FILE: ../../../flutter/shell/platform/android/io/flutter/plugin/common/PluginRegistry.java +FILE: ../../../flutter/shell/platform/android/io/flutter/plugin/common/StandardMessageCodec.java +FILE: ../../../flutter/shell/platform/android/io/flutter/plugin/common/StandardMethodCodec.java +FILE: ../../../flutter/shell/platform/android/io/flutter/plugin/common/StringCodec.java +FILE: ../../../flutter/shell/platform/android/io/flutter/plugin/editing/FlutterTextUtils.java +FILE: ../../../flutter/shell/platform/android/io/flutter/plugin/editing/ImeSyncDeferringInsetsCallback.java +FILE: ../../../flutter/shell/platform/android/io/flutter/plugin/editing/InputConnectionAdaptor.java +FILE: ../../../flutter/shell/platform/android/io/flutter/plugin/editing/ListenableEditingState.java +FILE: ../../../flutter/shell/platform/android/io/flutter/plugin/editing/SpellCheckPlugin.java +FILE: ../../../flutter/shell/platform/android/io/flutter/plugin/editing/TextEditingDelta.java +FILE: ../../../flutter/shell/platform/android/io/flutter/plugin/editing/TextInputPlugin.java +FILE: ../../../flutter/shell/platform/android/io/flutter/plugin/localization/LocalizationPlugin.java +FILE: ../../../flutter/shell/platform/android/io/flutter/plugin/mouse/MouseCursorPlugin.java +FILE: ../../../flutter/shell/platform/android/io/flutter/plugin/platform/AccessibilityEventsDelegate.java +FILE: ../../../flutter/shell/platform/android/io/flutter/plugin/platform/PlatformOverlayView.java +FILE: ../../../flutter/shell/platform/android/io/flutter/plugin/platform/PlatformPlugin.java +FILE: ../../../flutter/shell/platform/android/io/flutter/plugin/platform/PlatformView.java +FILE: ../../../flutter/shell/platform/android/io/flutter/plugin/platform/PlatformViewFactory.java +FILE: ../../../flutter/shell/platform/android/io/flutter/plugin/platform/PlatformViewRegistry.java +FILE: ../../../flutter/shell/platform/android/io/flutter/plugin/platform/PlatformViewRegistryImpl.java +FILE: ../../../flutter/shell/platform/android/io/flutter/plugin/platform/PlatformViewWrapper.java +FILE: ../../../flutter/shell/platform/android/io/flutter/plugin/platform/PlatformViewsAccessibilityDelegate.java +FILE: ../../../flutter/shell/platform/android/io/flutter/plugin/platform/PlatformViewsController.java +FILE: ../../../flutter/shell/platform/android/io/flutter/plugin/platform/SingleViewPresentation.java +FILE: ../../../flutter/shell/platform/android/io/flutter/plugin/platform/VirtualDisplayController.java +FILE: ../../../flutter/shell/platform/android/io/flutter/util/HandlerCompat.java +FILE: ../../../flutter/shell/platform/android/io/flutter/util/PathUtils.java +FILE: ../../../flutter/shell/platform/android/io/flutter/util/Preconditions.java +FILE: ../../../flutter/shell/platform/android/io/flutter/util/Predicate.java +FILE: ../../../flutter/shell/platform/android/io/flutter/util/TraceSection.java +FILE: ../../../flutter/shell/platform/android/io/flutter/util/ViewUtils.java +FILE: ../../../flutter/shell/platform/android/io/flutter/view/AccessibilityBridge.java +FILE: ../../../flutter/shell/platform/android/io/flutter/view/AccessibilityViewEmbedder.java +FILE: ../../../flutter/shell/platform/android/io/flutter/view/FlutterCallbackInformation.java +FILE: ../../../flutter/shell/platform/android/io/flutter/view/FlutterMain.java +FILE: ../../../flutter/shell/platform/android/io/flutter/view/FlutterNativeView.java +FILE: ../../../flutter/shell/platform/android/io/flutter/view/FlutterRunArguments.java +FILE: ../../../flutter/shell/platform/android/io/flutter/view/FlutterView.java +FILE: ../../../flutter/shell/platform/android/io/flutter/view/TextureRegistry.java +FILE: ../../../flutter/shell/platform/android/io/flutter/view/VsyncWaiter.java +FILE: ../../../flutter/shell/platform/android/jni/jni_mock.h +FILE: ../../../flutter/shell/platform/android/jni/jni_mock_unittest.cc +FILE: ../../../flutter/shell/platform/android/jni/platform_view_android_jni.cc +FILE: ../../../flutter/shell/platform/android/jni/platform_view_android_jni.h +FILE: ../../../flutter/shell/platform/android/library_loader.cc +FILE: ../../../flutter/shell/platform/android/platform_message_handler_android.cc +FILE: ../../../flutter/shell/platform/android/platform_message_handler_android.h +FILE: ../../../flutter/shell/platform/android/platform_message_response_android.cc +FILE: ../../../flutter/shell/platform/android/platform_message_response_android.h +FILE: ../../../flutter/shell/platform/android/platform_view_android.cc +FILE: ../../../flutter/shell/platform/android/platform_view_android.h +FILE: ../../../flutter/shell/platform/android/platform_view_android_delegate/platform_view_android_delegate.cc +FILE: ../../../flutter/shell/platform/android/platform_view_android_delegate/platform_view_android_delegate.h +FILE: ../../../flutter/shell/platform/android/platform_view_android_delegate/platform_view_android_delegate_unittests.cc +FILE: ../../../flutter/shell/platform/android/platform_view_android_jni_impl.cc +FILE: ../../../flutter/shell/platform/android/platform_view_android_jni_impl.h +FILE: ../../../flutter/shell/platform/android/surface/android_native_window.cc +FILE: ../../../flutter/shell/platform/android/surface/android_native_window.h +FILE: ../../../flutter/shell/platform/android/surface/android_surface.cc +FILE: ../../../flutter/shell/platform/android/surface/android_surface.h +FILE: ../../../flutter/shell/platform/android/surface/android_surface_mock.cc +FILE: ../../../flutter/shell/platform/android/surface/android_surface_mock.h +FILE: ../../../flutter/shell/platform/android/surface/snapshot_surface_producer.cc +FILE: ../../../flutter/shell/platform/android/surface/snapshot_surface_producer.h +FILE: ../../../flutter/shell/platform/android/vsync_waiter_android.cc +FILE: ../../../flutter/shell/platform/android/vsync_waiter_android.h +FILE: ../../../flutter/shell/platform/common/accessibility_bridge.cc +FILE: ../../../flutter/shell/platform/common/accessibility_bridge.h +FILE: ../../../flutter/shell/platform/common/accessibility_bridge_unittests.cc +FILE: ../../../flutter/shell/platform/common/client_wrapper/basic_message_channel_unittests.cc +FILE: ../../../flutter/shell/platform/common/client_wrapper/binary_messenger_impl.h +FILE: ../../../flutter/shell/platform/common/client_wrapper/byte_buffer_streams.h +FILE: ../../../flutter/shell/platform/common/client_wrapper/core_implementations.cc +FILE: ../../../flutter/shell/platform/common/client_wrapper/encodable_value_unittests.cc +FILE: ../../../flutter/shell/platform/common/client_wrapper/engine_method_result.cc +FILE: ../../../flutter/shell/platform/common/client_wrapper/event_channel_unittests.cc +FILE: ../../../flutter/shell/platform/common/client_wrapper/include/flutter/basic_message_channel.h +FILE: ../../../flutter/shell/platform/common/client_wrapper/include/flutter/binary_messenger.h +FILE: ../../../flutter/shell/platform/common/client_wrapper/include/flutter/byte_streams.h +FILE: ../../../flutter/shell/platform/common/client_wrapper/include/flutter/encodable_value.h +FILE: ../../../flutter/shell/platform/common/client_wrapper/include/flutter/engine_method_result.h +FILE: ../../../flutter/shell/platform/common/client_wrapper/include/flutter/event_channel.h +FILE: ../../../flutter/shell/platform/common/client_wrapper/include/flutter/event_sink.h +FILE: ../../../flutter/shell/platform/common/client_wrapper/include/flutter/event_stream_handler.h +FILE: ../../../flutter/shell/platform/common/client_wrapper/include/flutter/event_stream_handler_functions.h +FILE: ../../../flutter/shell/platform/common/client_wrapper/include/flutter/message_codec.h +FILE: ../../../flutter/shell/platform/common/client_wrapper/include/flutter/method_call.h +FILE: ../../../flutter/shell/platform/common/client_wrapper/include/flutter/method_channel.h +FILE: ../../../flutter/shell/platform/common/client_wrapper/include/flutter/method_codec.h +FILE: ../../../flutter/shell/platform/common/client_wrapper/include/flutter/method_result.h +FILE: ../../../flutter/shell/platform/common/client_wrapper/include/flutter/method_result_functions.h +FILE: ../../../flutter/shell/platform/common/client_wrapper/include/flutter/plugin_registrar.h +FILE: ../../../flutter/shell/platform/common/client_wrapper/include/flutter/plugin_registry.h +FILE: ../../../flutter/shell/platform/common/client_wrapper/include/flutter/standard_codec_serializer.h +FILE: ../../../flutter/shell/platform/common/client_wrapper/include/flutter/standard_message_codec.h +FILE: ../../../flutter/shell/platform/common/client_wrapper/include/flutter/standard_method_codec.h +FILE: ../../../flutter/shell/platform/common/client_wrapper/include/flutter/texture_registrar.h +FILE: ../../../flutter/shell/platform/common/client_wrapper/method_call_unittests.cc +FILE: ../../../flutter/shell/platform/common/client_wrapper/method_channel_unittests.cc +FILE: ../../../flutter/shell/platform/common/client_wrapper/method_result_functions_unittests.cc +FILE: ../../../flutter/shell/platform/common/client_wrapper/plugin_registrar.cc +FILE: ../../../flutter/shell/platform/common/client_wrapper/plugin_registrar_unittests.cc +FILE: ../../../flutter/shell/platform/common/client_wrapper/standard_codec.cc +FILE: ../../../flutter/shell/platform/common/client_wrapper/standard_message_codec_unittests.cc +FILE: ../../../flutter/shell/platform/common/client_wrapper/standard_method_codec_unittests.cc +FILE: ../../../flutter/shell/platform/common/client_wrapper/texture_registrar_impl.h +FILE: ../../../flutter/shell/platform/common/client_wrapper/texture_registrar_unittests.cc +FILE: ../../../flutter/shell/platform/common/engine_switches.cc +FILE: ../../../flutter/shell/platform/common/engine_switches.h +FILE: ../../../flutter/shell/platform/common/engine_switches_unittests.cc +FILE: ../../../flutter/shell/platform/common/flutter_platform_node_delegate.cc +FILE: ../../../flutter/shell/platform/common/flutter_platform_node_delegate.h +FILE: ../../../flutter/shell/platform/common/flutter_platform_node_delegate_unittests.cc +FILE: ../../../flutter/shell/platform/common/geometry.h +FILE: ../../../flutter/shell/platform/common/geometry_unittests.cc +FILE: ../../../flutter/shell/platform/common/incoming_message_dispatcher.cc +FILE: ../../../flutter/shell/platform/common/incoming_message_dispatcher.h +FILE: ../../../flutter/shell/platform/common/incoming_message_dispatcher_unittests.cc +FILE: ../../../flutter/shell/platform/common/json_message_codec.cc +FILE: ../../../flutter/shell/platform/common/json_message_codec.h +FILE: ../../../flutter/shell/platform/common/json_message_codec_unittests.cc +FILE: ../../../flutter/shell/platform/common/json_method_codec.cc +FILE: ../../../flutter/shell/platform/common/json_method_codec.h +FILE: ../../../flutter/shell/platform/common/json_method_codec_unittests.cc +FILE: ../../../flutter/shell/platform/common/path_utils.cc +FILE: ../../../flutter/shell/platform/common/path_utils.h +FILE: ../../../flutter/shell/platform/common/path_utils_unittests.cc +FILE: ../../../flutter/shell/platform/common/platform_provided_menu.h +FILE: ../../../flutter/shell/platform/common/public/flutter_export.h +FILE: ../../../flutter/shell/platform/common/public/flutter_macros.h +FILE: ../../../flutter/shell/platform/common/public/flutter_messenger.h +FILE: ../../../flutter/shell/platform/common/public/flutter_plugin_registrar.h +FILE: ../../../flutter/shell/platform/common/public/flutter_texture_registrar.h +FILE: ../../../flutter/shell/platform/common/test_accessibility_bridge.cc +FILE: ../../../flutter/shell/platform/common/test_accessibility_bridge.h +FILE: ../../../flutter/shell/platform/common/text_editing_delta.cc +FILE: ../../../flutter/shell/platform/common/text_editing_delta.h +FILE: ../../../flutter/shell/platform/common/text_editing_delta_unittests.cc +FILE: ../../../flutter/shell/platform/common/text_input_model.cc +FILE: ../../../flutter/shell/platform/common/text_input_model.h +FILE: ../../../flutter/shell/platform/common/text_input_model_unittests.cc +FILE: ../../../flutter/shell/platform/common/text_range.h +FILE: ../../../flutter/shell/platform/common/text_range_unittests.cc +FILE: ../../../flutter/shell/platform/darwin/common/buffer_conversions.h +FILE: ../../../flutter/shell/platform/darwin/common/buffer_conversions.mm +FILE: ../../../flutter/shell/platform/darwin/common/command_line.h +FILE: ../../../flutter/shell/platform/darwin/common/command_line.mm +FILE: ../../../flutter/shell/platform/darwin/common/framework/Headers/FlutterBinaryMessenger.h +FILE: ../../../flutter/shell/platform/darwin/common/framework/Headers/FlutterChannels.h +FILE: ../../../flutter/shell/platform/darwin/common/framework/Headers/FlutterCodecs.h +FILE: ../../../flutter/shell/platform/darwin/common/framework/Headers/FlutterMacros.h +FILE: ../../../flutter/shell/platform/darwin/common/framework/Headers/FlutterTexture.h +FILE: ../../../flutter/shell/platform/darwin/common/framework/Source/FlutterChannels.mm +FILE: ../../../flutter/shell/platform/darwin/common/framework/Source/FlutterChannelsTest.m +FILE: ../../../flutter/shell/platform/darwin/common/framework/Source/FlutterCodecs.mm +FILE: ../../../flutter/shell/platform/darwin/common/framework/Source/FlutterStandardCodec.mm +FILE: ../../../flutter/shell/platform/darwin/common/framework/Source/FlutterStandardCodec_Internal.h +FILE: ../../../flutter/shell/platform/darwin/common/framework/Source/flutter_codecs_unittest.mm +FILE: ../../../flutter/shell/platform/darwin/common/framework/Source/flutter_standard_codec_unittest.mm +FILE: ../../../flutter/shell/platform/darwin/graphics/FlutterDarwinContextMetalImpeller.h +FILE: ../../../flutter/shell/platform/darwin/graphics/FlutterDarwinContextMetalImpeller.mm +FILE: ../../../flutter/shell/platform/darwin/graphics/FlutterDarwinContextMetalSkia.h +FILE: ../../../flutter/shell/platform/darwin/graphics/FlutterDarwinContextMetalSkia.mm +FILE: ../../../flutter/shell/platform/darwin/graphics/FlutterDarwinExternalTextureMetal.h +FILE: ../../../flutter/shell/platform/darwin/graphics/FlutterDarwinExternalTextureMetal.mm +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Headers/Flutter.h +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Headers/FlutterAppDelegate.h +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Headers/FlutterCallbackCache.h +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Headers/FlutterDartProject.h +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Headers/FlutterEngine.h +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Headers/FlutterEngineGroup.h +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Headers/FlutterHeadlessDartRunner.h +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Headers/FlutterPlatformViews.h +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Headers/FlutterPlugin.h +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Headers/FlutterPluginAppLifeCycleDelegate.h +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Headers/FlutterViewController.h +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Info.plist +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterAppDelegate.mm +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterAppDelegateTest.mm +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterAppDelegate_Test.h +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterBinaryMessengerRelay.h +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterBinaryMessengerRelay.mm +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterBinaryMessengerRelayTest.mm +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterCallbackCache.mm +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterCallbackCache_Internal.h +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterChannelKeyResponder.h +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterChannelKeyResponder.mm +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterChannelKeyResponderTest.mm +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterDartProject.mm +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterDartProjectTest.mm +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterDartProject_Internal.h +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterEmbedderKeyResponder.h +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterEmbedderKeyResponder.mm +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterEmbedderKeyResponderTest.mm +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterEngine.mm +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterEngineGroup.mm +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterEngineGroupTest.mm +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterEnginePlatformViewTest.mm +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterEngineTest.mm +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterEngineTest_mrc.mm +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterEngine_Internal.h +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterEngine_Test.h +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterFakeKeyEvents.h +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterFakeKeyEvents.mm +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterHeadlessDartRunner.mm +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterIndirectScribbleDelegate.h +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterKeyPrimaryResponder.h +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterKeySecondaryResponder.h +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterKeyboardManager.h +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterKeyboardManager.mm +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterKeyboardManagerTest.mm +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterObservatoryPublisher.h +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterObservatoryPublisher.mm +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterOverlayView.h +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterOverlayView.mm +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterPlatformPlugin.h +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterPlatformPlugin.mm +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterPlatformPluginTest.mm +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterPlatformViews.mm +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterPlatformViewsTest.mm +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterPlatformViews_Internal.h +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterPlatformViews_Internal.mm +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterPluginAppLifeCycleDelegate.mm +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterPluginAppLifeCycleDelegateTest.mm +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterPluginAppLifeCycleDelegate_internal.h +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterRestorationPlugin.h +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterRestorationPlugin.mm +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterRestorationPluginTest.mm +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterSemanticsScrollView.h +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterSemanticsScrollView.mm +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterSpellCheckPlugin.h +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterSpellCheckPlugin.mm +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterSpellCheckPluginTest.mm +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterTextInputDelegate.h +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterTextInputPlugin.h +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterTextInputPlugin.mm +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterTextInputPluginTest.mm +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterUIPressProxy.h +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterUIPressProxy.mm +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterUmbrellaImport.m +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterUndoManagerDelegate.h +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterUndoManagerPlugin.h +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterUndoManagerPlugin.mm +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterUndoManagerPluginTest.mm +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterView.h +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterView.mm +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterViewController.mm +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterViewControllerTest.mm +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterViewControllerTest_mrc.mm +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterViewController_Internal.h +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterViewResponder.h +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterViewTest.mm +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/IOKit.h +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/KeyCodeMap.g.mm +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/KeyCodeMap_Internal.h +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/SemanticsObject.h +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/SemanticsObject.mm +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/SemanticsObjectTest.mm +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/VsyncWaiterIosTest.mm +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/accessibility_bridge.h +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/accessibility_bridge.mm +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/accessibility_bridge_ios.h +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/accessibility_bridge_test.mm +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/accessibility_text_entry.h +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/accessibility_text_entry.mm +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/connection_collection.h +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/connection_collection.mm +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/connection_collection_test.mm +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/platform_message_response_darwin.h +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/platform_message_response_darwin.mm +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/profiler_metrics_ios.h +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/profiler_metrics_ios.mm +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/vsync_waiter_ios.h +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/vsync_waiter_ios.mm +FILE: ../../../flutter/shell/platform/darwin/ios/framework/module.modulemap +FILE: ../../../flutter/shell/platform/darwin/ios/ios_context.h +FILE: ../../../flutter/shell/platform/darwin/ios/ios_context.mm +FILE: ../../../flutter/shell/platform/darwin/ios/ios_context_metal_impeller.h +FILE: ../../../flutter/shell/platform/darwin/ios/ios_context_metal_impeller.mm +FILE: ../../../flutter/shell/platform/darwin/ios/ios_context_metal_skia.h +FILE: ../../../flutter/shell/platform/darwin/ios/ios_context_metal_skia.mm +FILE: ../../../flutter/shell/platform/darwin/ios/ios_context_software.h +FILE: ../../../flutter/shell/platform/darwin/ios/ios_context_software.mm +FILE: ../../../flutter/shell/platform/darwin/ios/ios_external_texture_metal.h +FILE: ../../../flutter/shell/platform/darwin/ios/ios_external_texture_metal.mm +FILE: ../../../flutter/shell/platform/darwin/ios/ios_external_view_embedder.h +FILE: ../../../flutter/shell/platform/darwin/ios/ios_external_view_embedder.mm +FILE: ../../../flutter/shell/platform/darwin/ios/ios_surface.h +FILE: ../../../flutter/shell/platform/darwin/ios/ios_surface.mm +FILE: ../../../flutter/shell/platform/darwin/ios/ios_surface_metal_impeller.h +FILE: ../../../flutter/shell/platform/darwin/ios/ios_surface_metal_impeller.mm +FILE: ../../../flutter/shell/platform/darwin/ios/ios_surface_metal_skia.h +FILE: ../../../flutter/shell/platform/darwin/ios/ios_surface_metal_skia.mm +FILE: ../../../flutter/shell/platform/darwin/ios/ios_surface_software.h +FILE: ../../../flutter/shell/platform/darwin/ios/ios_surface_software.mm +FILE: ../../../flutter/shell/platform/darwin/ios/platform_message_handler_ios.h +FILE: ../../../flutter/shell/platform/darwin/ios/platform_message_handler_ios.mm +FILE: ../../../flutter/shell/platform/darwin/ios/platform_message_handler_ios_test.mm +FILE: ../../../flutter/shell/platform/darwin/ios/platform_view_ios.h +FILE: ../../../flutter/shell/platform/darwin/ios/platform_view_ios.mm +FILE: ../../../flutter/shell/platform/darwin/ios/rendering_api_selection.h +FILE: ../../../flutter/shell/platform/darwin/ios/rendering_api_selection.mm +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Headers/FlutterAppDelegate.h +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Headers/FlutterDartProject.h +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Headers/FlutterEngine.h +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Headers/FlutterMacOS.h +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Headers/FlutterPlatformViews.h +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Headers/FlutterPluginMacOS.h +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Headers/FlutterPluginRegistrarMacOS.h +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Headers/FlutterViewController.h +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Info.plist +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/AccessibilityBridgeMacDelegate.h +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/AccessibilityBridgeMacDelegate.mm +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/AccessibilityBridgeMacDelegateTest.mm +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterAppDelegate.mm +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterBackingStore.h +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterBackingStore.mm +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterBackingStoreData.h +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterBackingStoreData.mm +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterChannelKeyResponder.h +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterChannelKeyResponder.mm +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterChannelKeyResponderUnittests.mm +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterCompositor.h +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterCompositor.mm +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterDartProject.mm +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterDartProject_Internal.h +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterEmbedderExternalTextureUnittests.mm +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterEmbedderKeyResponder.h +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterEmbedderKeyResponder.mm +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterEmbedderKeyResponderUnittests.mm +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterEngine.mm +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterEngineTest.mm +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterEngineTestUtils.h +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterEngineTestUtils.mm +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterEngine_Internal.h +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterExternalTextureGL.h +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterExternalTextureGL.mm +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterExternalTextureMetal.h +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterExternalTextureMetal.mm +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterFrameBufferProvider.h +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterFrameBufferProvider.mm +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterFrameBufferProviderUnittests.mm +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterGLCompositor.h +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterGLCompositor.mm +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterGLCompositorUnittests.mm +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterIOSurfaceHolder.h +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterIOSurfaceHolder.mm +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterKeyPrimaryResponder.h +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterKeyboardManager.h +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterKeyboardManager.mm +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterKeyboardManagerUnittests.mm +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterKeyboardViewDelegate.h +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterMacOSExternalTexture.h +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterMenuPlugin.h +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterMenuPlugin.mm +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterMenuPluginTest.mm +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterMenuPlugin_Internal.h +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterMetalCompositor.h +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterMetalCompositor.mm +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterMetalCompositorUnittests.mm +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterMetalRenderer.h +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterMetalRenderer.mm +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterMetalRendererTest.mm +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterMetalSurfaceManagerTest.mm +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterMouseCursorPlugin.h +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterMouseCursorPlugin.mm +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterOpenGLRenderer.h +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterOpenGLRenderer.mm +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterOpenGLRendererTest.mm +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterPlatformNodeDelegateMac.h +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterPlatformNodeDelegateMac.mm +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterPlatformNodeDelegateMacTest.mm +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterPlatformViewController.h +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterPlatformViewController.mm +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterPlatformViewControllerTest.mm +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterRenderer.h +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterRenderingBackend.h +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterRenderingBackend.mm +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterResizableBackingStoreProvider.h +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterResizableBackingStoreProvider.mm +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterResizeSynchronizer.h +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterResizeSynchronizer.mm +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterSurfaceManager.h +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterSurfaceManager.mm +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterTextInputPlugin.h +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterTextInputPlugin.mm +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterTextInputPluginTest.mm +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterTextInputSemanticsObject.h +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterTextInputSemanticsObject.mm +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterTextInputSemanticsObjectTest.mm +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterTextureRegistrar.h +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterTextureRegistrar.mm +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterView.h +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterView.mm +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterViewController.mm +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterViewControllerTest.mm +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterViewControllerTestUtils.h +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterViewControllerTestUtils.mm +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterViewController_Internal.h +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterViewEngineProvider.h +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterViewEngineProvider.mm +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterViewEngineProviderUnittests.mm +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterViewProvider.h +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/KeyCodeMap.g.mm +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/KeyCodeMap_Internal.h +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/MacOSGLContextSwitch.h +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/MacOSGLContextSwitch.mm +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/TestFlutterPlatformView.h +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/TestFlutterPlatformView.mm +FILE: ../../../flutter/shell/platform/darwin/macos/framework/module.modulemap +FILE: ../../../flutter/shell/platform/embedder/assets/EmbedderInfo.plist +FILE: ../../../flutter/shell/platform/embedder/assets/embedder.modulemap +FILE: ../../../flutter/shell/platform/embedder/embedder.cc +FILE: ../../../flutter/shell/platform/embedder/embedder.h +FILE: ../../../flutter/shell/platform/embedder/embedder_engine.cc +FILE: ../../../flutter/shell/platform/embedder/embedder_engine.h +FILE: ../../../flutter/shell/platform/embedder/embedder_exports.lst +FILE: ../../../flutter/shell/platform/embedder/embedder_external_texture_gl.cc +FILE: ../../../flutter/shell/platform/embedder/embedder_external_texture_gl.h +FILE: ../../../flutter/shell/platform/embedder/embedder_external_texture_metal.h +FILE: ../../../flutter/shell/platform/embedder/embedder_external_texture_metal.mm +FILE: ../../../flutter/shell/platform/embedder/embedder_external_texture_resolver.cc +FILE: ../../../flutter/shell/platform/embedder/embedder_external_texture_resolver.h +FILE: ../../../flutter/shell/platform/embedder/embedder_external_view.cc +FILE: ../../../flutter/shell/platform/embedder/embedder_external_view.h +FILE: ../../../flutter/shell/platform/embedder/embedder_external_view_embedder.cc +FILE: ../../../flutter/shell/platform/embedder/embedder_external_view_embedder.h +FILE: ../../../flutter/shell/platform/embedder/embedder_include.c +FILE: ../../../flutter/shell/platform/embedder/embedder_include2.c +FILE: ../../../flutter/shell/platform/embedder/embedder_layers.cc +FILE: ../../../flutter/shell/platform/embedder/embedder_layers.h +FILE: ../../../flutter/shell/platform/embedder/embedder_platform_message_response.cc +FILE: ../../../flutter/shell/platform/embedder/embedder_platform_message_response.h +FILE: ../../../flutter/shell/platform/embedder/embedder_render_target.cc +FILE: ../../../flutter/shell/platform/embedder/embedder_render_target.h +FILE: ../../../flutter/shell/platform/embedder/embedder_render_target_cache.cc +FILE: ../../../flutter/shell/platform/embedder/embedder_render_target_cache.h +FILE: ../../../flutter/shell/platform/embedder/embedder_struct_macros.h +FILE: ../../../flutter/shell/platform/embedder/embedder_surface.cc +FILE: ../../../flutter/shell/platform/embedder/embedder_surface.h +FILE: ../../../flutter/shell/platform/embedder/embedder_surface_gl.cc +FILE: ../../../flutter/shell/platform/embedder/embedder_surface_gl.h +FILE: ../../../flutter/shell/platform/embedder/embedder_surface_metal.h +FILE: ../../../flutter/shell/platform/embedder/embedder_surface_metal.mm +FILE: ../../../flutter/shell/platform/embedder/embedder_surface_software.cc +FILE: ../../../flutter/shell/platform/embedder/embedder_surface_software.h +FILE: ../../../flutter/shell/platform/embedder/embedder_surface_vulkan.cc +FILE: ../../../flutter/shell/platform/embedder/embedder_surface_vulkan.h +FILE: ../../../flutter/shell/platform/embedder/embedder_task_runner.cc +FILE: ../../../flutter/shell/platform/embedder/embedder_task_runner.h +FILE: ../../../flutter/shell/platform/embedder/embedder_thread_host.cc +FILE: ../../../flutter/shell/platform/embedder/embedder_thread_host.h +FILE: ../../../flutter/shell/platform/embedder/pixel_formats.cc +FILE: ../../../flutter/shell/platform/embedder/pixel_formats.h +FILE: ../../../flutter/shell/platform/embedder/platform_view_embedder.cc +FILE: ../../../flutter/shell/platform/embedder/platform_view_embedder.h +FILE: ../../../flutter/shell/platform/embedder/platform_view_embedder_unittests.cc +FILE: ../../../flutter/shell/platform/embedder/test_utils/key_codes.g.h +FILE: ../../../flutter/shell/platform/embedder/test_utils/proc_table_replacement.h +FILE: ../../../flutter/shell/platform/embedder/vsync_waiter_embedder.cc +FILE: ../../../flutter/shell/platform/embedder/vsync_waiter_embedder.h +FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/fuchsia/lib/fuchsia.dart +FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/fuchsia/sdk_ext/fuchsia.cc +FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/fuchsia/sdk_ext/fuchsia.h +FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/zircon/lib/src/handle.dart +FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/zircon/lib/src/handle_disposition.dart +FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/zircon/lib/src/handle_waiter.dart +FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/zircon/lib/src/init.dart +FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/zircon/lib/src/system.dart +FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/zircon/lib/src/zd_channel.dart +FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/zircon/lib/src/zd_handle.dart +FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/zircon/lib/zircon.dart +FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/zircon/sdk_ext/handle.cc +FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/zircon/sdk_ext/handle.h +FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/zircon/sdk_ext/handle_disposition.cc +FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/zircon/sdk_ext/handle_disposition.h +FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/zircon/sdk_ext/handle_waiter.cc +FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/zircon/sdk_ext/handle_waiter.h +FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/zircon/sdk_ext/natives.cc +FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/zircon/sdk_ext/natives.h +FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/zircon/sdk_ext/system.cc +FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/zircon/sdk_ext/system.h +FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/zircon_ffi/basic_types.cc +FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/zircon_ffi/basic_types.h +FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/zircon_ffi/channel.cc +FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/zircon_ffi/channel.h +FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/zircon_ffi/clock.cc +FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/zircon_ffi/clock.h +FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/zircon_ffi/dart_dl.cc +FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/zircon_ffi/dart_dl.h +FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/zircon_ffi/handle.cc +FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/zircon_ffi/handle.h +FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/zircon_ffi/lib/zircon_ffi.dart +FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/zircon_ffi/macros.h +FILE: ../../../flutter/shell/platform/fuchsia/dart/compiler.dart +FILE: ../../../flutter/shell/platform/fuchsia/dart_runner/builtin_libraries.cc +FILE: ../../../flutter/shell/platform/fuchsia/dart_runner/builtin_libraries.h +FILE: ../../../flutter/shell/platform/fuchsia/dart_runner/dart_component_controller.cc +FILE: ../../../flutter/shell/platform/fuchsia/dart_runner/dart_component_controller.h +FILE: ../../../flutter/shell/platform/fuchsia/dart_runner/dart_runner.cc +FILE: ../../../flutter/shell/platform/fuchsia/dart_runner/dart_runner.h +FILE: ../../../flutter/shell/platform/fuchsia/dart_runner/dart_test_component_controller.cc +FILE: ../../../flutter/shell/platform/fuchsia/dart_runner/dart_test_component_controller.h +FILE: ../../../flutter/shell/platform/fuchsia/dart_runner/embedder/builtin.dart +FILE: ../../../flutter/shell/platform/fuchsia/dart_runner/embedder/script_runner_snapshot.dart +FILE: ../../../flutter/shell/platform/fuchsia/dart_runner/embedder/shim.dart +FILE: ../../../flutter/shell/platform/fuchsia/dart_runner/embedder/snapshot.cc.tmpl +FILE: ../../../flutter/shell/platform/fuchsia/dart_runner/embedder/snapshot.dart +FILE: ../../../flutter/shell/platform/fuchsia/dart_runner/embedder/snapshot.h +FILE: ../../../flutter/shell/platform/fuchsia/dart_runner/kernel/libraries.json +FILE: ../../../flutter/shell/platform/fuchsia/dart_runner/logging.h +FILE: ../../../flutter/shell/platform/fuchsia/dart_runner/main.cc +FILE: ../../../flutter/shell/platform/fuchsia/dart_runner/meta/common.shard.cml +FILE: ../../../flutter/shell/platform/fuchsia/dart_runner/meta/dart_aot_product_runner.cml +FILE: ../../../flutter/shell/platform/fuchsia/dart_runner/meta/dart_aot_runner.cml +FILE: ../../../flutter/shell/platform/fuchsia/dart_runner/meta/dart_jit_product_runner.cml +FILE: ../../../flutter/shell/platform/fuchsia/dart_runner/meta/dart_jit_runner.cml +FILE: ../../../flutter/shell/platform/fuchsia/dart_runner/service_isolate.cc +FILE: ../../../flutter/shell/platform/fuchsia/dart_runner/service_isolate.h +FILE: ../../../flutter/shell/platform/fuchsia/dart_runner/vmservice/empty.dart +FILE: ../../../flutter/shell/platform/fuchsia/flutter/accessibility_bridge.cc +FILE: ../../../flutter/shell/platform/fuchsia/flutter/accessibility_bridge.h +FILE: ../../../flutter/shell/platform/fuchsia/flutter/accessibility_bridge_unittest.cc +FILE: ../../../flutter/shell/platform/fuchsia/flutter/component_v1.cc +FILE: ../../../flutter/shell/platform/fuchsia/flutter/component_v1.h +FILE: ../../../flutter/shell/platform/fuchsia/flutter/component_v1_unittest.cc +FILE: ../../../flutter/shell/platform/fuchsia/flutter/component_v2.cc +FILE: ../../../flutter/shell/platform/fuchsia/flutter/component_v2.h +FILE: ../../../flutter/shell/platform/fuchsia/flutter/component_v2_unittest.cc +FILE: ../../../flutter/shell/platform/fuchsia/flutter/engine.cc +FILE: ../../../flutter/shell/platform/fuchsia/flutter/engine.h +FILE: ../../../flutter/shell/platform/fuchsia/flutter/file_in_namespace_buffer.cc +FILE: ../../../flutter/shell/platform/fuchsia/flutter/file_in_namespace_buffer.h +FILE: ../../../flutter/shell/platform/fuchsia/flutter/flatland_connection.cc +FILE: ../../../flutter/shell/platform/fuchsia/flutter/flatland_connection.h +FILE: ../../../flutter/shell/platform/fuchsia/flutter/flatland_external_view_embedder.cc +FILE: ../../../flutter/shell/platform/fuchsia/flutter/flatland_external_view_embedder.h +FILE: ../../../flutter/shell/platform/fuchsia/flutter/flatland_platform_view.cc +FILE: ../../../flutter/shell/platform/fuchsia/flutter/flatland_platform_view.h +FILE: ../../../flutter/shell/platform/fuchsia/flutter/flutter_runner_fakes.h +FILE: ../../../flutter/shell/platform/fuchsia/flutter/flutter_runner_product_configuration.cc +FILE: ../../../flutter/shell/platform/fuchsia/flutter/flutter_runner_product_configuration.h +FILE: ../../../flutter/shell/platform/fuchsia/flutter/focus_delegate.cc +FILE: ../../../flutter/shell/platform/fuchsia/flutter/focus_delegate.h +FILE: ../../../flutter/shell/platform/fuchsia/flutter/focus_delegate_unittests.cc +FILE: ../../../flutter/shell/platform/fuchsia/flutter/fuchsia_intl.cc +FILE: ../../../flutter/shell/platform/fuchsia/flutter/fuchsia_intl.h +FILE: ../../../flutter/shell/platform/fuchsia/flutter/fuchsia_intl_unittest.cc +FILE: ../../../flutter/shell/platform/fuchsia/flutter/gfx_external_view_embedder.cc +FILE: ../../../flutter/shell/platform/fuchsia/flutter/gfx_external_view_embedder.h +FILE: ../../../flutter/shell/platform/fuchsia/flutter/gfx_platform_view.cc +FILE: ../../../flutter/shell/platform/fuchsia/flutter/gfx_platform_view.h +FILE: ../../../flutter/shell/platform/fuchsia/flutter/gfx_session_connection.cc +FILE: ../../../flutter/shell/platform/fuchsia/flutter/gfx_session_connection.h +FILE: ../../../flutter/shell/platform/fuchsia/flutter/isolate_configurator.cc +FILE: ../../../flutter/shell/platform/fuchsia/flutter/isolate_configurator.h +FILE: ../../../flutter/shell/platform/fuchsia/flutter/kernel/framework_shim.dart +FILE: ../../../flutter/shell/platform/fuchsia/flutter/kernel/libraries.json +FILE: ../../../flutter/shell/platform/fuchsia/flutter/keyboard.cc +FILE: ../../../flutter/shell/platform/fuchsia/flutter/keyboard.h +FILE: ../../../flutter/shell/platform/fuchsia/flutter/keyboard_unittest.cc +FILE: ../../../flutter/shell/platform/fuchsia/flutter/logging.h +FILE: ../../../flutter/shell/platform/fuchsia/flutter/main.cc +FILE: ../../../flutter/shell/platform/fuchsia/flutter/meta/aot_product_runtime +FILE: ../../../flutter/shell/platform/fuchsia/flutter/meta/aot_runtime +FILE: ../../../flutter/shell/platform/fuchsia/flutter/meta/common.shard.cml +FILE: ../../../flutter/shell/platform/fuchsia/flutter/meta/flutter_aot_product_runner.cml +FILE: ../../../flutter/shell/platform/fuchsia/flutter/meta/flutter_aot_product_runner.cmx +FILE: ../../../flutter/shell/platform/fuchsia/flutter/meta/flutter_aot_runner.cml +FILE: ../../../flutter/shell/platform/fuchsia/flutter/meta/flutter_aot_runner.cmx +FILE: ../../../flutter/shell/platform/fuchsia/flutter/meta/flutter_jit_product_runner.cml +FILE: ../../../flutter/shell/platform/fuchsia/flutter/meta/flutter_jit_product_runner.cmx +FILE: ../../../flutter/shell/platform/fuchsia/flutter/meta/flutter_jit_runner.cml +FILE: ../../../flutter/shell/platform/fuchsia/flutter/meta/flutter_jit_runner.cmx +FILE: ../../../flutter/shell/platform/fuchsia/flutter/meta/jit_product_runtime +FILE: ../../../flutter/shell/platform/fuchsia/flutter/meta/jit_runtime +FILE: ../../../flutter/shell/platform/fuchsia/flutter/platform_view.cc +FILE: ../../../flutter/shell/platform/fuchsia/flutter/platform_view.h +FILE: ../../../flutter/shell/platform/fuchsia/flutter/platform_view_unittest.cc +FILE: ../../../flutter/shell/platform/fuchsia/flutter/pointer_delegate.cc +FILE: ../../../flutter/shell/platform/fuchsia/flutter/pointer_delegate.h +FILE: ../../../flutter/shell/platform/fuchsia/flutter/pointer_delegate_unittests.cc +FILE: ../../../flutter/shell/platform/fuchsia/flutter/pointer_injector_delegate.cc +FILE: ../../../flutter/shell/platform/fuchsia/flutter/pointer_injector_delegate.h +FILE: ../../../flutter/shell/platform/fuchsia/flutter/pointer_injector_delegate_unittest.cc +FILE: ../../../flutter/shell/platform/fuchsia/flutter/program_metadata.h +FILE: ../../../flutter/shell/platform/fuchsia/flutter/runner.cc +FILE: ../../../flutter/shell/platform/fuchsia/flutter/runner.h +FILE: ../../../flutter/shell/platform/fuchsia/flutter/runner_tzdata_missing_unittest.cc +FILE: ../../../flutter/shell/platform/fuchsia/flutter/runner_tzdata_unittest.cc +FILE: ../../../flutter/shell/platform/fuchsia/flutter/software_surface.cc +FILE: ../../../flutter/shell/platform/fuchsia/flutter/software_surface.h +FILE: ../../../flutter/shell/platform/fuchsia/flutter/software_surface_producer.cc +FILE: ../../../flutter/shell/platform/fuchsia/flutter/software_surface_producer.h +FILE: ../../../flutter/shell/platform/fuchsia/flutter/surface.cc +FILE: ../../../flutter/shell/platform/fuchsia/flutter/surface.h +FILE: ../../../flutter/shell/platform/fuchsia/flutter/surface_producer.h +FILE: ../../../flutter/shell/platform/fuchsia/flutter/task_runner_adapter.cc +FILE: ../../../flutter/shell/platform/fuchsia/flutter/task_runner_adapter.h +FILE: ../../../flutter/shell/platform/fuchsia/flutter/text_delegate.cc +FILE: ../../../flutter/shell/platform/fuchsia/flutter/text_delegate.h +FILE: ../../../flutter/shell/platform/fuchsia/flutter/text_delegate_unittests.cc +FILE: ../../../flutter/shell/platform/fuchsia/flutter/unique_fdio_ns.h +FILE: ../../../flutter/shell/platform/fuchsia/flutter/vsync_waiter.cc +FILE: ../../../flutter/shell/platform/fuchsia/flutter/vsync_waiter.h +FILE: ../../../flutter/shell/platform/fuchsia/flutter/vsync_waiter_unittest.cc +FILE: ../../../flutter/shell/platform/fuchsia/flutter/vulkan_surface.cc +FILE: ../../../flutter/shell/platform/fuchsia/flutter/vulkan_surface.h +FILE: ../../../flutter/shell/platform/fuchsia/flutter/vulkan_surface_pool.cc +FILE: ../../../flutter/shell/platform/fuchsia/flutter/vulkan_surface_pool.h +FILE: ../../../flutter/shell/platform/fuchsia/flutter/vulkan_surface_producer.cc +FILE: ../../../flutter/shell/platform/fuchsia/flutter/vulkan_surface_producer.h +FILE: ../../../flutter/shell/platform/fuchsia/runtime/dart/profiler_symbols/dart_profiler_symbols.dart +FILE: ../../../flutter/shell/platform/fuchsia/runtime/dart/utils/build_info.h +FILE: ../../../flutter/shell/platform/fuchsia/runtime/dart/utils/build_info_in.cc +FILE: ../../../flutter/shell/platform/fuchsia/runtime/dart/utils/build_info_unittests.cc +FILE: ../../../flutter/shell/platform/fuchsia/runtime/dart/utils/files.cc +FILE: ../../../flutter/shell/platform/fuchsia/runtime/dart/utils/files.h +FILE: ../../../flutter/shell/platform/fuchsia/runtime/dart/utils/handle_exception.cc +FILE: ../../../flutter/shell/platform/fuchsia/runtime/dart/utils/handle_exception.h +FILE: ../../../flutter/shell/platform/fuchsia/runtime/dart/utils/inlines.h +FILE: ../../../flutter/shell/platform/fuchsia/runtime/dart/utils/logging.h +FILE: ../../../flutter/shell/platform/fuchsia/runtime/dart/utils/mapped_resource.cc +FILE: ../../../flutter/shell/platform/fuchsia/runtime/dart/utils/mapped_resource.h +FILE: ../../../flutter/shell/platform/fuchsia/runtime/dart/utils/root_inspect_node.cc +FILE: ../../../flutter/shell/platform/fuchsia/runtime/dart/utils/root_inspect_node.h +FILE: ../../../flutter/shell/platform/fuchsia/runtime/dart/utils/tempfs.cc +FILE: ../../../flutter/shell/platform/fuchsia/runtime/dart/utils/tempfs.h +FILE: ../../../flutter/shell/platform/fuchsia/runtime/dart/utils/vmo.cc +FILE: ../../../flutter/shell/platform/fuchsia/runtime/dart/utils/vmo.h +FILE: ../../../flutter/shell/platform/fuchsia/runtime/dart/utils/vmservice_object.cc +FILE: ../../../flutter/shell/platform/fuchsia/runtime/dart/utils/vmservice_object.h +FILE: ../../../flutter/shell/platform/glfw/client_wrapper/flutter_engine.cc +FILE: ../../../flutter/shell/platform/glfw/client_wrapper/flutter_engine_unittests.cc +FILE: ../../../flutter/shell/platform/glfw/client_wrapper/flutter_window_controller.cc +FILE: ../../../flutter/shell/platform/glfw/client_wrapper/flutter_window_controller_unittests.cc +FILE: ../../../flutter/shell/platform/glfw/client_wrapper/flutter_window_unittests.cc +FILE: ../../../flutter/shell/platform/glfw/client_wrapper/include/flutter/flutter_engine.h +FILE: ../../../flutter/shell/platform/glfw/client_wrapper/include/flutter/flutter_window.h +FILE: ../../../flutter/shell/platform/glfw/client_wrapper/include/flutter/flutter_window_controller.h +FILE: ../../../flutter/shell/platform/glfw/client_wrapper/include/flutter/plugin_registrar_glfw.h +FILE: ../../../flutter/shell/platform/glfw/client_wrapper/plugin_registrar_glfw_unittests.cc +FILE: ../../../flutter/shell/platform/glfw/event_loop.cc +FILE: ../../../flutter/shell/platform/glfw/event_loop.h +FILE: ../../../flutter/shell/platform/glfw/flutter_glfw.cc +FILE: ../../../flutter/shell/platform/glfw/glfw_event_loop.cc +FILE: ../../../flutter/shell/platform/glfw/glfw_event_loop.h +FILE: ../../../flutter/shell/platform/glfw/headless_event_loop.cc +FILE: ../../../flutter/shell/platform/glfw/headless_event_loop.h +FILE: ../../../flutter/shell/platform/glfw/key_event_handler.cc +FILE: ../../../flutter/shell/platform/glfw/key_event_handler.h +FILE: ../../../flutter/shell/platform/glfw/keyboard_hook_handler.h +FILE: ../../../flutter/shell/platform/glfw/platform_handler.cc +FILE: ../../../flutter/shell/platform/glfw/platform_handler.h +FILE: ../../../flutter/shell/platform/glfw/public/flutter_glfw.h +FILE: ../../../flutter/shell/platform/glfw/system_utils.cc +FILE: ../../../flutter/shell/platform/glfw/system_utils.h +FILE: ../../../flutter/shell/platform/glfw/system_utils_test.cc +FILE: ../../../flutter/shell/platform/glfw/text_input_plugin.cc +FILE: ../../../flutter/shell/platform/glfw/text_input_plugin.h +FILE: ../../../flutter/shell/platform/linux/fl_accessibility_plugin.cc +FILE: ../../../flutter/shell/platform/linux/fl_accessibility_plugin.h +FILE: ../../../flutter/shell/platform/linux/fl_accessible_node.cc +FILE: ../../../flutter/shell/platform/linux/fl_accessible_node.h +FILE: ../../../flutter/shell/platform/linux/fl_accessible_node_test.cc +FILE: ../../../flutter/shell/platform/linux/fl_accessible_text_field.cc +FILE: ../../../flutter/shell/platform/linux/fl_accessible_text_field.h +FILE: ../../../flutter/shell/platform/linux/fl_accessible_text_field_test.cc +FILE: ../../../flutter/shell/platform/linux/fl_backing_store_provider.cc +FILE: ../../../flutter/shell/platform/linux/fl_backing_store_provider.h +FILE: ../../../flutter/shell/platform/linux/fl_basic_message_channel.cc +FILE: ../../../flutter/shell/platform/linux/fl_basic_message_channel_test.cc +FILE: ../../../flutter/shell/platform/linux/fl_binary_codec.cc +FILE: ../../../flutter/shell/platform/linux/fl_binary_codec_test.cc +FILE: ../../../flutter/shell/platform/linux/fl_binary_messenger.cc +FILE: ../../../flutter/shell/platform/linux/fl_binary_messenger_private.h +FILE: ../../../flutter/shell/platform/linux/fl_binary_messenger_test.cc +FILE: ../../../flutter/shell/platform/linux/fl_dart_project.cc +FILE: ../../../flutter/shell/platform/linux/fl_dart_project_private.h +FILE: ../../../flutter/shell/platform/linux/fl_dart_project_test.cc +FILE: ../../../flutter/shell/platform/linux/fl_engine.cc +FILE: ../../../flutter/shell/platform/linux/fl_engine_private.h +FILE: ../../../flutter/shell/platform/linux/fl_engine_test.cc +FILE: ../../../flutter/shell/platform/linux/fl_event_channel.cc +FILE: ../../../flutter/shell/platform/linux/fl_event_channel_test.cc +FILE: ../../../flutter/shell/platform/linux/fl_gl_area.cc +FILE: ../../../flutter/shell/platform/linux/fl_gl_area.h +FILE: ../../../flutter/shell/platform/linux/fl_gnome_settings.cc +FILE: ../../../flutter/shell/platform/linux/fl_gnome_settings.h +FILE: ../../../flutter/shell/platform/linux/fl_gnome_settings_test.cc +FILE: ../../../flutter/shell/platform/linux/fl_json_message_codec.cc +FILE: ../../../flutter/shell/platform/linux/fl_json_message_codec_test.cc +FILE: ../../../flutter/shell/platform/linux/fl_json_method_codec.cc +FILE: ../../../flutter/shell/platform/linux/fl_json_method_codec_test.cc +FILE: ../../../flutter/shell/platform/linux/fl_key_channel_responder.cc +FILE: ../../../flutter/shell/platform/linux/fl_key_channel_responder.h +FILE: ../../../flutter/shell/platform/linux/fl_key_channel_responder_test.cc +FILE: ../../../flutter/shell/platform/linux/fl_key_embedder_responder.cc +FILE: ../../../flutter/shell/platform/linux/fl_key_embedder_responder.h +FILE: ../../../flutter/shell/platform/linux/fl_key_embedder_responder_private.h +FILE: ../../../flutter/shell/platform/linux/fl_key_embedder_responder_test.cc +FILE: ../../../flutter/shell/platform/linux/fl_key_event.cc +FILE: ../../../flutter/shell/platform/linux/fl_key_event.h +FILE: ../../../flutter/shell/platform/linux/fl_key_responder.cc +FILE: ../../../flutter/shell/platform/linux/fl_key_responder.h +FILE: ../../../flutter/shell/platform/linux/fl_keyboard_manager.cc +FILE: ../../../flutter/shell/platform/linux/fl_keyboard_manager.h +FILE: ../../../flutter/shell/platform/linux/fl_keyboard_manager_test.cc +FILE: ../../../flutter/shell/platform/linux/fl_keyboard_view_delegate.cc +FILE: ../../../flutter/shell/platform/linux/fl_keyboard_view_delegate.h +FILE: ../../../flutter/shell/platform/linux/fl_message_codec.cc +FILE: ../../../flutter/shell/platform/linux/fl_message_codec_test.cc +FILE: ../../../flutter/shell/platform/linux/fl_method_call.cc +FILE: ../../../flutter/shell/platform/linux/fl_method_call_private.h +FILE: ../../../flutter/shell/platform/linux/fl_method_channel.cc +FILE: ../../../flutter/shell/platform/linux/fl_method_channel_private.h +FILE: ../../../flutter/shell/platform/linux/fl_method_channel_test.cc +FILE: ../../../flutter/shell/platform/linux/fl_method_codec.cc +FILE: ../../../flutter/shell/platform/linux/fl_method_codec_private.h +FILE: ../../../flutter/shell/platform/linux/fl_method_codec_test.cc +FILE: ../../../flutter/shell/platform/linux/fl_method_response.cc +FILE: ../../../flutter/shell/platform/linux/fl_method_response_test.cc +FILE: ../../../flutter/shell/platform/linux/fl_mouse_cursor_plugin.cc +FILE: ../../../flutter/shell/platform/linux/fl_mouse_cursor_plugin.h +FILE: ../../../flutter/shell/platform/linux/fl_pixel_buffer_texture.cc +FILE: ../../../flutter/shell/platform/linux/fl_pixel_buffer_texture_private.h +FILE: ../../../flutter/shell/platform/linux/fl_pixel_buffer_texture_test.cc +FILE: ../../../flutter/shell/platform/linux/fl_platform_plugin.cc +FILE: ../../../flutter/shell/platform/linux/fl_platform_plugin.h +FILE: ../../../flutter/shell/platform/linux/fl_plugin_registrar.cc +FILE: ../../../flutter/shell/platform/linux/fl_plugin_registrar_private.h +FILE: ../../../flutter/shell/platform/linux/fl_plugin_registrar_test.cc +FILE: ../../../flutter/shell/platform/linux/fl_plugin_registry.cc +FILE: ../../../flutter/shell/platform/linux/fl_renderer.cc +FILE: ../../../flutter/shell/platform/linux/fl_renderer.h +FILE: ../../../flutter/shell/platform/linux/fl_renderer_gl.cc +FILE: ../../../flutter/shell/platform/linux/fl_renderer_gl.h +FILE: ../../../flutter/shell/platform/linux/fl_renderer_headless.cc +FILE: ../../../flutter/shell/platform/linux/fl_renderer_headless.h +FILE: ../../../flutter/shell/platform/linux/fl_scrolling_manager.cc +FILE: ../../../flutter/shell/platform/linux/fl_scrolling_manager.h +FILE: ../../../flutter/shell/platform/linux/fl_scrolling_manager_test.cc +FILE: ../../../flutter/shell/platform/linux/fl_scrolling_view_delegate.cc +FILE: ../../../flutter/shell/platform/linux/fl_scrolling_view_delegate.h +FILE: ../../../flutter/shell/platform/linux/fl_settings.cc +FILE: ../../../flutter/shell/platform/linux/fl_settings.h +FILE: ../../../flutter/shell/platform/linux/fl_settings_plugin.cc +FILE: ../../../flutter/shell/platform/linux/fl_settings_plugin.h +FILE: ../../../flutter/shell/platform/linux/fl_settings_plugin_test.cc +FILE: ../../../flutter/shell/platform/linux/fl_settings_portal.cc +FILE: ../../../flutter/shell/platform/linux/fl_settings_portal.h +FILE: ../../../flutter/shell/platform/linux/fl_settings_portal_test.cc +FILE: ../../../flutter/shell/platform/linux/fl_standard_message_codec.cc +FILE: ../../../flutter/shell/platform/linux/fl_standard_message_codec_private.h +FILE: ../../../flutter/shell/platform/linux/fl_standard_message_codec_test.cc +FILE: ../../../flutter/shell/platform/linux/fl_standard_method_codec.cc +FILE: ../../../flutter/shell/platform/linux/fl_standard_method_codec_test.cc +FILE: ../../../flutter/shell/platform/linux/fl_string_codec.cc +FILE: ../../../flutter/shell/platform/linux/fl_string_codec_test.cc +FILE: ../../../flutter/shell/platform/linux/fl_task_runner.cc +FILE: ../../../flutter/shell/platform/linux/fl_task_runner.h +FILE: ../../../flutter/shell/platform/linux/fl_text_input_plugin.cc +FILE: ../../../flutter/shell/platform/linux/fl_text_input_plugin.h +FILE: ../../../flutter/shell/platform/linux/fl_text_input_plugin_test.cc +FILE: ../../../flutter/shell/platform/linux/fl_text_input_view_delegate.cc +FILE: ../../../flutter/shell/platform/linux/fl_text_input_view_delegate.h +FILE: ../../../flutter/shell/platform/linux/fl_texture.cc +FILE: ../../../flutter/shell/platform/linux/fl_texture_gl.cc +FILE: ../../../flutter/shell/platform/linux/fl_texture_gl_private.h +FILE: ../../../flutter/shell/platform/linux/fl_texture_gl_test.cc +FILE: ../../../flutter/shell/platform/linux/fl_texture_private.h +FILE: ../../../flutter/shell/platform/linux/fl_texture_registrar.cc +FILE: ../../../flutter/shell/platform/linux/fl_texture_registrar_private.h +FILE: ../../../flutter/shell/platform/linux/fl_texture_registrar_test.cc +FILE: ../../../flutter/shell/platform/linux/fl_value.cc +FILE: ../../../flutter/shell/platform/linux/fl_value_test.cc +FILE: ../../../flutter/shell/platform/linux/fl_view.cc +FILE: ../../../flutter/shell/platform/linux/fl_view_accessible.cc +FILE: ../../../flutter/shell/platform/linux/fl_view_accessible.h +FILE: ../../../flutter/shell/platform/linux/fl_view_accessible_test.cc +FILE: ../../../flutter/shell/platform/linux/fl_view_private.h +FILE: ../../../flutter/shell/platform/linux/key_mapping.g.cc +FILE: ../../../flutter/shell/platform/linux/key_mapping.h +FILE: ../../../flutter/shell/platform/linux/public/flutter_linux/fl_basic_message_channel.h +FILE: ../../../flutter/shell/platform/linux/public/flutter_linux/fl_binary_codec.h +FILE: ../../../flutter/shell/platform/linux/public/flutter_linux/fl_binary_messenger.h +FILE: ../../../flutter/shell/platform/linux/public/flutter_linux/fl_dart_project.h +FILE: ../../../flutter/shell/platform/linux/public/flutter_linux/fl_engine.h +FILE: ../../../flutter/shell/platform/linux/public/flutter_linux/fl_event_channel.h +FILE: ../../../flutter/shell/platform/linux/public/flutter_linux/fl_json_message_codec.h +FILE: ../../../flutter/shell/platform/linux/public/flutter_linux/fl_json_method_codec.h +FILE: ../../../flutter/shell/platform/linux/public/flutter_linux/fl_message_codec.h +FILE: ../../../flutter/shell/platform/linux/public/flutter_linux/fl_method_call.h +FILE: ../../../flutter/shell/platform/linux/public/flutter_linux/fl_method_channel.h +FILE: ../../../flutter/shell/platform/linux/public/flutter_linux/fl_method_codec.h +FILE: ../../../flutter/shell/platform/linux/public/flutter_linux/fl_method_response.h +FILE: ../../../flutter/shell/platform/linux/public/flutter_linux/fl_pixel_buffer_texture.h +FILE: ../../../flutter/shell/platform/linux/public/flutter_linux/fl_plugin_registrar.h +FILE: ../../../flutter/shell/platform/linux/public/flutter_linux/fl_plugin_registry.h +FILE: ../../../flutter/shell/platform/linux/public/flutter_linux/fl_standard_message_codec.h +FILE: ../../../flutter/shell/platform/linux/public/flutter_linux/fl_standard_method_codec.h +FILE: ../../../flutter/shell/platform/linux/public/flutter_linux/fl_string_codec.h +FILE: ../../../flutter/shell/platform/linux/public/flutter_linux/fl_texture.h +FILE: ../../../flutter/shell/platform/linux/public/flutter_linux/fl_texture_gl.h +FILE: ../../../flutter/shell/platform/linux/public/flutter_linux/fl_texture_registrar.h +FILE: ../../../flutter/shell/platform/linux/public/flutter_linux/fl_value.h +FILE: ../../../flutter/shell/platform/linux/public/flutter_linux/fl_view.h +FILE: ../../../flutter/shell/platform/linux/public/flutter_linux/flutter_linux.h +FILE: ../../../flutter/shell/platform/windows/accessibility_alert.cc +FILE: ../../../flutter/shell/platform/windows/accessibility_alert.h +FILE: ../../../flutter/shell/platform/windows/accessibility_bridge_delegate_windows.cc +FILE: ../../../flutter/shell/platform/windows/accessibility_bridge_delegate_windows.h +FILE: ../../../flutter/shell/platform/windows/accessibility_bridge_delegate_windows_unittests.cc +FILE: ../../../flutter/shell/platform/windows/accessibility_root_node.cc +FILE: ../../../flutter/shell/platform/windows/accessibility_root_node.h +FILE: ../../../flutter/shell/platform/windows/angle_surface_manager.cc +FILE: ../../../flutter/shell/platform/windows/angle_surface_manager.h +FILE: ../../../flutter/shell/platform/windows/client_wrapper/dart_project_unittests.cc +FILE: ../../../flutter/shell/platform/windows/client_wrapper/flutter_engine.cc +FILE: ../../../flutter/shell/platform/windows/client_wrapper/flutter_engine_unittests.cc +FILE: ../../../flutter/shell/platform/windows/client_wrapper/flutter_view_controller.cc +FILE: ../../../flutter/shell/platform/windows/client_wrapper/flutter_view_controller_unittests.cc +FILE: ../../../flutter/shell/platform/windows/client_wrapper/flutter_view_unittests.cc +FILE: ../../../flutter/shell/platform/windows/client_wrapper/include/flutter/dart_project.h +FILE: ../../../flutter/shell/platform/windows/client_wrapper/include/flutter/flutter_engine.h +FILE: ../../../flutter/shell/platform/windows/client_wrapper/include/flutter/flutter_view.h +FILE: ../../../flutter/shell/platform/windows/client_wrapper/include/flutter/flutter_view_controller.h +FILE: ../../../flutter/shell/platform/windows/client_wrapper/include/flutter/plugin_registrar_windows.h +FILE: ../../../flutter/shell/platform/windows/client_wrapper/plugin_registrar_windows_unittests.cc +FILE: ../../../flutter/shell/platform/windows/cursor_handler.cc +FILE: ../../../flutter/shell/platform/windows/cursor_handler.h +FILE: ../../../flutter/shell/platform/windows/direct_manipulation.cc +FILE: ../../../flutter/shell/platform/windows/direct_manipulation.h +FILE: ../../../flutter/shell/platform/windows/direct_manipulation_unittests.cc +FILE: ../../../flutter/shell/platform/windows/dpi_utils.cc +FILE: ../../../flutter/shell/platform/windows/dpi_utils.h +FILE: ../../../flutter/shell/platform/windows/dpi_utils_unittests.cc +FILE: ../../../flutter/shell/platform/windows/event_watcher.cc +FILE: ../../../flutter/shell/platform/windows/event_watcher.h +FILE: ../../../flutter/shell/platform/windows/external_texture.h +FILE: ../../../flutter/shell/platform/windows/external_texture_d3d.cc +FILE: ../../../flutter/shell/platform/windows/external_texture_d3d.h +FILE: ../../../flutter/shell/platform/windows/external_texture_pixelbuffer.cc +FILE: ../../../flutter/shell/platform/windows/external_texture_pixelbuffer.h +FILE: ../../../flutter/shell/platform/windows/flutter_key_map.g.cc +FILE: ../../../flutter/shell/platform/windows/flutter_platform_node_delegate_windows.cc +FILE: ../../../flutter/shell/platform/windows/flutter_platform_node_delegate_windows.h +FILE: ../../../flutter/shell/platform/windows/flutter_project_bundle.cc +FILE: ../../../flutter/shell/platform/windows/flutter_project_bundle.h +FILE: ../../../flutter/shell/platform/windows/flutter_project_bundle_unittests.cc +FILE: ../../../flutter/shell/platform/windows/flutter_window.cc +FILE: ../../../flutter/shell/platform/windows/flutter_window.h +FILE: ../../../flutter/shell/platform/windows/flutter_window_unittests.cc +FILE: ../../../flutter/shell/platform/windows/flutter_windows.cc +FILE: ../../../flutter/shell/platform/windows/flutter_windows_engine.cc +FILE: ../../../flutter/shell/platform/windows/flutter_windows_engine.h +FILE: ../../../flutter/shell/platform/windows/flutter_windows_engine_unittests.cc +FILE: ../../../flutter/shell/platform/windows/flutter_windows_texture_registrar.cc +FILE: ../../../flutter/shell/platform/windows/flutter_windows_texture_registrar.h +FILE: ../../../flutter/shell/platform/windows/flutter_windows_texture_registrar_unittests.cc +FILE: ../../../flutter/shell/platform/windows/flutter_windows_unittests.cc +FILE: ../../../flutter/shell/platform/windows/flutter_windows_view.cc +FILE: ../../../flutter/shell/platform/windows/flutter_windows_view.h +FILE: ../../../flutter/shell/platform/windows/flutter_windows_view_unittests.cc +FILE: ../../../flutter/shell/platform/windows/keyboard_handler_base.h +FILE: ../../../flutter/shell/platform/windows/keyboard_key_channel_handler.cc +FILE: ../../../flutter/shell/platform/windows/keyboard_key_channel_handler.h +FILE: ../../../flutter/shell/platform/windows/keyboard_key_channel_handler_unittests.cc +FILE: ../../../flutter/shell/platform/windows/keyboard_key_embedder_handler.cc +FILE: ../../../flutter/shell/platform/windows/keyboard_key_embedder_handler.h +FILE: ../../../flutter/shell/platform/windows/keyboard_key_embedder_handler_unittests.cc +FILE: ../../../flutter/shell/platform/windows/keyboard_key_handler.cc +FILE: ../../../flutter/shell/platform/windows/keyboard_key_handler.h +FILE: ../../../flutter/shell/platform/windows/keyboard_key_handler_unittests.cc +FILE: ../../../flutter/shell/platform/windows/keyboard_manager.cc +FILE: ../../../flutter/shell/platform/windows/keyboard_manager.h +FILE: ../../../flutter/shell/platform/windows/keyboard_unittests.cc +FILE: ../../../flutter/shell/platform/windows/keyboard_utils.cc +FILE: ../../../flutter/shell/platform/windows/keyboard_utils.h +FILE: ../../../flutter/shell/platform/windows/keyboard_utils_unittests.cc +FILE: ../../../flutter/shell/platform/windows/platform_handler.cc +FILE: ../../../flutter/shell/platform/windows/platform_handler.h +FILE: ../../../flutter/shell/platform/windows/platform_handler_unittests.cc +FILE: ../../../flutter/shell/platform/windows/public/flutter_windows.h +FILE: ../../../flutter/shell/platform/windows/sequential_id_generator.cc +FILE: ../../../flutter/shell/platform/windows/sequential_id_generator.h +FILE: ../../../flutter/shell/platform/windows/sequential_id_generator_unittests.cc +FILE: ../../../flutter/shell/platform/windows/settings_plugin.cc +FILE: ../../../flutter/shell/platform/windows/settings_plugin.h +FILE: ../../../flutter/shell/platform/windows/settings_plugin_unittests.cc +FILE: ../../../flutter/shell/platform/windows/system_utils.cc +FILE: ../../../flutter/shell/platform/windows/system_utils.h +FILE: ../../../flutter/shell/platform/windows/system_utils_unittests.cc +FILE: ../../../flutter/shell/platform/windows/task_runner.cc +FILE: ../../../flutter/shell/platform/windows/task_runner.h +FILE: ../../../flutter/shell/platform/windows/task_runner_unittests.cc +FILE: ../../../flutter/shell/platform/windows/task_runner_window.cc +FILE: ../../../flutter/shell/platform/windows/task_runner_window.h +FILE: ../../../flutter/shell/platform/windows/text_input_manager.cc +FILE: ../../../flutter/shell/platform/windows/text_input_manager.h +FILE: ../../../flutter/shell/platform/windows/text_input_plugin.cc +FILE: ../../../flutter/shell/platform/windows/text_input_plugin.h +FILE: ../../../flutter/shell/platform/windows/text_input_plugin_delegate.h +FILE: ../../../flutter/shell/platform/windows/text_input_plugin_unittest.cc +FILE: ../../../flutter/shell/platform/windows/window.cc +FILE: ../../../flutter/shell/platform/windows/window.h +FILE: ../../../flutter/shell/platform/windows/window_binding_handler.h +FILE: ../../../flutter/shell/platform/windows/window_binding_handler_delegate.h +FILE: ../../../flutter/shell/platform/windows/window_proc_delegate_manager.cc +FILE: ../../../flutter/shell/platform/windows/window_proc_delegate_manager.h +FILE: ../../../flutter/shell/platform/windows/window_proc_delegate_manager_unittests.cc +FILE: ../../../flutter/shell/platform/windows/window_state.h +FILE: ../../../flutter/shell/platform/windows/window_unittests.cc +FILE: ../../../flutter/shell/platform/windows/windows_proc_table.cc +FILE: ../../../flutter/shell/platform/windows/windows_proc_table.h +FILE: ../../../flutter/shell/platform/windows/windows_registry.cc +FILE: ../../../flutter/shell/platform/windows/windows_registry.h +FILE: ../../../flutter/shell/profiling/sampling_profiler.cc +FILE: ../../../flutter/shell/profiling/sampling_profiler.h +FILE: ../../../flutter/shell/profiling/sampling_profiler_unittest.cc +FILE: ../../../flutter/shell/version/version.cc +FILE: ../../../flutter/shell/version/version.h +FILE: ../../../flutter/shell/vmservice/empty.dart +FILE: ../../../flutter/sky/tools/roll/patches/chromium/android_build.patch +FILE: ../../../flutter/third_party/accessibility/base/color_utils.h +FILE: ../../../flutter/third_party/accessibility/base/compiler_specific.h +FILE: ../../../flutter/third_party/accessibility/base/container_utils.h +FILE: ../../../flutter/third_party/accessibility/base/logging.cc +FILE: ../../../flutter/third_party/accessibility/base/logging.h +FILE: ../../../flutter/third_party/accessibility/base/logging_unittests.cc +FILE: ../../../flutter/third_party/accessibility/base/macros.h +FILE: ../../../flutter/third_party/accessibility/base/platform/darwin/scoped_nsobject.h +FILE: ../../../flutter/third_party/accessibility/base/platform/darwin/scoped_nsobject.mm +FILE: ../../../flutter/third_party/accessibility/base/simple_token.cc +FILE: ../../../flutter/third_party/accessibility/base/simple_token.h +FILE: ../../../flutter/third_party/accessibility/base/string_utils.cc +FILE: ../../../flutter/third_party/accessibility/base/string_utils.h +FILE: ../../../flutter/third_party/accessibility/base/string_utils_unittest.cc +FILE: ../../../flutter/third_party/accessibility/gfx/transform.cc +FILE: ../../../flutter/third_party/accessibility/gfx/transform.h +FILE: ../../../flutter/third_party/tonic/common/build_config.h +FILE: ../../../flutter/third_party/tonic/common/log.cc +FILE: ../../../flutter/third_party/tonic/common/log.h +FILE: ../../../flutter/third_party/tonic/common/macros.h +FILE: ../../../flutter/third_party/tonic/converter/dart_converter.cc +FILE: ../../../flutter/third_party/tonic/converter/dart_converter.h +FILE: ../../../flutter/third_party/tonic/dart_args.h +FILE: ../../../flutter/third_party/tonic/dart_binding_macros.h +FILE: ../../../flutter/third_party/tonic/dart_class_library.cc +FILE: ../../../flutter/third_party/tonic/dart_class_library.h +FILE: ../../../flutter/third_party/tonic/dart_class_provider.cc +FILE: ../../../flutter/third_party/tonic/dart_class_provider.h +FILE: ../../../flutter/third_party/tonic/dart_library_natives.cc +FILE: ../../../flutter/third_party/tonic/dart_library_natives.h +FILE: ../../../flutter/third_party/tonic/dart_list.cc +FILE: ../../../flutter/third_party/tonic/dart_list.h +FILE: ../../../flutter/third_party/tonic/dart_message_handler.cc +FILE: ../../../flutter/third_party/tonic/dart_message_handler.h +FILE: ../../../flutter/third_party/tonic/dart_microtask_queue.cc +FILE: ../../../flutter/third_party/tonic/dart_microtask_queue.h +FILE: ../../../flutter/third_party/tonic/dart_persistent_value.cc +FILE: ../../../flutter/third_party/tonic/dart_persistent_value.h +FILE: ../../../flutter/third_party/tonic/dart_state.cc +FILE: ../../../flutter/third_party/tonic/dart_state.h +FILE: ../../../flutter/third_party/tonic/dart_weak_persistent_value.cc +FILE: ../../../flutter/third_party/tonic/dart_weak_persistent_value.h +FILE: ../../../flutter/third_party/tonic/dart_wrappable.cc +FILE: ../../../flutter/third_party/tonic/dart_wrappable.h +FILE: ../../../flutter/third_party/tonic/dart_wrapper_info.h +FILE: ../../../flutter/third_party/tonic/file_loader/file_loader.cc +FILE: ../../../flutter/third_party/tonic/file_loader/file_loader.h +FILE: ../../../flutter/third_party/tonic/file_loader/file_loader_fuchsia.cc +FILE: ../../../flutter/third_party/tonic/file_loader/file_loader_posix.cc +FILE: ../../../flutter/third_party/tonic/file_loader/file_loader_win.cc +FILE: ../../../flutter/third_party/tonic/filesystem/filesystem/eintr_wrapper.h +FILE: ../../../flutter/third_party/tonic/filesystem/filesystem/file.cc +FILE: ../../../flutter/third_party/tonic/filesystem/filesystem/file.h +FILE: ../../../flutter/third_party/tonic/filesystem/filesystem/path.h +FILE: ../../../flutter/third_party/tonic/filesystem/filesystem/path_posix.cc +FILE: ../../../flutter/third_party/tonic/filesystem/filesystem/path_win.cc +FILE: ../../../flutter/third_party/tonic/filesystem/filesystem/portable_unistd.h +FILE: ../../../flutter/third_party/tonic/logging/dart_error.cc +FILE: ../../../flutter/third_party/tonic/logging/dart_error.h +FILE: ../../../flutter/third_party/tonic/logging/dart_invoke.cc +FILE: ../../../flutter/third_party/tonic/logging/dart_invoke.h +FILE: ../../../flutter/third_party/tonic/parsers/packages_map.cc +FILE: ../../../flutter/third_party/tonic/parsers/packages_map.h +FILE: ../../../flutter/third_party/tonic/scopes/dart_api_scope.h +FILE: ../../../flutter/third_party/tonic/scopes/dart_isolate_scope.cc +FILE: ../../../flutter/third_party/tonic/scopes/dart_isolate_scope.h +FILE: ../../../flutter/third_party/tonic/typed_data/dart_byte_data.cc +FILE: ../../../flutter/third_party/tonic/typed_data/dart_byte_data.h +FILE: ../../../flutter/third_party/tonic/typed_data/float32_list.h +FILE: ../../../flutter/third_party/tonic/typed_data/float64_list.h +FILE: ../../../flutter/third_party/tonic/typed_data/int32_list.h +FILE: ../../../flutter/third_party/tonic/typed_data/typed_list.cc +FILE: ../../../flutter/third_party/tonic/typed_data/typed_list.h +FILE: ../../../flutter/third_party/tonic/typed_data/uint16_list.h +FILE: ../../../flutter/third_party/tonic/typed_data/uint8_list.h +FILE: ../../../flutter/third_party/txt/src/txt/platform.cc +FILE: ../../../flutter/third_party/txt/src/txt/platform.h +FILE: ../../../flutter/third_party/txt/src/txt/platform_android.cc +FILE: ../../../flutter/third_party/txt/src/txt/platform_fuchsia.cc +FILE: ../../../flutter/third_party/txt/src/txt/platform_linux.cc +FILE: ../../../flutter/third_party/txt/src/txt/platform_mac.mm +FILE: ../../../flutter/third_party/txt/src/txt/platform_windows.cc +FILE: ../../../flutter/vulkan/procs/vulkan_handle.cc +FILE: ../../../flutter/vulkan/procs/vulkan_handle.h +FILE: ../../../flutter/vulkan/procs/vulkan_interface.cc +FILE: ../../../flutter/vulkan/procs/vulkan_interface.h +FILE: ../../../flutter/vulkan/procs/vulkan_proc_table.cc +FILE: ../../../flutter/vulkan/procs/vulkan_proc_table.h +FILE: ../../../flutter/vulkan/vulkan_application.cc +FILE: ../../../flutter/vulkan/vulkan_application.h +FILE: ../../../flutter/vulkan/vulkan_backbuffer.cc +FILE: ../../../flutter/vulkan/vulkan_backbuffer.h +FILE: ../../../flutter/vulkan/vulkan_command_buffer.cc +FILE: ../../../flutter/vulkan/vulkan_command_buffer.h +FILE: ../../../flutter/vulkan/vulkan_debug_report.cc +FILE: ../../../flutter/vulkan/vulkan_debug_report.h +FILE: ../../../flutter/vulkan/vulkan_device.cc +FILE: ../../../flutter/vulkan/vulkan_device.h +FILE: ../../../flutter/vulkan/vulkan_image.cc +FILE: ../../../flutter/vulkan/vulkan_image.h +FILE: ../../../flutter/vulkan/vulkan_native_surface.cc +FILE: ../../../flutter/vulkan/vulkan_native_surface.h +FILE: ../../../flutter/vulkan/vulkan_native_surface_android.cc +FILE: ../../../flutter/vulkan/vulkan_native_surface_android.h +FILE: ../../../flutter/vulkan/vulkan_provider.cc +FILE: ../../../flutter/vulkan/vulkan_provider.h +FILE: ../../../flutter/vulkan/vulkan_skia_proc_table.cc +FILE: ../../../flutter/vulkan/vulkan_skia_proc_table.h +FILE: ../../../flutter/vulkan/vulkan_surface.cc +FILE: ../../../flutter/vulkan/vulkan_surface.h +FILE: ../../../flutter/vulkan/vulkan_swapchain.cc +FILE: ../../../flutter/vulkan/vulkan_swapchain.h +FILE: ../../../flutter/vulkan/vulkan_swapchain_stub.cc +FILE: ../../../flutter/vulkan/vulkan_utilities.cc +FILE: ../../../flutter/vulkan/vulkan_utilities.h +FILE: ../../../flutter/vulkan/vulkan_window.cc +FILE: ../../../flutter/vulkan/vulkan_window.h ---------------------------------------------------------------------------------------------------- -Copyright (c) 2014 The Chromium Authors. All rights reserved. +Copyright 2013 The Flutter Authors. All rights reserved. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ==================================================================================================== ==================================================================================================== LIBRARY: accessibility -ORIGIN: ../../../flutter/third_party/accessibility/gfx/geometry/insets.cc + ../../../LICENSE +ORIGIN: ../../../LICENSE TYPE: LicenseType.bsd -FILE: ../../../flutter/third_party/accessibility/gfx/geometry/insets.cc -FILE: ../../../flutter/third_party/accessibility/gfx/geometry/insets_unittest.cc +FILE: ../../../flutter/third_party/accessibility/ax/ax_tree_id_registry.cc +FILE: ../../../flutter/third_party/accessibility/ax/ax_tree_id_registry.h +FILE: ../../../flutter/third_party/accessibility/ax/platform/ax_platform_node.cc +FILE: ../../../flutter/third_party/accessibility/ax/platform/ax_platform_node.h +FILE: ../../../flutter/third_party/accessibility/ax/platform/ax_platform_node_base.cc +FILE: ../../../flutter/third_party/accessibility/ax/platform/ax_platform_node_base.h +FILE: ../../../flutter/third_party/accessibility/ax/platform/ax_platform_node_delegate.h +FILE: ../../../flutter/third_party/accessibility/ax/platform/ax_platform_node_delegate_base.h +FILE: ../../../flutter/third_party/accessibility/ax/platform/ax_platform_node_mac.h +FILE: ../../../flutter/third_party/accessibility/ax/platform/ax_platform_node_mac.mm +FILE: ../../../flutter/third_party/accessibility/base/numerics/safe_conversions.h +FILE: ../../../flutter/third_party/accessibility/base/numerics/safe_conversions_impl.h +FILE: ../../../flutter/third_party/accessibility/gfx/mac/coordinate_conversion.h +FILE: ../../../flutter/third_party/accessibility/gfx/mac/coordinate_conversion.mm ---------------------------------------------------------------------------------------------------- -Copyright (c) 2009 The Chromium Authors. All rights reserved. +Copyright 2014 The Chromium Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are @@ -3268,12 +3388,20 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ==================================================================================================== LIBRARY: accessibility -ORIGIN: ../../../flutter/third_party/accessibility/gfx/geometry/rect_unittest.cc + ../../../LICENSE +ORIGIN: ../../../third_party/icu/scripts/LICENSE TYPE: LicenseType.bsd -FILE: ../../../flutter/third_party/accessibility/gfx/geometry/rect_unittest.cc -FILE: ../../../flutter/third_party/accessibility/gfx/gfx_export.h +FILE: ../../../flutter/third_party/accessibility/ax/ax_tree_data.cc +FILE: ../../../flutter/third_party/accessibility/ax/ax_tree_data.h +FILE: ../../../flutter/third_party/accessibility/ax/platform/ax_platform_node_mac_unittest.h +FILE: ../../../flutter/third_party/accessibility/ax/platform/ax_platform_node_mac_unittest.mm +FILE: ../../../flutter/third_party/accessibility/ax/platform/ax_platform_node_win.cc +FILE: ../../../flutter/third_party/accessibility/ax/platform/ax_platform_node_win.h +FILE: ../../../flutter/third_party/accessibility/ax/platform/ax_platform_node_win_unittest.cc +FILE: ../../../flutter/third_party/accessibility/ax/platform/ax_unique_id_unittest.cc +FILE: ../../../flutter/third_party/accessibility/ax/platform/test_ax_node_wrapper.cc +FILE: ../../../flutter/third_party/accessibility/ax/platform/test_ax_node_wrapper.h ---------------------------------------------------------------------------------------------------- -Copyright (c) 2013 The Chromium Authors. All rights reserved. +Copyright 2015 The Chromium Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are @@ -3304,20 +3432,20 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ==================================================================================================== LIBRARY: accessibility -ORIGIN: ../../../third_party/icu/scripts/LICENSE +ORIGIN: ../../../flutter/third_party/accessibility/ax/ax_action_data.cc + ../../../LICENSE TYPE: LicenseType.bsd -FILE: ../../../flutter/third_party/accessibility/ax/ax_tree_data.cc -FILE: ../../../flutter/third_party/accessibility/ax/ax_tree_data.h -FILE: ../../../flutter/third_party/accessibility/ax/platform/ax_platform_node_mac_unittest.h -FILE: ../../../flutter/third_party/accessibility/ax/platform/ax_platform_node_mac_unittest.mm -FILE: ../../../flutter/third_party/accessibility/ax/platform/ax_platform_node_win.cc -FILE: ../../../flutter/third_party/accessibility/ax/platform/ax_platform_node_win.h -FILE: ../../../flutter/third_party/accessibility/ax/platform/ax_platform_node_win_unittest.cc -FILE: ../../../flutter/third_party/accessibility/ax/platform/ax_unique_id_unittest.cc -FILE: ../../../flutter/third_party/accessibility/ax/platform/test_ax_node_wrapper.cc -FILE: ../../../flutter/third_party/accessibility/ax/platform/test_ax_node_wrapper.h +FILE: ../../../flutter/third_party/accessibility/ax/ax_action_data.cc +FILE: ../../../flutter/third_party/accessibility/ax/ax_action_data.h +FILE: ../../../flutter/third_party/accessibility/ax/ax_node_position.cc +FILE: ../../../flutter/third_party/accessibility/ax/ax_node_position.h +FILE: ../../../flutter/third_party/accessibility/ax/ax_node_position_unittest.cc +FILE: ../../../flutter/third_party/accessibility/ax/ax_position.h +FILE: ../../../flutter/third_party/accessibility/ax/ax_range.h +FILE: ../../../flutter/third_party/accessibility/ax/ax_relative_bounds.cc +FILE: ../../../flutter/third_party/accessibility/ax/ax_relative_bounds.h +FILE: ../../../flutter/third_party/accessibility/gfx/range/gfx_range_export.h ---------------------------------------------------------------------------------------------------- -Copyright 2015 The Chromium Authors. All rights reserved. +Copyright 2016 The Chromium Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are @@ -3347,304 +3475,222 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ==================================================================================================== ==================================================================================================== -LIBRARY: txt -ORIGIN: ../../../flutter/third_party/txt/LICENSE -TYPE: LicenseType.apache -FILE: ../../../flutter/third_party/txt/benchmarks/paint_record_benchmarks.cc -FILE: ../../../flutter/third_party/txt/benchmarks/paragraph_benchmarks.cc -FILE: ../../../flutter/third_party/txt/benchmarks/paragraph_builder_benchmarks.cc -FILE: ../../../flutter/third_party/txt/benchmarks/skparagraph_benchmarks.cc -FILE: ../../../flutter/third_party/txt/benchmarks/txt_run_all_benchmarks.cc -FILE: ../../../flutter/third_party/txt/src/log/log.cc -FILE: ../../../flutter/third_party/txt/src/log/log.h -FILE: ../../../flutter/third_party/txt/src/minikin/CmapCoverage.cpp -FILE: ../../../flutter/third_party/txt/src/minikin/CmapCoverage.h -FILE: ../../../flutter/third_party/txt/src/minikin/Emoji.cpp -FILE: ../../../flutter/third_party/txt/src/minikin/Emoji.h -FILE: ../../../flutter/third_party/txt/src/minikin/FontCollection.cpp -FILE: ../../../flutter/third_party/txt/src/minikin/FontCollection.h -FILE: ../../../flutter/third_party/txt/src/minikin/FontFamily.cpp -FILE: ../../../flutter/third_party/txt/src/minikin/FontFamily.h -FILE: ../../../flutter/third_party/txt/src/minikin/FontLanguage.cpp -FILE: ../../../flutter/third_party/txt/src/minikin/FontLanguage.h -FILE: ../../../flutter/third_party/txt/src/minikin/FontLanguageListCache.cpp -FILE: ../../../flutter/third_party/txt/src/minikin/FontLanguageListCache.h -FILE: ../../../flutter/third_party/txt/src/minikin/FontUtils.cpp -FILE: ../../../flutter/third_party/txt/src/minikin/FontUtils.h -FILE: ../../../flutter/third_party/txt/src/minikin/GraphemeBreak.cpp -FILE: ../../../flutter/third_party/txt/src/minikin/GraphemeBreak.h -FILE: ../../../flutter/third_party/txt/src/minikin/HbFontCache.cpp -FILE: ../../../flutter/third_party/txt/src/minikin/HbFontCache.h -FILE: ../../../flutter/third_party/txt/src/minikin/Hyphenator.cpp -FILE: ../../../flutter/third_party/txt/src/minikin/Hyphenator.h -FILE: ../../../flutter/third_party/txt/src/minikin/Layout.cpp -FILE: ../../../flutter/third_party/txt/src/minikin/Layout.h -FILE: ../../../flutter/third_party/txt/src/minikin/LayoutUtils.cpp -FILE: ../../../flutter/third_party/txt/src/minikin/LayoutUtils.h -FILE: ../../../flutter/third_party/txt/src/minikin/LineBreaker.cpp -FILE: ../../../flutter/third_party/txt/src/minikin/LineBreaker.h -FILE: ../../../flutter/third_party/txt/src/minikin/Measurement.cpp -FILE: ../../../flutter/third_party/txt/src/minikin/Measurement.h -FILE: ../../../flutter/third_party/txt/src/minikin/MinikinFont.cpp -FILE: ../../../flutter/third_party/txt/src/minikin/MinikinFont.h -FILE: ../../../flutter/third_party/txt/src/minikin/MinikinInternal.cpp -FILE: ../../../flutter/third_party/txt/src/minikin/MinikinInternal.h -FILE: ../../../flutter/third_party/txt/src/minikin/SparseBitSet.cpp -FILE: ../../../flutter/third_party/txt/src/minikin/SparseBitSet.h -FILE: ../../../flutter/third_party/txt/src/minikin/WordBreaker.cpp -FILE: ../../../flutter/third_party/txt/src/minikin/WordBreaker.h -FILE: ../../../flutter/third_party/txt/src/skia/paragraph_builder_skia.cc -FILE: ../../../flutter/third_party/txt/src/skia/paragraph_builder_skia.h -FILE: ../../../flutter/third_party/txt/src/skia/paragraph_skia.cc -FILE: ../../../flutter/third_party/txt/src/skia/paragraph_skia.h -FILE: ../../../flutter/third_party/txt/src/txt/asset_font_manager.cc -FILE: ../../../flutter/third_party/txt/src/txt/asset_font_manager.h -FILE: ../../../flutter/third_party/txt/src/txt/font_asset_provider.cc -FILE: ../../../flutter/third_party/txt/src/txt/font_asset_provider.h -FILE: ../../../flutter/third_party/txt/src/txt/font_collection.cc -FILE: ../../../flutter/third_party/txt/src/txt/font_collection.h -FILE: ../../../flutter/third_party/txt/src/txt/font_features.cc -FILE: ../../../flutter/third_party/txt/src/txt/font_features.h -FILE: ../../../flutter/third_party/txt/src/txt/font_skia.cc -FILE: ../../../flutter/third_party/txt/src/txt/font_skia.h -FILE: ../../../flutter/third_party/txt/src/txt/font_style.h -FILE: ../../../flutter/third_party/txt/src/txt/font_weight.h -FILE: ../../../flutter/third_party/txt/src/txt/line_metrics.h -FILE: ../../../flutter/third_party/txt/src/txt/paint_record.cc -FILE: ../../../flutter/third_party/txt/src/txt/paint_record.h -FILE: ../../../flutter/third_party/txt/src/txt/paragraph.h -FILE: ../../../flutter/third_party/txt/src/txt/paragraph_builder.cc -FILE: ../../../flutter/third_party/txt/src/txt/paragraph_builder.h -FILE: ../../../flutter/third_party/txt/src/txt/paragraph_builder_txt.cc -FILE: ../../../flutter/third_party/txt/src/txt/paragraph_builder_txt.h -FILE: ../../../flutter/third_party/txt/src/txt/paragraph_style.cc -FILE: ../../../flutter/third_party/txt/src/txt/paragraph_style.h -FILE: ../../../flutter/third_party/txt/src/txt/paragraph_txt.cc -FILE: ../../../flutter/third_party/txt/src/txt/paragraph_txt.h -FILE: ../../../flutter/third_party/txt/src/txt/placeholder_run.cc -FILE: ../../../flutter/third_party/txt/src/txt/placeholder_run.h -FILE: ../../../flutter/third_party/txt/src/txt/run_metrics.h -FILE: ../../../flutter/third_party/txt/src/txt/styled_runs.cc -FILE: ../../../flutter/third_party/txt/src/txt/styled_runs.h -FILE: ../../../flutter/third_party/txt/src/txt/test_font_manager.cc -FILE: ../../../flutter/third_party/txt/src/txt/test_font_manager.h -FILE: ../../../flutter/third_party/txt/src/txt/text_baseline.h -FILE: ../../../flutter/third_party/txt/src/txt/text_decoration.cc -FILE: ../../../flutter/third_party/txt/src/txt/text_decoration.h -FILE: ../../../flutter/third_party/txt/src/txt/text_shadow.cc -FILE: ../../../flutter/third_party/txt/src/txt/text_shadow.h -FILE: ../../../flutter/third_party/txt/src/txt/text_style.cc -FILE: ../../../flutter/third_party/txt/src/txt/text_style.h -FILE: ../../../flutter/third_party/txt/src/txt/typeface_font_asset_provider.cc -FILE: ../../../flutter/third_party/txt/src/txt/typeface_font_asset_provider.h -FILE: ../../../flutter/third_party/txt/src/utils/JenkinsHash.cpp -FILE: ../../../flutter/third_party/txt/src/utils/JenkinsHash.h -FILE: ../../../flutter/third_party/txt/src/utils/LinuxUtils.h -FILE: ../../../flutter/third_party/txt/src/utils/LruCache.h -FILE: ../../../flutter/third_party/txt/src/utils/MacUtils.h -FILE: ../../../flutter/third_party/txt/src/utils/TypeHelpers.h -FILE: ../../../flutter/third_party/txt/src/utils/WindowsUtils.h +LIBRARY: accessibility +ORIGIN: ../../../flutter/third_party/accessibility/ax/platform/ax_platform_node_unittest.cc + ../../../LICENSE +TYPE: LicenseType.bsd +FILE: ../../../flutter/third_party/accessibility/ax/ax_action_handler.cc +FILE: ../../../flutter/third_party/accessibility/ax/ax_action_handler.h +FILE: ../../../flutter/third_party/accessibility/ax/ax_event_generator.cc +FILE: ../../../flutter/third_party/accessibility/ax/ax_event_generator.h +FILE: ../../../flutter/third_party/accessibility/ax/ax_event_generator_unittest.cc +FILE: ../../../flutter/third_party/accessibility/ax/ax_mode.h +FILE: ../../../flutter/third_party/accessibility/ax/ax_mode_observer.h +FILE: ../../../flutter/third_party/accessibility/ax/ax_role_properties.cc +FILE: ../../../flutter/third_party/accessibility/ax/ax_role_properties.h +FILE: ../../../flutter/third_party/accessibility/ax/platform/ax_platform_node_unittest.cc +FILE: ../../../flutter/third_party/accessibility/ax/platform/ax_platform_node_unittest.h +FILE: ../../../flutter/third_party/accessibility/ax/platform/ax_platform_relation_win.cc +FILE: ../../../flutter/third_party/accessibility/ax/platform/ax_platform_relation_win.h +FILE: ../../../flutter/third_party/accessibility/ax/platform/ax_unique_id.cc +FILE: ../../../flutter/third_party/accessibility/ax/platform/ax_unique_id.h +FILE: ../../../flutter/third_party/accessibility/base/numerics/checked_math.h +FILE: ../../../flutter/third_party/accessibility/base/numerics/checked_math_impl.h +FILE: ../../../flutter/third_party/accessibility/base/numerics/clamped_math.h +FILE: ../../../flutter/third_party/accessibility/base/numerics/clamped_math_impl.h +FILE: ../../../flutter/third_party/accessibility/base/numerics/math_constants.h +FILE: ../../../flutter/third_party/accessibility/base/numerics/ranges.h +FILE: ../../../flutter/third_party/accessibility/base/numerics/safe_conversions_arm_impl.h +FILE: ../../../flutter/third_party/accessibility/base/numerics/safe_math.h +FILE: ../../../flutter/third_party/accessibility/base/numerics/safe_math_arm_impl.h +FILE: ../../../flutter/third_party/accessibility/base/numerics/safe_math_clang_gcc_impl.h +FILE: ../../../flutter/third_party/accessibility/base/numerics/safe_math_shared_impl.h ---------------------------------------------------------------------------------------------------- -Apache License -Version 2.0, January 2004 -http://www.apache.org/licenses - -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - -1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - -2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - -3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - -4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and +Copyright 2017 The Chromium Authors. All rights reserved. - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. -5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== -6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. +==================================================================================================== +LIBRARY: accessibility +ORIGIN: ../../../flutter/third_party/accessibility/ax/platform/ax_platform_node_delegate_base.cc + ../../../LICENSE +TYPE: LicenseType.bsd +FILE: ../../../flutter/third_party/accessibility/ax/ax_enum_util.cc +FILE: ../../../flutter/third_party/accessibility/ax/ax_enum_util.h +FILE: ../../../flutter/third_party/accessibility/ax/ax_enums.h +FILE: ../../../flutter/third_party/accessibility/ax/ax_node_data_unittest.cc +FILE: ../../../flutter/third_party/accessibility/ax/ax_table_info.cc +FILE: ../../../flutter/third_party/accessibility/ax/ax_table_info.h +FILE: ../../../flutter/third_party/accessibility/ax/ax_table_info_unittest.cc +FILE: ../../../flutter/third_party/accessibility/ax/ax_tree_id.cc +FILE: ../../../flutter/third_party/accessibility/ax/ax_tree_id.h +FILE: ../../../flutter/third_party/accessibility/ax/ax_tree_observer.cc +FILE: ../../../flutter/third_party/accessibility/ax/ax_tree_observer.h +FILE: ../../../flutter/third_party/accessibility/ax/platform/ax_platform_node_delegate_base.cc +FILE: ../../../flutter/third_party/accessibility/ax/platform/compute_attributes.cc +FILE: ../../../flutter/third_party/accessibility/ax/platform/compute_attributes.h +FILE: ../../../flutter/third_party/accessibility/base/no_destructor.h +FILE: ../../../flutter/third_party/accessibility/base/win/atl.h +---------------------------------------------------------------------------------------------------- +Copyright 2018 The Chromium Authors. All rights reserved. -7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. -9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== -END OF TERMS AND CONDITIONS +==================================================================================================== +LIBRARY: accessibility +ORIGIN: ../../../flutter/third_party/accessibility/ax/platform/ax_fragment_root_delegate_win.h + ../../../LICENSE +TYPE: LicenseType.bsd +FILE: ../../../flutter/third_party/accessibility/ax/ax_active_popup.cc +FILE: ../../../flutter/third_party/accessibility/ax/ax_active_popup.h +FILE: ../../../flutter/third_party/accessibility/ax/ax_clipping_behavior.h +FILE: ../../../flutter/third_party/accessibility/ax/ax_constants.h +FILE: ../../../flutter/third_party/accessibility/ax/ax_coordinate_system.h +FILE: ../../../flutter/third_party/accessibility/ax/ax_enum_util_unittest.cc +FILE: ../../../flutter/third_party/accessibility/ax/ax_mode.cc +FILE: ../../../flutter/third_party/accessibility/ax/ax_node_text_styles.cc +FILE: ../../../flutter/third_party/accessibility/ax/ax_node_text_styles.h +FILE: ../../../flutter/third_party/accessibility/ax/ax_offscreen_result.h +FILE: ../../../flutter/third_party/accessibility/ax/ax_range_unittest.cc +FILE: ../../../flutter/third_party/accessibility/ax/ax_role_properties_unittest.cc +FILE: ../../../flutter/third_party/accessibility/ax/ax_tree_manager.h +FILE: ../../../flutter/third_party/accessibility/ax/ax_tree_manager_map.cc +FILE: ../../../flutter/third_party/accessibility/ax/ax_tree_manager_map.h +FILE: ../../../flutter/third_party/accessibility/ax/platform/ax_fragment_root_delegate_win.h +FILE: ../../../flutter/third_party/accessibility/ax/platform/ax_fragment_root_win.cc +FILE: ../../../flutter/third_party/accessibility/ax/platform/ax_fragment_root_win.h +FILE: ../../../flutter/third_party/accessibility/ax/platform/ax_fragment_root_win_unittest.cc +FILE: ../../../flutter/third_party/accessibility/ax/platform/ax_platform_node_base_unittest.cc +FILE: ../../../flutter/third_party/accessibility/ax/platform/ax_platform_node_delegate_utils_win.cc +FILE: ../../../flutter/third_party/accessibility/ax/platform/ax_platform_node_delegate_utils_win.h +FILE: ../../../flutter/third_party/accessibility/ax/platform/ax_platform_node_win_unittest.h +FILE: ../../../flutter/third_party/accessibility/base/win/scoped_safearray.h +FILE: ../../../flutter/third_party/accessibility/base/win/scoped_safearray_unittest.cc +---------------------------------------------------------------------------------------------------- +Copyright 2019 The Chromium Authors. All rights reserved. -APPENDIX: How to apply the Apache License to your work. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. -Copyright [yyyy] [name of copyright owner] +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at +==================================================================================================== +LIBRARY: accessibility +ORIGIN: ../../../flutter/third_party/accessibility/ax/platform/uia_registrar_win.cc + ../../../LICENSE +TYPE: LicenseType.bsd +FILE: ../../../flutter/third_party/accessibility/ax/ax_action_handler_base.cc +FILE: ../../../flutter/third_party/accessibility/ax/ax_action_handler_base.h +FILE: ../../../flutter/third_party/accessibility/ax/ax_base_export.h +FILE: ../../../flutter/third_party/accessibility/ax/ax_event_intent.cc +FILE: ../../../flutter/third_party/accessibility/ax/ax_event_intent.h +FILE: ../../../flutter/third_party/accessibility/ax/platform/uia_registrar_win.cc +FILE: ../../../flutter/third_party/accessibility/ax/platform/uia_registrar_win.h +FILE: ../../../flutter/third_party/accessibility/ax/test_ax_node_helper.cc +FILE: ../../../flutter/third_party/accessibility/ax/test_ax_node_helper.h +FILE: ../../../flutter/third_party/accessibility/ax/test_ax_tree_manager.cc +FILE: ../../../flutter/third_party/accessibility/ax/test_ax_tree_manager.h +FILE: ../../../flutter/third_party/accessibility/base/win/dispatch_stub.cc +FILE: ../../../flutter/third_party/accessibility/base/win/dispatch_stub.h +FILE: ../../../flutter/third_party/accessibility/base/win/variant_util.h +FILE: ../../../flutter/third_party/accessibility/base/win/variant_vector.cc +FILE: ../../../flutter/third_party/accessibility/base/win/variant_vector.h +FILE: ../../../flutter/third_party/accessibility/base/win/variant_vector_unittest.cc +---------------------------------------------------------------------------------------------------- +Copyright 2020 The Chromium Authors. All rights reserved. - http://www.apache.org/licenses/LICENSE-2.0 +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ==================================================================================================== Total license count: 16 diff --git a/ci/licenses_golden/licenses_fuchsia b/ci/licenses_golden/licenses_fuchsia index ac7fa8d3871cf..2cc2ec151a4a0 100644 --- a/ci/licenses_golden/licenses_fuchsia +++ b/ci/licenses_golden/licenses_fuchsia @@ -1,4 +1,4 @@ -Signature: 5411ec3d5169d0f2122aa17cb214bd89 +Signature: 4cd5b1f7e090e5d8b7bd345765047d54 UNUSED LICENSES: @@ -8,2372 +8,316 @@ USED LICENSES: ==================================================================================================== LIBRARY: fuchsia_sdk -ORIGIN: ../../../fuchsia/sdk/linux/COPYRIGHT.musl -TYPE: LicenseType.mit -FILE: ../../../fuchsia/sdk/linux/.versions/core.cipd_version -FILE: ../../../fuchsia/sdk/linux/arch/arm64/dist/VkLayer_image_pipe_swapchain.so -FILE: ../../../fuchsia/sdk/linux/arch/arm64/dist/VkLayer_khronos_validation.so -FILE: ../../../fuchsia/sdk/linux/arch/arm64/dist/libasync-default.so -FILE: ../../../fuchsia/sdk/linux/arch/arm64/dist/libfdio.so -FILE: ../../../fuchsia/sdk/linux/arch/arm64/dist/libmemfs.so -FILE: ../../../fuchsia/sdk/linux/arch/arm64/dist/libsvc.so -FILE: ../../../fuchsia/sdk/linux/arch/arm64/dist/libsyslog.so -FILE: ../../../fuchsia/sdk/linux/arch/arm64/dist/libtrace-engine.so -FILE: ../../../fuchsia/sdk/linux/arch/arm64/dist/libtrace-provider-so.so -FILE: ../../../fuchsia/sdk/linux/arch/arm64/dist/libvulkan.so -FILE: ../../../fuchsia/sdk/linux/arch/arm64/lib/libasync-default.so -FILE: ../../../fuchsia/sdk/linux/arch/arm64/lib/libasync-loop-default.a -FILE: ../../../fuchsia/sdk/linux/arch/arm64/lib/libfdio.so -FILE: ../../../fuchsia/sdk/linux/arch/arm64/lib/libmemfs.so -FILE: ../../../fuchsia/sdk/linux/arch/arm64/lib/libsvc.so -FILE: ../../../fuchsia/sdk/linux/arch/arm64/lib/libsync.a -FILE: ../../../fuchsia/sdk/linux/arch/arm64/lib/libsyslog.so -FILE: ../../../fuchsia/sdk/linux/arch/arm64/lib/libtrace-engine.so -FILE: ../../../fuchsia/sdk/linux/arch/arm64/lib/libtrace-provider-so.so -FILE: ../../../fuchsia/sdk/linux/arch/arm64/lib/libvulkan.so -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/alloca.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/ar.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/arpa/ftp.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/arpa/inet.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/arpa/nameser.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/arpa/nameser_compat.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/arpa/telnet.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/arpa/tftp.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/assert.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/aarch64/endian.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/aarch64/fenv.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/aarch64/ioctl.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/aarch64/ipc.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/aarch64/reg.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/aarch64/setjmp.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/aarch64/signal.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/aarch64/stat.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/alltypes.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/endian.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/errno.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/fcntl.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/fenv.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/io.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/ioctl.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/ipc.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/limits.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/msg.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/posix.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/reg.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/sem.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/setjmp.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/shm.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/signal.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/stat.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/statfs.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/termios.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/x86_64/endian.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/x86_64/fenv.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/x86_64/io.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/x86_64/ioctl.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/x86_64/ipc.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/x86_64/reg.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/x86_64/setjmp.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/x86_64/signal.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/x86_64/stat.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/byteswap.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/complex.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/cpio.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/ctype.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/dirent.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/dlfcn.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/elf.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/endian.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/err.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/errno.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/fcntl.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/features.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/fenv.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/fmtmsg.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/fnmatch.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/getopt.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/glob.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/grp.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/iconv.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/ifaddrs.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/inttypes.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/iso646.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/langinfo.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/libgen.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/limits.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/link.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/locale.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/malloc.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/math.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/memory.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/monetary.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/net/ethernet.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/net/if.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/net/if_arp.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/net/route.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/netdb.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/netinet/ether.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/netinet/icmp6.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/netinet/if_ether.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/netinet/igmp.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/netinet/in.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/netinet/in_systm.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/netinet/ip.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/netinet/ip6.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/netinet/ip_icmp.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/netinet/tcp.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/netinet/udp.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/netpacket/packet.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/nl_types.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/paths.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/poll.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/pthread.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/pwd.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/regex.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/resolv.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sched.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/search.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/semaphore.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/setjmp.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/signal.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/spawn.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/stdio.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/stdlib.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/string.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/strings.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/stropts.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/acct.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/auxv.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/dir.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/errno.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/eventfd.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/fcntl.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/file.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/fsuid.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/inotify.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/io.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/ioctl.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/ipc.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/klog.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/mman.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/mount.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/msg.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/mtio.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/param.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/personality.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/poll.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/quota.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/random.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/reboot.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/reg.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/select.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/sem.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/shm.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/signal.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/signalfd.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/socket.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/stat.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/statfs.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/statvfs.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/stropts.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/swap.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/syslog.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/termios.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/time.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/timeb.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/timerfd.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/times.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/timex.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/ttydefaults.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/types.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/ucontext.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/uio.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/un.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/utsname.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/vfs.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/wait.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sysexits.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/syslog.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/tar.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/termios.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/threads.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/time.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/uchar.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/ucontext.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/unistd.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/utime.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/values.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/wait.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/wchar.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/wctype.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/wordexp.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/lib/Scrt1.o -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/lib/libc.so -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/lib/libdl.so -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/lib/libm.so -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/lib/libpthread.so -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/lib/librt.so -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/lib/libzircon.so -FILE: ../../../fuchsia/sdk/linux/arch/x64/dist/VkLayer_image_pipe_swapchain.so -FILE: ../../../fuchsia/sdk/linux/arch/x64/dist/VkLayer_khronos_validation.so -FILE: ../../../fuchsia/sdk/linux/arch/x64/dist/libasync-default.so -FILE: ../../../fuchsia/sdk/linux/arch/x64/dist/libfdio.so -FILE: ../../../fuchsia/sdk/linux/arch/x64/dist/libmemfs.so -FILE: ../../../fuchsia/sdk/linux/arch/x64/dist/libsvc.so -FILE: ../../../fuchsia/sdk/linux/arch/x64/dist/libsyslog.so -FILE: ../../../fuchsia/sdk/linux/arch/x64/dist/libtrace-engine.so -FILE: ../../../fuchsia/sdk/linux/arch/x64/dist/libtrace-provider-so.so -FILE: ../../../fuchsia/sdk/linux/arch/x64/dist/libvulkan.so -FILE: ../../../fuchsia/sdk/linux/arch/x64/lib/libasync-default.so -FILE: ../../../fuchsia/sdk/linux/arch/x64/lib/libasync-loop-default.a -FILE: ../../../fuchsia/sdk/linux/arch/x64/lib/libfdio.so -FILE: ../../../fuchsia/sdk/linux/arch/x64/lib/libmemfs.so -FILE: ../../../fuchsia/sdk/linux/arch/x64/lib/libsvc.so -FILE: ../../../fuchsia/sdk/linux/arch/x64/lib/libsync.a -FILE: ../../../fuchsia/sdk/linux/arch/x64/lib/libsyslog.so -FILE: ../../../fuchsia/sdk/linux/arch/x64/lib/libtrace-engine.so -FILE: ../../../fuchsia/sdk/linux/arch/x64/lib/libtrace-provider-so.so -FILE: ../../../fuchsia/sdk/linux/arch/x64/lib/libvulkan.so -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/alloca.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/ar.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/arpa/ftp.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/arpa/inet.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/arpa/nameser.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/arpa/nameser_compat.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/arpa/telnet.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/arpa/tftp.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/assert.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/aarch64/endian.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/aarch64/fenv.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/aarch64/ioctl.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/aarch64/ipc.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/aarch64/reg.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/aarch64/setjmp.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/aarch64/signal.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/aarch64/stat.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/alltypes.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/endian.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/errno.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/fcntl.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/fenv.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/io.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/ioctl.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/ipc.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/limits.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/msg.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/posix.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/reg.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/sem.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/setjmp.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/shm.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/signal.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/stat.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/statfs.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/termios.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/x86_64/endian.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/x86_64/fenv.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/x86_64/io.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/x86_64/ioctl.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/x86_64/ipc.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/x86_64/reg.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/x86_64/setjmp.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/x86_64/signal.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/x86_64/stat.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/byteswap.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/complex.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/cpio.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/ctype.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/dirent.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/dlfcn.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/elf.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/endian.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/err.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/errno.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/fcntl.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/features.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/fenv.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/fmtmsg.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/fnmatch.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/getopt.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/glob.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/grp.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/iconv.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/ifaddrs.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/inttypes.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/iso646.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/langinfo.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/libgen.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/limits.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/link.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/locale.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/malloc.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/math.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/memory.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/monetary.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/net/ethernet.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/net/if.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/net/if_arp.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/net/route.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/netdb.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/netinet/ether.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/netinet/icmp6.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/netinet/if_ether.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/netinet/igmp.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/netinet/in.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/netinet/in_systm.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/netinet/ip.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/netinet/ip6.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/netinet/ip_icmp.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/netinet/tcp.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/netinet/udp.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/netpacket/packet.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/nl_types.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/paths.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/poll.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/pthread.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/pwd.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/regex.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/resolv.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sched.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/search.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/semaphore.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/setjmp.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/signal.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/spawn.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/stdio.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/stdlib.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/string.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/strings.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/stropts.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/acct.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/auxv.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/dir.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/errno.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/eventfd.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/fcntl.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/file.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/fsuid.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/inotify.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/io.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/ioctl.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/ipc.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/klog.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/mman.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/mount.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/msg.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/mtio.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/param.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/personality.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/poll.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/quota.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/random.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/reboot.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/reg.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/select.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/sem.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/shm.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/signal.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/signalfd.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/socket.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/stat.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/statfs.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/statvfs.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/stropts.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/swap.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/syslog.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/termios.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/time.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/timeb.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/timerfd.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/times.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/timex.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/ttydefaults.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/types.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/ucontext.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/uio.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/un.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/utsname.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/vfs.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/wait.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sysexits.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/syslog.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/tar.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/termios.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/threads.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/time.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/uchar.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/ucontext.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/unistd.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/utime.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/values.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/wait.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/wchar.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/wctype.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/wordexp.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/lib/Scrt1.o -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/lib/libc.so -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/lib/libdl.so -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/lib/libm.so -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/lib/libpthread.so -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/lib/librt.so -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/lib/libzircon.so -FILE: ../../../fuchsia/sdk/linux/dart/fidl/meta.json -FILE: ../../../fuchsia/sdk/linux/dart/fuchsia/meta.json -FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_component_test/meta.json -FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_inspect/meta.json -FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_logger/meta.json -FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_scenic/meta.json -FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_scenic_flutter/meta.json -FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_services/meta.json -FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_vfs/meta.json -FILE: ../../../fuchsia/sdk/linux/dart/sl4f/meta.json -FILE: ../../../fuchsia/sdk/linux/dart/zircon/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.accessibility.gesture/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.accessibility.semantics/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.accessibility.virtualkeyboard/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.audio.effects/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.auth.oldtokens/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.auth/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth.a2dp/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth.gatt/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth.gatt2/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth.hfp/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth.le/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth.sys/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.buildinfo.test/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.buildinfo/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.camera/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.camera2.hal/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.camera2/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.camera3/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.castauth/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.castconfig/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.castremotecontrol/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.castsetup/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.castsysteminfo/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.castwindow/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.config/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.decl/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.resolution/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.runner/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.test/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.types/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.data/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.debugdata/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.developer.tiles/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.diagnostics.types/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.diagnostics/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.driver.test/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.element/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.factory.wlan/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.factory/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.feedback/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.fonts/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.gpu.agis/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.adc/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.audio.signalprocessing/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.audio/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.goldfish/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.light/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.network/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.power.statecontrol/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.radar/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hwinfo/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.images/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.input.report/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.input.virtualkeyboard/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.input/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.inspect/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.intl/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.io/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.kernel/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ldsvc/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.legacymetrics/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.lightsensor/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.location.namedplace/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.location.position/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.location.sensor/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.location/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.logger/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.lowpan.bootstrap/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.lowpan.device/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.lowpan.thread/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.lowpan/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.math/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.media.audio/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.media.drm/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.media.playback/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.media.sessions2/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.media.sounds/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.media.target/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.media/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.mediacodec/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.mediastreams/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.mem/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.memorypressure/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.metrics/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.migration/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.modular.session/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.modular.testing/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.modular/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.net.http/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.net.interfaces/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.net.mdns/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.net.reachability/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.net.routes/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.net/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.power.clientlevel/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.power.profile/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.power.systemmode/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.process.lifecycle/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.process/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.recovery.ui/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.recovery/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.scenic.scheduling/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.session/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.settings.policy/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.settings/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.sys.test/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.sys/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.sysinfo/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.sysmem/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.test/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.thermal/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.tracing.perfetto/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.tracing.provider/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.activity.control/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.activity/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.app/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.brightness/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.composition/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.gfx/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.input/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.input3/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.lifecycle/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.observation.geometry/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.pointer.augment/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.pointer/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.pointerinjector/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.policy/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.scenic/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.test.input/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.test.scene/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.types/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.views/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ultrasound/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.unknown/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.update.channel/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.update.channelcontrol/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.update.config/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.update/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.url/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.weave/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.web/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.wlan.common/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.wlan.ieee80211/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.wlan.policy/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.wlan.product.deprecatedclient/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.wlan.product.deprecatedconfiguration/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/zx/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/async-cpp/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/async-default/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/async-loop-cpp/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/async-loop-default/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/async-loop-testing/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/async-loop/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/async-testing/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/async/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/fdio/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/fidl/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/fidl_base/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/fidl_cpp/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/fidl_cpp_base/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/fidl_cpp_sync/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/fit-promise/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/fit/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/images_cpp/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/inspect/inspect.json -FILE: ../../../fuchsia/sdk/linux/pkg/inspect/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/inspect_service_cpp/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/media_cpp/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/media_cpp_no_converters/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/memfs/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/modular_cpp/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/modular_testing_cpp/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/scenic_cpp/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/stdcompat/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/svc/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/sync/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/sys/component/realm_builder_shard_sdk.json -FILE: ../../../fuchsia/sdk/linux/pkg/sys_component_cpp_testing/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/sys_cpp/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/sys_cpp_testing/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/sys_inspect_cpp/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/sys_service_cpp/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/syslog/client.shard.cmx -FILE: ../../../fuchsia/sdk/linux/pkg/syslog/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/syslog/syslog.json -FILE: ../../../fuchsia/sdk/linux/pkg/syslog_structured_backend/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/sysroot/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/trace-engine/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/trace-provider-so/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/trace/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/tree_service_common/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/utf-utils/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/vfs_cpp/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/vulkan/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/vulkan/vulkan.json -FILE: ../../../fuchsia/sdk/linux/pkg/vulkan_layers/data/vulkan/explicit_layer.d/VkLayer_image_pipe_swapchain.json -FILE: ../../../fuchsia/sdk/linux/pkg/vulkan_layers/data/vulkan/explicit_layer.d/VkLayer_khronos_validation.json -FILE: ../../../fuchsia/sdk/linux/pkg/vulkan_layers/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/zx/meta.json -FILE: ../../../fuchsia/sdk/linux/version_history.json ----------------------------------------------------------------------------------------------------- -musl as a whole is licensed under the following standard MIT license: - -Copyright © 2005-2014 Rich Felker, et al. - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -Authors/contributors include: - -Alex Dowad -Alexander Monakov -Anthony G. Basile -Arvid Picciani -Bobby Bingham -Boris Brezillon -Brent Cook -Chris Spiegel -Clément Vasseur -Daniel Micay -Denys Vlasenko -Emil Renner Berthing -Felix Fietkau -Felix Janda -Gianluca Anzolin -Hauke Mehrtens -Hiltjo Posthuma -Isaac Dunham -Jaydeep Patil -Jens Gustedt -Jeremy Huntwork -Jo-Philipp Wich -Joakim Sindholt -John Spencer -Josiah Worcester -Justin Cormack -Khem Raj -Kylie McClain -Luca Barbato -Luka Perkov -M Farkas-Dyck (Strake) -Mahesh Bodapati -Michael Forney -Natanael Copa -Nicholas J. Kain -orc -Pascal Cuoq -Petr Hosek -Pierre Carrier -Rich Felker -Richard Pennington -Shiz -sin -Solar Designer -Stefan Kristiansson -Szabolcs Nagy -Timo Teräs -Trutz Behn -Valentin Ochs -William Haddon - -Portions of this software are derived from third-party works licensed -under terms compatible with the above MIT license: - -Much of the math library code (third_party/math/* and -third_party/complex/*, and third_party/include/libm.h) is -Copyright © 1993,2004 Sun Microsystems or -Copyright © 2003-2011 David Schultz or -Copyright © 2003-2009 Steven G. Kargl or -Copyright © 2003-2009 Bruce D. Evans or -Copyright © 2008 Stephen L. Moshier -and labelled as such in comments in the individual source files. All -have been licensed under extremely permissive terms. - -The smoothsort implementation (third_party/smoothsort/qsort.c) is -Copyright © 2011 Valentin Ochs and is licensed under an MIT-style -license. - -The x86_64 files in third_party/arch were written by Nicholas J. Kain -and is licensed under the standard MIT terms. - -All other files which have no copyright comments are original works -produced specifically for use as part of this library, written either -by Rich Felker, the main author of the library, or by one or more -contibutors listed above. Details on authorship of individual files -can be found in the git version control history of the project. The -omission of copyright and license comments in each file is in the -interest of source tree size. - -In addition, permission is hereby granted for all public header files -(include/* and arch/*/bits/*) and crt files intended to be linked into -applications (crt/*, ldso/dlstart.c, and arch/*/crt_arch.h) to omit -the copyright notice and permission notice otherwise required by the -license, and to use these files without any requirement of -attribution. These files include substantial contributions from: - -Bobby Bingham -John Spencer -Nicholas J. Kain -Rich Felker -Richard Pennington -Stefan Kristiansson -Szabolcs Nagy - -all of whom have explicitly granted such permission. - -This file previously contained text expressing a belief that most of -the files covered by the above exception were sufficiently trivial not -to be subject to copyright, resulting in confusion over whether it -negated the permissions granted in the license. In the spirit of -permissive licensing, and of not having licensing issues being an -obstacle to adoption, that text has been removed. -==================================================================================================== - -==================================================================================================== -LIBRARY: fuchsia_sdk -ORIGIN: ../../../fuchsia/sdk/linux/LICENSE -TYPE: LicenseType.bsd -FILE: ../../../fuchsia/sdk/linux/.versions/core.cipd_version -FILE: ../../../fuchsia/sdk/linux/arch/arm64/dist/VkLayer_image_pipe_swapchain.so -FILE: ../../../fuchsia/sdk/linux/arch/arm64/dist/VkLayer_khronos_validation.so -FILE: ../../../fuchsia/sdk/linux/arch/arm64/dist/libasync-default.so -FILE: ../../../fuchsia/sdk/linux/arch/arm64/dist/libfdio.so -FILE: ../../../fuchsia/sdk/linux/arch/arm64/dist/libmemfs.so -FILE: ../../../fuchsia/sdk/linux/arch/arm64/dist/libsvc.so -FILE: ../../../fuchsia/sdk/linux/arch/arm64/dist/libsyslog.so -FILE: ../../../fuchsia/sdk/linux/arch/arm64/dist/libtrace-engine.so -FILE: ../../../fuchsia/sdk/linux/arch/arm64/dist/libtrace-provider-so.so -FILE: ../../../fuchsia/sdk/linux/arch/arm64/dist/libvulkan.so -FILE: ../../../fuchsia/sdk/linux/arch/arm64/lib/libasync-default.so -FILE: ../../../fuchsia/sdk/linux/arch/arm64/lib/libasync-loop-default.a -FILE: ../../../fuchsia/sdk/linux/arch/arm64/lib/libfdio.so -FILE: ../../../fuchsia/sdk/linux/arch/arm64/lib/libmemfs.so -FILE: ../../../fuchsia/sdk/linux/arch/arm64/lib/libsvc.so -FILE: ../../../fuchsia/sdk/linux/arch/arm64/lib/libsync.a -FILE: ../../../fuchsia/sdk/linux/arch/arm64/lib/libsyslog.so -FILE: ../../../fuchsia/sdk/linux/arch/arm64/lib/libtrace-engine.so -FILE: ../../../fuchsia/sdk/linux/arch/arm64/lib/libtrace-provider-so.so -FILE: ../../../fuchsia/sdk/linux/arch/arm64/lib/libvulkan.so -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/alloca.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/ar.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/arpa/ftp.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/arpa/inet.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/arpa/nameser.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/arpa/nameser_compat.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/arpa/telnet.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/arpa/tftp.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/assert.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/aarch64/endian.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/aarch64/fenv.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/aarch64/ioctl.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/aarch64/ipc.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/aarch64/reg.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/aarch64/setjmp.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/aarch64/signal.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/aarch64/stat.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/alltypes.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/endian.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/errno.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/fcntl.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/fenv.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/io.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/ioctl.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/ipc.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/limits.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/msg.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/posix.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/reg.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/sem.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/setjmp.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/shm.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/signal.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/stat.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/statfs.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/termios.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/x86_64/endian.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/x86_64/fenv.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/x86_64/io.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/x86_64/ioctl.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/x86_64/ipc.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/x86_64/reg.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/x86_64/setjmp.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/x86_64/signal.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/x86_64/stat.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/byteswap.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/complex.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/cpio.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/ctype.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/dirent.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/dlfcn.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/elf.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/endian.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/err.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/errno.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/fcntl.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/features.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/fenv.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/fmtmsg.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/fnmatch.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/getopt.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/glob.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/grp.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/iconv.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/ifaddrs.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/inttypes.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/iso646.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/langinfo.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/libgen.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/limits.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/link.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/locale.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/malloc.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/math.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/memory.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/monetary.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/net/ethernet.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/net/if.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/net/if_arp.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/net/route.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/netdb.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/netinet/ether.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/netinet/icmp6.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/netinet/if_ether.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/netinet/igmp.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/netinet/in.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/netinet/in_systm.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/netinet/ip.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/netinet/ip6.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/netinet/ip_icmp.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/netinet/tcp.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/netinet/udp.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/netpacket/packet.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/nl_types.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/paths.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/poll.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/pthread.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/pwd.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/regex.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/resolv.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sched.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/search.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/semaphore.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/setjmp.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/signal.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/spawn.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/stdio.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/stdlib.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/string.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/strings.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/stropts.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/acct.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/auxv.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/dir.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/errno.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/eventfd.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/fcntl.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/file.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/fsuid.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/inotify.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/io.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/ioctl.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/ipc.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/klog.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/mman.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/mount.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/msg.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/mtio.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/param.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/personality.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/poll.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/quota.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/random.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/reboot.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/reg.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/select.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/sem.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/shm.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/signal.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/signalfd.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/socket.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/stat.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/statfs.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/statvfs.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/stropts.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/swap.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/syslog.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/termios.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/time.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/timeb.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/timerfd.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/times.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/timex.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/ttydefaults.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/types.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/ucontext.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/uio.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/un.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/utsname.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/vfs.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/wait.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sysexits.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/syslog.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/tar.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/termios.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/threads.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/time.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/uchar.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/ucontext.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/unistd.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/utime.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/values.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/wait.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/wchar.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/wctype.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/wordexp.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/lib/Scrt1.o -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/lib/libc.so -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/lib/libdl.so -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/lib/libm.so -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/lib/libpthread.so -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/lib/librt.so -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/lib/libzircon.so -FILE: ../../../fuchsia/sdk/linux/arch/x64/dist/VkLayer_image_pipe_swapchain.so -FILE: ../../../fuchsia/sdk/linux/arch/x64/dist/VkLayer_khronos_validation.so -FILE: ../../../fuchsia/sdk/linux/arch/x64/dist/libasync-default.so -FILE: ../../../fuchsia/sdk/linux/arch/x64/dist/libfdio.so -FILE: ../../../fuchsia/sdk/linux/arch/x64/dist/libmemfs.so -FILE: ../../../fuchsia/sdk/linux/arch/x64/dist/libsvc.so -FILE: ../../../fuchsia/sdk/linux/arch/x64/dist/libsyslog.so -FILE: ../../../fuchsia/sdk/linux/arch/x64/dist/libtrace-engine.so -FILE: ../../../fuchsia/sdk/linux/arch/x64/dist/libtrace-provider-so.so -FILE: ../../../fuchsia/sdk/linux/arch/x64/dist/libvulkan.so -FILE: ../../../fuchsia/sdk/linux/arch/x64/lib/libasync-default.so -FILE: ../../../fuchsia/sdk/linux/arch/x64/lib/libasync-loop-default.a -FILE: ../../../fuchsia/sdk/linux/arch/x64/lib/libfdio.so -FILE: ../../../fuchsia/sdk/linux/arch/x64/lib/libmemfs.so -FILE: ../../../fuchsia/sdk/linux/arch/x64/lib/libsvc.so -FILE: ../../../fuchsia/sdk/linux/arch/x64/lib/libsync.a -FILE: ../../../fuchsia/sdk/linux/arch/x64/lib/libsyslog.so -FILE: ../../../fuchsia/sdk/linux/arch/x64/lib/libtrace-engine.so -FILE: ../../../fuchsia/sdk/linux/arch/x64/lib/libtrace-provider-so.so -FILE: ../../../fuchsia/sdk/linux/arch/x64/lib/libvulkan.so -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/alloca.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/ar.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/arpa/ftp.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/arpa/inet.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/arpa/nameser.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/arpa/nameser_compat.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/arpa/telnet.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/arpa/tftp.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/assert.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/aarch64/endian.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/aarch64/fenv.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/aarch64/ioctl.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/aarch64/ipc.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/aarch64/reg.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/aarch64/setjmp.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/aarch64/signal.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/aarch64/stat.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/alltypes.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/endian.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/errno.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/fcntl.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/fenv.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/io.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/ioctl.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/ipc.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/limits.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/msg.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/posix.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/reg.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/sem.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/setjmp.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/shm.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/signal.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/stat.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/statfs.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/termios.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/x86_64/endian.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/x86_64/fenv.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/x86_64/io.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/x86_64/ioctl.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/x86_64/ipc.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/x86_64/reg.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/x86_64/setjmp.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/x86_64/signal.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/x86_64/stat.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/byteswap.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/complex.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/cpio.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/ctype.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/dirent.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/dlfcn.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/elf.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/endian.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/err.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/errno.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/fcntl.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/features.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/fenv.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/fmtmsg.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/fnmatch.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/getopt.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/glob.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/grp.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/iconv.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/ifaddrs.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/inttypes.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/iso646.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/langinfo.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/libgen.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/limits.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/link.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/locale.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/malloc.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/math.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/memory.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/monetary.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/net/ethernet.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/net/if.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/net/if_arp.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/net/route.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/netdb.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/netinet/ether.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/netinet/icmp6.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/netinet/if_ether.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/netinet/igmp.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/netinet/in.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/netinet/in_systm.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/netinet/ip.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/netinet/ip6.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/netinet/ip_icmp.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/netinet/tcp.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/netinet/udp.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/netpacket/packet.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/nl_types.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/paths.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/poll.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/pthread.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/pwd.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/regex.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/resolv.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sched.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/search.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/semaphore.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/setjmp.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/signal.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/spawn.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/stdio.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/stdlib.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/string.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/strings.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/stropts.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/acct.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/auxv.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/dir.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/errno.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/eventfd.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/fcntl.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/file.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/fsuid.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/inotify.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/io.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/ioctl.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/ipc.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/klog.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/mman.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/mount.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/msg.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/mtio.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/param.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/personality.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/poll.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/quota.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/random.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/reboot.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/reg.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/select.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/sem.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/shm.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/signal.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/signalfd.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/socket.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/stat.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/statfs.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/statvfs.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/stropts.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/swap.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/syslog.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/termios.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/time.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/timeb.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/timerfd.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/times.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/timex.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/ttydefaults.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/types.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/ucontext.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/uio.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/un.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/utsname.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/vfs.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/wait.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sysexits.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/syslog.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/tar.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/termios.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/threads.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/time.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/uchar.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/ucontext.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/unistd.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/utime.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/values.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/wait.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/wchar.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/wctype.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/wordexp.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/lib/Scrt1.o -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/lib/libc.so -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/lib/libdl.so -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/lib/libm.so -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/lib/libpthread.so -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/lib/librt.so -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/lib/libzircon.so -FILE: ../../../fuchsia/sdk/linux/dart/fidl/meta.json -FILE: ../../../fuchsia/sdk/linux/dart/fuchsia/meta.json -FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_component_test/meta.json -FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_inspect/meta.json -FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_logger/meta.json -FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_scenic/meta.json -FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_scenic_flutter/meta.json -FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_services/meta.json -FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_vfs/meta.json -FILE: ../../../fuchsia/sdk/linux/dart/sl4f/meta.json -FILE: ../../../fuchsia/sdk/linux/dart/zircon/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.accessibility.gesture/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.accessibility.semantics/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.accessibility.virtualkeyboard/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.audio.effects/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.auth.oldtokens/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.auth/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth.a2dp/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth.gatt/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth.gatt2/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth.hfp/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth.le/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth.sys/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.buildinfo.test/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.buildinfo/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.camera/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.camera2.hal/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.camera2/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.camera3/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.castauth/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.castconfig/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.castremotecontrol/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.castsetup/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.castsysteminfo/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.castwindow/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.config/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.decl/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.resolution/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.runner/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.test/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.types/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.data/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.debugdata/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.developer.tiles/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.diagnostics.types/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.diagnostics/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.driver.test/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.element/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.factory.wlan/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.factory/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.feedback/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.fonts/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.gpu.agis/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.adc/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.audio.signalprocessing/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.audio/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.goldfish/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.light/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.network/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.power.statecontrol/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.radar/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hwinfo/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.images/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.input.report/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.input.virtualkeyboard/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.input/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.inspect/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.intl/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.io/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.kernel/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ldsvc/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.legacymetrics/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.lightsensor/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.location.namedplace/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.location.position/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.location.sensor/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.location/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.logger/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.lowpan.bootstrap/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.lowpan.device/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.lowpan.thread/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.lowpan/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.math/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.media.audio/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.media.drm/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.media.playback/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.media.sessions2/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.media.sounds/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.media.target/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.media/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.mediacodec/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.mediastreams/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.mem/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.memorypressure/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.metrics/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.migration/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.modular.session/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.modular.testing/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.modular/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.net.http/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.net.interfaces/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.net.mdns/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.net.reachability/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.net.routes/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.net/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.power.clientlevel/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.power.profile/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.power.systemmode/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.process.lifecycle/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.process/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.recovery.ui/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.recovery/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.scenic.scheduling/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.session/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.settings.policy/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.settings/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.sys.test/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.sys/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.sysinfo/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.sysmem/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.test/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.thermal/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.tracing.perfetto/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.tracing.provider/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.activity.control/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.activity/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.app/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.brightness/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.composition/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.gfx/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.input/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.input3/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.lifecycle/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.observation.geometry/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.pointer.augment/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.pointer/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.pointerinjector/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.policy/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.scenic/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.test.input/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.test.scene/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.types/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.views/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ultrasound/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.unknown/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.update.channel/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.update.channelcontrol/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.update.config/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.update/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.url/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.weave/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.web/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.wlan.common/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.wlan.ieee80211/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.wlan.policy/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.wlan.product.deprecatedclient/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.wlan.product.deprecatedconfiguration/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/zx/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/async-cpp/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/async-default/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/async-loop-cpp/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/async-loop-default/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/async-loop-testing/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/async-loop/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/async-testing/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/async/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/fdio/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/fidl/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/fidl_base/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/fidl_cpp/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/fidl_cpp_base/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/fidl_cpp_sync/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/fit-promise/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/fit/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/images_cpp/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/inspect/inspect.json -FILE: ../../../fuchsia/sdk/linux/pkg/inspect/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/inspect_service_cpp/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/media_cpp/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/media_cpp_no_converters/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/memfs/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/modular_cpp/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/modular_testing_cpp/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/scenic_cpp/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/stdcompat/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/svc/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/sync/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/sys/component/realm_builder_shard_sdk.json -FILE: ../../../fuchsia/sdk/linux/pkg/sys_component_cpp_testing/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/sys_cpp/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/sys_cpp_testing/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/sys_inspect_cpp/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/sys_service_cpp/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/syslog/client.shard.cmx -FILE: ../../../fuchsia/sdk/linux/pkg/syslog/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/syslog/syslog.json -FILE: ../../../fuchsia/sdk/linux/pkg/syslog_structured_backend/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/sysroot/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/trace-engine/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/trace-provider-so/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/trace/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/tree_service_common/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/utf-utils/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/vfs_cpp/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/vulkan/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/vulkan/vulkan.json -FILE: ../../../fuchsia/sdk/linux/pkg/vulkan_layers/data/vulkan/explicit_layer.d/VkLayer_image_pipe_swapchain.json -FILE: ../../../fuchsia/sdk/linux/pkg/vulkan_layers/data/vulkan/explicit_layer.d/VkLayer_khronos_validation.json -FILE: ../../../fuchsia/sdk/linux/pkg/vulkan_layers/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/zx/meta.json -FILE: ../../../fuchsia/sdk/linux/version_history.json ----------------------------------------------------------------------------------------------------- -Copyright 2019 The Fuchsia Authors. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: fuchsia_sdk -ORIGIN: ../../../fuchsia/sdk/linux/LICENSE.vulkan -TYPE: LicenseType.apache -FILE: ../../../fuchsia/sdk/linux/.versions/core.cipd_version -FILE: ../../../fuchsia/sdk/linux/arch/arm64/dist/VkLayer_image_pipe_swapchain.so -FILE: ../../../fuchsia/sdk/linux/arch/arm64/dist/VkLayer_khronos_validation.so -FILE: ../../../fuchsia/sdk/linux/arch/arm64/dist/libasync-default.so -FILE: ../../../fuchsia/sdk/linux/arch/arm64/dist/libfdio.so -FILE: ../../../fuchsia/sdk/linux/arch/arm64/dist/libmemfs.so -FILE: ../../../fuchsia/sdk/linux/arch/arm64/dist/libsvc.so -FILE: ../../../fuchsia/sdk/linux/arch/arm64/dist/libsyslog.so -FILE: ../../../fuchsia/sdk/linux/arch/arm64/dist/libtrace-engine.so -FILE: ../../../fuchsia/sdk/linux/arch/arm64/dist/libtrace-provider-so.so -FILE: ../../../fuchsia/sdk/linux/arch/arm64/dist/libvulkan.so -FILE: ../../../fuchsia/sdk/linux/arch/arm64/lib/libasync-default.so -FILE: ../../../fuchsia/sdk/linux/arch/arm64/lib/libasync-loop-default.a -FILE: ../../../fuchsia/sdk/linux/arch/arm64/lib/libfdio.so -FILE: ../../../fuchsia/sdk/linux/arch/arm64/lib/libmemfs.so -FILE: ../../../fuchsia/sdk/linux/arch/arm64/lib/libsvc.so -FILE: ../../../fuchsia/sdk/linux/arch/arm64/lib/libsync.a -FILE: ../../../fuchsia/sdk/linux/arch/arm64/lib/libsyslog.so -FILE: ../../../fuchsia/sdk/linux/arch/arm64/lib/libtrace-engine.so -FILE: ../../../fuchsia/sdk/linux/arch/arm64/lib/libtrace-provider-so.so -FILE: ../../../fuchsia/sdk/linux/arch/arm64/lib/libvulkan.so -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/alloca.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/ar.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/arpa/ftp.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/arpa/inet.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/arpa/nameser.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/arpa/nameser_compat.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/arpa/telnet.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/arpa/tftp.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/assert.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/aarch64/endian.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/aarch64/fenv.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/aarch64/ioctl.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/aarch64/ipc.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/aarch64/reg.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/aarch64/setjmp.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/aarch64/signal.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/aarch64/stat.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/alltypes.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/endian.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/errno.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/fcntl.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/fenv.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/io.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/ioctl.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/ipc.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/limits.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/msg.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/posix.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/reg.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/sem.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/setjmp.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/shm.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/signal.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/stat.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/statfs.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/termios.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/x86_64/endian.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/x86_64/fenv.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/x86_64/io.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/x86_64/ioctl.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/x86_64/ipc.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/x86_64/reg.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/x86_64/setjmp.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/x86_64/signal.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/x86_64/stat.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/byteswap.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/complex.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/cpio.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/ctype.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/dirent.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/dlfcn.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/elf.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/endian.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/err.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/errno.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/fcntl.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/features.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/fenv.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/fmtmsg.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/fnmatch.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/getopt.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/glob.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/grp.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/iconv.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/ifaddrs.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/inttypes.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/iso646.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/langinfo.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/libgen.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/limits.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/link.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/locale.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/malloc.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/math.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/memory.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/monetary.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/net/ethernet.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/net/if.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/net/if_arp.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/net/route.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/netdb.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/netinet/ether.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/netinet/icmp6.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/netinet/if_ether.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/netinet/igmp.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/netinet/in.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/netinet/in_systm.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/netinet/ip.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/netinet/ip6.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/netinet/ip_icmp.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/netinet/tcp.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/netinet/udp.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/netpacket/packet.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/nl_types.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/paths.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/poll.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/pthread.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/pwd.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/regex.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/resolv.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sched.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/search.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/semaphore.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/setjmp.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/signal.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/spawn.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/stdio.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/stdlib.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/string.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/strings.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/stropts.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/acct.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/auxv.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/dir.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/errno.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/eventfd.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/fcntl.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/file.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/fsuid.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/inotify.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/io.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/ioctl.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/ipc.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/klog.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/mman.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/mount.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/msg.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/mtio.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/param.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/personality.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/poll.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/quota.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/random.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/reboot.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/reg.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/select.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/sem.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/shm.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/signal.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/signalfd.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/socket.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/stat.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/statfs.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/statvfs.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/stropts.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/swap.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/syslog.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/termios.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/time.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/timeb.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/timerfd.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/times.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/timex.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/ttydefaults.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/types.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/ucontext.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/uio.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/un.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/utsname.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/vfs.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/wait.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sysexits.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/syslog.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/tar.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/termios.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/threads.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/time.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/uchar.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/ucontext.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/unistd.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/utime.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/values.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/wait.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/wchar.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/wctype.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/wordexp.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/lib/Scrt1.o -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/lib/libc.so -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/lib/libdl.so -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/lib/libm.so -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/lib/libpthread.so -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/lib/librt.so -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/lib/libzircon.so -FILE: ../../../fuchsia/sdk/linux/arch/x64/dist/VkLayer_image_pipe_swapchain.so -FILE: ../../../fuchsia/sdk/linux/arch/x64/dist/VkLayer_khronos_validation.so -FILE: ../../../fuchsia/sdk/linux/arch/x64/dist/libasync-default.so -FILE: ../../../fuchsia/sdk/linux/arch/x64/dist/libfdio.so -FILE: ../../../fuchsia/sdk/linux/arch/x64/dist/libmemfs.so -FILE: ../../../fuchsia/sdk/linux/arch/x64/dist/libsvc.so -FILE: ../../../fuchsia/sdk/linux/arch/x64/dist/libsyslog.so -FILE: ../../../fuchsia/sdk/linux/arch/x64/dist/libtrace-engine.so -FILE: ../../../fuchsia/sdk/linux/arch/x64/dist/libtrace-provider-so.so -FILE: ../../../fuchsia/sdk/linux/arch/x64/dist/libvulkan.so -FILE: ../../../fuchsia/sdk/linux/arch/x64/lib/libasync-default.so -FILE: ../../../fuchsia/sdk/linux/arch/x64/lib/libasync-loop-default.a -FILE: ../../../fuchsia/sdk/linux/arch/x64/lib/libfdio.so -FILE: ../../../fuchsia/sdk/linux/arch/x64/lib/libmemfs.so -FILE: ../../../fuchsia/sdk/linux/arch/x64/lib/libsvc.so -FILE: ../../../fuchsia/sdk/linux/arch/x64/lib/libsync.a -FILE: ../../../fuchsia/sdk/linux/arch/x64/lib/libsyslog.so -FILE: ../../../fuchsia/sdk/linux/arch/x64/lib/libtrace-engine.so -FILE: ../../../fuchsia/sdk/linux/arch/x64/lib/libtrace-provider-so.so -FILE: ../../../fuchsia/sdk/linux/arch/x64/lib/libvulkan.so -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/alloca.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/ar.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/arpa/ftp.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/arpa/inet.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/arpa/nameser.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/arpa/nameser_compat.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/arpa/telnet.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/arpa/tftp.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/assert.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/aarch64/endian.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/aarch64/fenv.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/aarch64/ioctl.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/aarch64/ipc.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/aarch64/reg.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/aarch64/setjmp.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/aarch64/signal.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/aarch64/stat.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/alltypes.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/endian.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/errno.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/fcntl.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/fenv.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/io.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/ioctl.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/ipc.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/limits.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/msg.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/posix.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/reg.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/sem.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/setjmp.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/shm.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/signal.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/stat.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/statfs.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/termios.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/x86_64/endian.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/x86_64/fenv.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/x86_64/io.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/x86_64/ioctl.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/x86_64/ipc.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/x86_64/reg.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/x86_64/setjmp.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/x86_64/signal.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/x86_64/stat.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/byteswap.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/complex.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/cpio.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/ctype.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/dirent.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/dlfcn.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/elf.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/endian.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/err.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/errno.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/fcntl.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/features.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/fenv.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/fmtmsg.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/fnmatch.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/getopt.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/glob.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/grp.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/iconv.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/ifaddrs.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/inttypes.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/iso646.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/langinfo.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/libgen.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/limits.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/link.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/locale.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/malloc.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/math.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/memory.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/monetary.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/net/ethernet.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/net/if.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/net/if_arp.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/net/route.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/netdb.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/netinet/ether.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/netinet/icmp6.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/netinet/if_ether.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/netinet/igmp.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/netinet/in.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/netinet/in_systm.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/netinet/ip.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/netinet/ip6.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/netinet/ip_icmp.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/netinet/tcp.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/netinet/udp.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/netpacket/packet.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/nl_types.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/paths.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/poll.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/pthread.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/pwd.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/regex.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/resolv.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sched.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/search.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/semaphore.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/setjmp.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/signal.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/spawn.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/stdio.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/stdlib.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/string.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/strings.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/stropts.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/acct.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/auxv.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/dir.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/errno.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/eventfd.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/fcntl.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/file.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/fsuid.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/inotify.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/io.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/ioctl.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/ipc.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/klog.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/mman.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/mount.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/msg.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/mtio.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/param.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/personality.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/poll.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/quota.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/random.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/reboot.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/reg.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/select.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/sem.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/shm.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/signal.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/signalfd.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/socket.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/stat.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/statfs.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/statvfs.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/stropts.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/swap.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/syslog.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/termios.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/time.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/timeb.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/timerfd.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/times.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/timex.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/ttydefaults.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/types.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/ucontext.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/uio.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/un.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/utsname.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/vfs.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/wait.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sysexits.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/syslog.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/tar.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/termios.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/threads.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/time.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/uchar.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/ucontext.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/unistd.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/utime.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/values.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/wait.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/wchar.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/wctype.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/wordexp.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/lib/Scrt1.o -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/lib/libc.so -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/lib/libdl.so -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/lib/libm.so -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/lib/libpthread.so -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/lib/librt.so -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/lib/libzircon.so -FILE: ../../../fuchsia/sdk/linux/dart/fidl/meta.json -FILE: ../../../fuchsia/sdk/linux/dart/fuchsia/meta.json -FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_component_test/meta.json -FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_inspect/meta.json -FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_logger/meta.json -FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_scenic/meta.json -FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_scenic_flutter/meta.json -FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_services/meta.json -FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_vfs/meta.json -FILE: ../../../fuchsia/sdk/linux/dart/sl4f/meta.json -FILE: ../../../fuchsia/sdk/linux/dart/zircon/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.accessibility.gesture/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.accessibility.semantics/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.accessibility.virtualkeyboard/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.audio.effects/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.auth.oldtokens/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.auth/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth.a2dp/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth.gatt/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth.gatt2/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth.hfp/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth.le/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth.sys/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.buildinfo.test/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.buildinfo/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.camera/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.camera2.hal/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.camera2/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.camera3/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.castauth/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.castconfig/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.castremotecontrol/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.castsetup/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.castsysteminfo/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.castwindow/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.config/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.decl/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.resolution/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.runner/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.test/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.types/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.data/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.debugdata/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.developer.tiles/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.diagnostics.types/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.diagnostics/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.driver.test/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.element/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.factory.wlan/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.factory/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.feedback/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.fonts/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.gpu.agis/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.adc/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.audio.signalprocessing/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.audio/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.goldfish/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.light/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.network/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.power.statecontrol/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.radar/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hwinfo/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.images/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.input.report/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.input.virtualkeyboard/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.input/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.inspect/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.intl/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.io/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.kernel/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ldsvc/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.legacymetrics/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.lightsensor/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.location.namedplace/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.location.position/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.location.sensor/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.location/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.logger/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.lowpan.bootstrap/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.lowpan.device/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.lowpan.thread/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.lowpan/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.math/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.media.audio/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.media.drm/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.media.playback/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.media.sessions2/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.media.sounds/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.media.target/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.media/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.mediacodec/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.mediastreams/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.mem/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.memorypressure/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.metrics/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.migration/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.modular.session/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.modular.testing/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.modular/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.net.http/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.net.interfaces/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.net.mdns/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.net.reachability/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.net.routes/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.net/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.power.clientlevel/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.power.profile/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.power.systemmode/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.process.lifecycle/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.process/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.recovery.ui/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.recovery/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.scenic.scheduling/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.session/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.settings.policy/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.settings/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.sys.test/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.sys/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.sysinfo/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.sysmem/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.test/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.thermal/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.tracing.perfetto/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.tracing.provider/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.activity.control/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.activity/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.app/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.brightness/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.composition/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.gfx/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.input/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.input3/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.lifecycle/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.observation.geometry/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.pointer.augment/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.pointer/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.pointerinjector/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.policy/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.scenic/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.test.input/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.test.scene/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.types/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.views/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ultrasound/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.unknown/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.update.channel/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.update.channelcontrol/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.update.config/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.update/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.url/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.weave/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.web/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.wlan.common/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.wlan.ieee80211/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.wlan.policy/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.wlan.product.deprecatedclient/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.wlan.product.deprecatedconfiguration/meta.json -FILE: ../../../fuchsia/sdk/linux/fidl/zx/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/async-cpp/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/async-default/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/async-loop-cpp/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/async-loop-default/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/async-loop-testing/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/async-loop/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/async-testing/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/async/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/fdio/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/fidl/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/fidl_base/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/fidl_cpp/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/fidl_cpp_base/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/fidl_cpp_sync/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/fit-promise/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/fit/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/images_cpp/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/inspect/inspect.json -FILE: ../../../fuchsia/sdk/linux/pkg/inspect/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/inspect_service_cpp/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/media_cpp/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/media_cpp_no_converters/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/memfs/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/modular_cpp/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/modular_testing_cpp/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/scenic_cpp/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/stdcompat/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/svc/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/sync/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/sys/component/realm_builder_shard_sdk.json -FILE: ../../../fuchsia/sdk/linux/pkg/sys_component_cpp_testing/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/sys_cpp/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/sys_cpp_testing/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/sys_inspect_cpp/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/sys_service_cpp/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/syslog/client.shard.cmx -FILE: ../../../fuchsia/sdk/linux/pkg/syslog/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/syslog/syslog.json -FILE: ../../../fuchsia/sdk/linux/pkg/syslog_structured_backend/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/sysroot/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/trace-engine/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/trace-provider-so/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/trace/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/tree_service_common/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/utf-utils/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/vfs_cpp/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/vulkan/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/vulkan/vulkan.json -FILE: ../../../fuchsia/sdk/linux/pkg/vulkan_layers/data/vulkan/explicit_layer.d/VkLayer_image_pipe_swapchain.json -FILE: ../../../fuchsia/sdk/linux/pkg/vulkan_layers/data/vulkan/explicit_layer.d/VkLayer_khronos_validation.json -FILE: ../../../fuchsia/sdk/linux/pkg/vulkan_layers/meta.json -FILE: ../../../fuchsia/sdk/linux/pkg/zx/meta.json -FILE: ../../../fuchsia/sdk/linux/version_history.json ----------------------------------------------------------------------------------------------------- -The majority of files in this project use the Apache 2.0 License. -There are a few exceptions and their license can be found in the source. -Any license deviations from Apache 2.0 are "more permissive" licenses. - -=========================================================================================== - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] +ORIGIN: ../../../fuchsia/sdk/linux/fidl/fuchsia.sys/service_provider.fidl + ../../../fuchsia/sdk/linux/LICENSE +TYPE: LicenseType.bsd +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.sys/service_provider.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.input/input_event_constants.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.input/input_events.fidl +---------------------------------------------------------------------------------------------------- +Copyright 2014 The Fuchsia Authors. All rights reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: - http://www.apache.org/licenses/LICENSE-2.0 + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ==================================================================================================== ==================================================================================================== LIBRARY: fuchsia_sdk -ORIGIN: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/null.h -TYPE: LicenseType.mit -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/null.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/null.h +ORIGIN: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/syscalls/debug.h + ../../../fuchsia/sdk/linux/LICENSE +TYPE: LicenseType.bsd +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/assert.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/compiler.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/listnode.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/pixelformat.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/processargs.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/status.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/syscalls.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/syscalls/debug.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/syscalls/exception.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/syscalls/log.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/syscalls/object.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/syscalls/pci.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/syscalls/port.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/syscalls/profile.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/syscalls/resource.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/syscalls/types.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/types.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/assert.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/compiler.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/listnode.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/pixelformat.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/processargs.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/status.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/syscalls.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/syscalls/debug.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/syscalls/exception.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/syscalls/log.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/syscalls/object.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/syscalls/pci.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/syscalls/port.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/syscalls/profile.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/syscalls/resource.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/syscalls/types.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/types.h +FILE: ../../../fuchsia/sdk/linux/dart/fidl/lib/src/interface.dart +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.runner/component_runner.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.fonts/font_provider.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.math/math.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.media.playback/problem.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.media.playback/seeking_reader.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.media/audio.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.modular/module_context.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.modular/session_shell.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.modular/story_controller.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.modular/story_info.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.modular/story_provider.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.sys/component_controller.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.sys/environment.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.sys/environment_controller.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.sys/launcher.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.sys/loader.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.sys/runner.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.tracing.provider/provider.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.policy/presenter.fidl +FILE: ../../../fuchsia/sdk/linux/pkg/fdio/include/lib/fdio/fdio.h +FILE: ../../../fuchsia/sdk/linux/pkg/fdio/include/lib/fdio/io.h +FILE: ../../../fuchsia/sdk/linux/pkg/fdio/include/lib/fdio/vfs.h +FILE: ../../../fuchsia/sdk/linux/pkg/fdio/include/lib/fdio/watcher.h +FILE: ../../../fuchsia/sdk/linux/pkg/fit/include/lib/fit/thread_checker.h +FILE: ../../../fuchsia/sdk/linux/pkg/media_cpp_no_converters/include/lib/media/cpp/timeline_function.h +FILE: ../../../fuchsia/sdk/linux/pkg/media_cpp_no_converters/include/lib/media/cpp/timeline_rate.h +FILE: ../../../fuchsia/sdk/linux/pkg/media_cpp_no_converters/timeline_function.cc +FILE: ../../../fuchsia/sdk/linux/pkg/media_cpp_no_converters/timeline_rate.cc +FILE: ../../../fuchsia/sdk/linux/pkg/sync/include/lib/sync/completion.h +FILE: ../../../fuchsia/sdk/linux/pkg/sys_cpp/include/lib/sys/cpp/termination_reason.h +FILE: ../../../fuchsia/sdk/linux/pkg/zx/channel.cc +FILE: ../../../fuchsia/sdk/linux/pkg/zx/event.cc +FILE: ../../../fuchsia/sdk/linux/pkg/zx/eventpair.cc +FILE: ../../../fuchsia/sdk/linux/pkg/zx/include/lib/zx/channel.h +FILE: ../../../fuchsia/sdk/linux/pkg/zx/include/lib/zx/event.h +FILE: ../../../fuchsia/sdk/linux/pkg/zx/include/lib/zx/eventpair.h +FILE: ../../../fuchsia/sdk/linux/pkg/zx/include/lib/zx/job.h +FILE: ../../../fuchsia/sdk/linux/pkg/zx/include/lib/zx/object.h +FILE: ../../../fuchsia/sdk/linux/pkg/zx/include/lib/zx/object_traits.h +FILE: ../../../fuchsia/sdk/linux/pkg/zx/include/lib/zx/port.h +FILE: ../../../fuchsia/sdk/linux/pkg/zx/include/lib/zx/process.h +FILE: ../../../fuchsia/sdk/linux/pkg/zx/include/lib/zx/socket.h +FILE: ../../../fuchsia/sdk/linux/pkg/zx/include/lib/zx/task.h +FILE: ../../../fuchsia/sdk/linux/pkg/zx/include/lib/zx/thread.h +FILE: ../../../fuchsia/sdk/linux/pkg/zx/include/lib/zx/time.h +FILE: ../../../fuchsia/sdk/linux/pkg/zx/include/lib/zx/vmar.h +FILE: ../../../fuchsia/sdk/linux/pkg/zx/include/lib/zx/vmo.h +FILE: ../../../fuchsia/sdk/linux/pkg/zx/job.cc +FILE: ../../../fuchsia/sdk/linux/pkg/zx/port.cc +FILE: ../../../fuchsia/sdk/linux/pkg/zx/process.cc +FILE: ../../../fuchsia/sdk/linux/pkg/zx/socket.cc +FILE: ../../../fuchsia/sdk/linux/pkg/zx/thread.cc +FILE: ../../../fuchsia/sdk/linux/pkg/zx/vmar.cc +FILE: ../../../fuchsia/sdk/linux/pkg/zx/vmo.cc ---------------------------------------------------------------------------------------------------- -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +Copyright 2016 The Fuchsia Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ==================================================================================================== ==================================================================================================== LIBRARY: fuchsia_sdk -ORIGIN: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/availability.h + ../../../fuchsia/sdk/linux/LICENSE +ORIGIN: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/device/audio.h + ../../../fuchsia/sdk/linux/LICENSE TYPE: LicenseType.bsd -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/availability.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/availability.h -FILE: ../../../fuchsia/sdk/linux/dart/fidl/lib/src/codegen_common.dart -FILE: ../../../fuchsia/sdk/linux/dart/fidl/lib/src/wire_format.dart -FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_inspect/lib/reader.dart -FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_inspect/lib/src/reader/diagnostic_config.dart -FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_inspect/lib/src/reader/diagnostic_data.dart -FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_inspect/lib/src/reader/reader.dart -FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_scenic/lib/src/scenic_context.dart -FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_scenic_flutter/lib/src/focus_state.dart -FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_scenic_flutter/lib/src/fuchsia_views_service.dart -FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_services/lib/src/dart_vm.dart -FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_vfs/lib/src/remote_dir.dart -FILE: ../../../fuchsia/sdk/linux/dart/sl4f/lib/src/trace_processing/metrics/camera_metrics.dart -FILE: ../../../fuchsia/sdk/linux/dart/sl4f/lib/src/trace_processing/metrics/flatland_latency.dart -FILE: ../../../fuchsia/sdk/linux/dart/sl4f/lib/src/virtual_camera.dart -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.accessibility.virtualkeyboard/virtual_keyboard.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.audio.effects/creator.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.audio.effects/processor.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth.gatt2/client.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth.gatt2/constants.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth.gatt2/server.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth.gatt2/types.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.config/specs.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.config/value.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.decl/capability.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.decl/child.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.decl/collection.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.decl/component.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.decl/config.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.decl/environment.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.decl/events.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.decl/expose.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.decl/offer.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.decl/program.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.decl/relative_refs.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.decl/types.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.decl/use.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.test/realm_builder.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component/binder.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component/realm.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.diagnostics.types/component.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.diagnostics/log_settings.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.driver.test/realm.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.feedback/data_provider_controller.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.gpu.agis/agis.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.audio.signalprocessing/signal_processing.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.audio/codec_connector.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.audio/dai_connector.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.audio/health.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.goldfish/goldfish_sync.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.network/port.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.radar/radar.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.input.virtualkeyboard/virtual_keyboard.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.input/keymap.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.intl/calendar.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.intl/time_zones.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.io/inotify.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.io/rights-abilities.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.kernel/cpu-resource.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.lightsensor/calibrator.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.lightsensor/sensor.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.lightsensor/types.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.lowpan.device/counters.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.mediastreams/audio_format.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.mediastreams/compression.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.mediastreams/encryption.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.mediastreams/media_format.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.mediastreams/video_format.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.power.profile/profile.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.settings/keyboard.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.thermal/client_state.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.composition/allocator.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.composition/flatland.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.observation.geometry/watcher.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.views/flatland_tokens.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.wlan.common/wlan_common.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.wlan.ieee80211/constants.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.wlan.ieee80211/rsn.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.wlan.policy/types.fidl -FILE: ../../../fuchsia/sdk/linux/pkg/fidl_base/wire_format_metadata.cc -FILE: ../../../fuchsia/sdk/linux/pkg/scenic_cpp/include/lib/ui/scenic/cpp/view_creation_tokens.h -FILE: ../../../fuchsia/sdk/linux/pkg/scenic_cpp/include/lib/ui/scenic/cpp/view_identity.h -FILE: ../../../fuchsia/sdk/linux/pkg/scenic_cpp/view_creation_tokens.cc -FILE: ../../../fuchsia/sdk/linux/pkg/scenic_cpp/view_identity.cc -FILE: ../../../fuchsia/sdk/linux/pkg/stdcompat/include/lib/stdcompat/algorithm.h -FILE: ../../../fuchsia/sdk/linux/pkg/stdcompat/include/lib/stdcompat/atomic.h -FILE: ../../../fuchsia/sdk/linux/pkg/stdcompat/include/lib/stdcompat/cstddef.h -FILE: ../../../fuchsia/sdk/linux/pkg/stdcompat/include/lib/stdcompat/functional.h -FILE: ../../../fuchsia/sdk/linux/pkg/stdcompat/include/lib/stdcompat/internal/algorithm.h -FILE: ../../../fuchsia/sdk/linux/pkg/stdcompat/include/lib/stdcompat/internal/atomic.h -FILE: ../../../fuchsia/sdk/linux/pkg/stdcompat/include/lib/stdcompat/internal/erase.h -FILE: ../../../fuchsia/sdk/linux/pkg/stdcompat/include/lib/stdcompat/internal/exception.h -FILE: ../../../fuchsia/sdk/linux/pkg/stdcompat/include/lib/stdcompat/internal/functional.h -FILE: ../../../fuchsia/sdk/linux/pkg/stdcompat/include/lib/stdcompat/internal/span.h -FILE: ../../../fuchsia/sdk/linux/pkg/stdcompat/include/lib/stdcompat/internal/tuple.h -FILE: ../../../fuchsia/sdk/linux/pkg/stdcompat/include/lib/stdcompat/internal/type_traits.h -FILE: ../../../fuchsia/sdk/linux/pkg/stdcompat/include/lib/stdcompat/iterator.h -FILE: ../../../fuchsia/sdk/linux/pkg/stdcompat/include/lib/stdcompat/span.h -FILE: ../../../fuchsia/sdk/linux/pkg/stdcompat/include/lib/stdcompat/tuple.h -FILE: ../../../fuchsia/sdk/linux/pkg/sys_component_cpp_testing/internal/errors.cc -FILE: ../../../fuchsia/sdk/linux/pkg/sys_component_cpp_testing/internal/local_component_runner.cc -FILE: ../../../fuchsia/sdk/linux/pkg/sys_component_cpp_testing/internal/realm.cc -FILE: ../../../fuchsia/sdk/linux/pkg/sys_component_cpp_testing/realm_builder.cc -FILE: ../../../fuchsia/sdk/linux/pkg/sys_component_cpp_testing/realm_builder_types.cc -FILE: ../../../fuchsia/sdk/linux/pkg/sys_component_cpp_testing/scoped_child.cc -FILE: ../../../fuchsia/sdk/linux/pkg/syslog_structured_backend/fuchsia_syslog.cc -FILE: ../../../fuchsia/sdk/linux/pkg/syslog_structured_backend/include/lib/syslog/structured_backend/cpp/fuchsia_syslog.h -FILE: ../../../fuchsia/sdk/linux/pkg/syslog_structured_backend/include/lib/syslog/structured_backend/fuchsia_syslog.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/device/audio.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/fidl.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/hw/gpt.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/process.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/rights.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/sanitizer.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/syscalls/hypervisor.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/syscalls/iommu.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/syscalls/policy.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/syscalls/system.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/tls.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/device/audio.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/fidl.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/hw/gpt.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/process.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/rights.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/sanitizer.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/syscalls/hypervisor.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/syscalls/iommu.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/syscalls/policy.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/syscalls/system.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/tls.h +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.auth/auth_provider.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.auth/token_manager.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth.gatt/client.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth.gatt/server.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth.le/peripheral.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth.le/types_deprecated.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.images/presentation_info.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.media/audio_capturer.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.mem/buffer.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.modular/agent.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.modular/agent_controller.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.modular/component_context.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.modular/intent.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.modular/lifecycle.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.modular/module_data.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.modular/module_state.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.modular/story_shell.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.modular/story_state.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.modular/surface.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.net.mdns/mdns.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.sys/flat_namespace.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.gfx/commands.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.gfx/display_info.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.gfx/events.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.gfx/nodes.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.gfx/renderer.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.gfx/resources.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.gfx/shapes.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.gfx/types.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.input/ime_service.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.input/input_device_registry.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.input/input_reports.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.input/text_editing.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.input/text_input.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.input/usages.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.policy/presentation.fidl +FILE: ../../../fuchsia/sdk/linux/pkg/async-cpp/include/lib/async/cpp/receiver.h +FILE: ../../../fuchsia/sdk/linux/pkg/async-cpp/include/lib/async/cpp/task.h +FILE: ../../../fuchsia/sdk/linux/pkg/async-cpp/include/lib/async/cpp/wait.h +FILE: ../../../fuchsia/sdk/linux/pkg/async-cpp/receiver.cc +FILE: ../../../fuchsia/sdk/linux/pkg/async-cpp/task.cc +FILE: ../../../fuchsia/sdk/linux/pkg/async-cpp/trap.cc +FILE: ../../../fuchsia/sdk/linux/pkg/async-cpp/wait.cc +FILE: ../../../fuchsia/sdk/linux/pkg/async-default/include/lib/async/default.h +FILE: ../../../fuchsia/sdk/linux/pkg/async-loop-cpp/include/lib/async-loop/cpp/loop.h +FILE: ../../../fuchsia/sdk/linux/pkg/async-loop-cpp/loop_wrapper.cc +FILE: ../../../fuchsia/sdk/linux/pkg/async-loop-testing/real_loop.cc +FILE: ../../../fuchsia/sdk/linux/pkg/async-loop/include/lib/async-loop/loop.h +FILE: ../../../fuchsia/sdk/linux/pkg/async-loop/loop.c +FILE: ../../../fuchsia/sdk/linux/pkg/async-testing/dispatcher_stub.cc +FILE: ../../../fuchsia/sdk/linux/pkg/async-testing/include/lib/async-testing/dispatcher_stub.h +FILE: ../../../fuchsia/sdk/linux/pkg/async/include/lib/async/dispatcher.h +FILE: ../../../fuchsia/sdk/linux/pkg/async/include/lib/async/irq.h +FILE: ../../../fuchsia/sdk/linux/pkg/async/include/lib/async/receiver.h +FILE: ../../../fuchsia/sdk/linux/pkg/async/include/lib/async/task.h +FILE: ../../../fuchsia/sdk/linux/pkg/async/include/lib/async/wait.h +FILE: ../../../fuchsia/sdk/linux/pkg/async/ops.c +FILE: ../../../fuchsia/sdk/linux/pkg/fdio/include/lib/fdio/limits.h +FILE: ../../../fuchsia/sdk/linux/pkg/fdio/include/lib/fdio/namespace.h +FILE: ../../../fuchsia/sdk/linux/pkg/fdio/include/lib/fdio/private.h +FILE: ../../../fuchsia/sdk/linux/pkg/fdio/include/lib/fdio/unsafe.h +FILE: ../../../fuchsia/sdk/linux/pkg/fidl_base/decoding_and_validating.cc +FILE: ../../../fuchsia/sdk/linux/pkg/fidl_base/encoding.cc +FILE: ../../../fuchsia/sdk/linux/pkg/fidl_base/formatting.cc +FILE: ../../../fuchsia/sdk/linux/pkg/fidl_base/include/lib/fidl/coding.h +FILE: ../../../fuchsia/sdk/linux/pkg/fidl_base/include/lib/fidl/internal.h +FILE: ../../../fuchsia/sdk/linux/pkg/fit/include/lib/fit/function.h +FILE: ../../../fuchsia/sdk/linux/pkg/fit/include/lib/fit/internal/function.h +FILE: ../../../fuchsia/sdk/linux/pkg/memfs/include/lib/memfs/memfs.h +FILE: ../../../fuchsia/sdk/linux/pkg/scenic_cpp/commands.cc +FILE: ../../../fuchsia/sdk/linux/pkg/scenic_cpp/include/lib/ui/scenic/cpp/commands.h +FILE: ../../../fuchsia/sdk/linux/pkg/scenic_cpp/include/lib/ui/scenic/cpp/resources.h +FILE: ../../../fuchsia/sdk/linux/pkg/scenic_cpp/include/lib/ui/scenic/cpp/session.h +FILE: ../../../fuchsia/sdk/linux/pkg/scenic_cpp/resources.cc +FILE: ../../../fuchsia/sdk/linux/pkg/scenic_cpp/session.cc +FILE: ../../../fuchsia/sdk/linux/pkg/trace-engine/include/lib/trace-engine/context.h +FILE: ../../../fuchsia/sdk/linux/pkg/trace-engine/include/lib/trace-engine/fields.h +FILE: ../../../fuchsia/sdk/linux/pkg/trace-engine/include/lib/trace-engine/handler.h +FILE: ../../../fuchsia/sdk/linux/pkg/trace-engine/include/lib/trace-engine/instrumentation.h +FILE: ../../../fuchsia/sdk/linux/pkg/trace-engine/include/lib/trace-engine/types.h +FILE: ../../../fuchsia/sdk/linux/pkg/trace-provider-so/include/lib/trace-provider/handler.h +FILE: ../../../fuchsia/sdk/linux/pkg/trace-provider-so/include/lib/trace-provider/provider.h +FILE: ../../../fuchsia/sdk/linux/pkg/trace/event.cc +FILE: ../../../fuchsia/sdk/linux/pkg/trace/include/lib/trace/event.h +FILE: ../../../fuchsia/sdk/linux/pkg/trace/include/lib/trace/internal/event_common.h +FILE: ../../../fuchsia/sdk/linux/pkg/trace/include/lib/trace/internal/event_internal.h +FILE: ../../../fuchsia/sdk/linux/pkg/trace/include/lib/trace/internal/pairs_internal.h +FILE: ../../../fuchsia/sdk/linux/pkg/trace/include/lib/trace/internal/string_traits.h +FILE: ../../../fuchsia/sdk/linux/pkg/trace/include/lib/trace/observer.h +FILE: ../../../fuchsia/sdk/linux/pkg/trace/observer.cc +FILE: ../../../fuchsia/sdk/linux/pkg/zx/fifo.cc +FILE: ../../../fuchsia/sdk/linux/pkg/zx/include/lib/zx/fifo.h +FILE: ../../../fuchsia/sdk/linux/pkg/zx/include/lib/zx/handle.h +FILE: ../../../fuchsia/sdk/linux/pkg/zx/include/lib/zx/timer.h +FILE: ../../../fuchsia/sdk/linux/pkg/zx/timer.cc ---------------------------------------------------------------------------------------------------- -Copyright 2021 The Fuchsia Authors. All rights reserved. +Copyright 2017 The Fuchsia Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: fuchsia_sdk +ORIGIN: ../../../fuchsia/sdk/linux/dart/fidl/lib/fidl.dart + ../../../LICENSE +TYPE: LicenseType.bsd +FILE: ../../../fuchsia/sdk/linux/dart/fidl/lib/fidl.dart +FILE: ../../../fuchsia/sdk/linux/dart/fuchsia/lib/fuchsia.dart +FILE: ../../../fuchsia/sdk/linux/dart/zircon/lib/src/fakes/zircon_fakes.dart +FILE: ../../../fuchsia/sdk/linux/dart/zircon/lib/zircon.dart +---------------------------------------------------------------------------------------------------- +Copyright 2018 The Chromium Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are @@ -2385,6 +329,9 @@ notice, this list of conditions and the following disclaimer. copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT @@ -2404,23 +351,19 @@ LIBRARY: fuchsia_sdk ORIGIN: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/boot/bootfs.h + ../../../fuchsia/sdk/linux/LICENSE TYPE: LicenseType.bsd FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/boot/bootfs.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/boot/driver-config.h FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/boot/image.h FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/dlfcn.h FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/features.h FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/hw/pci.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/hw/usb/dfu.h FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/limits.h FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/syscalls/smc.h FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/threads.h FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/time.h FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/boot/bootfs.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/boot/driver-config.h FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/boot/image.h FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/dlfcn.h FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/features.h FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/hw/pci.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/hw/usb/dfu.h FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/limits.h FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/syscalls/smc.h FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/threads.h @@ -2470,6 +413,7 @@ FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.camera/camera.fidl FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.camera/manager.fidl FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.data/data.fidl FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.developer.tiles/tiles.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.gpu.magma/magma.fidl FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.images/encoded_image.fidl FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.images/image_info.fidl FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.images/memory_type.fidl @@ -2615,6 +559,7 @@ FILE: ../../../fuchsia/sdk/linux/pkg/media_cpp/type_converters.cc FILE: ../../../fuchsia/sdk/linux/pkg/scenic_cpp/include/lib/ui/scenic/cpp/id.h FILE: ../../../fuchsia/sdk/linux/pkg/scenic_cpp/view_token_pair.cc FILE: ../../../fuchsia/sdk/linux/pkg/stdcompat/include/lib/stdcompat/optional.h +FILE: ../../../fuchsia/sdk/linux/pkg/stdcompat/include/lib/stdcompat/queue.h FILE: ../../../fuchsia/sdk/linux/pkg/stdcompat/include/lib/stdcompat/type_traits.h FILE: ../../../fuchsia/sdk/linux/pkg/stdcompat/include/lib/stdcompat/variant.h FILE: ../../../fuchsia/sdk/linux/pkg/stdcompat/include/lib/stdcompat/vector.h @@ -2657,185 +602,36 @@ FILE: ../../../fuchsia/sdk/linux/pkg/zx/vcpu.cc Copyright 2018 The Fuchsia Authors. All rights reserved. Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: fuchsia_sdk -ORIGIN: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/boot/crash-reason.h + ../../../fuchsia/sdk/linux/LICENSE -TYPE: LicenseType.bsd -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/analyzer.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/boot/crash-reason.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/string_view.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/syscalls-next.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/testonly-syscalls.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/analyzer.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/boot/crash-reason.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/string_view.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/syscalls-next.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/testonly-syscalls.h -FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_scenic_flutter/lib/fuchsia_view.dart -FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_scenic_flutter/lib/src/fuchsia_view.dart -FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_scenic_flutter/lib/src/fuchsia_view_connection.dart -FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_scenic_flutter/lib/src/fuchsia_view_controller.dart -FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_scenic_flutter/lib/src/pointer_injector.dart -FILE: ../../../fuchsia/sdk/linux/dart/sl4f/lib/src/component.dart -FILE: ../../../fuchsia/sdk/linux/dart/sl4f/lib/src/device.dart -FILE: ../../../fuchsia/sdk/linux/dart/sl4f/lib/src/diagnostics.dart -FILE: ../../../fuchsia/sdk/linux/dart/sl4f/lib/src/feedback_data_provider.dart -FILE: ../../../fuchsia/sdk/linux/dart/sl4f/lib/src/power.dart -FILE: ../../../fuchsia/sdk/linux/dart/sl4f/lib/src/proxy.dart -FILE: ../../../fuchsia/sdk/linux/dart/sl4f/lib/src/tiles.dart -FILE: ../../../fuchsia/sdk/linux/dart/sl4f/lib/src/time.dart -FILE: ../../../fuchsia/sdk/linux/dart/sl4f/lib/src/trace_processing/metrics/gpu_metrics.dart -FILE: ../../../fuchsia/sdk/linux/dart/sl4f/lib/src/trace_processing/metrics/total_trace_wall_time.dart -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.accessibility.gesture/gesture_listener.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth.a2dp/audio_mode.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth.hfp/hfp.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth.le/connection_options.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth.sys/configuration.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth.sys/pairing_options.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth.sys/security_mode.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth/deprecated.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth/device_name.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.buildinfo/buildinfo.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.camera3/device.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.camera3/device_watcher.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.camera3/stream.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.castremotecontrol/remote_control.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.castsetup/server.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.castwindow/window.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.types/constants.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component/constants.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component/error.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component/types.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.diagnostics/interest.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.diagnostics/severity.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.element/graphical_presenter.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.factory.wlan/iovar.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.feedback/crash_register.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.feedback/data_register.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.feedback/last_reboot_info.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.adc/adc.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.audio/codec.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.audio/dai.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.audio/dai_format.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.network/device.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.network/frames.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.network/instance.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.network/mac.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.network/session.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.power.statecontrol/reboot_reason.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.input.report/consumer_control.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.input.report/device_ids.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.input/keys.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.io/locking.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.kernel/debug-resource.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.kernel/hypervisor-resource.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.kernel/info-resource.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.kernel/ioport-resource.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.kernel/irq-resource.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.kernel/mmio-resource.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.kernel/power-resource.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.kernel/smc-resource.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.kernel/vmex-resource.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.legacymetrics/event.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.legacymetrics/metrics_recorder.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.location.position/position.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.location.sensor/sensor.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.location/types.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.lowpan.bootstrap/thread.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.lowpan.device/device.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.lowpan.device/energy_scanner.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.media.audio/effects_controller.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.media.drm/properties.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.media.drm/types.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.media.target/target_discovery.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.media/activity_reporter.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.media/profile_provider.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.memorypressure/memorypressure.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.metrics/metric_event_logger.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.modular.session/launcher.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.modular/session_restart_controller.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.net.interfaces/interfaces.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.net.routes/routes.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.net/socket.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.process.lifecycle/lifecycle.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.settings.policy/error.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.settings.policy/volume_policy.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.settings/factory_reset.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.settings/input.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.settings/light.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.settings/night_mode.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.input3/events.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.input3/keyboard.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.input3/modifiers.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.pointer.augment/augment.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.pointer/mouse.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.pointer/state.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.pointer/touch.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.pointer/view.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.pointerinjector/config.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.pointerinjector/device.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.pointerinjector/event.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.policy/display_backlight.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.views/view_ref.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.views/view_ref_focused.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.views/view_ref_installed.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ultrasound/factory.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.update/commit.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.update/update.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.url/url.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.weave/auth.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.weave/bootstrap.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.weave/common.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.weave/weavestack.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.wlan.ieee80211/reason_code.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.wlan.ieee80211/status_code.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.wlan.product.deprecatedclient/wlan_deprecated_client.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.wlan.product.deprecatedconfiguration/wlan_deprecated_configuration.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/zx/zx_common.fidl -FILE: ../../../fuchsia/sdk/linux/pkg/fidl_base/handle_close_many.cc -FILE: ../../../fuchsia/sdk/linux/pkg/fidl_base/include/lib/fidl/trace.h -FILE: ../../../fuchsia/sdk/linux/pkg/fidl_cpp_base/include/lib/fidl/cpp/internal/bitset.h -FILE: ../../../fuchsia/sdk/linux/pkg/fidl_cpp_base/include/lib/fidl/cpp/internal/natural_types_header.h -FILE: ../../../fuchsia/sdk/linux/pkg/fidl_cpp_base/include/lib/fidl/cpp/internal/natural_types_implementation.h -FILE: ../../../fuchsia/sdk/linux/pkg/fidl_cpp_base/include/lib/fidl/cpp/types.h -FILE: ../../../fuchsia/sdk/linux/pkg/scenic_cpp/commands_sizing.cc -FILE: ../../../fuchsia/sdk/linux/pkg/scenic_cpp/include/lib/ui/scenic/cpp/commands_sizing.h -FILE: ../../../fuchsia/sdk/linux/pkg/stdcompat/include/lib/stdcompat/array.h -FILE: ../../../fuchsia/sdk/linux/pkg/stdcompat/include/lib/stdcompat/bit.h -FILE: ../../../fuchsia/sdk/linux/pkg/stdcompat/include/lib/stdcompat/internal/array.h -FILE: ../../../fuchsia/sdk/linux/pkg/stdcompat/include/lib/stdcompat/internal/bit.h -FILE: ../../../fuchsia/sdk/linux/pkg/stdcompat/include/lib/stdcompat/memory.h -FILE: ../../../fuchsia/sdk/linux/pkg/stdcompat/include/lib/stdcompat/source_location.h -FILE: ../../../fuchsia/sdk/linux/pkg/stdcompat/include/lib/stdcompat/version.h -FILE: ../../../fuchsia/sdk/linux/pkg/zx/include/lib/zx/msi.h -FILE: ../../../fuchsia/sdk/linux/pkg/zx/include/lib/zx/stream.h -FILE: ../../../fuchsia/sdk/linux/pkg/zx/msi.cc -FILE: ../../../fuchsia/sdk/linux/pkg/zx/stream.cc +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: fuchsia_sdk +ORIGIN: ../../../fuchsia/sdk/linux/fidl/fuchsia.sys.test/cache.fidl + ../../../LICENSE +TYPE: LicenseType.bsd +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.sys.test/cache.fidl ---------------------------------------------------------------------------------------------------- -Copyright 2020 The Fuchsia Authors. All rights reserved. +Copyright 2019 The Chromium Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are @@ -2847,6 +643,9 @@ notice, this list of conditions and the following disclaimer. copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT @@ -2863,131 +662,630 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ==================================================================================================== LIBRARY: fuchsia_sdk -ORIGIN: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/device/audio.h + ../../../fuchsia/sdk/linux/LICENSE +ORIGIN: ../../../fuchsia/sdk/linux/LICENSE TYPE: LicenseType.bsd -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/device/audio.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/fidl.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/hw/gpt.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/hw/usb/cdc.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/hw/usb/video.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/process.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/rights.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/sanitizer.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/syscalls/hypervisor.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/syscalls/iommu.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/syscalls/policy.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/syscalls/system.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/tls.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/device/audio.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/fidl.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/hw/gpt.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/hw/usb/cdc.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/hw/usb/video.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/process.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/rights.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/sanitizer.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/syscalls/hypervisor.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/syscalls/iommu.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/syscalls/policy.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/syscalls/system.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/tls.h -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.auth/auth_provider.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.auth/token_manager.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth.gatt/client.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth.gatt/server.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth.le/peripheral.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth.le/types_deprecated.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.images/presentation_info.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.media/audio_capturer.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.mem/buffer.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.modular/agent.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.modular/agent_controller.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.modular/component_context.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.modular/intent.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.modular/lifecycle.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.modular/module_data.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.modular/module_state.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.modular/story_shell.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.modular/story_state.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.modular/surface.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.net.mdns/mdns.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.sys/flat_namespace.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.gfx/commands.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.gfx/display_info.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.gfx/events.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.gfx/nodes.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.gfx/renderer.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.gfx/resources.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.gfx/shapes.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.gfx/types.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.input/ime_service.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.input/input_device_registry.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.input/input_reports.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.input/text_editing.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.input/text_input.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.input/usages.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.policy/presentation.fidl -FILE: ../../../fuchsia/sdk/linux/pkg/async-cpp/include/lib/async/cpp/receiver.h -FILE: ../../../fuchsia/sdk/linux/pkg/async-cpp/include/lib/async/cpp/task.h -FILE: ../../../fuchsia/sdk/linux/pkg/async-cpp/include/lib/async/cpp/wait.h -FILE: ../../../fuchsia/sdk/linux/pkg/async-cpp/receiver.cc -FILE: ../../../fuchsia/sdk/linux/pkg/async-cpp/task.cc -FILE: ../../../fuchsia/sdk/linux/pkg/async-cpp/trap.cc -FILE: ../../../fuchsia/sdk/linux/pkg/async-cpp/wait.cc -FILE: ../../../fuchsia/sdk/linux/pkg/async-default/include/lib/async/default.h -FILE: ../../../fuchsia/sdk/linux/pkg/async-loop-cpp/include/lib/async-loop/cpp/loop.h -FILE: ../../../fuchsia/sdk/linux/pkg/async-loop-cpp/loop_wrapper.cc -FILE: ../../../fuchsia/sdk/linux/pkg/async-loop-testing/real_loop.cc -FILE: ../../../fuchsia/sdk/linux/pkg/async-loop/include/lib/async-loop/loop.h -FILE: ../../../fuchsia/sdk/linux/pkg/async-loop/loop.c -FILE: ../../../fuchsia/sdk/linux/pkg/async-testing/dispatcher_stub.cc -FILE: ../../../fuchsia/sdk/linux/pkg/async-testing/include/lib/async-testing/dispatcher_stub.h -FILE: ../../../fuchsia/sdk/linux/pkg/async/include/lib/async/dispatcher.h -FILE: ../../../fuchsia/sdk/linux/pkg/async/include/lib/async/irq.h -FILE: ../../../fuchsia/sdk/linux/pkg/async/include/lib/async/receiver.h -FILE: ../../../fuchsia/sdk/linux/pkg/async/include/lib/async/task.h -FILE: ../../../fuchsia/sdk/linux/pkg/async/include/lib/async/wait.h -FILE: ../../../fuchsia/sdk/linux/pkg/async/ops.c -FILE: ../../../fuchsia/sdk/linux/pkg/fdio/include/lib/fdio/limits.h -FILE: ../../../fuchsia/sdk/linux/pkg/fdio/include/lib/fdio/namespace.h -FILE: ../../../fuchsia/sdk/linux/pkg/fdio/include/lib/fdio/private.h -FILE: ../../../fuchsia/sdk/linux/pkg/fdio/include/lib/fdio/unsafe.h -FILE: ../../../fuchsia/sdk/linux/pkg/fidl_base/decoding_and_validating.cc -FILE: ../../../fuchsia/sdk/linux/pkg/fidl_base/encoding.cc -FILE: ../../../fuchsia/sdk/linux/pkg/fidl_base/formatting.cc -FILE: ../../../fuchsia/sdk/linux/pkg/fidl_base/include/lib/fidl/coding.h -FILE: ../../../fuchsia/sdk/linux/pkg/fidl_base/include/lib/fidl/internal.h -FILE: ../../../fuchsia/sdk/linux/pkg/fit/include/lib/fit/function.h -FILE: ../../../fuchsia/sdk/linux/pkg/fit/include/lib/fit/function_internal.h -FILE: ../../../fuchsia/sdk/linux/pkg/memfs/include/lib/memfs/memfs.h -FILE: ../../../fuchsia/sdk/linux/pkg/scenic_cpp/commands.cc -FILE: ../../../fuchsia/sdk/linux/pkg/scenic_cpp/include/lib/ui/scenic/cpp/commands.h -FILE: ../../../fuchsia/sdk/linux/pkg/scenic_cpp/include/lib/ui/scenic/cpp/resources.h -FILE: ../../../fuchsia/sdk/linux/pkg/scenic_cpp/include/lib/ui/scenic/cpp/session.h -FILE: ../../../fuchsia/sdk/linux/pkg/scenic_cpp/resources.cc -FILE: ../../../fuchsia/sdk/linux/pkg/scenic_cpp/session.cc -FILE: ../../../fuchsia/sdk/linux/pkg/trace-engine/include/lib/trace-engine/context.h -FILE: ../../../fuchsia/sdk/linux/pkg/trace-engine/include/lib/trace-engine/fields.h -FILE: ../../../fuchsia/sdk/linux/pkg/trace-engine/include/lib/trace-engine/handler.h -FILE: ../../../fuchsia/sdk/linux/pkg/trace-engine/include/lib/trace-engine/instrumentation.h -FILE: ../../../fuchsia/sdk/linux/pkg/trace-engine/include/lib/trace-engine/types.h -FILE: ../../../fuchsia/sdk/linux/pkg/trace-provider-so/include/lib/trace-provider/handler.h -FILE: ../../../fuchsia/sdk/linux/pkg/trace-provider-so/include/lib/trace-provider/provider.h -FILE: ../../../fuchsia/sdk/linux/pkg/trace/event.cc -FILE: ../../../fuchsia/sdk/linux/pkg/trace/include/lib/trace/event.h -FILE: ../../../fuchsia/sdk/linux/pkg/trace/include/lib/trace/internal/event_common.h -FILE: ../../../fuchsia/sdk/linux/pkg/trace/include/lib/trace/internal/event_internal.h -FILE: ../../../fuchsia/sdk/linux/pkg/trace/include/lib/trace/internal/pairs_internal.h -FILE: ../../../fuchsia/sdk/linux/pkg/trace/include/lib/trace/internal/string_traits.h -FILE: ../../../fuchsia/sdk/linux/pkg/trace/include/lib/trace/observer.h -FILE: ../../../fuchsia/sdk/linux/pkg/trace/observer.cc -FILE: ../../../fuchsia/sdk/linux/pkg/zx/fifo.cc -FILE: ../../../fuchsia/sdk/linux/pkg/zx/include/lib/zx/fifo.h -FILE: ../../../fuchsia/sdk/linux/pkg/zx/include/lib/zx/handle.h -FILE: ../../../fuchsia/sdk/linux/pkg/zx/include/lib/zx/timer.h -FILE: ../../../fuchsia/sdk/linux/pkg/zx/timer.cc +FILE: ../../../fuchsia/sdk/linux/.versions/core.cipd_version +FILE: ../../../fuchsia/sdk/linux/arch/arm64/dist/VkLayer_image_pipe_swapchain.so +FILE: ../../../fuchsia/sdk/linux/arch/arm64/dist/VkLayer_khronos_validation.so +FILE: ../../../fuchsia/sdk/linux/arch/arm64/dist/libasync-default.so +FILE: ../../../fuchsia/sdk/linux/arch/arm64/dist/libfdio.so +FILE: ../../../fuchsia/sdk/linux/arch/arm64/dist/libmemfs.so +FILE: ../../../fuchsia/sdk/linux/arch/arm64/dist/libsvc.so +FILE: ../../../fuchsia/sdk/linux/arch/arm64/dist/libsyslog.so +FILE: ../../../fuchsia/sdk/linux/arch/arm64/dist/libtrace-engine.so +FILE: ../../../fuchsia/sdk/linux/arch/arm64/dist/libtrace-provider-so.so +FILE: ../../../fuchsia/sdk/linux/arch/arm64/dist/libvulkan.so +FILE: ../../../fuchsia/sdk/linux/arch/arm64/lib/libasync-default.so +FILE: ../../../fuchsia/sdk/linux/arch/arm64/lib/libasync-loop-default.a +FILE: ../../../fuchsia/sdk/linux/arch/arm64/lib/libfdio.so +FILE: ../../../fuchsia/sdk/linux/arch/arm64/lib/libmemfs.so +FILE: ../../../fuchsia/sdk/linux/arch/arm64/lib/libsvc.so +FILE: ../../../fuchsia/sdk/linux/arch/arm64/lib/libsync.a +FILE: ../../../fuchsia/sdk/linux/arch/arm64/lib/libsyslog.so +FILE: ../../../fuchsia/sdk/linux/arch/arm64/lib/libtrace-engine.so +FILE: ../../../fuchsia/sdk/linux/arch/arm64/lib/libtrace-provider-so.so +FILE: ../../../fuchsia/sdk/linux/arch/arm64/lib/libvulkan.so +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/alloca.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/ar.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/arpa/ftp.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/arpa/inet.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/arpa/nameser.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/arpa/nameser_compat.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/arpa/telnet.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/arpa/tftp.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/assert.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/aarch64/endian.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/aarch64/fenv.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/aarch64/ioctl.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/aarch64/ipc.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/aarch64/reg.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/aarch64/setjmp.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/aarch64/signal.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/aarch64/stat.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/alltypes.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/endian.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/errno.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/fcntl.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/fenv.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/io.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/ioctl.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/ipc.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/limits.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/msg.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/null.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/posix.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/reg.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/sem.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/setjmp.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/shm.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/signal.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/stat.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/statfs.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/termios.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/x86_64/endian.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/x86_64/fenv.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/x86_64/io.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/x86_64/ioctl.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/x86_64/ipc.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/x86_64/reg.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/x86_64/setjmp.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/x86_64/signal.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/x86_64/stat.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/byteswap.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/complex.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/cpio.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/ctype.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/dirent.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/dlfcn.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/elf.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/endian.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/err.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/errno.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/fcntl.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/features.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/fenv.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/fmtmsg.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/fnmatch.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/getopt.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/glob.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/grp.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/iconv.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/ifaddrs.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/inttypes.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/iso646.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/langinfo.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/libgen.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/limits.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/link.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/locale.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/malloc.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/math.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/memory.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/monetary.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/net/ethernet.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/net/if.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/net/if_arp.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/net/route.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/netdb.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/netinet/ether.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/netinet/icmp6.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/netinet/if_ether.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/netinet/igmp.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/netinet/in.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/netinet/in_systm.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/netinet/ip.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/netinet/ip6.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/netinet/ip_icmp.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/netinet/tcp.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/netinet/udp.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/netpacket/packet.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/nl_types.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/paths.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/poll.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/pthread.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/pwd.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/regex.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/resolv.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sched.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/search.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/semaphore.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/setjmp.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/signal.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/spawn.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/stdio.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/stdlib.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/string.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/strings.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/stropts.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/acct.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/auxv.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/dir.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/errno.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/eventfd.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/fcntl.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/file.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/fsuid.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/inotify.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/io.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/ioctl.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/ipc.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/klog.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/mman.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/mount.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/msg.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/mtio.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/param.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/personality.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/poll.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/quota.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/random.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/reboot.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/reg.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/select.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/sem.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/shm.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/signal.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/signalfd.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/socket.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/stat.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/statfs.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/statvfs.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/stropts.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/swap.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/syslog.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/termios.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/time.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/timeb.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/timerfd.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/times.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/timex.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/ttydefaults.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/types.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/ucontext.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/uio.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/un.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/utsname.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/vfs.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/wait.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sysexits.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/syslog.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/tar.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/termios.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/threads.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/time.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/uchar.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/ucontext.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/unistd.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/utime.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/values.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/wait.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/wchar.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/wctype.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/wordexp.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/lib/Scrt1.o +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/lib/libc.so +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/lib/libdl.so +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/lib/libm.so +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/lib/libpthread.so +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/lib/librt.so +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/lib/libzircon.so +FILE: ../../../fuchsia/sdk/linux/arch/x64/dist/VkLayer_image_pipe_swapchain.so +FILE: ../../../fuchsia/sdk/linux/arch/x64/dist/VkLayer_khronos_validation.so +FILE: ../../../fuchsia/sdk/linux/arch/x64/dist/libasync-default.so +FILE: ../../../fuchsia/sdk/linux/arch/x64/dist/libfdio.so +FILE: ../../../fuchsia/sdk/linux/arch/x64/dist/libmemfs.so +FILE: ../../../fuchsia/sdk/linux/arch/x64/dist/libsvc.so +FILE: ../../../fuchsia/sdk/linux/arch/x64/dist/libsyslog.so +FILE: ../../../fuchsia/sdk/linux/arch/x64/dist/libtrace-engine.so +FILE: ../../../fuchsia/sdk/linux/arch/x64/dist/libtrace-provider-so.so +FILE: ../../../fuchsia/sdk/linux/arch/x64/dist/libvulkan.so +FILE: ../../../fuchsia/sdk/linux/arch/x64/lib/libasync-default.so +FILE: ../../../fuchsia/sdk/linux/arch/x64/lib/libasync-loop-default.a +FILE: ../../../fuchsia/sdk/linux/arch/x64/lib/libfdio.so +FILE: ../../../fuchsia/sdk/linux/arch/x64/lib/libmemfs.so +FILE: ../../../fuchsia/sdk/linux/arch/x64/lib/libsvc.so +FILE: ../../../fuchsia/sdk/linux/arch/x64/lib/libsync.a +FILE: ../../../fuchsia/sdk/linux/arch/x64/lib/libsyslog.so +FILE: ../../../fuchsia/sdk/linux/arch/x64/lib/libtrace-engine.so +FILE: ../../../fuchsia/sdk/linux/arch/x64/lib/libtrace-provider-so.so +FILE: ../../../fuchsia/sdk/linux/arch/x64/lib/libvulkan.so +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/alloca.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/ar.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/arpa/ftp.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/arpa/inet.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/arpa/nameser.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/arpa/nameser_compat.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/arpa/telnet.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/arpa/tftp.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/assert.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/aarch64/endian.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/aarch64/fenv.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/aarch64/ioctl.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/aarch64/ipc.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/aarch64/reg.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/aarch64/setjmp.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/aarch64/signal.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/aarch64/stat.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/alltypes.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/endian.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/errno.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/fcntl.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/fenv.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/io.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/ioctl.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/ipc.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/limits.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/msg.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/null.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/posix.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/reg.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/sem.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/setjmp.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/shm.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/signal.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/stat.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/statfs.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/termios.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/x86_64/endian.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/x86_64/fenv.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/x86_64/io.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/x86_64/ioctl.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/x86_64/ipc.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/x86_64/reg.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/x86_64/setjmp.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/x86_64/signal.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/x86_64/stat.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/byteswap.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/complex.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/cpio.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/ctype.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/dirent.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/dlfcn.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/elf.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/endian.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/err.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/errno.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/fcntl.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/features.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/fenv.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/fmtmsg.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/fnmatch.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/getopt.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/glob.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/grp.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/iconv.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/ifaddrs.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/inttypes.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/iso646.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/langinfo.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/libgen.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/limits.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/link.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/locale.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/malloc.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/math.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/memory.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/monetary.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/net/ethernet.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/net/if.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/net/if_arp.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/net/route.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/netdb.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/netinet/ether.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/netinet/icmp6.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/netinet/if_ether.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/netinet/igmp.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/netinet/in.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/netinet/in_systm.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/netinet/ip.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/netinet/ip6.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/netinet/ip_icmp.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/netinet/tcp.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/netinet/udp.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/netpacket/packet.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/nl_types.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/paths.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/poll.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/pthread.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/pwd.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/regex.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/resolv.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sched.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/search.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/semaphore.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/setjmp.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/signal.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/spawn.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/stdio.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/stdlib.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/string.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/strings.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/stropts.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/acct.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/auxv.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/dir.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/errno.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/eventfd.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/fcntl.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/file.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/fsuid.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/inotify.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/io.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/ioctl.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/ipc.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/klog.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/mman.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/mount.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/msg.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/mtio.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/param.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/personality.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/poll.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/quota.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/random.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/reboot.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/reg.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/select.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/sem.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/shm.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/signal.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/signalfd.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/socket.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/stat.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/statfs.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/statvfs.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/stropts.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/swap.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/syslog.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/termios.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/time.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/timeb.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/timerfd.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/times.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/timex.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/ttydefaults.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/types.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/ucontext.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/uio.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/un.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/utsname.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/vfs.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/wait.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sysexits.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/syslog.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/tar.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/termios.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/threads.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/time.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/uchar.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/ucontext.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/unistd.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/utime.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/values.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/wait.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/wchar.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/wctype.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/wordexp.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/lib/Scrt1.o +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/lib/libc.so +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/lib/libdl.so +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/lib/libm.so +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/lib/libpthread.so +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/lib/librt.so +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/lib/libzircon.so +FILE: ../../../fuchsia/sdk/linux/dart/fidl/meta.json +FILE: ../../../fuchsia/sdk/linux/dart/fuchsia/meta.json +FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_component_test/meta.json +FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_inspect/meta.json +FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_logger/meta.json +FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_scenic/meta.json +FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_scenic_flutter/meta.json +FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_services/meta.json +FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_vfs/meta.json +FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_view/meta.json +FILE: ../../../fuchsia/sdk/linux/dart/sl4f/meta.json +FILE: ../../../fuchsia/sdk/linux/dart/zircon/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.accessibility.gesture/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.accessibility.semantics/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.accessibility.virtualkeyboard/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.audio.effects/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.auth.oldtokens/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.auth/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth.a2dp/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth.gatt/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth.gatt2/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth.hfp/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth.le/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth.sys/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.buildinfo.test/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.buildinfo/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.camera/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.camera2.hal/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.camera2/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.camera3/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.castauth/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.castconfig/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.castremotecontrol/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.castsetup/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.castsysteminfo/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.castwindow/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.config/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.decl/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.resolution/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.runner/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.test/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.types/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.data/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.debugdata/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.developer.tiles/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.diagnostics.types/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.diagnostics/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.driver.test/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.element/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.factory.wlan/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.factory/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.feedback/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.fonts/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.gpu.agis/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.gpu.magma/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.adc/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.audio.signalprocessing/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.audio/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.goldfish/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.light/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.network/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.power.statecontrol/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.radar/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hwinfo/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.images/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.input.report/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.input.virtualkeyboard/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.input/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.inspect/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.intl/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.io/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.kernel/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ldsvc/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.legacymetrics/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.lightsensor/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.location.namedplace/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.location.position/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.location.sensor/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.location/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.logger/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.lowpan.bootstrap/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.lowpan.device/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.lowpan.thread/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.lowpan/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.math/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.media.audio/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.media.drm/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.media.playback/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.media.sessions2/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.media.sounds/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.media.target/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.media/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.mediacodec/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.mediastreams/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.mem/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.memorypressure/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.metrics/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.migration/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.modular/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.net.http/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.net.interfaces/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.net.mdns/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.net.reachability/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.net.routes/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.net/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.power.clientlevel/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.power.profile/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.power.systemmode/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.process.lifecycle/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.process/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.recovery.ui/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.recovery/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.scenic.scheduling/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.session/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.settings.policy/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.settings/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.sys.test/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.sys/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.sysinfo/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.sysmem/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.test/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.thermal/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.tracing.perfetto/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.tracing.provider/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.activity.control/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.activity/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.app/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.brightness/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.composition/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.gfx/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.input/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.input3/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.observation.geometry/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.pointer.augment/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.pointer/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.pointerinjector/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.policy/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.scenic/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.test.input/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.test.scene/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.types/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.views/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ultrasound/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.unknown/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.update.channel/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.update.channelcontrol/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.update.config/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.update/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.url/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.version/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.weave/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.web/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.wlan.common/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.wlan.ieee80211/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.wlan.policy/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.wlan.product.deprecatedclient/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.wlan.product.deprecatedconfiguration/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/zx/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/async-cpp/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/async-default/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/async-loop-cpp/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/async-loop-default/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/async-loop-testing/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/async-loop/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/async-testing/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/async/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/fdio/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/fidl/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/fidl_base/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/fidl_cpp/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/fidl_cpp_base/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/fidl_cpp_sync/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/fit-promise/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/fit/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/images_cpp/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/inspect/inspect.json +FILE: ../../../fuchsia/sdk/linux/pkg/inspect/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/inspect_service_cpp/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/media_cpp/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/media_cpp_no_converters/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/memfs/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/modular_cpp/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/scenic_cpp/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/stdcompat/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/svc/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/sync/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/sys/component/realm_builder_shard_sdk.json +FILE: ../../../fuchsia/sdk/linux/pkg/sys_component_cpp_testing/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/sys_cpp/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/sys_cpp_testing/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/sys_inspect_cpp/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/sys_service_cpp/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/syslog/client.shard.cmx +FILE: ../../../fuchsia/sdk/linux/pkg/syslog/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/syslog/syslog.json +FILE: ../../../fuchsia/sdk/linux/pkg/syslog_structured_backend/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/sysroot/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/trace-engine/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/trace-provider-so/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/trace/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/utf-utils/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/vfs_cpp/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/vulkan/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/vulkan/vulkan.json +FILE: ../../../fuchsia/sdk/linux/pkg/vulkan_layers/data/vulkan/explicit_layer.d/VkLayer_image_pipe_swapchain.json +FILE: ../../../fuchsia/sdk/linux/pkg/vulkan_layers/data/vulkan/explicit_layer.d/VkLayer_khronos_validation.json +FILE: ../../../fuchsia/sdk/linux/pkg/vulkan_layers/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/zx/meta.json +FILE: ../../../fuchsia/sdk/linux/version_history.json ---------------------------------------------------------------------------------------------------- -Copyright 2017 The Fuchsia Authors. All rights reserved. +Copyright 2019 The Fuchsia Authors. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are @@ -3176,8 +1474,6 @@ FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.media/audio_core.fidl FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.media/usage_reporter.fidl FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.mem/range.fidl FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.migration/migration.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.modular.session/modular_config.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.modular.testing/test_harness.fidl FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.modular/annotation.fidl FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.modular/story_shell_factory.fidl FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.recovery.ui/countdown.fidl @@ -3208,7 +1504,6 @@ FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.brightness/brightness.fidl FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.brightness/color_adjustment.fidl FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.gfx/tokens.fidl FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.input/pointer_capture.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.lifecycle/lifecycle_controller.fidl FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.policy/device_listener.fidl FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.types/types.fidl FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.views/focuser.fidl @@ -3248,9 +1543,7 @@ FILE: ../../../fuchsia/sdk/linux/pkg/fidl_cpp_sync/include/lib/fidl/cpp/internal FILE: ../../../fuchsia/sdk/linux/pkg/fidl_cpp_sync/internal/message_sender.cc FILE: ../../../fuchsia/sdk/linux/pkg/fit-promise/barrier.cc FILE: ../../../fuchsia/sdk/linux/pkg/fit-promise/include/lib/fpromise/barrier.h -FILE: ../../../fuchsia/sdk/linux/pkg/fit/include/lib/fit/constructors_internal.h -FILE: ../../../fuchsia/sdk/linux/pkg/fit/include/lib/fit/storage_internal.h -FILE: ../../../fuchsia/sdk/linux/pkg/fit/include/lib/fit/utility_internal.h +FILE: ../../../fuchsia/sdk/linux/pkg/fit/include/lib/fit/internal/utility.h FILE: ../../../fuchsia/sdk/linux/pkg/inspect/health.cc FILE: ../../../fuchsia/sdk/linux/pkg/inspect/hierarchy.cc FILE: ../../../fuchsia/sdk/linux/pkg/inspect/include/lib/inspect/cpp/health.h @@ -3269,10 +1562,6 @@ FILE: ../../../fuchsia/sdk/linux/pkg/inspect_service_cpp/reader.cc FILE: ../../../fuchsia/sdk/linux/pkg/inspect_service_cpp/service.cc FILE: ../../../fuchsia/sdk/linux/pkg/modular_cpp/agent.cc FILE: ../../../fuchsia/sdk/linux/pkg/modular_cpp/include/lib/modular/cpp/agent.h -FILE: ../../../fuchsia/sdk/linux/pkg/modular_testing_cpp/fake_agent.cc -FILE: ../../../fuchsia/sdk/linux/pkg/modular_testing_cpp/fake_component.cc -FILE: ../../../fuchsia/sdk/linux/pkg/modular_testing_cpp/test_harness_builder.cc -FILE: ../../../fuchsia/sdk/linux/pkg/modular_testing_cpp/test_harness_launcher.cc FILE: ../../../fuchsia/sdk/linux/pkg/scenic_cpp/include/lib/ui/scenic/cpp/view_ref_pair.h FILE: ../../../fuchsia/sdk/linux/pkg/scenic_cpp/include/lib/ui/scenic/cpp/view_token_pair.h FILE: ../../../fuchsia/sdk/linux/pkg/scenic_cpp/view_ref_pair.cc @@ -3336,7 +1625,590 @@ FILE: ../../../fuchsia/sdk/linux/pkg/zx/include/lib/zx/exception.h FILE: ../../../fuchsia/sdk/linux/pkg/zx/include/lib/zx/pager.h FILE: ../../../fuchsia/sdk/linux/pkg/zx/pager.cc ---------------------------------------------------------------------------------------------------- -Copyright 2019 The Fuchsia Authors. All rights reserved. +Copyright 2019 The Fuchsia Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: fuchsia_sdk +ORIGIN: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/boot/crash-reason.h + ../../../fuchsia/sdk/linux/LICENSE +TYPE: LicenseType.bsd +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/analyzer.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/boot/crash-reason.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/string_view.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/syscalls-next.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/testonly-syscalls.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/analyzer.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/boot/crash-reason.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/string_view.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/syscalls-next.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/testonly-syscalls.h +FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_scenic_flutter/lib/fuchsia_view.dart +FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_scenic_flutter/lib/src/fuchsia_view.dart +FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_scenic_flutter/lib/src/fuchsia_view_connection.dart +FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_scenic_flutter/lib/src/fuchsia_view_controller.dart +FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_scenic_flutter/lib/src/pointer_injector.dart +FILE: ../../../fuchsia/sdk/linux/dart/sl4f/lib/src/component.dart +FILE: ../../../fuchsia/sdk/linux/dart/sl4f/lib/src/device.dart +FILE: ../../../fuchsia/sdk/linux/dart/sl4f/lib/src/diagnostics.dart +FILE: ../../../fuchsia/sdk/linux/dart/sl4f/lib/src/feedback_data_provider.dart +FILE: ../../../fuchsia/sdk/linux/dart/sl4f/lib/src/power.dart +FILE: ../../../fuchsia/sdk/linux/dart/sl4f/lib/src/proxy.dart +FILE: ../../../fuchsia/sdk/linux/dart/sl4f/lib/src/tiles.dart +FILE: ../../../fuchsia/sdk/linux/dart/sl4f/lib/src/time.dart +FILE: ../../../fuchsia/sdk/linux/dart/sl4f/lib/src/trace_processing/metrics/gpu_metrics.dart +FILE: ../../../fuchsia/sdk/linux/dart/sl4f/lib/src/trace_processing/metrics/total_trace_wall_time.dart +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.accessibility.gesture/gesture_listener.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth.a2dp/audio_mode.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth.hfp/hfp.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth.le/connection_options.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth.sys/configuration.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth.sys/pairing_options.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth.sys/security_mode.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth/deprecated.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth/device_name.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.buildinfo/buildinfo.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.camera3/device.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.camera3/device_watcher.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.camera3/stream.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.castremotecontrol/remote_control.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.castsetup/server.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.castwindow/window.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.types/constants.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component/constants.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component/error.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component/types.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.diagnostics/interest.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.diagnostics/severity.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.element/graphical_presenter.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.factory.wlan/iovar.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.feedback/crash_register.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.feedback/data_register.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.feedback/last_reboot_info.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.adc/adc.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.audio/codec.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.audio/dai.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.audio/dai_format.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.network/device.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.network/frames.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.network/instance.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.network/mac.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.network/session.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.power.statecontrol/reboot_reason.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.input.report/consumer_control.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.input.report/device_ids.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.input/keys.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.io/locking.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.kernel/debug-resource.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.kernel/hypervisor-resource.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.kernel/info-resource.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.kernel/ioport-resource.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.kernel/irq-resource.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.kernel/mexec-resource.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.kernel/mmio-resource.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.kernel/power-resource.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.kernel/smc-resource.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.kernel/vmex-resource.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.legacymetrics/event.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.legacymetrics/metrics_recorder.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.location.position/position.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.location.sensor/sensor.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.location/types.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.lowpan.bootstrap/thread.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.lowpan.device/device.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.lowpan.device/energy_scanner.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.media.audio/effects_controller.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.media.drm/properties.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.media.drm/types.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.media.target/target_discovery.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.media/activity_reporter.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.media/profile_provider.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.memorypressure/memorypressure.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.metrics/metric_event_logger.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.modular/session_restart_controller.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.net.interfaces/interfaces.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.net.routes/routes.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.net/socket.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.process.lifecycle/lifecycle.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.settings.policy/error.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.settings.policy/volume_policy.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.settings/factory_reset.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.settings/input.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.settings/light.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.settings/night_mode.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.input3/events.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.input3/keyboard.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.input3/modifiers.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.pointer.augment/augment.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.pointer/mouse.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.pointer/state.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.pointer/touch.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.pointer/view.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.pointerinjector/config.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.pointerinjector/device.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.pointerinjector/event.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.policy/display_backlight.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.views/view_ref.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.views/view_ref_focused.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.views/view_ref_installed.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ultrasound/factory.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.update/commit.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.update/update.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.url/url.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.weave/auth.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.weave/bootstrap.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.weave/common.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.weave/weavestack.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.wlan.ieee80211/reason_code.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.wlan.ieee80211/status_code.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.wlan.product.deprecatedclient/wlan_deprecated_client.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.wlan.product.deprecatedconfiguration/wlan_deprecated_configuration.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/zx/zx_common.fidl +FILE: ../../../fuchsia/sdk/linux/pkg/fidl_base/handle_close_many.cc +FILE: ../../../fuchsia/sdk/linux/pkg/fidl_base/include/lib/fidl/trace.h +FILE: ../../../fuchsia/sdk/linux/pkg/fidl_cpp_base/include/lib/fidl/cpp/internal/bitset.h +FILE: ../../../fuchsia/sdk/linux/pkg/fidl_cpp_base/include/lib/fidl/cpp/internal/natural_types_header.h +FILE: ../../../fuchsia/sdk/linux/pkg/fidl_cpp_base/include/lib/fidl/cpp/internal/natural_types_implementation.h +FILE: ../../../fuchsia/sdk/linux/pkg/fidl_cpp_base/include/lib/fidl/cpp/types.h +FILE: ../../../fuchsia/sdk/linux/pkg/fit/include/lib/fit/internal/compiler.h +FILE: ../../../fuchsia/sdk/linux/pkg/fit/include/lib/fit/internal/result.h +FILE: ../../../fuchsia/sdk/linux/pkg/fit/include/lib/fit/result.h +FILE: ../../../fuchsia/sdk/linux/pkg/scenic_cpp/commands_sizing.cc +FILE: ../../../fuchsia/sdk/linux/pkg/scenic_cpp/include/lib/ui/scenic/cpp/commands_sizing.h +FILE: ../../../fuchsia/sdk/linux/pkg/stdcompat/include/lib/stdcompat/array.h +FILE: ../../../fuchsia/sdk/linux/pkg/stdcompat/include/lib/stdcompat/bit.h +FILE: ../../../fuchsia/sdk/linux/pkg/stdcompat/include/lib/stdcompat/internal/array.h +FILE: ../../../fuchsia/sdk/linux/pkg/stdcompat/include/lib/stdcompat/internal/bit.h +FILE: ../../../fuchsia/sdk/linux/pkg/stdcompat/include/lib/stdcompat/memory.h +FILE: ../../../fuchsia/sdk/linux/pkg/stdcompat/include/lib/stdcompat/source_location.h +FILE: ../../../fuchsia/sdk/linux/pkg/stdcompat/include/lib/stdcompat/version.h +FILE: ../../../fuchsia/sdk/linux/pkg/zx/include/lib/zx/msi.h +FILE: ../../../fuchsia/sdk/linux/pkg/zx/include/lib/zx/stream.h +FILE: ../../../fuchsia/sdk/linux/pkg/zx/msi.cc +FILE: ../../../fuchsia/sdk/linux/pkg/zx/stream.cc +---------------------------------------------------------------------------------------------------- +Copyright 2020 The Fuchsia Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: fuchsia_sdk +ORIGIN: ../../../fuchsia/sdk/linux/dart/fuchsia_services/lib/src/component_context.dart + ../../../LICENSE +TYPE: LicenseType.bsd +FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_services/lib/src/component_context.dart +---------------------------------------------------------------------------------------------------- +Copyright 2021 The Chromium Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: fuchsia_sdk +ORIGIN: ../../../fuchsia/sdk/linux/dart/zircon/lib/src/fakes/handle_disposition.dart + ../../../flutter/LICENSE +TYPE: LicenseType.bsd +FILE: ../../../fuchsia/sdk/linux/dart/zircon/lib/src/fakes/handle_disposition.dart +---------------------------------------------------------------------------------------------------- +Copyright 2021 The Flutter Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: fuchsia_sdk +ORIGIN: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/availability.h + ../../../fuchsia/sdk/linux/LICENSE +TYPE: LicenseType.bsd +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/availability.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/availability.h +FILE: ../../../fuchsia/sdk/linux/dart/fidl/lib/src/codegen_common.dart +FILE: ../../../fuchsia/sdk/linux/dart/fidl/lib/src/wire_format.dart +FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_inspect/lib/reader.dart +FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_inspect/lib/src/reader/diagnostic_config.dart +FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_inspect/lib/src/reader/diagnostic_data.dart +FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_inspect/lib/src/reader/reader.dart +FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_scenic/lib/src/scenic_context.dart +FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_scenic_flutter/lib/src/focus_state.dart +FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_scenic_flutter/lib/src/fuchsia_views_service.dart +FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_services/lib/src/dart_vm.dart +FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_vfs/lib/src/remote_dir.dart +FILE: ../../../fuchsia/sdk/linux/dart/sl4f/lib/src/trace_processing/metrics/camera_metrics.dart +FILE: ../../../fuchsia/sdk/linux/dart/sl4f/lib/src/trace_processing/metrics/flatland_latency.dart +FILE: ../../../fuchsia/sdk/linux/dart/sl4f/lib/src/virtual_camera.dart +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.accessibility.virtualkeyboard/virtual_keyboard.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.audio.effects/creator.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.audio.effects/processor.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth.gatt2/client.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth.gatt2/constants.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth.gatt2/server.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth.gatt2/types.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.config/specs.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.config/value.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.decl/capability.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.decl/child.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.decl/collection.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.decl/component.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.decl/config.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.decl/environment.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.decl/events.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.decl/expose.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.decl/offer.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.decl/program.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.decl/relative_refs.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.decl/types.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.decl/use.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.test/realm_builder.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component/binder.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component/realm.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.diagnostics.types/component.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.diagnostics/log_settings.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.driver.test/realm.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.feedback/data_provider_controller.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.gpu.agis/agis.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.audio.signalprocessing/signal_processing.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.audio/codec_connector.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.audio/dai_connector.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.audio/health.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.goldfish/goldfish_sync.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.network/port.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.radar/radar.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.input.virtualkeyboard/virtual_keyboard.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.input/keymap.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.intl/calendar.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.intl/time_zones.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.io/inotify.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.io/rights-abilities.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.kernel/cpu-resource.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.lightsensor/calibrator.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.lightsensor/sensor.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.lightsensor/types.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.lowpan.device/counters.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.mediastreams/audio_format.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.mediastreams/compression.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.mediastreams/encryption.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.mediastreams/media_format.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.mediastreams/video_format.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.power.profile/profile.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.settings/keyboard.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.thermal/client_state.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.composition/allocator.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.composition/flatland.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.observation.geometry/watcher.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.views/flatland_tokens.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.wlan.common/wlan_common.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.wlan.ieee80211/constants.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.wlan.ieee80211/rsn.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.wlan.policy/types.fidl +FILE: ../../../fuchsia/sdk/linux/pkg/fidl_base/wire_format_metadata.cc +FILE: ../../../fuchsia/sdk/linux/pkg/scenic_cpp/include/lib/ui/scenic/cpp/view_creation_tokens.h +FILE: ../../../fuchsia/sdk/linux/pkg/scenic_cpp/include/lib/ui/scenic/cpp/view_identity.h +FILE: ../../../fuchsia/sdk/linux/pkg/scenic_cpp/view_creation_tokens.cc +FILE: ../../../fuchsia/sdk/linux/pkg/scenic_cpp/view_identity.cc +FILE: ../../../fuchsia/sdk/linux/pkg/stdcompat/include/lib/stdcompat/algorithm.h +FILE: ../../../fuchsia/sdk/linux/pkg/stdcompat/include/lib/stdcompat/atomic.h +FILE: ../../../fuchsia/sdk/linux/pkg/stdcompat/include/lib/stdcompat/cstddef.h +FILE: ../../../fuchsia/sdk/linux/pkg/stdcompat/include/lib/stdcompat/functional.h +FILE: ../../../fuchsia/sdk/linux/pkg/stdcompat/include/lib/stdcompat/internal/algorithm.h +FILE: ../../../fuchsia/sdk/linux/pkg/stdcompat/include/lib/stdcompat/internal/atomic.h +FILE: ../../../fuchsia/sdk/linux/pkg/stdcompat/include/lib/stdcompat/internal/erase.h +FILE: ../../../fuchsia/sdk/linux/pkg/stdcompat/include/lib/stdcompat/internal/exception.h +FILE: ../../../fuchsia/sdk/linux/pkg/stdcompat/include/lib/stdcompat/internal/functional.h +FILE: ../../../fuchsia/sdk/linux/pkg/stdcompat/include/lib/stdcompat/internal/span.h +FILE: ../../../fuchsia/sdk/linux/pkg/stdcompat/include/lib/stdcompat/internal/tuple.h +FILE: ../../../fuchsia/sdk/linux/pkg/stdcompat/include/lib/stdcompat/internal/type_traits.h +FILE: ../../../fuchsia/sdk/linux/pkg/stdcompat/include/lib/stdcompat/iterator.h +FILE: ../../../fuchsia/sdk/linux/pkg/stdcompat/include/lib/stdcompat/span.h +FILE: ../../../fuchsia/sdk/linux/pkg/stdcompat/include/lib/stdcompat/tuple.h +FILE: ../../../fuchsia/sdk/linux/pkg/sys_component_cpp_testing/internal/errors.cc +FILE: ../../../fuchsia/sdk/linux/pkg/sys_component_cpp_testing/internal/local_component_runner.cc +FILE: ../../../fuchsia/sdk/linux/pkg/sys_component_cpp_testing/internal/realm.cc +FILE: ../../../fuchsia/sdk/linux/pkg/sys_component_cpp_testing/realm_builder.cc +FILE: ../../../fuchsia/sdk/linux/pkg/sys_component_cpp_testing/realm_builder_types.cc +FILE: ../../../fuchsia/sdk/linux/pkg/sys_component_cpp_testing/scoped_child.cc +FILE: ../../../fuchsia/sdk/linux/pkg/syslog_structured_backend/fuchsia_syslog.cc +FILE: ../../../fuchsia/sdk/linux/pkg/syslog_structured_backend/include/lib/syslog/structured_backend/cpp/fuchsia_syslog.h +FILE: ../../../fuchsia/sdk/linux/pkg/syslog_structured_backend/include/lib/syslog/structured_backend/fuchsia_syslog.h +---------------------------------------------------------------------------------------------------- +Copyright 2021 The Fuchsia Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: fuchsia_sdk +ORIGIN: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/boot/driver-config.h + ../../../fuchsia/sdk/linux/LICENSE +TYPE: LicenseType.bsd +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/boot/driver-config.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/errors.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/boot/driver-config.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/errors.h +FILE: ../../../fuchsia/sdk/linux/dart/fidl/lib/src/optional_nullable.dart +FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_component_test/lib/realm_builder.dart +FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_component_test/lib/src/error.dart +FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_component_test/lib/src/internal/local_component.dart +FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_component_test/lib/src/internal/local_component_runner.dart +FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_component_test/lib/src/local_component_handles.dart +FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_component_test/lib/src/realm_builder.dart +FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_view/lib/src/view_creation_token_pair.dart +FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_view/lib/tokens.dart +FILE: ../../../fuchsia/sdk/linux/dart/sl4f/lib/src/trace_processing/metrics/power_metrics.dart +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.accessibility.semantics/overview.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.audio.effects/overview.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.auth/overview.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth.gatt/overview.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth.gatt2/overview.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth.le/overview.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth.sys/overview.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth.sys/pairing.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth/overview.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.buildinfo.test/buildinfotest.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.camera/overview.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.camera2/overview.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.camera3/overview.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.castsetup/overview.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.config/overview.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.config/resolved.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.decl/overview.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.resolution/component.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.resolution/overview.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.resolution/package.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.resolution/resolver.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component/overview.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.debugdata/publisher.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.diagnostics/overview.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.element/overview.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.feedback/overview.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.fonts/overview.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.audio.signalprocessing/connector.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.audio.signalprocessing/dynamics.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.audio.signalprocessing/equalizer.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.audio.signalprocessing/gain.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.audio.signalprocessing/overview.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.audio.signalprocessing/vendor_specific.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.audio/overview.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.goldfish/overview.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.network/diagnostics.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.network/overview.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.power.statecontrol/overview.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.images/overview.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.input.report/overview.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.input/overview.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.intl/overview.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.kernel/overview.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.legacymetrics/overview.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.lightsensor/overview.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.lowpan.device/overview.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.lowpan.thread/dataset.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.lowpan.thread/meshcop.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.lowpan.thread/overview.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.lowpan/lowpan.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.media.audio/overview.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.media.drm/overview.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.media.playback/overview.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.media.sessions2/overview.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.media/overview.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.mediastreams/overview.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.mem/overview.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.modular/overview.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.net.mdns/common.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.net.mdns/host_name_resolver.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.net.mdns/host_name_subscriber.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.net.mdns/overview.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.net.mdns/proxy_host_publisher.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.net.mdns/service_instance_publisher.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.net.mdns/service_instance_resolver.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.net.mdns/service_subscriber.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.net.reachability/reachability.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.net/overview.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.power.clientlevel/clientlevel.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.power.systemmode/systemmode.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.process/overview.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.recovery.ui/progress.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.settings.policy/overview.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.settings/overview.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.sys/overview.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.sysmem/overview.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.thermal/overview.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.tracing.perfetto/consumer.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.tracing.perfetto/overview.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.tracing.perfetto/producer.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.activity/overview.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.app/overview.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.brightness/overview.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.composition/overview.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.composition/screen_capture.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.composition/screenshot.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.gfx/overview.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.input/overview.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.input3/overview.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.observation.geometry/overview.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.pointer/overview.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.pointerinjector/overview.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.policy/overview.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.scenic/overview.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.test.input/media_buttons.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.test.input/mouse.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.test.input/overview.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.test.input/registry.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.test.input/text.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.test.input/touch.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.test.scene/controller.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.test.scene/overview.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.views/overview.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.unknown/unknown.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.update.config/config.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.update/overview.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.version/version.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.weave/overview.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.web/overview.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.wlan.common/driver_features.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.wlan.common/overview.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.wlan.ieee80211/fields.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.wlan.ieee80211/overview.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.wlan.policy/overview.fidl +FILE: ../../../fuchsia/sdk/linux/fidl/zx/overview.fidl +FILE: ../../../fuchsia/sdk/linux/pkg/async-cpp/include/lib/async/cpp/sequence_checker.h +FILE: ../../../fuchsia/sdk/linux/pkg/async-cpp/sequence_checker.cc +FILE: ../../../fuchsia/sdk/linux/pkg/async/include/lib/async/sequence_id.h +FILE: ../../../fuchsia/sdk/linux/pkg/fidl_base/include/lib/fidl/cpp/transaction_header.h +FILE: ../../../fuchsia/sdk/linux/pkg/fidl_base/include/lib/fidl/cpp/transport_err.h +FILE: ../../../fuchsia/sdk/linux/pkg/fidl_base/include/lib/fidl/cpp/wire_format_metadata.h +FILE: ../../../fuchsia/sdk/linux/pkg/fidl_cpp/include/lib/fidl/cpp/internal/unknown_interactions_table.h +FILE: ../../../fuchsia/sdk/linux/pkg/fidl_cpp/include/lib/fidl/cpp/unknown_interactions_hlcpp.h +FILE: ../../../fuchsia/sdk/linux/pkg/fidl_cpp/internal/unknown_interactions_table.c +FILE: ../../../fuchsia/sdk/linux/pkg/fidl_cpp/unknown_interactions_hlcpp.cc +FILE: ../../../fuchsia/sdk/linux/pkg/fit/include/lib/fit/inline_any.h +FILE: ../../../fuchsia/sdk/linux/pkg/fit/include/lib/fit/internal/inline_any.h +FILE: ../../../fuchsia/sdk/linux/pkg/inspect/client.shard.cml +FILE: ../../../fuchsia/sdk/linux/pkg/inspect_service_cpp/include/lib/inspect/service/cpp/tree_handler_settings.h +FILE: ../../../fuchsia/sdk/linux/pkg/stdcompat/include/lib/stdcompat/internal/linkage.h +FILE: ../../../fuchsia/sdk/linux/pkg/stdcompat/include/lib/stdcompat/internal/variant.h +FILE: ../../../fuchsia/sdk/linux/pkg/sys/component/realm_builder_absolute.shard.cml +FILE: ../../../fuchsia/sdk/linux/pkg/sys/component/realm_builder_base.shard.cml +FILE: ../../../fuchsia/sdk/linux/pkg/sys_component_cpp_testing/internal/convert.cc +FILE: ../../../fuchsia/sdk/linux/pkg/syslog/client.shard.cml +FILE: ../../../fuchsia/sdk/linux/pkg/syslog/offer.shard.cml +FILE: ../../../fuchsia/sdk/linux/pkg/syslog/use.shard.cml +FILE: ../../../fuchsia/sdk/linux/pkg/utf-utils/include/lib/utf-utils/internal/arm-neon.h +FILE: ../../../fuchsia/sdk/linux/pkg/utf-utils/include/lib/utf-utils/internal/generic-simd.h +FILE: ../../../fuchsia/sdk/linux/pkg/utf-utils/include/lib/utf-utils/internal/scalar.h +FILE: ../../../fuchsia/sdk/linux/pkg/utf-utils/include/lib/utf-utils/internal/x86-avx2.h +FILE: ../../../fuchsia/sdk/linux/pkg/utf-utils/include/lib/utf-utils/internal/x86-ssse3.h +FILE: ../../../fuchsia/sdk/linux/pkg/utf-utils/include/lib/utf-utils/utf-utils.h +FILE: ../../../fuchsia/sdk/linux/pkg/utf-utils/internal/scalar.cc +FILE: ../../../fuchsia/sdk/linux/pkg/utf-utils/utf-utils.cc +FILE: ../../../fuchsia/sdk/linux/pkg/vulkan/client.shard.cml +---------------------------------------------------------------------------------------------------- +Copyright 2022 The Fuchsia Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are @@ -3364,487 +2236,1589 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ==================================================================================================== LIBRARY: fuchsia_sdk -ORIGIN: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/hw/usb/hid.h + ../../../fuchsia/sdk/linux/LICENSE -TYPE: LicenseType.bsd -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/assert.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/compiler.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/errors.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/hw/usb.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/hw/usb/hid.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/hw/usb/ums.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/listnode.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/pixelformat.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/processargs.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/status.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/syscalls.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/syscalls/debug.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/syscalls/exception.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/syscalls/log.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/syscalls/object.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/syscalls/pci.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/syscalls/port.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/syscalls/profile.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/syscalls/resource.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/syscalls/types.h -FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/types.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/assert.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/compiler.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/errors.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/hw/usb.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/hw/usb/hid.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/hw/usb/ums.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/listnode.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/pixelformat.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/processargs.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/status.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/syscalls.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/syscalls/debug.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/syscalls/exception.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/syscalls/log.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/syscalls/object.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/syscalls/pci.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/syscalls/port.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/syscalls/profile.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/syscalls/resource.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/syscalls/types.h -FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/types.h -FILE: ../../../fuchsia/sdk/linux/dart/fidl/lib/src/interface.dart -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.runner/component_runner.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.fonts/font_provider.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.math/math.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.media.playback/problem.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.media.playback/seeking_reader.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.media/audio.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.modular/module_context.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.modular/session_shell.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.modular/story_controller.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.modular/story_info.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.modular/story_provider.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.sys/component_controller.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.sys/environment.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.sys/environment_controller.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.sys/launcher.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.sys/loader.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.sys/runner.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.tracing.provider/provider.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.policy/presenter.fidl -FILE: ../../../fuchsia/sdk/linux/pkg/fdio/include/lib/fdio/fdio.h -FILE: ../../../fuchsia/sdk/linux/pkg/fdio/include/lib/fdio/io.h -FILE: ../../../fuchsia/sdk/linux/pkg/fdio/include/lib/fdio/vfs.h -FILE: ../../../fuchsia/sdk/linux/pkg/fdio/include/lib/fdio/watcher.h -FILE: ../../../fuchsia/sdk/linux/pkg/fit/include/lib/fit/thread_checker.h -FILE: ../../../fuchsia/sdk/linux/pkg/media_cpp_no_converters/include/lib/media/cpp/timeline_function.h -FILE: ../../../fuchsia/sdk/linux/pkg/media_cpp_no_converters/include/lib/media/cpp/timeline_rate.h -FILE: ../../../fuchsia/sdk/linux/pkg/media_cpp_no_converters/timeline_function.cc -FILE: ../../../fuchsia/sdk/linux/pkg/media_cpp_no_converters/timeline_rate.cc -FILE: ../../../fuchsia/sdk/linux/pkg/sync/include/lib/sync/completion.h -FILE: ../../../fuchsia/sdk/linux/pkg/sys_cpp/include/lib/sys/cpp/termination_reason.h -FILE: ../../../fuchsia/sdk/linux/pkg/zx/channel.cc -FILE: ../../../fuchsia/sdk/linux/pkg/zx/event.cc -FILE: ../../../fuchsia/sdk/linux/pkg/zx/eventpair.cc -FILE: ../../../fuchsia/sdk/linux/pkg/zx/include/lib/zx/channel.h -FILE: ../../../fuchsia/sdk/linux/pkg/zx/include/lib/zx/event.h -FILE: ../../../fuchsia/sdk/linux/pkg/zx/include/lib/zx/eventpair.h -FILE: ../../../fuchsia/sdk/linux/pkg/zx/include/lib/zx/job.h -FILE: ../../../fuchsia/sdk/linux/pkg/zx/include/lib/zx/object.h -FILE: ../../../fuchsia/sdk/linux/pkg/zx/include/lib/zx/object_traits.h -FILE: ../../../fuchsia/sdk/linux/pkg/zx/include/lib/zx/port.h -FILE: ../../../fuchsia/sdk/linux/pkg/zx/include/lib/zx/process.h -FILE: ../../../fuchsia/sdk/linux/pkg/zx/include/lib/zx/socket.h -FILE: ../../../fuchsia/sdk/linux/pkg/zx/include/lib/zx/task.h -FILE: ../../../fuchsia/sdk/linux/pkg/zx/include/lib/zx/thread.h -FILE: ../../../fuchsia/sdk/linux/pkg/zx/include/lib/zx/time.h -FILE: ../../../fuchsia/sdk/linux/pkg/zx/include/lib/zx/vmar.h -FILE: ../../../fuchsia/sdk/linux/pkg/zx/include/lib/zx/vmo.h -FILE: ../../../fuchsia/sdk/linux/pkg/zx/job.cc -FILE: ../../../fuchsia/sdk/linux/pkg/zx/port.cc -FILE: ../../../fuchsia/sdk/linux/pkg/zx/process.cc -FILE: ../../../fuchsia/sdk/linux/pkg/zx/socket.cc -FILE: ../../../fuchsia/sdk/linux/pkg/zx/thread.cc -FILE: ../../../fuchsia/sdk/linux/pkg/zx/vmar.cc -FILE: ../../../fuchsia/sdk/linux/pkg/zx/vmo.cc +ORIGIN: ../../../fuchsia/sdk/linux/LICENSE.vulkan +TYPE: LicenseType.apache +FILE: ../../../fuchsia/sdk/linux/.versions/core.cipd_version +FILE: ../../../fuchsia/sdk/linux/arch/arm64/dist/VkLayer_image_pipe_swapchain.so +FILE: ../../../fuchsia/sdk/linux/arch/arm64/dist/VkLayer_khronos_validation.so +FILE: ../../../fuchsia/sdk/linux/arch/arm64/dist/libasync-default.so +FILE: ../../../fuchsia/sdk/linux/arch/arm64/dist/libfdio.so +FILE: ../../../fuchsia/sdk/linux/arch/arm64/dist/libmemfs.so +FILE: ../../../fuchsia/sdk/linux/arch/arm64/dist/libsvc.so +FILE: ../../../fuchsia/sdk/linux/arch/arm64/dist/libsyslog.so +FILE: ../../../fuchsia/sdk/linux/arch/arm64/dist/libtrace-engine.so +FILE: ../../../fuchsia/sdk/linux/arch/arm64/dist/libtrace-provider-so.so +FILE: ../../../fuchsia/sdk/linux/arch/arm64/dist/libvulkan.so +FILE: ../../../fuchsia/sdk/linux/arch/arm64/lib/libasync-default.so +FILE: ../../../fuchsia/sdk/linux/arch/arm64/lib/libasync-loop-default.a +FILE: ../../../fuchsia/sdk/linux/arch/arm64/lib/libfdio.so +FILE: ../../../fuchsia/sdk/linux/arch/arm64/lib/libmemfs.so +FILE: ../../../fuchsia/sdk/linux/arch/arm64/lib/libsvc.so +FILE: ../../../fuchsia/sdk/linux/arch/arm64/lib/libsync.a +FILE: ../../../fuchsia/sdk/linux/arch/arm64/lib/libsyslog.so +FILE: ../../../fuchsia/sdk/linux/arch/arm64/lib/libtrace-engine.so +FILE: ../../../fuchsia/sdk/linux/arch/arm64/lib/libtrace-provider-so.so +FILE: ../../../fuchsia/sdk/linux/arch/arm64/lib/libvulkan.so +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/alloca.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/ar.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/arpa/ftp.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/arpa/inet.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/arpa/nameser.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/arpa/nameser_compat.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/arpa/telnet.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/arpa/tftp.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/assert.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/aarch64/endian.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/aarch64/fenv.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/aarch64/ioctl.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/aarch64/ipc.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/aarch64/reg.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/aarch64/setjmp.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/aarch64/signal.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/aarch64/stat.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/alltypes.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/endian.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/errno.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/fcntl.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/fenv.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/io.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/ioctl.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/ipc.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/limits.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/msg.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/null.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/posix.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/reg.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/sem.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/setjmp.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/shm.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/signal.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/stat.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/statfs.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/termios.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/x86_64/endian.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/x86_64/fenv.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/x86_64/io.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/x86_64/ioctl.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/x86_64/ipc.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/x86_64/reg.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/x86_64/setjmp.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/x86_64/signal.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/x86_64/stat.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/byteswap.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/complex.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/cpio.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/ctype.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/dirent.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/dlfcn.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/elf.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/endian.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/err.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/errno.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/fcntl.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/features.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/fenv.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/fmtmsg.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/fnmatch.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/getopt.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/glob.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/grp.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/iconv.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/ifaddrs.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/inttypes.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/iso646.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/langinfo.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/libgen.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/limits.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/link.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/locale.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/malloc.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/math.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/memory.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/monetary.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/net/ethernet.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/net/if.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/net/if_arp.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/net/route.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/netdb.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/netinet/ether.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/netinet/icmp6.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/netinet/if_ether.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/netinet/igmp.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/netinet/in.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/netinet/in_systm.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/netinet/ip.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/netinet/ip6.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/netinet/ip_icmp.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/netinet/tcp.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/netinet/udp.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/netpacket/packet.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/nl_types.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/paths.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/poll.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/pthread.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/pwd.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/regex.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/resolv.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sched.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/search.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/semaphore.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/setjmp.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/signal.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/spawn.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/stdio.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/stdlib.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/string.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/strings.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/stropts.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/acct.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/auxv.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/dir.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/errno.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/eventfd.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/fcntl.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/file.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/fsuid.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/inotify.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/io.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/ioctl.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/ipc.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/klog.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/mman.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/mount.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/msg.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/mtio.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/param.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/personality.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/poll.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/quota.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/random.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/reboot.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/reg.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/select.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/sem.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/shm.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/signal.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/signalfd.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/socket.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/stat.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/statfs.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/statvfs.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/stropts.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/swap.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/syslog.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/termios.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/time.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/timeb.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/timerfd.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/times.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/timex.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/ttydefaults.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/types.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/ucontext.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/uio.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/un.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/utsname.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/vfs.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/wait.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sysexits.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/syslog.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/tar.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/termios.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/threads.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/time.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/uchar.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/ucontext.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/unistd.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/utime.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/values.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/wait.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/wchar.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/wctype.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/wordexp.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/lib/Scrt1.o +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/lib/libc.so +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/lib/libdl.so +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/lib/libm.so +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/lib/libpthread.so +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/lib/librt.so +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/lib/libzircon.so +FILE: ../../../fuchsia/sdk/linux/arch/x64/dist/VkLayer_image_pipe_swapchain.so +FILE: ../../../fuchsia/sdk/linux/arch/x64/dist/VkLayer_khronos_validation.so +FILE: ../../../fuchsia/sdk/linux/arch/x64/dist/libasync-default.so +FILE: ../../../fuchsia/sdk/linux/arch/x64/dist/libfdio.so +FILE: ../../../fuchsia/sdk/linux/arch/x64/dist/libmemfs.so +FILE: ../../../fuchsia/sdk/linux/arch/x64/dist/libsvc.so +FILE: ../../../fuchsia/sdk/linux/arch/x64/dist/libsyslog.so +FILE: ../../../fuchsia/sdk/linux/arch/x64/dist/libtrace-engine.so +FILE: ../../../fuchsia/sdk/linux/arch/x64/dist/libtrace-provider-so.so +FILE: ../../../fuchsia/sdk/linux/arch/x64/dist/libvulkan.so +FILE: ../../../fuchsia/sdk/linux/arch/x64/lib/libasync-default.so +FILE: ../../../fuchsia/sdk/linux/arch/x64/lib/libasync-loop-default.a +FILE: ../../../fuchsia/sdk/linux/arch/x64/lib/libfdio.so +FILE: ../../../fuchsia/sdk/linux/arch/x64/lib/libmemfs.so +FILE: ../../../fuchsia/sdk/linux/arch/x64/lib/libsvc.so +FILE: ../../../fuchsia/sdk/linux/arch/x64/lib/libsync.a +FILE: ../../../fuchsia/sdk/linux/arch/x64/lib/libsyslog.so +FILE: ../../../fuchsia/sdk/linux/arch/x64/lib/libtrace-engine.so +FILE: ../../../fuchsia/sdk/linux/arch/x64/lib/libtrace-provider-so.so +FILE: ../../../fuchsia/sdk/linux/arch/x64/lib/libvulkan.so +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/alloca.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/ar.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/arpa/ftp.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/arpa/inet.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/arpa/nameser.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/arpa/nameser_compat.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/arpa/telnet.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/arpa/tftp.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/assert.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/aarch64/endian.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/aarch64/fenv.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/aarch64/ioctl.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/aarch64/ipc.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/aarch64/reg.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/aarch64/setjmp.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/aarch64/signal.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/aarch64/stat.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/alltypes.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/endian.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/errno.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/fcntl.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/fenv.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/io.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/ioctl.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/ipc.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/limits.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/msg.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/null.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/posix.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/reg.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/sem.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/setjmp.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/shm.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/signal.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/stat.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/statfs.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/termios.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/x86_64/endian.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/x86_64/fenv.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/x86_64/io.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/x86_64/ioctl.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/x86_64/ipc.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/x86_64/reg.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/x86_64/setjmp.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/x86_64/signal.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/x86_64/stat.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/byteswap.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/complex.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/cpio.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/ctype.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/dirent.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/dlfcn.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/elf.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/endian.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/err.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/errno.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/fcntl.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/features.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/fenv.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/fmtmsg.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/fnmatch.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/getopt.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/glob.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/grp.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/iconv.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/ifaddrs.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/inttypes.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/iso646.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/langinfo.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/libgen.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/limits.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/link.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/locale.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/malloc.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/math.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/memory.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/monetary.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/net/ethernet.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/net/if.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/net/if_arp.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/net/route.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/netdb.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/netinet/ether.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/netinet/icmp6.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/netinet/if_ether.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/netinet/igmp.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/netinet/in.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/netinet/in_systm.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/netinet/ip.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/netinet/ip6.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/netinet/ip_icmp.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/netinet/tcp.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/netinet/udp.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/netpacket/packet.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/nl_types.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/paths.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/poll.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/pthread.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/pwd.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/regex.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/resolv.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sched.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/search.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/semaphore.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/setjmp.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/signal.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/spawn.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/stdio.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/stdlib.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/string.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/strings.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/stropts.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/acct.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/auxv.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/dir.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/errno.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/eventfd.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/fcntl.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/file.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/fsuid.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/inotify.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/io.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/ioctl.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/ipc.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/klog.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/mman.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/mount.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/msg.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/mtio.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/param.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/personality.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/poll.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/quota.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/random.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/reboot.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/reg.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/select.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/sem.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/shm.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/signal.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/signalfd.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/socket.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/stat.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/statfs.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/statvfs.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/stropts.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/swap.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/syslog.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/termios.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/time.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/timeb.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/timerfd.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/times.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/timex.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/ttydefaults.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/types.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/ucontext.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/uio.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/un.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/utsname.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/vfs.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/wait.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sysexits.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/syslog.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/tar.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/termios.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/threads.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/time.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/uchar.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/ucontext.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/unistd.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/utime.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/values.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/wait.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/wchar.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/wctype.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/wordexp.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/lib/Scrt1.o +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/lib/libc.so +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/lib/libdl.so +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/lib/libm.so +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/lib/libpthread.so +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/lib/librt.so +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/lib/libzircon.so +FILE: ../../../fuchsia/sdk/linux/dart/fidl/meta.json +FILE: ../../../fuchsia/sdk/linux/dart/fuchsia/meta.json +FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_component_test/meta.json +FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_inspect/meta.json +FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_logger/meta.json +FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_scenic/meta.json +FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_scenic_flutter/meta.json +FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_services/meta.json +FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_vfs/meta.json +FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_view/meta.json +FILE: ../../../fuchsia/sdk/linux/dart/sl4f/meta.json +FILE: ../../../fuchsia/sdk/linux/dart/zircon/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.accessibility.gesture/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.accessibility.semantics/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.accessibility.virtualkeyboard/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.audio.effects/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.auth.oldtokens/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.auth/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth.a2dp/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth.gatt/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth.gatt2/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth.hfp/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth.le/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth.sys/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.buildinfo.test/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.buildinfo/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.camera/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.camera2.hal/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.camera2/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.camera3/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.castauth/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.castconfig/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.castremotecontrol/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.castsetup/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.castsysteminfo/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.castwindow/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.config/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.decl/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.resolution/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.runner/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.test/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.types/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.data/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.debugdata/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.developer.tiles/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.diagnostics.types/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.diagnostics/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.driver.test/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.element/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.factory.wlan/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.factory/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.feedback/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.fonts/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.gpu.agis/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.gpu.magma/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.adc/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.audio.signalprocessing/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.audio/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.goldfish/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.light/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.network/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.power.statecontrol/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.radar/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hwinfo/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.images/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.input.report/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.input.virtualkeyboard/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.input/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.inspect/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.intl/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.io/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.kernel/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ldsvc/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.legacymetrics/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.lightsensor/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.location.namedplace/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.location.position/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.location.sensor/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.location/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.logger/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.lowpan.bootstrap/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.lowpan.device/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.lowpan.thread/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.lowpan/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.math/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.media.audio/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.media.drm/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.media.playback/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.media.sessions2/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.media.sounds/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.media.target/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.media/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.mediacodec/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.mediastreams/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.mem/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.memorypressure/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.metrics/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.migration/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.modular/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.net.http/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.net.interfaces/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.net.mdns/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.net.reachability/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.net.routes/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.net/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.power.clientlevel/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.power.profile/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.power.systemmode/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.process.lifecycle/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.process/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.recovery.ui/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.recovery/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.scenic.scheduling/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.session/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.settings.policy/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.settings/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.sys.test/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.sys/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.sysinfo/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.sysmem/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.test/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.thermal/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.tracing.perfetto/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.tracing.provider/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.activity.control/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.activity/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.app/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.brightness/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.composition/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.gfx/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.input/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.input3/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.observation.geometry/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.pointer.augment/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.pointer/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.pointerinjector/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.policy/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.scenic/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.test.input/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.test.scene/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.types/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.views/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ultrasound/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.unknown/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.update.channel/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.update.channelcontrol/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.update.config/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.update/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.url/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.version/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.weave/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.web/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.wlan.common/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.wlan.ieee80211/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.wlan.policy/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.wlan.product.deprecatedclient/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.wlan.product.deprecatedconfiguration/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/zx/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/async-cpp/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/async-default/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/async-loop-cpp/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/async-loop-default/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/async-loop-testing/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/async-loop/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/async-testing/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/async/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/fdio/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/fidl/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/fidl_base/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/fidl_cpp/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/fidl_cpp_base/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/fidl_cpp_sync/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/fit-promise/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/fit/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/images_cpp/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/inspect/inspect.json +FILE: ../../../fuchsia/sdk/linux/pkg/inspect/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/inspect_service_cpp/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/media_cpp/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/media_cpp_no_converters/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/memfs/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/modular_cpp/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/scenic_cpp/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/stdcompat/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/svc/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/sync/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/sys/component/realm_builder_shard_sdk.json +FILE: ../../../fuchsia/sdk/linux/pkg/sys_component_cpp_testing/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/sys_cpp/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/sys_cpp_testing/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/sys_inspect_cpp/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/sys_service_cpp/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/syslog/client.shard.cmx +FILE: ../../../fuchsia/sdk/linux/pkg/syslog/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/syslog/syslog.json +FILE: ../../../fuchsia/sdk/linux/pkg/syslog_structured_backend/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/sysroot/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/trace-engine/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/trace-provider-so/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/trace/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/utf-utils/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/vfs_cpp/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/vulkan/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/vulkan/vulkan.json +FILE: ../../../fuchsia/sdk/linux/pkg/vulkan_layers/data/vulkan/explicit_layer.d/VkLayer_image_pipe_swapchain.json +FILE: ../../../fuchsia/sdk/linux/pkg/vulkan_layers/data/vulkan/explicit_layer.d/VkLayer_khronos_validation.json +FILE: ../../../fuchsia/sdk/linux/pkg/vulkan_layers/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/zx/meta.json +FILE: ../../../fuchsia/sdk/linux/version_history.json ---------------------------------------------------------------------------------------------------- -Copyright 2016 The Fuchsia Authors. All rights reserved. +The majority of files in this project use the Apache 2.0 License. +There are a few exceptions and their license can be found in the source. +Any license deviations from Apache 2.0 are "more permissive" licenses. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +=========================================================================================== - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION -==================================================================================================== -LIBRARY: fuchsia_sdk -ORIGIN: ../../../fuchsia/sdk/linux/dart/fidl/lib/fidl.dart + ../../../LICENSE -TYPE: LicenseType.bsd -FILE: ../../../fuchsia/sdk/linux/dart/fidl/lib/fidl.dart -FILE: ../../../fuchsia/sdk/linux/dart/fuchsia/lib/fuchsia.dart -FILE: ../../../fuchsia/sdk/linux/dart/zircon/lib/src/fakes/zircon_fakes.dart -FILE: ../../../fuchsia/sdk/linux/dart/zircon/lib/zircon.dart ----------------------------------------------------------------------------------------------------- -Copyright 2018 The Chromium Authors. All rights reserved. + 1. Definitions. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. -==================================================================================================== -LIBRARY: fuchsia_sdk -ORIGIN: ../../../fuchsia/sdk/linux/dart/fidl/lib/src/optional_nullable.dart + ../../../fuchsia/sdk/linux/LICENSE -TYPE: LicenseType.bsd -FILE: ../../../fuchsia/sdk/linux/dart/fidl/lib/src/optional_nullable.dart -FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_component_test/lib/realm_builder.dart -FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_component_test/lib/src/error.dart -FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_component_test/lib/src/internal/local_component.dart -FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_component_test/lib/src/internal/local_component_runner.dart -FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_component_test/lib/src/local_component_handles.dart -FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_component_test/lib/src/realm_builder.dart -FILE: ../../../fuchsia/sdk/linux/dart/sl4f/lib/src/trace_processing/metrics/power_metrics.dart -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.accessibility.semantics/overview.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.audio.effects/overview.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.auth/overview.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth.gatt/overview.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth.gatt2/overview.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth.le/overview.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth.sys/overview.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth.sys/pairing.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth/overview.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.buildinfo.test/buildinfotest.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.camera/overview.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.camera2/overview.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.camera3/overview.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.castsetup/overview.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.config/overview.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.config/resolved.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.decl/overview.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.resolution/component.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.resolution/overview.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.resolution/package.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.resolution/resolver.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component/overview.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.debugdata/publisher.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.diagnostics/overview.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.element/overview.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.feedback/overview.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.fonts/overview.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.audio.signalprocessing/connector.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.audio.signalprocessing/dynamics.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.audio.signalprocessing/equalizer.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.audio.signalprocessing/gain.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.audio.signalprocessing/overview.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.audio.signalprocessing/vendor_specific.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.audio/overview.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.goldfish/overview.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.network/diagnostics.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.network/overview.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.power.statecontrol/overview.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.images/overview.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.input.report/overview.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.input/overview.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.intl/overview.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.kernel/overview.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.legacymetrics/overview.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.lightsensor/overview.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.lowpan.device/overview.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.lowpan.thread/dataset.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.lowpan.thread/meshcop.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.lowpan.thread/overview.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.lowpan/lowpan.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.media.audio/overview.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.media.drm/overview.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.media.playback/overview.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.media.sessions2/overview.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.media/overview.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.mediastreams/overview.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.mem/overview.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.modular.session/overview.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.modular/overview.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.net.mdns/common.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.net.mdns/host_name_resolver.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.net.mdns/host_name_subscriber.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.net.mdns/overview.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.net.mdns/proxy_host_publisher.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.net.mdns/service_instance_publisher.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.net.mdns/service_instance_resolver.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.net.mdns/service_subscriber.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.net.reachability/reachability.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.net/overview.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.power.clientlevel/clientlevel.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.power.systemmode/systemmode.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.process/overview.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.recovery.ui/progress.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.settings.policy/overview.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.settings/overview.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.sys/overview.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.sysmem/overview.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.thermal/overview.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.tracing.perfetto/consumer.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.tracing.perfetto/overview.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.tracing.perfetto/producer.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.activity/overview.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.app/overview.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.brightness/overview.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.composition/overview.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.composition/screen_capture.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.composition/screenshot.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.gfx/overview.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.input/overview.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.input3/overview.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.observation.geometry/overview.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.pointer/overview.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.pointerinjector/overview.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.policy/overview.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.scenic/overview.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.test.input/media_buttons.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.test.input/mouse.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.test.input/overview.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.test.input/registry.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.test.input/text.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.test.input/touch.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.test.scene/controller.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.test.scene/overview.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.views/overview.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.unknown/unknown.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.update.config/config.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.update/overview.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.weave/overview.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.web/overview.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.wlan.common/driver_features.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.wlan.common/overview.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.wlan.ieee80211/fields.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.wlan.ieee80211/overview.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.wlan.policy/overview.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/zx/overview.fidl -FILE: ../../../fuchsia/sdk/linux/pkg/async-cpp/include/lib/async/cpp/sequence_checker.h -FILE: ../../../fuchsia/sdk/linux/pkg/async-cpp/sequence_checker.cc -FILE: ../../../fuchsia/sdk/linux/pkg/async/include/lib/async/sequence_id.h -FILE: ../../../fuchsia/sdk/linux/pkg/fidl_base/include/lib/fidl/cpp/transaction_header.h -FILE: ../../../fuchsia/sdk/linux/pkg/fidl_base/include/lib/fidl/cpp/transport_err.h -FILE: ../../../fuchsia/sdk/linux/pkg/fidl_base/include/lib/fidl/cpp/wire_format_metadata.h -FILE: ../../../fuchsia/sdk/linux/pkg/fidl_cpp/include/lib/fidl/cpp/internal/unknown_interactions_table.h -FILE: ../../../fuchsia/sdk/linux/pkg/fidl_cpp/include/lib/fidl/cpp/unknown_interactions_hlcpp.h -FILE: ../../../fuchsia/sdk/linux/pkg/fidl_cpp/internal/unknown_interactions_table.c -FILE: ../../../fuchsia/sdk/linux/pkg/fidl_cpp/unknown_interactions_hlcpp.cc -FILE: ../../../fuchsia/sdk/linux/pkg/fit/include/lib/fit/inline_any.h -FILE: ../../../fuchsia/sdk/linux/pkg/fit/include/lib/fit/inline_any_internal.h -FILE: ../../../fuchsia/sdk/linux/pkg/inspect/client.shard.cml -FILE: ../../../fuchsia/sdk/linux/pkg/stdcompat/include/lib/stdcompat/internal/linkage.h -FILE: ../../../fuchsia/sdk/linux/pkg/stdcompat/include/lib/stdcompat/internal/variant.h -FILE: ../../../fuchsia/sdk/linux/pkg/sys/component/realm_builder_absolute.shard.cml -FILE: ../../../fuchsia/sdk/linux/pkg/sys/component/realm_builder_base.shard.cml -FILE: ../../../fuchsia/sdk/linux/pkg/sys_component_cpp_testing/internal/convert.cc -FILE: ../../../fuchsia/sdk/linux/pkg/syslog/client.shard.cml -FILE: ../../../fuchsia/sdk/linux/pkg/tree_service_common/include/lib/sys/inspect/tree_handler_settings.h -FILE: ../../../fuchsia/sdk/linux/pkg/utf-utils/include/lib/utf-utils/internal/arm-neon.h -FILE: ../../../fuchsia/sdk/linux/pkg/utf-utils/include/lib/utf-utils/internal/generic-simd.h -FILE: ../../../fuchsia/sdk/linux/pkg/utf-utils/include/lib/utf-utils/internal/scalar.h -FILE: ../../../fuchsia/sdk/linux/pkg/utf-utils/include/lib/utf-utils/internal/x86-avx2.h -FILE: ../../../fuchsia/sdk/linux/pkg/utf-utils/include/lib/utf-utils/internal/x86-ssse3.h -FILE: ../../../fuchsia/sdk/linux/pkg/utf-utils/include/lib/utf-utils/utf-utils.h -FILE: ../../../fuchsia/sdk/linux/pkg/utf-utils/internal/scalar.cc -FILE: ../../../fuchsia/sdk/linux/pkg/utf-utils/utf-utils.cc -FILE: ../../../fuchsia/sdk/linux/pkg/vulkan/client.shard.cml ----------------------------------------------------------------------------------------------------- -Copyright 2022 The Fuchsia Authors. All rights reserved. + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. ==================================================================================================== ==================================================================================================== LIBRARY: fuchsia_sdk -ORIGIN: ../../../fuchsia/sdk/linux/dart/fuchsia_services/lib/src/component_context.dart + ../../../LICENSE -TYPE: LicenseType.bsd -FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_services/lib/src/component_context.dart +ORIGIN: ../../../fuchsia/sdk/linux/COPYRIGHT.musl +TYPE: LicenseType.mit +FILE: ../../../fuchsia/sdk/linux/.versions/core.cipd_version +FILE: ../../../fuchsia/sdk/linux/arch/arm64/dist/VkLayer_image_pipe_swapchain.so +FILE: ../../../fuchsia/sdk/linux/arch/arm64/dist/VkLayer_khronos_validation.so +FILE: ../../../fuchsia/sdk/linux/arch/arm64/dist/libasync-default.so +FILE: ../../../fuchsia/sdk/linux/arch/arm64/dist/libfdio.so +FILE: ../../../fuchsia/sdk/linux/arch/arm64/dist/libmemfs.so +FILE: ../../../fuchsia/sdk/linux/arch/arm64/dist/libsvc.so +FILE: ../../../fuchsia/sdk/linux/arch/arm64/dist/libsyslog.so +FILE: ../../../fuchsia/sdk/linux/arch/arm64/dist/libtrace-engine.so +FILE: ../../../fuchsia/sdk/linux/arch/arm64/dist/libtrace-provider-so.so +FILE: ../../../fuchsia/sdk/linux/arch/arm64/dist/libvulkan.so +FILE: ../../../fuchsia/sdk/linux/arch/arm64/lib/libasync-default.so +FILE: ../../../fuchsia/sdk/linux/arch/arm64/lib/libasync-loop-default.a +FILE: ../../../fuchsia/sdk/linux/arch/arm64/lib/libfdio.so +FILE: ../../../fuchsia/sdk/linux/arch/arm64/lib/libmemfs.so +FILE: ../../../fuchsia/sdk/linux/arch/arm64/lib/libsvc.so +FILE: ../../../fuchsia/sdk/linux/arch/arm64/lib/libsync.a +FILE: ../../../fuchsia/sdk/linux/arch/arm64/lib/libsyslog.so +FILE: ../../../fuchsia/sdk/linux/arch/arm64/lib/libtrace-engine.so +FILE: ../../../fuchsia/sdk/linux/arch/arm64/lib/libtrace-provider-so.so +FILE: ../../../fuchsia/sdk/linux/arch/arm64/lib/libvulkan.so +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/alloca.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/ar.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/arpa/ftp.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/arpa/inet.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/arpa/nameser.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/arpa/nameser_compat.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/arpa/telnet.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/arpa/tftp.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/assert.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/aarch64/endian.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/aarch64/fenv.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/aarch64/ioctl.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/aarch64/ipc.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/aarch64/reg.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/aarch64/setjmp.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/aarch64/signal.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/aarch64/stat.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/alltypes.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/endian.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/errno.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/fcntl.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/fenv.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/io.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/ioctl.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/ipc.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/limits.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/msg.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/null.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/posix.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/reg.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/sem.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/setjmp.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/shm.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/signal.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/stat.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/statfs.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/termios.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/x86_64/endian.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/x86_64/fenv.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/x86_64/io.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/x86_64/ioctl.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/x86_64/ipc.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/x86_64/reg.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/x86_64/setjmp.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/x86_64/signal.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/bits/x86_64/stat.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/byteswap.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/complex.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/cpio.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/ctype.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/dirent.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/dlfcn.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/elf.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/endian.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/err.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/errno.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/fcntl.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/features.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/fenv.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/fmtmsg.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/fnmatch.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/getopt.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/glob.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/grp.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/iconv.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/ifaddrs.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/inttypes.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/iso646.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/langinfo.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/libgen.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/limits.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/link.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/locale.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/malloc.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/math.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/memory.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/monetary.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/net/ethernet.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/net/if.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/net/if_arp.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/net/route.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/netdb.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/netinet/ether.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/netinet/icmp6.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/netinet/if_ether.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/netinet/igmp.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/netinet/in.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/netinet/in_systm.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/netinet/ip.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/netinet/ip6.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/netinet/ip_icmp.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/netinet/tcp.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/netinet/udp.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/netpacket/packet.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/nl_types.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/paths.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/poll.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/pthread.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/pwd.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/regex.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/resolv.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sched.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/search.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/semaphore.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/setjmp.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/signal.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/spawn.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/stdio.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/stdlib.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/string.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/strings.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/stropts.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/acct.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/auxv.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/dir.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/errno.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/eventfd.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/fcntl.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/file.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/fsuid.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/inotify.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/io.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/ioctl.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/ipc.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/klog.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/mman.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/mount.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/msg.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/mtio.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/param.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/personality.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/poll.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/quota.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/random.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/reboot.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/reg.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/select.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/sem.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/shm.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/signal.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/signalfd.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/socket.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/stat.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/statfs.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/statvfs.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/stropts.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/swap.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/syslog.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/termios.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/time.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/timeb.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/timerfd.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/times.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/timex.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/ttydefaults.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/types.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/ucontext.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/uio.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/un.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/utsname.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/vfs.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sys/wait.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/sysexits.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/syslog.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/tar.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/termios.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/threads.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/time.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/uchar.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/ucontext.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/unistd.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/utime.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/values.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/wait.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/wchar.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/wctype.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/wordexp.h +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/lib/Scrt1.o +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/lib/libc.so +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/lib/libdl.so +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/lib/libm.so +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/lib/libpthread.so +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/lib/librt.so +FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/lib/libzircon.so +FILE: ../../../fuchsia/sdk/linux/arch/x64/dist/VkLayer_image_pipe_swapchain.so +FILE: ../../../fuchsia/sdk/linux/arch/x64/dist/VkLayer_khronos_validation.so +FILE: ../../../fuchsia/sdk/linux/arch/x64/dist/libasync-default.so +FILE: ../../../fuchsia/sdk/linux/arch/x64/dist/libfdio.so +FILE: ../../../fuchsia/sdk/linux/arch/x64/dist/libmemfs.so +FILE: ../../../fuchsia/sdk/linux/arch/x64/dist/libsvc.so +FILE: ../../../fuchsia/sdk/linux/arch/x64/dist/libsyslog.so +FILE: ../../../fuchsia/sdk/linux/arch/x64/dist/libtrace-engine.so +FILE: ../../../fuchsia/sdk/linux/arch/x64/dist/libtrace-provider-so.so +FILE: ../../../fuchsia/sdk/linux/arch/x64/dist/libvulkan.so +FILE: ../../../fuchsia/sdk/linux/arch/x64/lib/libasync-default.so +FILE: ../../../fuchsia/sdk/linux/arch/x64/lib/libasync-loop-default.a +FILE: ../../../fuchsia/sdk/linux/arch/x64/lib/libfdio.so +FILE: ../../../fuchsia/sdk/linux/arch/x64/lib/libmemfs.so +FILE: ../../../fuchsia/sdk/linux/arch/x64/lib/libsvc.so +FILE: ../../../fuchsia/sdk/linux/arch/x64/lib/libsync.a +FILE: ../../../fuchsia/sdk/linux/arch/x64/lib/libsyslog.so +FILE: ../../../fuchsia/sdk/linux/arch/x64/lib/libtrace-engine.so +FILE: ../../../fuchsia/sdk/linux/arch/x64/lib/libtrace-provider-so.so +FILE: ../../../fuchsia/sdk/linux/arch/x64/lib/libvulkan.so +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/alloca.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/ar.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/arpa/ftp.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/arpa/inet.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/arpa/nameser.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/arpa/nameser_compat.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/arpa/telnet.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/arpa/tftp.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/assert.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/aarch64/endian.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/aarch64/fenv.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/aarch64/ioctl.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/aarch64/ipc.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/aarch64/reg.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/aarch64/setjmp.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/aarch64/signal.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/aarch64/stat.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/alltypes.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/endian.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/errno.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/fcntl.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/fenv.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/io.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/ioctl.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/ipc.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/limits.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/msg.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/null.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/posix.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/reg.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/sem.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/setjmp.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/shm.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/signal.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/stat.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/statfs.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/termios.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/x86_64/endian.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/x86_64/fenv.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/x86_64/io.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/x86_64/ioctl.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/x86_64/ipc.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/x86_64/reg.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/x86_64/setjmp.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/x86_64/signal.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/bits/x86_64/stat.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/byteswap.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/complex.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/cpio.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/ctype.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/dirent.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/dlfcn.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/elf.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/endian.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/err.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/errno.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/fcntl.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/features.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/fenv.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/fmtmsg.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/fnmatch.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/getopt.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/glob.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/grp.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/iconv.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/ifaddrs.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/inttypes.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/iso646.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/langinfo.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/libgen.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/limits.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/link.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/locale.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/malloc.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/math.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/memory.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/monetary.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/net/ethernet.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/net/if.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/net/if_arp.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/net/route.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/netdb.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/netinet/ether.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/netinet/icmp6.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/netinet/if_ether.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/netinet/igmp.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/netinet/in.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/netinet/in_systm.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/netinet/ip.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/netinet/ip6.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/netinet/ip_icmp.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/netinet/tcp.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/netinet/udp.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/netpacket/packet.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/nl_types.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/paths.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/poll.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/pthread.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/pwd.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/regex.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/resolv.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sched.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/search.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/semaphore.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/setjmp.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/signal.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/spawn.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/stdio.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/stdlib.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/string.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/strings.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/stropts.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/acct.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/auxv.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/dir.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/errno.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/eventfd.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/fcntl.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/file.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/fsuid.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/inotify.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/io.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/ioctl.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/ipc.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/klog.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/mman.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/mount.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/msg.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/mtio.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/param.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/personality.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/poll.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/quota.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/random.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/reboot.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/reg.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/select.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/sem.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/shm.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/signal.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/signalfd.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/socket.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/stat.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/statfs.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/statvfs.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/stropts.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/swap.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/syslog.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/termios.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/time.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/timeb.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/timerfd.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/times.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/timex.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/ttydefaults.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/types.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/ucontext.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/uio.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/un.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/utsname.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/vfs.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sys/wait.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/sysexits.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/syslog.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/tar.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/termios.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/threads.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/time.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/uchar.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/ucontext.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/unistd.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/utime.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/values.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/wait.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/wchar.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/wctype.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/wordexp.h +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/lib/Scrt1.o +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/lib/libc.so +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/lib/libdl.so +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/lib/libm.so +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/lib/libpthread.so +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/lib/librt.so +FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/lib/libzircon.so +FILE: ../../../fuchsia/sdk/linux/dart/fidl/meta.json +FILE: ../../../fuchsia/sdk/linux/dart/fuchsia/meta.json +FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_component_test/meta.json +FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_inspect/meta.json +FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_logger/meta.json +FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_scenic/meta.json +FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_scenic_flutter/meta.json +FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_services/meta.json +FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_vfs/meta.json +FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_view/meta.json +FILE: ../../../fuchsia/sdk/linux/dart/sl4f/meta.json +FILE: ../../../fuchsia/sdk/linux/dart/zircon/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.accessibility.gesture/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.accessibility.semantics/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.accessibility.virtualkeyboard/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.audio.effects/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.auth.oldtokens/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.auth/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth.a2dp/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth.gatt/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth.gatt2/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth.hfp/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth.le/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth.sys/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.bluetooth/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.buildinfo.test/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.buildinfo/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.camera/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.camera2.hal/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.camera2/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.camera3/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.castauth/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.castconfig/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.castremotecontrol/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.castsetup/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.castsysteminfo/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.castwindow/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.config/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.decl/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.resolution/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.runner/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.test/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component.types/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.component/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.data/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.debugdata/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.developer.tiles/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.diagnostics.types/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.diagnostics/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.driver.test/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.element/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.factory.wlan/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.factory/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.feedback/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.fonts/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.gpu.agis/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.gpu.magma/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.adc/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.audio.signalprocessing/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.audio/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.goldfish/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.light/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.network/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.power.statecontrol/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hardware.radar/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.hwinfo/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.images/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.input.report/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.input.virtualkeyboard/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.input/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.inspect/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.intl/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.io/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.kernel/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ldsvc/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.legacymetrics/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.lightsensor/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.location.namedplace/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.location.position/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.location.sensor/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.location/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.logger/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.lowpan.bootstrap/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.lowpan.device/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.lowpan.thread/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.lowpan/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.math/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.media.audio/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.media.drm/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.media.playback/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.media.sessions2/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.media.sounds/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.media.target/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.media/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.mediacodec/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.mediastreams/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.mem/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.memorypressure/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.metrics/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.migration/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.modular/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.net.http/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.net.interfaces/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.net.mdns/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.net.reachability/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.net.routes/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.net/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.power.clientlevel/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.power.profile/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.power.systemmode/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.process.lifecycle/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.process/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.recovery.ui/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.recovery/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.scenic.scheduling/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.session/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.settings.policy/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.settings/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.sys.test/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.sys/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.sysinfo/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.sysmem/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.test/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.thermal/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.tracing.perfetto/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.tracing.provider/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.activity.control/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.activity/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.app/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.brightness/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.composition/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.gfx/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.input/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.input3/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.observation.geometry/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.pointer.augment/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.pointer/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.pointerinjector/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.policy/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.scenic/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.test.input/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.test.scene/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.types/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.views/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ultrasound/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.unknown/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.update.channel/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.update.channelcontrol/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.update.config/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.update/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.url/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.version/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.weave/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.web/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.wlan.common/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.wlan.ieee80211/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.wlan.policy/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.wlan.product.deprecatedclient/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.wlan.product.deprecatedconfiguration/meta.json +FILE: ../../../fuchsia/sdk/linux/fidl/zx/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/async-cpp/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/async-default/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/async-loop-cpp/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/async-loop-default/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/async-loop-testing/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/async-loop/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/async-testing/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/async/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/fdio/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/fidl/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/fidl_base/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/fidl_cpp/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/fidl_cpp_base/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/fidl_cpp_sync/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/fit-promise/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/fit/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/images_cpp/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/inspect/inspect.json +FILE: ../../../fuchsia/sdk/linux/pkg/inspect/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/inspect_service_cpp/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/media_cpp/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/media_cpp_no_converters/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/memfs/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/modular_cpp/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/scenic_cpp/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/stdcompat/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/svc/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/sync/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/sys/component/realm_builder_shard_sdk.json +FILE: ../../../fuchsia/sdk/linux/pkg/sys_component_cpp_testing/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/sys_cpp/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/sys_cpp_testing/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/sys_inspect_cpp/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/sys_service_cpp/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/syslog/client.shard.cmx +FILE: ../../../fuchsia/sdk/linux/pkg/syslog/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/syslog/syslog.json +FILE: ../../../fuchsia/sdk/linux/pkg/syslog_structured_backend/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/sysroot/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/trace-engine/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/trace-provider-so/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/trace/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/utf-utils/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/vfs_cpp/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/vulkan/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/vulkan/vulkan.json +FILE: ../../../fuchsia/sdk/linux/pkg/vulkan_layers/data/vulkan/explicit_layer.d/VkLayer_image_pipe_swapchain.json +FILE: ../../../fuchsia/sdk/linux/pkg/vulkan_layers/data/vulkan/explicit_layer.d/VkLayer_khronos_validation.json +FILE: ../../../fuchsia/sdk/linux/pkg/vulkan_layers/meta.json +FILE: ../../../fuchsia/sdk/linux/pkg/zx/meta.json +FILE: ../../../fuchsia/sdk/linux/version_history.json ---------------------------------------------------------------------------------------------------- -Copyright 2021 The Chromium Authors. All rights reserved. +musl as a whole is licensed under the following standard MIT license: -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +Copyright © 2005-2014 Rich Felker, et al. - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. -==================================================================================================== -LIBRARY: fuchsia_sdk -ORIGIN: ../../../fuchsia/sdk/linux/dart/zircon/lib/src/fakes/handle_disposition.dart + ../../../flutter/LICENSE -TYPE: LicenseType.bsd -FILE: ../../../fuchsia/sdk/linux/dart/zircon/lib/src/fakes/handle_disposition.dart ----------------------------------------------------------------------------------------------------- -Copyright 2021 The Flutter Authors. All rights reserved. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: +Authors/contributors include: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - * Neither the name of Google Inc. nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. +Alex Dowad +Alexander Monakov +Anthony G. Basile +Arvid Picciani +Bobby Bingham +Boris Brezillon +Brent Cook +Chris Spiegel +Clément Vasseur +Daniel Micay +Denys Vlasenko +Emil Renner Berthing +Felix Fietkau +Felix Janda +Gianluca Anzolin +Hauke Mehrtens +Hiltjo Posthuma +Isaac Dunham +Jaydeep Patil +Jens Gustedt +Jeremy Huntwork +Jo-Philipp Wich +Joakim Sindholt +John Spencer +Josiah Worcester +Justin Cormack +Khem Raj +Kylie McClain +Luca Barbato +Luka Perkov +M Farkas-Dyck (Strake) +Mahesh Bodapati +Michael Forney +Natanael Copa +Nicholas J. Kain +orc +Pascal Cuoq +Petr Hosek +Pierre Carrier +Rich Felker +Richard Pennington +Shiz +sin +Solar Designer +Stefan Kristiansson +Szabolcs Nagy +Timo Teräs +Trutz Behn +Valentin Ochs +William Haddon -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== +Portions of this software are derived from third-party works licensed +under terms compatible with the above MIT license: -==================================================================================================== -LIBRARY: fuchsia_sdk -ORIGIN: ../../../fuchsia/sdk/linux/fidl/fuchsia.sys.test/cache.fidl + ../../../LICENSE -TYPE: LicenseType.bsd -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.sys.test/cache.fidl ----------------------------------------------------------------------------------------------------- -Copyright 2019 The Chromium Authors. All rights reserved. +Much of the math library code (third_party/math/* and +third_party/complex/*, and third_party/include/libm.h) is +Copyright © 1993,2004 Sun Microsystems or +Copyright © 2003-2011 David Schultz or +Copyright © 2003-2009 Steven G. Kargl or +Copyright © 2003-2009 Bruce D. Evans or +Copyright © 2008 Stephen L. Moshier +and labelled as such in comments in the individual source files. All +have been licensed under extremely permissive terms. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +The smoothsort implementation (third_party/smoothsort/qsort.c) is +Copyright © 2011 Valentin Ochs and is licensed under an MIT-style +license. - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. +The x86_64 files in third_party/arch were written by Nicholas J. Kain +and is licensed under the standard MIT terms. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== +All other files which have no copyright comments are original works +produced specifically for use as part of this library, written either +by Rich Felker, the main author of the library, or by one or more +contibutors listed above. Details on authorship of individual files +can be found in the git version control history of the project. The +omission of copyright and license comments in each file is in the +interest of source tree size. -==================================================================================================== -LIBRARY: fuchsia_sdk -ORIGIN: ../../../fuchsia/sdk/linux/fidl/fuchsia.sys/service_provider.fidl + ../../../fuchsia/sdk/linux/LICENSE -TYPE: LicenseType.bsd -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.sys/service_provider.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.input/input_event_constants.fidl -FILE: ../../../fuchsia/sdk/linux/fidl/fuchsia.ui.input/input_events.fidl ----------------------------------------------------------------------------------------------------- -Copyright 2014 The Fuchsia Authors. All rights reserved. +In addition, permission is hereby granted for all public header files +(include/* and arch/*/bits/*) and crt files intended to be linked into +applications (crt/*, ldso/dlstart.c, and arch/*/crt_arch.h) to omit +the copyright notice and permission notice otherwise required by the +license, and to use these files without any requirement of +attribution. These files include substantial contributions from: -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +Bobby Bingham +John Spencer +Nicholas J. Kain +Rich Felker +Richard Pennington +Stefan Kristiansson +Szabolcs Nagy - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. +all of whom have explicitly granted such permission. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +This file previously contained text expressing a belief that most of +the files covered by the above exception were sufficiently trivial not +to be subject to copyright, resulting in confusion over whether it +negated the permissions granted in the license. In the spirit of +permissive licensing, and of not having licensing issues being an +obstacle to adoption, that text has been removed. ==================================================================================================== -Total license count: 16 +Total license count: 15 diff --git a/ci/licenses_golden/licenses_skia b/ci/licenses_golden/licenses_skia index 844f74855c1ea..889feaeac0128 100644 --- a/ci/licenses_golden/licenses_skia +++ b/ci/licenses_golden/licenses_skia @@ -1,4 +1,4 @@ -Signature: d072c52e5109f9ecc206d1bd5ffa5cf2 +Signature: a1eedc9a5da868d61a513743a5873d1e UNUSED LICENSES: @@ -31,6 +31,175 @@ SOFTWARE. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ USED LICENSES: +==================================================================================================== +LIBRARY: etc1 +ORIGIN: ../../../third_party/skia/third_party/etc1/LICENSE +TYPE: LicenseType.apache +FILE: ../../../third_party/skia/third_party/etc1/BUILD.bazel +---------------------------------------------------------------------------------------------------- +Apache License + +Version 2.0, January 2004 + +http://www.apache.org/licenses + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + +"License" shall mean the terms and conditions for use, reproduction, and +distribution as defined by Sections 1 through 9 of this document. + +"Licensor" shall mean the copyright owner or entity authorized by the +copyright owner that is granting the License. + +"Legal Entity" shall mean the union of the acting entity and all other +entities that control, are controlled by, or are under common control with +that entity. For the purposes of this definition, "control" means (i) the +power, direct or indirect, to cause the direction or management of such +entity, whether by contract or otherwise, or (ii) ownership of fifty +percent (50%) or more of the outstanding shares, or (iii) beneficial +ownership of such entity. + +"You" (or "Your") shall mean an individual or Legal Entity exercising +permissions granted by this License. + +"Source" form shall mean the preferred form for making modifications, +including but not limited to software source code, documentation +source, and configuration files. + +"Object" form shall mean any form resulting from mechanical transformation +or translation of a Source form, including but not limited to compiled +object code, generated documentation, and conversions to other media types. + +"Work" shall mean the work of authorship, whether in Source or Object +form, made available under the License, as indicated by a copyright +notice that is included in or attached to the work (an example is +provided in the Appendix below). + +"Derivative Works" shall mean any work, whether in Source or Object +form, that is based on (or derived from) the Work and for which the +editorial revisions, annotations, elaborations, or other modifications +represent, as a whole, an original work of authorship. For the purposes +of this License, Derivative Works shall not include works that remain +separable from, or merely link (or bind by name) to the interfaces of, +the Work and Derivative Works thereof. + +"Contribution" shall mean any work of authorship, including the original +version of the Work and any modifications or additions to that Work or +Derivative Works thereof, that is intentionally submitted to Licensor +for inclusion in the Work by the copyright owner or by an individual or +Legal Entity authorized to submit on behalf of the copyright owner. For +the purposes of this definition, "submitted" means any form of electronic, +verbal, or written communication sent to the Licensor or its +representatives, including but not limited to communication on electronic +mailing lists, source code control systems, and issue tracking systems that +are managed by, or on behalf of, the Licensor for the purpose of discussing +and improving the Work, but excluding communication that is conspicuously +marked or otherwise designated in writing by the copyright owner as "Not +a Contribution." + +"Contributor" shall mean Licensor and any individual or Legal Entity on +behalf of whom a Contribution has been received by Licensor and subsequently +incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of this +License, each Contributor hereby grants to You a perpetual, worldwide, +non-exclusive, no-charge, royalty-free, irrevocable copyright license to +reproduce, prepare Derivative Works of, publicly display, publicly perform, +sublicense, and distribute the Work and such Derivative Works in Source or +Object form. + +3. Grant of Patent License. Subject to the terms and conditions of this +License, each Contributor hereby grants to You a perpetual, worldwide, +non-exclusive, no-charge, royalty-free, irrevocable (except as stated in +this section) patent license to make, have made, use, offer to sell, sell, +import, and otherwise transfer the Work, where such license applies only to +those patent claims licensable by such Contributor that are necessarily +infringed by their Contribution(s) alone or by combination of their +Contribution(s) with the Work to which such Contribution(s) was submitted. +If You institute patent litigation against any entity (including a cross-claim +or counterclaim in a lawsuit) alleging that the Work or a Contribution +incorporated within the Work constitutes direct or contributory patent +infringement, then any patent licenses granted to You under this License +for that Work shall terminate as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the Work or +Derivative Works thereof in any medium, with or without modifications, and +in Source or Object form, provided that You meet the following conditions: + +You must give any other recipients of the Work or Derivative Works a copy of +this License; and +You must cause any modified files to carry prominent notices stating that +You changed the files; and +You must retain, in the Source form of any Derivative Works that You +distribute, all copyright, patent, trademark, and attribution notices +from the Source form of the Work, excluding those notices that do not +pertain to any part of the Derivative Works; and +If the Work includes a "NOTICE" text file as part of its distribution, +then any Derivative Works that You distribute must include a readable +copy of the attribution notices contained within such NOTICE file, excluding +those notices that do not pertain to any part of the Derivative Works, in +at least one of the following places: within a NOTICE text file distributed +as part of the Derivative Works; within the Source form or documentation, if +provided along with the Derivative Works; or, within a display generated by +the Derivative Works, if and wherever such third-party notices normally +appear. The contents of the NOTICE file are for informational purposes +only and do not modify the License. You may add Your own attribution +notices within Derivative Works that You distribute, alongside or as +an addendum to the NOTICE text from the Work, provided that such additional +attribution notices cannot be construed as modifying the License. + +You may add Your own copyright statement to Your modifications and may provide +additional or different license terms and conditions for use, reproduction, or +distribution of Your modifications, or for any such Derivative Works as a +whole, provided Your use, reproduction, and distribution of the Work otherwise +complies with the conditions stated in this License. +5. Submission of Contributions. Unless You explicitly state otherwise, any +Contribution intentionally submitted for inclusion in the Work by You to the +Licensor shall be under the terms and conditions of this License, without any +additional terms or conditions. Notwithstanding the above, nothing herein +shall supersede or modify the terms of any separate license agreement you +may have executed with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade names, +trademarks, service marks, or product names of the Licensor, except as +required for reasonable and customary use in describing the origin of the +Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or agreed to +in writing, Licensor provides the Work (and each Contributor provides its +Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +ANY KIND, either express or implied, including, without limitation, any +warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or +FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining +the appropriateness of using or redistributing the Work and assume any risks +associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, whether in +tort (including negligence), contract, or otherwise, unless required by +applicable law (such as deliberate and grossly negligent acts) or agreed to +in writing, shall any Contributor be liable to You for damages, including +any direct, indirect, special, incidental, or consequential damages of any +character arising as a result of this License or out of the use or inability +to use the Work (including but not limited to damages for loss of goodwill, +work stoppage, computer failure or malfunction, or any and all other +commercial damages or losses), even if such Contributor has been advised +of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing the +Work or Derivative Works thereof, You may choose to offer, and charge a +fee for, acceptance of support, warranty, indemnity, or other liability +obligations and/or rights consistent with this License. However, in accepting +such obligations, You may act only on Your own behalf and on Your sole +responsibility, not on behalf of any other Contributor, and only if You +agree to indemnify, defend, and hold each Contributor harmless for any +liability incurred by, or claims asserted against, such Contributor by +reason of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS +==================================================================================================== + ==================================================================================================== LIBRARY: etc1 LIBRARY: vulkan @@ -251,260 +420,71 @@ limitations under the License. ==================================================================================================== ==================================================================================================== -LIBRARY: etc1 -ORIGIN: ../../../third_party/skia/third_party/etc1/LICENSE -TYPE: LicenseType.apache -FILE: ../../../third_party/skia/third_party/etc1/BUILD.bazel +LIBRARY: skia +ORIGIN: ../../../third_party/skia/include/utils/SkEventTracer.h + ../../../third_party/skia/LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/skia/include/utils/SkEventTracer.h ---------------------------------------------------------------------------------------------------- -Apache License - -Version 2.0, January 2004 - -http://www.apache.org/licenses +Copyright (C) 2014 Google Inc. All rights reserved. -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -1. Definitions. + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -"License" shall mean the terms and conditions for use, reproduction, and -distribution as defined by Sections 1 through 9 of this document. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. -"Licensor" shall mean the copyright owner or entity authorized by the -copyright owner that is granting the License. + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. -"Legal Entity" shall mean the union of the acting entity and all other -entities that control, are controlled by, or are under common control with -that entity. For the purposes of this definition, "control" means (i) the -power, direct or indirect, to cause the direction or management of such -entity, whether by contract or otherwise, or (ii) ownership of fifty -percent (50%) or more of the outstanding shares, or (iii) beneficial -ownership of such entity. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== -"You" (or "Your") shall mean an individual or Legal Entity exercising -permissions granted by this License. +==================================================================================================== +LIBRARY: skia +LIBRARY: vulkanmemoryallocator +ORIGIN: ../../../third_party/skia/modules/canvaskit/npm_build/LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/skia/modules/canvaskit/npm_build/example.html +FILE: ../../../third_party/skia/modules/canvaskit/npm_build/extra.html +FILE: ../../../third_party/skia/modules/canvaskit/npm_build/multicanvas.html +FILE: ../../../third_party/skia/modules/canvaskit/npm_build/node.example.js +FILE: ../../../third_party/skia/modules/canvaskit/npm_build/package-lock.json +FILE: ../../../third_party/skia/modules/canvaskit/npm_build/package.json +FILE: ../../../third_party/skia/modules/canvaskit/npm_build/paragraphs.html +FILE: ../../../third_party/skia/modules/canvaskit/npm_build/shaping.html +FILE: ../../../third_party/skia/modules/canvaskit/npm_build/textapi_utils.js +FILE: ../../../third_party/skia/modules/canvaskit/npm_build/types/canvaskit-wasm-tests.ts +FILE: ../../../third_party/skia/modules/canvaskit/npm_build/types/index.d.ts +FILE: ../../../third_party/skia/modules/canvaskit/npm_build/types/tsconfig.json +FILE: ../../../third_party/skia/modules/canvaskit/npm_build/types/tslint.json +FILE: ../../../third_party/skia/modules/pathkit/npm-asmjs/example.html +FILE: ../../../third_party/skia/modules/pathkit/npm-asmjs/package.json +FILE: ../../../third_party/skia/modules/pathkit/npm-wasm/example.html +FILE: ../../../third_party/skia/modules/pathkit/npm-wasm/package.json +FILE: ../../../third_party/skia/third_party/vulkanmemoryallocator/BUILD.bazel +---------------------------------------------------------------------------------------------------- +Copyright (c) 2011 Google Inc. All rights reserved. -"Source" form shall mean the preferred form for making modifications, -including but not limited to software source code, documentation -source, and configuration files. - -"Object" form shall mean any form resulting from mechanical transformation -or translation of a Source form, including but not limited to compiled -object code, generated documentation, and conversions to other media types. - -"Work" shall mean the work of authorship, whether in Source or Object -form, made available under the License, as indicated by a copyright -notice that is included in or attached to the work (an example is -provided in the Appendix below). - -"Derivative Works" shall mean any work, whether in Source or Object -form, that is based on (or derived from) the Work and for which the -editorial revisions, annotations, elaborations, or other modifications -represent, as a whole, an original work of authorship. For the purposes -of this License, Derivative Works shall not include works that remain -separable from, or merely link (or bind by name) to the interfaces of, -the Work and Derivative Works thereof. - -"Contribution" shall mean any work of authorship, including the original -version of the Work and any modifications or additions to that Work or -Derivative Works thereof, that is intentionally submitted to Licensor -for inclusion in the Work by the copyright owner or by an individual or -Legal Entity authorized to submit on behalf of the copyright owner. For -the purposes of this definition, "submitted" means any form of electronic, -verbal, or written communication sent to the Licensor or its -representatives, including but not limited to communication on electronic -mailing lists, source code control systems, and issue tracking systems that -are managed by, or on behalf of, the Licensor for the purpose of discussing -and improving the Work, but excluding communication that is conspicuously -marked or otherwise designated in writing by the copyright owner as "Not -a Contribution." - -"Contributor" shall mean Licensor and any individual or Legal Entity on -behalf of whom a Contribution has been received by Licensor and subsequently -incorporated within the Work. - -2. Grant of Copyright License. Subject to the terms and conditions of this -License, each Contributor hereby grants to You a perpetual, worldwide, -non-exclusive, no-charge, royalty-free, irrevocable copyright license to -reproduce, prepare Derivative Works of, publicly display, publicly perform, -sublicense, and distribute the Work and such Derivative Works in Source or -Object form. - -3. Grant of Patent License. Subject to the terms and conditions of this -License, each Contributor hereby grants to You a perpetual, worldwide, -non-exclusive, no-charge, royalty-free, irrevocable (except as stated in -this section) patent license to make, have made, use, offer to sell, sell, -import, and otherwise transfer the Work, where such license applies only to -those patent claims licensable by such Contributor that are necessarily -infringed by their Contribution(s) alone or by combination of their -Contribution(s) with the Work to which such Contribution(s) was submitted. -If You institute patent litigation against any entity (including a cross-claim -or counterclaim in a lawsuit) alleging that the Work or a Contribution -incorporated within the Work constitutes direct or contributory patent -infringement, then any patent licenses granted to You under this License -for that Work shall terminate as of the date such litigation is filed. - -4. Redistribution. You may reproduce and distribute copies of the Work or -Derivative Works thereof in any medium, with or without modifications, and -in Source or Object form, provided that You meet the following conditions: - -You must give any other recipients of the Work or Derivative Works a copy of -this License; and -You must cause any modified files to carry prominent notices stating that -You changed the files; and -You must retain, in the Source form of any Derivative Works that You -distribute, all copyright, patent, trademark, and attribution notices -from the Source form of the Work, excluding those notices that do not -pertain to any part of the Derivative Works; and -If the Work includes a "NOTICE" text file as part of its distribution, -then any Derivative Works that You distribute must include a readable -copy of the attribution notices contained within such NOTICE file, excluding -those notices that do not pertain to any part of the Derivative Works, in -at least one of the following places: within a NOTICE text file distributed -as part of the Derivative Works; within the Source form or documentation, if -provided along with the Derivative Works; or, within a display generated by -the Derivative Works, if and wherever such third-party notices normally -appear. The contents of the NOTICE file are for informational purposes -only and do not modify the License. You may add Your own attribution -notices within Derivative Works that You distribute, alongside or as -an addendum to the NOTICE text from the Work, provided that such additional -attribution notices cannot be construed as modifying the License. - -You may add Your own copyright statement to Your modifications and may provide -additional or different license terms and conditions for use, reproduction, or -distribution of Your modifications, or for any such Derivative Works as a -whole, provided Your use, reproduction, and distribution of the Work otherwise -complies with the conditions stated in this License. -5. Submission of Contributions. Unless You explicitly state otherwise, any -Contribution intentionally submitted for inclusion in the Work by You to the -Licensor shall be under the terms and conditions of this License, without any -additional terms or conditions. Notwithstanding the above, nothing herein -shall supersede or modify the terms of any separate license agreement you -may have executed with Licensor regarding such Contributions. - -6. Trademarks. This License does not grant permission to use the trade names, -trademarks, service marks, or product names of the Licensor, except as -required for reasonable and customary use in describing the origin of the -Work and reproducing the content of the NOTICE file. - -7. Disclaimer of Warranty. Unless required by applicable law or agreed to -in writing, Licensor provides the Work (and each Contributor provides its -Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF -ANY KIND, either express or implied, including, without limitation, any -warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or -FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining -the appropriateness of using or redistributing the Work and assume any risks -associated with Your exercise of permissions under this License. - -8. Limitation of Liability. In no event and under no legal theory, whether in -tort (including negligence), contract, or otherwise, unless required by -applicable law (such as deliberate and grossly negligent acts) or agreed to -in writing, shall any Contributor be liable to You for damages, including -any direct, indirect, special, incidental, or consequential damages of any -character arising as a result of this License or out of the use or inability -to use the Work (including but not limited to damages for loss of goodwill, -work stoppage, computer failure or malfunction, or any and all other -commercial damages or losses), even if such Contributor has been advised -of the possibility of such damages. - -9. Accepting Warranty or Additional Liability. While redistributing the -Work or Derivative Works thereof, You may choose to offer, and charge a -fee for, acceptance of support, warranty, indemnity, or other liability -obligations and/or rights consistent with this License. However, in accepting -such obligations, You may act only on Your own behalf and on Your sole -responsibility, not on behalf of any other Contributor, and only if You -agree to indemnify, defend, and hold each Contributor harmless for any -liability incurred by, or claims asserted against, such Contributor by -reason of your accepting any such warranty or additional liability. - -END OF TERMS AND CONDITIONS -==================================================================================================== - -==================================================================================================== -LIBRARY: expat -ORIGIN: ../../../third_party/skia/third_party/expat/include/expat_config/expat_config.h + ../../../third_party/skia/third_party/expat/include/expat_config/LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/skia/third_party/expat/include/expat_config/expat_config.h ----------------------------------------------------------------------------------------------------- -Copyright 2021 Google Inc. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/skia/third_party/expat/include/expat_config/LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/skia/third_party/harfbuzz/config-override.h ----------------------------------------------------------------------------------------------------- -Copyright (c) 2021 Google Inc. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: libjxl -LIBRARY: skia -ORIGIN: ../../../third_party/skia/experimental/tskit/go/gen_types/gen_types.go + ../../../LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/skia/experimental/tskit/go/gen_types/gen_types.go -FILE: ../../../third_party/skia/experimental/tskit/go/gen_types/gen_types_test.go -FILE: ../../../third_party/skia/infra/bots/gen_tasks_logic/skpbench_flags.go -FILE: ../../../third_party/skia/infra/bots/task_drivers/perf_puppeteer_skottie_frames/make_lotties_with_assets/make_lotties_with_assets.go -FILE: ../../../third_party/skia/third_party/libjxl/jxl/jxl_export.h ----------------------------------------------------------------------------------------------------- -Copyright 2021 The Chromium Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. @@ -531,96 +511,9 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ==================================================================================================== LIBRARY: skia -LIBRARY: vulkanmemoryallocator -ORIGIN: ../../../third_party/skia/modules/canvaskit/npm_build/LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/skia/modules/canvaskit/npm_build/example.html -FILE: ../../../third_party/skia/modules/canvaskit/npm_build/extra.html -FILE: ../../../third_party/skia/modules/canvaskit/npm_build/multicanvas.html -FILE: ../../../third_party/skia/modules/canvaskit/npm_build/node.example.js -FILE: ../../../third_party/skia/modules/canvaskit/npm_build/package-lock.json -FILE: ../../../third_party/skia/modules/canvaskit/npm_build/package.json -FILE: ../../../third_party/skia/modules/canvaskit/npm_build/paragraphs.html -FILE: ../../../third_party/skia/modules/canvaskit/npm_build/shaping.html -FILE: ../../../third_party/skia/modules/canvaskit/npm_build/textapi_utils.js -FILE: ../../../third_party/skia/modules/canvaskit/npm_build/types/canvaskit-wasm-tests.ts -FILE: ../../../third_party/skia/modules/canvaskit/npm_build/types/index.d.ts -FILE: ../../../third_party/skia/modules/canvaskit/npm_build/types/tsconfig.json -FILE: ../../../third_party/skia/modules/canvaskit/npm_build/types/tslint.json -FILE: ../../../third_party/skia/modules/pathkit/npm-asmjs/example.html -FILE: ../../../third_party/skia/modules/pathkit/npm-asmjs/package.json -FILE: ../../../third_party/skia/modules/pathkit/npm-wasm/example.html -FILE: ../../../third_party/skia/modules/pathkit/npm-wasm/package.json -FILE: ../../../third_party/skia/third_party/vulkanmemoryallocator/BUILD.bazel ----------------------------------------------------------------------------------------------------- -Copyright (c) 2011 Google Inc. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: skia -ORIGIN: ../../../third_party/icu/scripts/LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/skia/src/core/SkTraceEventCommon.h ----------------------------------------------------------------------------------------------------- -Copyright 2015 The Chromium Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: skia -ORIGIN: ../../../third_party/skia/LICENSE +ORIGIN: ../../../third_party/skia/LICENSE TYPE: LicenseType.bsd +FILE: ../../../third_party/skia/.bazelproject FILE: ../../../third_party/skia/.bazelrc FILE: ../../../third_party/skia/.bazelversion FILE: ../../../third_party/skia/.clang-tidy @@ -760,6 +653,7 @@ FILE: ../../../third_party/skia/infra/bots/assets/armhf_sysroot/VERSION FILE: ../../../third_party/skia/infra/bots/assets/bazel/VERSION FILE: ../../../third_party/skia/infra/bots/assets/bazel_build_task_driver/VERSION FILE: ../../../third_party/skia/infra/bots/assets/bazelisk/VERSION +FILE: ../../../third_party/skia/infra/bots/assets/bazelisk_linux_arm64/VERSION FILE: ../../../third_party/skia/infra/bots/assets/bazelisk_mac_arm64/VERSION FILE: ../../../third_party/skia/infra/bots/assets/bazelisk_win_amd64/VERSION FILE: ../../../third_party/skia/infra/bots/assets/binutils_linux_x64/VERSION @@ -769,6 +663,7 @@ FILE: ../../../third_party/skia/infra/bots/assets/ccache_linux/VERSION FILE: ../../../third_party/skia/infra/bots/assets/ccache_mac/VERSION FILE: ../../../third_party/skia/infra/bots/assets/chromebook_arm_gles/VERSION FILE: ../../../third_party/skia/infra/bots/assets/chromebook_x86_64_gles/VERSION +FILE: ../../../third_party/skia/infra/bots/assets/clang_linux/Dockerfile FILE: ../../../third_party/skia/infra/bots/assets/clang_linux/VERSION FILE: ../../../third_party/skia/infra/bots/assets/clang_win/VERSION FILE: ../../../third_party/skia/infra/bots/assets/cmake_linux/VERSION @@ -849,10 +744,14 @@ FILE: ../../../third_party/skia/infra/bots/recipe_modules/build/examples/full.ex FILE: ../../../third_party/skia/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian10-GCC-x86_64-Release-NoGPU_Docker.json FILE: ../../../third_party/skia/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian10-GCC-x86_64-Release-Shared_Docker.json FILE: ../../../third_party/skia/infra/bots/recipe_modules/build/examples/full.expected/Build-Mac-Clang-arm64-Debug-Android_Vulkan.json +FILE: ../../../third_party/skia/infra/bots/recipe_modules/build/examples/full.expected/Build-Mac-Clang-arm64-Debug-Graphite_Dawn.json +FILE: ../../../third_party/skia/infra/bots/recipe_modules/build/examples/full.expected/Build-Mac-Clang-arm64-Debug-Graphite_Dawn_NoGpu.json +FILE: ../../../third_party/skia/infra/bots/recipe_modules/build/examples/full.expected/Build-Mac-Clang-arm64-Debug-Graphite_Dawn_NoPrecompile.json FILE: ../../../third_party/skia/infra/bots/recipe_modules/build/examples/full.expected/Build-Mac-Clang-arm64-Debug-Graphite_Metal.json FILE: ../../../third_party/skia/infra/bots/recipe_modules/build/examples/full.expected/Build-Mac-Clang-arm64-Debug-Graphite_Metal_NoGpu.json FILE: ../../../third_party/skia/infra/bots/recipe_modules/build/examples/full.expected/Build-Mac-Clang-arm64-Debug-Graphite_Metal_NoPrecompile.json FILE: ../../../third_party/skia/infra/bots/recipe_modules/build/examples/full.expected/Build-Mac-Clang-arm64-Debug-iOS.json +FILE: ../../../third_party/skia/infra/bots/recipe_modules/build/examples/full.expected/Build-Mac-Clang-arm64-Release-Graphite_Dawn.json FILE: ../../../third_party/skia/infra/bots/recipe_modules/build/examples/full.expected/Build-Mac-Clang-arm64-Release-Graphite_Metal.json FILE: ../../../third_party/skia/infra/bots/recipe_modules/build/examples/full.expected/Build-Mac-Clang-x86_64-Debug-ASAN.json FILE: ../../../third_party/skia/infra/bots/recipe_modules/build/examples/full.expected/Build-Mac-Clang-x86_64-Debug-Metal.json @@ -989,6 +888,7 @@ FILE: ../../../third_party/skia/infra/bots/task_drivers/bazel_build/BUILD.bazel FILE: ../../../third_party/skia/infra/bots/task_drivers/canvaskit_gold/BUILD.bazel FILE: ../../../third_party/skia/infra/bots/task_drivers/codesize/BUILD.bazel FILE: ../../../third_party/skia/infra/bots/task_drivers/compile_wasm_gm_tests/BUILD.bazel +FILE: ../../../third_party/skia/infra/bots/task_drivers/cpu_tests/BUILD.bazel FILE: ../../../third_party/skia/infra/bots/task_drivers/fm_driver/BUILD.bazel FILE: ../../../third_party/skia/infra/bots/task_drivers/g3_canary/BUILD.bazel FILE: ../../../third_party/skia/infra/bots/task_drivers/perf_puppeteer_canvas/BUILD.bazel @@ -1114,6 +1014,7 @@ FILE: ../../../third_party/skia/modules/skparagraph/include/Metrics.h FILE: ../../../third_party/skia/modules/skparagraph/include/Paragraph.h FILE: ../../../third_party/skia/modules/skparagraph/include/ParagraphBuilder.h FILE: ../../../third_party/skia/modules/skparagraph/include/ParagraphCache.h +FILE: ../../../third_party/skia/modules/skparagraph/include/ParagraphPainter.h FILE: ../../../third_party/skia/modules/skparagraph/include/ParagraphStyle.h FILE: ../../../third_party/skia/modules/skparagraph/include/TextShadow.h FILE: ../../../third_party/skia/modules/skparagraph/include/TextStyle.h @@ -1133,6 +1034,8 @@ FILE: ../../../third_party/skia/modules/skparagraph/src/ParagraphBuilderImpl.h FILE: ../../../third_party/skia/modules/skparagraph/src/ParagraphCache.cpp FILE: ../../../third_party/skia/modules/skparagraph/src/ParagraphImpl.cpp FILE: ../../../third_party/skia/modules/skparagraph/src/ParagraphImpl.h +FILE: ../../../third_party/skia/modules/skparagraph/src/ParagraphPainterImpl.cpp +FILE: ../../../third_party/skia/modules/skparagraph/src/ParagraphPainterImpl.h FILE: ../../../third_party/skia/modules/skparagraph/src/ParagraphStyle.cpp FILE: ../../../third_party/skia/modules/skparagraph/src/Run.cpp FILE: ../../../third_party/skia/modules/skparagraph/src/Run.h @@ -1260,6 +1163,7 @@ FILE: ../../../third_party/skia/src/sksl/generated/sksl_frag.minified.sksl FILE: ../../../third_party/skia/src/sksl/generated/sksl_frag.unoptimized.sksl FILE: ../../../third_party/skia/src/sksl/generated/sksl_gpu.minified.sksl FILE: ../../../third_party/skia/src/sksl/generated/sksl_gpu.unoptimized.sksl +FILE: ../../../third_party/skia/src/sksl/generated/sksl_graphite_frag.dehydrated.sksl FILE: ../../../third_party/skia/src/sksl/generated/sksl_graphite_frag.minified.sksl FILE: ../../../third_party/skia/src/sksl/generated/sksl_graphite_frag.unoptimized.sksl FILE: ../../../third_party/skia/src/sksl/generated/sksl_graphite_vert.minified.sksl @@ -1336,241 +1240,11 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ==================================================================================================== LIBRARY: skia -ORIGIN: ../../../third_party/skia/bench/AAClipBench.cpp + ../../../third_party/skia/LICENSE +ORIGIN: ../../../third_party/skia/src/core/SkTraceEvent.h + ../../../third_party/skia/LICENSE TYPE: LicenseType.bsd -FILE: ../../../third_party/skia/bench/AAClipBench.cpp -FILE: ../../../third_party/skia/bench/Benchmark.cpp -FILE: ../../../third_party/skia/bench/Benchmark.h -FILE: ../../../third_party/skia/bench/BlurBench.cpp -FILE: ../../../third_party/skia/bench/ChromeBench.cpp -FILE: ../../../third_party/skia/bench/DashBench.cpp -FILE: ../../../third_party/skia/bench/GradientBench.cpp -FILE: ../../../third_party/skia/bench/MatrixBench.cpp -FILE: ../../../third_party/skia/bench/MutexBench.cpp -FILE: ../../../third_party/skia/bench/PathBench.cpp -FILE: ../../../third_party/skia/bench/PathIterBench.cpp -FILE: ../../../third_party/skia/bench/PicturePlaybackBench.cpp -FILE: ../../../third_party/skia/bench/RectBench.cpp -FILE: ../../../third_party/skia/bench/RegionBench.cpp -FILE: ../../../third_party/skia/bench/RepeatTileBench.cpp -FILE: ../../../third_party/skia/bench/ScalarBench.cpp -FILE: ../../../third_party/skia/bench/VertBench.cpp -FILE: ../../../third_party/skia/gm/aaclip.cpp -FILE: ../../../third_party/skia/gm/aarectmodes.cpp -FILE: ../../../third_party/skia/gm/arithmode.cpp -FILE: ../../../third_party/skia/gm/bitmapcopy.cpp -FILE: ../../../third_party/skia/gm/bitmapfilters.cpp -FILE: ../../../third_party/skia/gm/bitmaprect.cpp -FILE: ../../../third_party/skia/gm/blurs.cpp -FILE: ../../../third_party/skia/gm/clip_strokerect.cpp -FILE: ../../../third_party/skia/gm/color4f.cpp -FILE: ../../../third_party/skia/gm/colormatrix.cpp -FILE: ../../../third_party/skia/gm/complexclip.cpp -FILE: ../../../third_party/skia/gm/complexclip2.cpp -FILE: ../../../third_party/skia/gm/convexpaths.cpp -FILE: ../../../third_party/skia/gm/cubicpaths.cpp -FILE: ../../../third_party/skia/gm/degeneratesegments.cpp -FILE: ../../../third_party/skia/gm/dftext.cpp -FILE: ../../../third_party/skia/gm/drawbitmaprect.cpp -FILE: ../../../third_party/skia/gm/emptypath.cpp -FILE: ../../../third_party/skia/gm/encode.cpp -FILE: ../../../third_party/skia/gm/filltypes.cpp -FILE: ../../../third_party/skia/gm/filltypespersp.cpp -FILE: ../../../third_party/skia/gm/filterindiabox.cpp -FILE: ../../../third_party/skia/gm/fontscaler.cpp -FILE: ../../../third_party/skia/gm/gammatext.cpp -FILE: ../../../third_party/skia/gm/giantbitmap.cpp -FILE: ../../../third_party/skia/gm/gm.cpp -FILE: ../../../third_party/skia/gm/gm.h -FILE: ../../../third_party/skia/gm/gradients.cpp -FILE: ../../../third_party/skia/gm/gradtext.cpp -FILE: ../../../third_party/skia/gm/hairmodes.cpp -FILE: ../../../third_party/skia/gm/hittestpath.cpp -FILE: ../../../third_party/skia/gm/image.cpp -FILE: ../../../third_party/skia/gm/imageblur.cpp -FILE: ../../../third_party/skia/gm/imageblur2.cpp -FILE: ../../../third_party/skia/gm/imagefiltersbase.cpp -FILE: ../../../third_party/skia/gm/imagefilterscropped.cpp -FILE: ../../../third_party/skia/gm/lcdtext.cpp -FILE: ../../../third_party/skia/gm/linepaths.cpp -FILE: ../../../third_party/skia/gm/ninepatchstretch.cpp -FILE: ../../../third_party/skia/gm/pathfill.cpp -FILE: ../../../third_party/skia/gm/pathreverse.cpp -FILE: ../../../third_party/skia/gm/points.cpp -FILE: ../../../third_party/skia/gm/poly2poly.cpp -FILE: ../../../third_party/skia/gm/quadpaths.cpp -FILE: ../../../third_party/skia/gm/rasterhandleallocator.cpp -FILE: ../../../third_party/skia/gm/shadertext3.cpp -FILE: ../../../third_party/skia/gm/strokefill.cpp -FILE: ../../../third_party/skia/gm/strokerects.cpp -FILE: ../../../third_party/skia/gm/strokes.cpp -FILE: ../../../third_party/skia/gm/tablecolorfilter.cpp -FILE: ../../../third_party/skia/gm/texteffects.cpp -FILE: ../../../third_party/skia/gm/tilemodes.cpp -FILE: ../../../third_party/skia/gm/tilemodes_scaled.cpp -FILE: ../../../third_party/skia/gm/tinybitmap.cpp -FILE: ../../../third_party/skia/gm/xfermodes.cpp -FILE: ../../../third_party/skia/include/core/SkData.h -FILE: ../../../third_party/skia/include/core/SkImageEncoder.h -FILE: ../../../third_party/skia/include/core/SkImageFilter.h -FILE: ../../../third_party/skia/include/core/SkSize.h -FILE: ../../../third_party/skia/include/effects/SkLayerDrawLooper.h -FILE: ../../../third_party/skia/include/gpu/gl/GrGLConfig.h -FILE: ../../../third_party/skia/include/gpu/gl/GrGLConfig_chrome.h -FILE: ../../../third_party/skia/include/gpu/gl/GrGLInterface.h -FILE: ../../../third_party/skia/include/ports/SkTypeface_mac.h -FILE: ../../../third_party/skia/include/ports/SkTypeface_win.h -FILE: ../../../third_party/skia/include/private/SkTArray.h -FILE: ../../../third_party/skia/include/utils/SkNWayCanvas.h -FILE: ../../../third_party/skia/include/utils/mac/SkCGUtils.h -FILE: ../../../third_party/skia/samplecode/Sample.h -FILE: ../../../third_party/skia/samplecode/Sample2PtRadial.cpp -FILE: ../../../third_party/skia/samplecode/SampleAARectModes.cpp -FILE: ../../../third_party/skia/samplecode/SampleAARects.cpp -FILE: ../../../third_party/skia/samplecode/SampleArc.cpp -FILE: ../../../third_party/skia/samplecode/SampleCamera.cpp -FILE: ../../../third_party/skia/samplecode/SampleCircle.cpp -FILE: ../../../third_party/skia/samplecode/SampleClip.cpp -FILE: ../../../third_party/skia/samplecode/SampleComplexClip.cpp -FILE: ../../../third_party/skia/samplecode/SampleDegenerateTwoPtRadials.cpp -FILE: ../../../third_party/skia/samplecode/SampleEffects.cpp -FILE: ../../../third_party/skia/samplecode/SampleEmboss.cpp -FILE: ../../../third_party/skia/samplecode/SampleFillType.cpp -FILE: ../../../third_party/skia/samplecode/SampleGradients.cpp -FILE: ../../../third_party/skia/samplecode/SampleHairCurves.cpp -FILE: ../../../third_party/skia/samplecode/SampleHairModes.cpp -FILE: ../../../third_party/skia/samplecode/SampleLCD.cpp -FILE: ../../../third_party/skia/samplecode/SampleLayers.cpp -FILE: ../../../third_party/skia/samplecode/SamplePatch.cpp -FILE: ../../../third_party/skia/samplecode/SamplePath.cpp -FILE: ../../../third_party/skia/samplecode/SamplePathClip.cpp -FILE: ../../../third_party/skia/samplecode/SamplePathEffects.cpp -FILE: ../../../third_party/skia/samplecode/SamplePolyToPoly.cpp -FILE: ../../../third_party/skia/samplecode/SampleRepeatTile.cpp -FILE: ../../../third_party/skia/samplecode/SampleSlides.cpp -FILE: ../../../third_party/skia/samplecode/SampleStrokePath.cpp -FILE: ../../../third_party/skia/samplecode/SampleStrokeRect.cpp -FILE: ../../../third_party/skia/samplecode/SampleTextBox.cpp -FILE: ../../../third_party/skia/samplecode/SampleVertices.cpp -FILE: ../../../third_party/skia/samplecode/SampleWritePixels.cpp -FILE: ../../../third_party/skia/samplecode/SampleXfermodesBlur.cpp -FILE: ../../../third_party/skia/samplecode/vertexdump.cpp -FILE: ../../../third_party/skia/src/core/SkAAClip.cpp -FILE: ../../../third_party/skia/src/core/SkAAClip.h -FILE: ../../../third_party/skia/src/core/SkAdvancedTypefaceMetrics.h -FILE: ../../../third_party/skia/src/core/SkBitmapProcState.cpp -FILE: ../../../third_party/skia/src/core/SkBlitRow.h -FILE: ../../../third_party/skia/src/core/SkBlitRow_D32.cpp -FILE: ../../../third_party/skia/src/core/SkClipStack.cpp -FILE: ../../../third_party/skia/src/core/SkClipStack.h -FILE: ../../../third_party/skia/src/core/SkColorFilter_Matrix.cpp -FILE: ../../../third_party/skia/src/core/SkConvertPixels.h -FILE: ../../../third_party/skia/src/core/SkData.cpp -FILE: ../../../third_party/skia/src/core/SkDevice.cpp -FILE: ../../../third_party/skia/src/core/SkDrawProcs.h -FILE: ../../../third_party/skia/src/core/SkEdgeBuilder.cpp -FILE: ../../../third_party/skia/src/core/SkEdgeBuilder.h -FILE: ../../../third_party/skia/src/core/SkFlattenable.cpp -FILE: ../../../third_party/skia/src/core/SkFontStream.cpp -FILE: ../../../third_party/skia/src/core/SkLineClipper.cpp -FILE: ../../../third_party/skia/src/core/SkLineClipper.h -FILE: ../../../third_party/skia/src/core/SkMallocPixelRef.cpp -FILE: ../../../third_party/skia/src/core/SkPictureData.cpp -FILE: ../../../third_party/skia/src/core/SkPictureData.h -FILE: ../../../third_party/skia/src/core/SkPictureFlat.cpp -FILE: ../../../third_party/skia/src/core/SkPictureFlat.h -FILE: ../../../third_party/skia/src/core/SkPictureRecord.cpp -FILE: ../../../third_party/skia/src/core/SkPictureRecord.h -FILE: ../../../third_party/skia/src/core/SkPixelRef.cpp -FILE: ../../../third_party/skia/src/core/SkPtrRecorder.cpp -FILE: ../../../third_party/skia/src/core/SkReadBuffer.h -FILE: ../../../third_party/skia/src/core/SkTLazy.h -FILE: ../../../third_party/skia/src/core/SkTypefaceCache.cpp -FILE: ../../../third_party/skia/src/core/SkTypefaceCache.h -FILE: ../../../third_party/skia/src/core/SkUnPreMultiply.cpp -FILE: ../../../third_party/skia/src/core/SkWriteBuffer.h -FILE: ../../../third_party/skia/src/core/SkWriter32.cpp -FILE: ../../../third_party/skia/src/effects/SkColorMatrix.cpp -FILE: ../../../third_party/skia/src/effects/SkColorMatrixFilter.cpp -FILE: ../../../third_party/skia/src/effects/SkLayerDrawLooper.cpp -FILE: ../../../third_party/skia/src/effects/SkTableMaskFilter.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/Device.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrAttachment.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrAttachment.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrGpu.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrGpuResource.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrNativeRect.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrPaint.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrRenderTarget.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrRenderTarget.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrStencilSettings.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrTexture.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrTexture.h -FILE: ../../../third_party/skia/src/gpu/ganesh/PathRenderer.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/PathRenderer.h -FILE: ../../../third_party/skia/src/gpu/ganesh/PathRendererChain.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/PathRendererChain.h -FILE: ../../../third_party/skia/src/gpu/ganesh/geometry/GrPathUtils.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/geometry/GrPathUtils.h -FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLAttachment.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLAttachment.h -FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLDefines_impl.h -FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLGLSL.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLGLSL.h -FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLGpu.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLGpu.h -FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLGpuProgramCache.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLInterfaceAutogen.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLMakeNativeInterface_none.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLProgram.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLProgram.h -FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLRenderTarget.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLRenderTarget.h -FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLTexture.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLTexture.h -FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLUtil.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/gl/mac/GrGLMakeNativeInterface_mac.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/gl/win/GrGLMakeNativeInterface_win.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/AAHairLinePathRenderer.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/AAHairLinePathRenderer.h -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/DefaultPathRenderer.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/DefaultPathRenderer.h -FILE: ../../../third_party/skia/src/gpu/gl/GrGLDefines.h -FILE: ../../../third_party/skia/src/pdf/SkPDFDevice.cpp -FILE: ../../../third_party/skia/src/pdf/SkPDFDevice.h -FILE: ../../../third_party/skia/src/pdf/SkPDFDocument.cpp -FILE: ../../../third_party/skia/src/pdf/SkPDFFont.cpp -FILE: ../../../third_party/skia/src/pdf/SkPDFFont.h -FILE: ../../../third_party/skia/src/pdf/SkPDFGraphicState.cpp -FILE: ../../../third_party/skia/src/pdf/SkPDFMakeToUnicodeCmap.cpp -FILE: ../../../third_party/skia/src/pdf/SkPDFShader.cpp -FILE: ../../../third_party/skia/src/pdf/SkPDFShader.h -FILE: ../../../third_party/skia/src/pdf/SkPDFTypes.cpp -FILE: ../../../third_party/skia/src/pdf/SkPDFUtils.cpp -FILE: ../../../third_party/skia/src/pdf/SkPDFUtils.h -FILE: ../../../third_party/skia/src/ports/SkGlobalInitialization_default.cpp -FILE: ../../../third_party/skia/src/ports/SkImageEncoder_WIC.cpp -FILE: ../../../third_party/skia/src/ports/SkMemory_malloc.cpp -FILE: ../../../third_party/skia/src/ports/SkScalerContext_win_dw.cpp -FILE: ../../../third_party/skia/src/shaders/SkBitmapProcShader.cpp -FILE: ../../../third_party/skia/src/utils/SkBitSet.h -FILE: ../../../third_party/skia/src/utils/SkNWayCanvas.cpp -FILE: ../../../third_party/skia/src/utils/SkOSPath.cpp -FILE: ../../../third_party/skia/src/utils/SkParsePath.cpp -FILE: ../../../third_party/skia/src/utils/mac/SkCreateCGImageRef.cpp -FILE: ../../../third_party/skia/src/utils/win/SkAutoCoInitialize.cpp -FILE: ../../../third_party/skia/src/utils/win/SkAutoCoInitialize.h -FILE: ../../../third_party/skia/src/utils/win/SkHRESULT.cpp -FILE: ../../../third_party/skia/src/utils/win/SkHRESULT.h -FILE: ../../../third_party/skia/src/utils/win/SkIStream.cpp -FILE: ../../../third_party/skia/src/utils/win/SkIStream.h -FILE: ../../../third_party/skia/src/utils/win/SkTScopedComPtr.h -FILE: ../../../third_party/skia/src/utils/win/SkWGL.h -FILE: ../../../third_party/skia/src/utils/win/SkWGL_win.cpp -FILE: ../../../third_party/skia/src/xps/SkXPSDevice.cpp -FILE: ../../../third_party/skia/src/xps/SkXPSDevice.h +FILE: ../../../third_party/skia/src/core/SkTraceEvent.h ---------------------------------------------------------------------------------------------------- -Copyright 2011 Google Inc. +Copyright (c) 2014 Google Inc. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are @@ -1603,209 +1277,45 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ==================================================================================================== LIBRARY: skia -ORIGIN: ../../../third_party/skia/bench/AlternatingColorPatternBench.cpp + ../../../third_party/skia/LICENSE +ORIGIN: ../../../third_party/skia/src/sksl/GLSL.std.450.h +TYPE: LicenseType.unknown +FILE: ../../../third_party/skia/src/sksl/GLSL.std.450.h +FILE: ../../../third_party/skia/src/sksl/spirv.h +---------------------------------------------------------------------------------------------------- +Copyright (c) 2014-2016 The Khronos Group Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and/or associated documentation files (the "Materials"), +to deal in the Materials without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Materials, and to permit persons to whom the +Materials are furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Materials. +==================================================================================================== + +==================================================================================================== +LIBRARY: vulkan +ORIGIN: ../../../third_party/skia/include/third_party/vulkan/LICENSE TYPE: LicenseType.bsd -FILE: ../../../third_party/skia/bench/AlternatingColorPatternBench.cpp -FILE: ../../../third_party/skia/bench/BezierBench.cpp -FILE: ../../../third_party/skia/bench/BlurRectsBench.cpp -FILE: ../../../third_party/skia/bench/GMBench.cpp -FILE: ../../../third_party/skia/bench/GMBench.h -FILE: ../../../third_party/skia/bench/GeometryBench.cpp -FILE: ../../../third_party/skia/bench/ImageFilterCollapse.cpp -FILE: ../../../third_party/skia/bench/ImageFilterDAGBench.cpp -FILE: ../../../third_party/skia/bench/PatchBench.cpp -FILE: ../../../third_party/skia/bench/PictureNestingBench.cpp -FILE: ../../../third_party/skia/bench/RecordingBench.cpp -FILE: ../../../third_party/skia/bench/RecordingBench.h -FILE: ../../../third_party/skia/bench/RectanizerBench.cpp -FILE: ../../../third_party/skia/bench/RotatedRectBench.cpp -FILE: ../../../third_party/skia/bench/SKPBench.cpp -FILE: ../../../third_party/skia/bench/SKPBench.h -FILE: ../../../third_party/skia/bench/nanobench.cpp -FILE: ../../../third_party/skia/dm/DMJsonWriter.cpp -FILE: ../../../third_party/skia/dm/DMJsonWriter.h -FILE: ../../../third_party/skia/gm/aaa.cpp -FILE: ../../../third_party/skia/gm/beziers.cpp -FILE: ../../../third_party/skia/gm/blurcircles.cpp -FILE: ../../../third_party/skia/gm/clipdrawdraw.cpp -FILE: ../../../third_party/skia/gm/coloremoji_blendmodes.cpp -FILE: ../../../third_party/skia/gm/colorfilters.cpp -FILE: ../../../third_party/skia/gm/colorwheel.cpp -FILE: ../../../third_party/skia/gm/complexclip3.cpp -FILE: ../../../third_party/skia/gm/convexpolyclip.cpp -FILE: ../../../third_party/skia/gm/convexpolyeffect.cpp -FILE: ../../../third_party/skia/gm/discard.cpp -FILE: ../../../third_party/skia/gm/drrect.cpp -FILE: ../../../third_party/skia/gm/emboss.cpp -FILE: ../../../third_party/skia/gm/filterfastbounds.cpp -FILE: ../../../third_party/skia/gm/glyph_pos.cpp -FILE: ../../../third_party/skia/gm/gradients_2pt_conical.cpp -FILE: ../../../third_party/skia/gm/grayscalejpg.cpp -FILE: ../../../third_party/skia/gm/imageblurtiled.cpp -FILE: ../../../third_party/skia/gm/imagefiltersclipped.cpp -FILE: ../../../third_party/skia/gm/imagefilterscropexpand.cpp -FILE: ../../../third_party/skia/gm/imagefiltersscaled.cpp -FILE: ../../../third_party/skia/gm/imageresizetiled.cpp -FILE: ../../../third_party/skia/gm/matriximagefilter.cpp -FILE: ../../../third_party/skia/gm/patch.cpp -FILE: ../../../third_party/skia/gm/picture.cpp -FILE: ../../../third_party/skia/gm/pictureshader.cpp -FILE: ../../../third_party/skia/gm/pictureshadertile.cpp -FILE: ../../../third_party/skia/gm/recordopts.cpp -FILE: ../../../third_party/skia/gm/smallarc.cpp -FILE: ../../../third_party/skia/gm/stroketext.cpp -FILE: ../../../third_party/skia/gm/surface.cpp -FILE: ../../../third_party/skia/gm/tallstretchedbitmaps.cpp -FILE: ../../../third_party/skia/gm/texelsubset.cpp -FILE: ../../../third_party/skia/gm/textblob.cpp -FILE: ../../../third_party/skia/gm/textblobshader.cpp -FILE: ../../../third_party/skia/gm/tiledscaledbitmap.cpp -FILE: ../../../third_party/skia/gm/variedtext.cpp -FILE: ../../../third_party/skia/gm/yuvtorgbsubset.cpp -FILE: ../../../third_party/skia/include/core/SkBBHFactory.h -FILE: ../../../third_party/skia/include/core/SkBlurTypes.h -FILE: ../../../third_party/skia/include/core/SkDrawable.h -FILE: ../../../third_party/skia/include/core/SkFont.h -FILE: ../../../third_party/skia/include/core/SkPictureRecorder.h -FILE: ../../../third_party/skia/include/core/SkSurfaceProps.h -FILE: ../../../third_party/skia/include/core/SkTextBlob.h -FILE: ../../../third_party/skia/include/gpu/gl/GrGLAssembleInterface.h -FILE: ../../../third_party/skia/include/ports/SkFontMgr_indirect.h -FILE: ../../../third_party/skia/include/ports/SkRemotableFontMgr.h -FILE: ../../../third_party/skia/include/private/SkHalf.h -FILE: ../../../third_party/skia/samplecode/SampleRectanizer.cpp -FILE: ../../../third_party/skia/src/core/SkBBHFactory.cpp -FILE: ../../../third_party/skia/src/core/SkBitmapCache.cpp -FILE: ../../../third_party/skia/src/core/SkBitmapCache.h -FILE: ../../../third_party/skia/src/core/SkCachedData.cpp -FILE: ../../../third_party/skia/src/core/SkCachedData.h -FILE: ../../../third_party/skia/src/core/SkCanvasPriv.h -FILE: ../../../third_party/skia/src/core/SkConvertPixels.cpp -FILE: ../../../third_party/skia/src/core/SkDistanceFieldGen.cpp -FILE: ../../../third_party/skia/src/core/SkDistanceFieldGen.h -FILE: ../../../third_party/skia/src/core/SkDrawable.cpp -FILE: ../../../third_party/skia/src/core/SkFont.cpp -FILE: ../../../third_party/skia/src/core/SkFont_serial.cpp -FILE: ../../../third_party/skia/src/core/SkHalf.cpp -FILE: ../../../third_party/skia/src/core/SkImageGenerator.cpp -FILE: ../../../third_party/skia/src/core/SkMaskCache.cpp -FILE: ../../../third_party/skia/src/core/SkMaskCache.h -FILE: ../../../third_party/skia/src/core/SkPicturePlayback.cpp -FILE: ../../../third_party/skia/src/core/SkPicturePlayback.h -FILE: ../../../third_party/skia/src/core/SkPictureRecorder.cpp -FILE: ../../../third_party/skia/src/core/SkRecord.h -FILE: ../../../third_party/skia/src/core/SkRecordDraw.cpp -FILE: ../../../third_party/skia/src/core/SkRecordDraw.h -FILE: ../../../third_party/skia/src/core/SkRecordOpts.cpp -FILE: ../../../third_party/skia/src/core/SkRecordOpts.h -FILE: ../../../third_party/skia/src/core/SkRecorder.cpp -FILE: ../../../third_party/skia/src/core/SkRecorder.h -FILE: ../../../third_party/skia/src/core/SkRecords.h -FILE: ../../../third_party/skia/src/core/SkSurfacePriv.h -FILE: ../../../third_party/skia/src/core/SkTaskGroup.cpp -FILE: ../../../third_party/skia/src/core/SkTaskGroup.h -FILE: ../../../third_party/skia/src/core/SkTextBlob.cpp -FILE: ../../../third_party/skia/src/core/SkVertState.cpp -FILE: ../../../third_party/skia/src/core/SkVertState.h -FILE: ../../../third_party/skia/src/fonts/SkFontMgr_indirect.cpp -FILE: ../../../third_party/skia/src/fonts/SkRemotableFontMgr.cpp -FILE: ../../../third_party/skia/src/gpu/RectanizerPow2.h -FILE: ../../../third_party/skia/src/gpu/RectanizerSkyline.h -FILE: ../../../third_party/skia/src/gpu/ResourceKey.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrDefaultGeoProcFactory.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrDefaultGeoProcFactory.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrFragmentProcessor.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrGeometryProcessor.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrGpuResource.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrGpuResourceCacheAccess.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrProcessorAnalysis.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrProcessorAnalysis.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrProgramDesc.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrResourceCache.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrResourceCache.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrTracing.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrXferProcessor.h -FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrBicubicEffect.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrConvexPolyEffect.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrConvexPolyEffect.h -FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrCoverageSetOpXP.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrCoverageSetOpXP.h -FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrDisableColorXP.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrDisableColorXP.h -FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrMatrixConvolutionEffect.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrMatrixConvolutionEffect.h -FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrOvalEffect.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrOvalEffect.h -FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrPorterDuffXferProcessor.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrPorterDuffXferProcessor.h -FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrRRectEffect.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrRRectEffect.h -FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLAssembleInterface.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLTextureRenderTarget.h -FILE: ../../../third_party/skia/src/gpu/ganesh/gl/android/GrGLMakeNativeInterface_android.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/gl/builders/GrGLProgramBuilder.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/gl/builders/GrGLProgramBuilder.h -FILE: ../../../third_party/skia/src/gpu/ganesh/gl/builders/GrGLShaderStringBuilder.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/gl/builders/GrGLShaderStringBuilder.h -FILE: ../../../third_party/skia/src/gpu/ganesh/gl/egl/GrGLMakeEGLInterface.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/gl/glx/GrGLMakeGLXInterface.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/gl/iOS/GrGLMakeNativeInterface_iOS.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/glsl/GrGLSLFragmentShaderBuilder.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/glsl/GrGLSLFragmentShaderBuilder.h -FILE: ../../../third_party/skia/src/gpu/ganesh/glsl/GrGLSLShaderBuilder.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/glsl/GrGLSLShaderBuilder.h -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/DashOp.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/DashOp.h -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/SmallPathRenderer.h -FILE: ../../../third_party/skia/src/image/SkReadPixelsRec.h -FILE: ../../../third_party/skia/src/image/SkSurface_Gpu.h -FILE: ../../../third_party/skia/src/pathops/SkOpBuilder.cpp -FILE: ../../../third_party/skia/src/pathops/SkOpSpan.cpp -FILE: ../../../third_party/skia/src/pathops/SkPathOpsTSect.cpp -FILE: ../../../third_party/skia/src/pathops/SkPathOpsTSect.h -FILE: ../../../third_party/skia/src/pathops/SkPathOpsTightBounds.cpp -FILE: ../../../third_party/skia/src/ports/SkFontMgr_android.cpp -FILE: ../../../third_party/skia/src/ports/SkFontMgr_fontconfig.cpp -FILE: ../../../third_party/skia/src/ports/SkFontMgr_win_dw.cpp -FILE: ../../../third_party/skia/src/ports/SkRemotableFontMgr_win_dw.cpp -FILE: ../../../third_party/skia/src/ports/SkScalerContext_win_dw.h -FILE: ../../../third_party/skia/src/ports/SkTypeface_win_dw.cpp -FILE: ../../../third_party/skia/src/ports/SkTypeface_win_dw.h -FILE: ../../../third_party/skia/src/sfnt/SkOTTable_EBDT.h -FILE: ../../../third_party/skia/src/sfnt/SkOTTable_EBLC.h -FILE: ../../../third_party/skia/src/sfnt/SkOTTable_EBSC.h -FILE: ../../../third_party/skia/src/sfnt/SkOTTable_gasp.h -FILE: ../../../third_party/skia/src/shaders/SkLocalMatrixShader.cpp -FILE: ../../../third_party/skia/src/shaders/SkLocalMatrixShader.h -FILE: ../../../third_party/skia/src/shaders/SkPictureShader.cpp -FILE: ../../../third_party/skia/src/shaders/SkPictureShader.h -FILE: ../../../third_party/skia/src/utils/SkDashPath.cpp -FILE: ../../../third_party/skia/src/utils/SkDashPathPriv.h -FILE: ../../../third_party/skia/src/utils/SkEventTracer.cpp -FILE: ../../../third_party/skia/src/utils/SkMatrix22.cpp -FILE: ../../../third_party/skia/src/utils/SkMatrix22.h -FILE: ../../../third_party/skia/src/utils/SkPatchUtils.cpp -FILE: ../../../third_party/skia/src/utils/SkPatchUtils.h -FILE: ../../../third_party/skia/src/utils/win/SkDWrite.cpp -FILE: ../../../third_party/skia/src/utils/win/SkDWrite.h +FILE: ../../../third_party/skia/include/third_party/vulkan/BUILD.bazel ---------------------------------------------------------------------------------------------------- -Copyright 2014 Google Inc. +Copyright (c) 2018 Google Inc. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - - * Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT @@ -1821,3581 +1331,1384 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ==================================================================================================== ==================================================================================================== -LIBRARY: skia -ORIGIN: ../../../third_party/skia/bench/AndroidCodecBench.cpp + ../../../third_party/skia/LICENSE +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/skia/third_party/expat/include/expat_config/LICENSE TYPE: LicenseType.bsd -FILE: ../../../third_party/skia/bench/AndroidCodecBench.cpp -FILE: ../../../third_party/skia/bench/AndroidCodecBench.h -FILE: ../../../third_party/skia/bench/DecodeBench.cpp -FILE: ../../../third_party/skia/bench/EncodeBench.cpp -FILE: ../../../third_party/skia/bench/GrMipmapBench.cpp -FILE: ../../../third_party/skia/bench/HardStopGradientBench_ScaleNumColors.cpp -FILE: ../../../third_party/skia/bench/HardStopGradientBench_ScaleNumHardStops.cpp -FILE: ../../../third_party/skia/bench/HardStopGradientBench_SpecialHardStops.cpp -FILE: ../../../third_party/skia/bench/ImageCacheBudgetBench.cpp -FILE: ../../../third_party/skia/bench/PDFBench.cpp -FILE: ../../../third_party/skia/bench/QuickRejectBench.cpp -FILE: ../../../third_party/skia/bench/ShapesBench.cpp -FILE: ../../../third_party/skia/bench/StreamBench.cpp -FILE: ../../../third_party/skia/bench/SwizzleBench.cpp -FILE: ../../../third_party/skia/bench/TileImageFilterBench.cpp -FILE: ../../../third_party/skia/bench/VertexColorSpaceBench.cpp -FILE: ../../../third_party/skia/fuzz/Fuzz.cpp -FILE: ../../../third_party/skia/fuzz/Fuzz.h -FILE: ../../../third_party/skia/fuzz/FuzzGradients.cpp -FILE: ../../../third_party/skia/fuzz/FuzzMain.cpp -FILE: ../../../third_party/skia/fuzz/FuzzParsePath.cpp -FILE: ../../../third_party/skia/fuzz/FuzzPathop.cpp -FILE: ../../../third_party/skia/gm/animated_gif.cpp -FILE: ../../../third_party/skia/gm/animatedimageblurs.cpp -FILE: ../../../third_party/skia/gm/arcto.cpp -FILE: ../../../third_party/skia/gm/bigrect.cpp -FILE: ../../../third_party/skia/gm/bitmapimage.cpp -FILE: ../../../third_party/skia/gm/blurcircles2.cpp -FILE: ../../../third_party/skia/gm/bug5252.cpp -FILE: ../../../third_party/skia/gm/bug530095.cpp -FILE: ../../../third_party/skia/gm/bug615686.cpp -FILE: ../../../third_party/skia/gm/circulararcs.cpp -FILE: ../../../third_party/skia/gm/clip_error.cpp -FILE: ../../../third_party/skia/gm/colorfilteralpha8.cpp -FILE: ../../../third_party/skia/gm/complexclip4.cpp -FILE: ../../../third_party/skia/gm/complexclip_blur_tiled.cpp -FILE: ../../../third_party/skia/gm/croppedrects.cpp -FILE: ../../../third_party/skia/gm/dashcircle.cpp -FILE: ../../../third_party/skia/gm/drawregion.cpp -FILE: ../../../third_party/skia/gm/drawregionmodes.cpp -FILE: ../../../third_party/skia/gm/encode_platform.cpp -FILE: ../../../third_party/skia/gm/encode_srgb.cpp -FILE: ../../../third_party/skia/gm/filterbug.cpp -FILE: ../../../third_party/skia/gm/hardstop_gradients.cpp -FILE: ../../../third_party/skia/gm/imagemakewithfilter.cpp -FILE: ../../../third_party/skia/gm/imagemasksubset.cpp -FILE: ../../../third_party/skia/gm/lattice.cpp -FILE: ../../../third_party/skia/gm/overdrawcolorfilter.cpp -FILE: ../../../third_party/skia/gm/overstroke.cpp -FILE: ../../../third_party/skia/gm/pathmaskcache.cpp -FILE: ../../../third_party/skia/gm/readpixels.cpp -FILE: ../../../third_party/skia/gm/rectangletexture.cpp -FILE: ../../../third_party/skia/gm/rrectclipdrawpaint.cpp -FILE: ../../../third_party/skia/gm/shapes.cpp -FILE: ../../../third_party/skia/gm/showmiplevels.cpp -FILE: ../../../third_party/skia/gm/simplerect.cpp -FILE: ../../../third_party/skia/gm/skbug_4868.cpp -FILE: ../../../third_party/skia/gm/skbug_5321.cpp -FILE: ../../../third_party/skia/gm/stroke_rect_shader.cpp -FILE: ../../../third_party/skia/gm/strokedlines.cpp -FILE: ../../../third_party/skia/gm/subsetshader.cpp -FILE: ../../../third_party/skia/gm/textblobblockreordering.cpp -FILE: ../../../third_party/skia/gm/windowrectangles.cpp -FILE: ../../../third_party/skia/include/codec/SkCodecAnimation.h -FILE: ../../../third_party/skia/include/core/SkBlendMode.h -FILE: ../../../third_party/skia/include/core/SkClipOp.h -FILE: ../../../third_party/skia/include/core/SkColorSpace.h -FILE: ../../../third_party/skia/include/core/SkICC.h -FILE: ../../../third_party/skia/include/core/SkMilestone.h -FILE: ../../../third_party/skia/include/core/SkOverdrawCanvas.h -FILE: ../../../third_party/skia/include/core/SkRasterHandleAllocator.h -FILE: ../../../third_party/skia/include/core/SkSwizzle.h -FILE: ../../../third_party/skia/include/effects/SkOverdrawColorFilter.h -FILE: ../../../third_party/skia/include/gpu/vk/GrVkBackendContext.h -FILE: ../../../third_party/skia/include/gpu/vk/GrVkExtensions.h -FILE: ../../../third_party/skia/include/gpu/vk/GrVkTypes.h -FILE: ../../../third_party/skia/include/ports/SkFontMgr_FontConfigInterface.h -FILE: ../../../third_party/skia/include/ports/SkImageGeneratorCG.h -FILE: ../../../third_party/skia/include/ports/SkImageGeneratorWIC.h -FILE: ../../../third_party/skia/include/private/SingleOwner.h -FILE: ../../../third_party/skia/include/private/SkBitmaskEnum.h -FILE: ../../../third_party/skia/include/private/SkEncodedInfo.h -FILE: ../../../third_party/skia/include/private/SkSLIRNode.h -FILE: ../../../third_party/skia/include/private/SkSLLayout.h -FILE: ../../../third_party/skia/include/private/SkSLModifiers.h -FILE: ../../../third_party/skia/include/private/SkSLProgramElement.h -FILE: ../../../third_party/skia/include/private/SkSLStatement.h -FILE: ../../../third_party/skia/include/private/SkSLSymbol.h -FILE: ../../../third_party/skia/include/private/SkSafe_math.h -FILE: ../../../third_party/skia/include/utils/SkNoDrawCanvas.h -FILE: ../../../third_party/skia/modules/sksg/samples/SampleSVGPong.cpp -FILE: ../../../third_party/skia/modules/skshaper/include/SkShaper.h -FILE: ../../../third_party/skia/modules/skshaper/src/SkShaper_harfbuzz.cpp -FILE: ../../../third_party/skia/modules/skshaper/src/SkShaper_primitive.cpp -FILE: ../../../third_party/skia/modules/svg/include/SkSVGAttribute.h -FILE: ../../../third_party/skia/modules/svg/include/SkSVGAttributeParser.h -FILE: ../../../third_party/skia/modules/svg/include/SkSVGCircle.h -FILE: ../../../third_party/skia/modules/svg/include/SkSVGClipPath.h -FILE: ../../../third_party/skia/modules/svg/include/SkSVGContainer.h -FILE: ../../../third_party/skia/modules/svg/include/SkSVGDOM.h -FILE: ../../../third_party/skia/modules/svg/include/SkSVGDefs.h -FILE: ../../../third_party/skia/modules/svg/include/SkSVGEllipse.h -FILE: ../../../third_party/skia/modules/svg/include/SkSVGG.h -FILE: ../../../third_party/skia/modules/svg/include/SkSVGHiddenContainer.h -FILE: ../../../third_party/skia/modules/svg/include/SkSVGIDMapper.h -FILE: ../../../third_party/skia/modules/svg/include/SkSVGLine.h -FILE: ../../../third_party/skia/modules/svg/include/SkSVGLinearGradient.h -FILE: ../../../third_party/skia/modules/svg/include/SkSVGNode.h -FILE: ../../../third_party/skia/modules/svg/include/SkSVGPath.h -FILE: ../../../third_party/skia/modules/svg/include/SkSVGPoly.h -FILE: ../../../third_party/skia/modules/svg/include/SkSVGRect.h -FILE: ../../../third_party/skia/modules/svg/include/SkSVGRenderContext.h -FILE: ../../../third_party/skia/modules/svg/include/SkSVGSVG.h -FILE: ../../../third_party/skia/modules/svg/include/SkSVGShape.h -FILE: ../../../third_party/skia/modules/svg/include/SkSVGStop.h -FILE: ../../../third_party/skia/modules/svg/include/SkSVGTransformableNode.h -FILE: ../../../third_party/skia/modules/svg/include/SkSVGTypes.h -FILE: ../../../third_party/skia/modules/svg/include/SkSVGValue.h -FILE: ../../../third_party/skia/modules/svg/src/SkSVGAttribute.cpp -FILE: ../../../third_party/skia/modules/svg/src/SkSVGAttributeParser.cpp -FILE: ../../../third_party/skia/modules/svg/src/SkSVGCircle.cpp -FILE: ../../../third_party/skia/modules/svg/src/SkSVGClipPath.cpp -FILE: ../../../third_party/skia/modules/svg/src/SkSVGContainer.cpp -FILE: ../../../third_party/skia/modules/svg/src/SkSVGDOM.cpp -FILE: ../../../third_party/skia/modules/svg/src/SkSVGEllipse.cpp -FILE: ../../../third_party/skia/modules/svg/src/SkSVGLine.cpp -FILE: ../../../third_party/skia/modules/svg/src/SkSVGLinearGradient.cpp -FILE: ../../../third_party/skia/modules/svg/src/SkSVGNode.cpp -FILE: ../../../third_party/skia/modules/svg/src/SkSVGPath.cpp -FILE: ../../../third_party/skia/modules/svg/src/SkSVGPoly.cpp -FILE: ../../../third_party/skia/modules/svg/src/SkSVGRect.cpp -FILE: ../../../third_party/skia/modules/svg/src/SkSVGRenderContext.cpp -FILE: ../../../third_party/skia/modules/svg/src/SkSVGSVG.cpp -FILE: ../../../third_party/skia/modules/svg/src/SkSVGShape.cpp -FILE: ../../../third_party/skia/modules/svg/src/SkSVGStop.cpp -FILE: ../../../third_party/skia/modules/svg/src/SkSVGTransformableNode.cpp -FILE: ../../../third_party/skia/modules/svg/src/SkSVGValue.cpp -FILE: ../../../third_party/skia/samplecode/DecodeFile.h -FILE: ../../../third_party/skia/samplecode/Sample.cpp -FILE: ../../../third_party/skia/samplecode/SampleAndroidShadows.cpp -FILE: ../../../third_party/skia/samplecode/SampleMegaStroke.cpp -FILE: ../../../third_party/skia/samplecode/SamplePathOverstroke.cpp -FILE: ../../../third_party/skia/samplecode/SampleSVGFile.cpp -FILE: ../../../third_party/skia/src/codec/SkRawCodec.cpp -FILE: ../../../third_party/skia/src/codec/SkRawCodec.h -FILE: ../../../third_party/skia/src/codec/SkStreamBuffer.cpp -FILE: ../../../third_party/skia/src/codec/SkStreamBuffer.h -FILE: ../../../third_party/skia/src/core/SkATrace.cpp -FILE: ../../../third_party/skia/src/core/SkATrace.h -FILE: ../../../third_party/skia/src/core/SkAnnotationKeys.h -FILE: ../../../third_party/skia/src/core/SkArenaAlloc.cpp -FILE: ../../../third_party/skia/src/core/SkArenaAlloc.h -FILE: ../../../third_party/skia/src/core/SkAutoMalloc.h -FILE: ../../../third_party/skia/src/core/SkAutoPixmapStorage.cpp -FILE: ../../../third_party/skia/src/core/SkAutoPixmapStorage.h -FILE: ../../../third_party/skia/src/core/SkBlendModePriv.h -FILE: ../../../third_party/skia/src/core/SkColorSpace.cpp -FILE: ../../../third_party/skia/src/core/SkColorSpacePriv.h -FILE: ../../../third_party/skia/src/core/SkCpu.cpp -FILE: ../../../third_party/skia/src/core/SkCpu.h -FILE: ../../../third_party/skia/src/core/SkFuzzLogging.h -FILE: ../../../third_party/skia/src/core/SkGlobalInitialization_core.cpp -FILE: ../../../third_party/skia/src/core/SkICC.cpp -FILE: ../../../third_party/skia/src/core/SkICCPriv.h -FILE: ../../../third_party/skia/src/core/SkImageFilterCache.cpp -FILE: ../../../third_party/skia/src/core/SkImageFilterCache.h -FILE: ../../../third_party/skia/src/core/SkLRUCache.h -FILE: ../../../third_party/skia/src/core/SkLeanWindows.h -FILE: ../../../third_party/skia/src/core/SkMSAN.h -FILE: ../../../third_party/skia/src/core/SkMatrixPriv.h -FILE: ../../../third_party/skia/src/core/SkOverdrawCanvas.cpp -FILE: ../../../third_party/skia/src/core/SkPathMeasurePriv.h -FILE: ../../../third_party/skia/src/core/SkRasterPipeline.cpp -FILE: ../../../third_party/skia/src/core/SkRasterPipeline.h -FILE: ../../../third_party/skia/src/core/SkRasterPipelineBlitter.cpp -FILE: ../../../third_party/skia/src/core/SkRecordedDrawable.cpp -FILE: ../../../third_party/skia/src/core/SkRecordedDrawable.h -FILE: ../../../third_party/skia/src/core/SkScaleToSides.h -FILE: ../../../third_party/skia/src/core/SkScopeExit.h -FILE: ../../../third_party/skia/src/core/SkSpecialImage.cpp -FILE: ../../../third_party/skia/src/core/SkSpecialImage.h -FILE: ../../../third_party/skia/src/core/SkSpecialSurface.cpp -FILE: ../../../third_party/skia/src/core/SkSpecialSurface.h -FILE: ../../../third_party/skia/src/core/SkSwizzle.cpp -FILE: ../../../third_party/skia/src/effects/SkOverdrawColorFilter.cpp -FILE: ../../../third_party/skia/src/effects/imagefilters/SkArithmeticImageFilter.cpp -FILE: ../../../third_party/skia/src/effects/imagefilters/SkShaderImageFilter.cpp -FILE: ../../../third_party/skia/src/gpu/Swizzle.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrAppliedClip.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrAuditTrail.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrAuditTrail.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrColorSpaceXform.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrColorSpaceXform.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrDirectContextPriv.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrFixedClip.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrOpsRenderPass.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrOpsRenderPass.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrProgramDesc.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrRenderTargetProxy.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrRenderTargetProxy.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrResourceHandle.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrScissorState.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrShaderVar.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrShaderVar.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrStencilSettings.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrStyle.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrStyle.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrSurfaceProxy.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrSurfaceProxy.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrTextureProxy.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrTextureProxy.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrTextureRenderTargetProxy.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrTextureRenderTargetProxy.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrUserStencilSettings.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrWindowRectangles.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrWindowRectsState.h -FILE: ../../../third_party/skia/src/gpu/ganesh/SurfaceContext.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/SurfaceContext.h -FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DPipelineStateDataManager.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrShadowGeoProc.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrShadowGeoProc.h -FILE: ../../../third_party/skia/src/gpu/ganesh/geometry/GrStyledShape.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/geometry/GrStyledShape.h -FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLBuffer.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLBuffer.h -FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLOpsRenderPass.h -FILE: ../../../third_party/skia/src/gpu/ganesh/gl/glfw/GrGLMakeNativeInterface_glfw.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/glsl/GrGLSLColorSpaceXformHelper.h -FILE: ../../../third_party/skia/src/gpu/ganesh/glsl/GrGLSLProgramDataManager.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/GrPathStencilSettings.h -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/RegionOp.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/RegionOp.h -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/ShadowRRectOp.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/ShadowRRectOp.h -FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkDescriptorPool.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkDescriptorPool.h -FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkDescriptorSet.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkDescriptorSet.h -FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkDescriptorSetManager.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkDescriptorSetManager.h -FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkFramebuffer.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkFramebuffer.h -FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkImageView.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkImageView.h -FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkOpsRenderPass.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkOpsRenderPass.h -FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkPipeline.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkPipeline.h -FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkPipelineState.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkPipelineState.h -FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkPipelineStateBuilder.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkPipelineStateBuilder.h -FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkPipelineStateCache.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkPipelineStateDataManager.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkPipelineStateDataManager.h -FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkResourceProvider.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkResourceProvider.h -FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkSampler.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkSampler.h -FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkUniformHandler.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkUniformHandler.h -FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkVaryingHandler.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkVaryingHandler.h -FILE: ../../../third_party/skia/src/gpu/vk/VulkanExtensions.cpp -FILE: ../../../third_party/skia/src/images/SkImageEncoderPriv.h -FILE: ../../../third_party/skia/src/opts/SkChecksum_opts.h -FILE: ../../../third_party/skia/src/opts/SkOpts_avx.cpp -FILE: ../../../third_party/skia/src/opts/SkOpts_crc32.cpp -FILE: ../../../third_party/skia/src/opts/SkOpts_sse42.cpp -FILE: ../../../third_party/skia/src/opts/SkSwizzler_opts.h -FILE: ../../../third_party/skia/src/pdf/SkBitmapKey.h -FILE: ../../../third_party/skia/src/pdf/SkPDFDocumentPriv.h -FILE: ../../../third_party/skia/src/pdf/SkPDFMakeCIDGlyphWidthsArray.cpp -FILE: ../../../third_party/skia/src/pdf/SkPDFMakeCIDGlyphWidthsArray.h -FILE: ../../../third_party/skia/src/pdf/SkPDFMakeToUnicodeCmap.h -FILE: ../../../third_party/skia/src/ports/SkFontConfigInterface.cpp -FILE: ../../../third_party/skia/src/ports/SkFontMgr_custom_empty_factory.cpp -FILE: ../../../third_party/skia/src/ports/SkImageGeneratorCG.cpp -FILE: ../../../third_party/skia/src/ports/SkImageGeneratorWIC.cpp -FILE: ../../../third_party/skia/src/shaders/SkColorFilterShader.h -FILE: ../../../third_party/skia/src/shaders/SkColorShader.cpp -FILE: ../../../third_party/skia/src/shaders/gradients/Sk4fGradientBase.cpp -FILE: ../../../third_party/skia/src/shaders/gradients/Sk4fGradientBase.h -FILE: ../../../third_party/skia/src/shaders/gradients/Sk4fGradientPriv.h -FILE: ../../../third_party/skia/src/shaders/gradients/Sk4fLinearGradient.cpp -FILE: ../../../third_party/skia/src/shaders/gradients/Sk4fLinearGradient.h -FILE: ../../../third_party/skia/src/sksl/SkSLCompiler.cpp -FILE: ../../../third_party/skia/src/sksl/SkSLCompiler.h -FILE: ../../../third_party/skia/src/sksl/SkSLContext.h -FILE: ../../../third_party/skia/src/sksl/SkSLMemoryLayout.h -FILE: ../../../third_party/skia/src/sksl/SkSLProgramSettings.h -FILE: ../../../third_party/skia/src/sksl/SkSLUtil.cpp -FILE: ../../../third_party/skia/src/sksl/SkSLUtil.h -FILE: ../../../third_party/skia/src/sksl/codegen/SkSLCodeGenerator.h -FILE: ../../../third_party/skia/src/sksl/codegen/SkSLGLSLCodeGenerator.cpp -FILE: ../../../third_party/skia/src/sksl/codegen/SkSLGLSLCodeGenerator.h -FILE: ../../../third_party/skia/src/sksl/codegen/SkSLMetalCodeGenerator.cpp -FILE: ../../../third_party/skia/src/sksl/codegen/SkSLMetalCodeGenerator.h -FILE: ../../../third_party/skia/src/sksl/codegen/SkSLSPIRVCodeGenerator.cpp -FILE: ../../../third_party/skia/src/sksl/codegen/SkSLSPIRVCodeGenerator.h -FILE: ../../../third_party/skia/src/sksl/ir/SkSLBinaryExpression.h -FILE: ../../../third_party/skia/src/sksl/ir/SkSLBlock.h -FILE: ../../../third_party/skia/src/sksl/ir/SkSLBreakStatement.h -FILE: ../../../third_party/skia/src/sksl/ir/SkSLConstructor.h -FILE: ../../../third_party/skia/src/sksl/ir/SkSLContinueStatement.h -FILE: ../../../third_party/skia/src/sksl/ir/SkSLDiscardStatement.h -FILE: ../../../third_party/skia/src/sksl/ir/SkSLDoStatement.h -FILE: ../../../third_party/skia/src/sksl/ir/SkSLExpression.h -FILE: ../../../third_party/skia/src/sksl/ir/SkSLExpressionStatement.h -FILE: ../../../third_party/skia/src/sksl/ir/SkSLExtension.h -FILE: ../../../third_party/skia/src/sksl/ir/SkSLField.h -FILE: ../../../third_party/skia/src/sksl/ir/SkSLFieldAccess.h -FILE: ../../../third_party/skia/src/sksl/ir/SkSLForStatement.h -FILE: ../../../third_party/skia/src/sksl/ir/SkSLFunctionCall.h -FILE: ../../../third_party/skia/src/sksl/ir/SkSLFunctionDeclaration.h -FILE: ../../../third_party/skia/src/sksl/ir/SkSLFunctionDefinition.h -FILE: ../../../third_party/skia/src/sksl/ir/SkSLFunctionReference.h -FILE: ../../../third_party/skia/src/sksl/ir/SkSLIfStatement.h -FILE: ../../../third_party/skia/src/sksl/ir/SkSLIndexExpression.h -FILE: ../../../third_party/skia/src/sksl/ir/SkSLInterfaceBlock.h -FILE: ../../../third_party/skia/src/sksl/ir/SkSLLiteral.h -FILE: ../../../third_party/skia/src/sksl/ir/SkSLModifiersDeclaration.h -FILE: ../../../third_party/skia/src/sksl/ir/SkSLNop.h -FILE: ../../../third_party/skia/src/sksl/ir/SkSLPostfixExpression.h -FILE: ../../../third_party/skia/src/sksl/ir/SkSLPrefixExpression.h -FILE: ../../../third_party/skia/src/sksl/ir/SkSLProgram.h -FILE: ../../../third_party/skia/src/sksl/ir/SkSLReturnStatement.h -FILE: ../../../third_party/skia/src/sksl/ir/SkSLSetting.h -FILE: ../../../third_party/skia/src/sksl/ir/SkSLSwizzle.h -FILE: ../../../third_party/skia/src/sksl/ir/SkSLSymbolTable.cpp -FILE: ../../../third_party/skia/src/sksl/ir/SkSLSymbolTable.h -FILE: ../../../third_party/skia/src/sksl/ir/SkSLTernaryExpression.h -FILE: ../../../third_party/skia/src/sksl/ir/SkSLType.cpp -FILE: ../../../third_party/skia/src/sksl/ir/SkSLType.h -FILE: ../../../third_party/skia/src/sksl/ir/SkSLTypeReference.h -FILE: ../../../third_party/skia/src/sksl/ir/SkSLVarDeclarations.h -FILE: ../../../third_party/skia/src/sksl/ir/SkSLVariable.h -FILE: ../../../third_party/skia/src/sksl/ir/SkSLVariableReference.h -FILE: ../../../third_party/skia/src/utils/SkMultiPictureDocument.cpp -FILE: ../../../third_party/skia/src/utils/SkMultiPictureDocument.h -FILE: ../../../third_party/skia/src/utils/SkMultiPictureDocumentPriv.h -FILE: ../../../third_party/skia/src/utils/SkOSPath.h ----------------------------------------------------------------------------------------------------- -Copyright 2016 Google Inc. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - - * Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: skia -ORIGIN: ../../../third_party/skia/bench/BenchLogger.cpp + ../../../third_party/skia/LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/skia/bench/BenchLogger.cpp -FILE: ../../../third_party/skia/bench/BenchLogger.h -FILE: ../../../third_party/skia/bench/ChecksumBench.cpp -FILE: ../../../third_party/skia/bench/FilteringBench.cpp -FILE: ../../../third_party/skia/bench/GameBench.cpp -FILE: ../../../third_party/skia/bench/GrMemoryPoolBench.cpp -FILE: ../../../third_party/skia/bench/LineBench.cpp -FILE: ../../../third_party/skia/bench/Matrix44Bench.cpp -FILE: ../../../third_party/skia/bench/MatrixConvolutionBench.cpp -FILE: ../../../third_party/skia/bench/MorphologyBench.cpp -FILE: ../../../third_party/skia/bench/ParagraphBench.cpp -FILE: ../../../third_party/skia/bench/RTreeBench.cpp -FILE: ../../../third_party/skia/bench/RefCntBench.cpp -FILE: ../../../third_party/skia/bench/TableBench.cpp -FILE: ../../../third_party/skia/gm/bigmatrix.cpp -FILE: ../../../third_party/skia/gm/blurrect.cpp -FILE: ../../../third_party/skia/gm/colorfilterimagefilter.cpp -FILE: ../../../third_party/skia/gm/composeshader.cpp -FILE: ../../../third_party/skia/gm/dashcubics.cpp -FILE: ../../../third_party/skia/gm/dashing.cpp -FILE: ../../../third_party/skia/gm/distantclip.cpp -FILE: ../../../third_party/skia/gm/fatpathfill.cpp -FILE: ../../../third_party/skia/gm/getpostextpath.cpp -FILE: ../../../third_party/skia/gm/imagefiltersgraph.cpp -FILE: ../../../third_party/skia/gm/imagemagnifier.cpp -FILE: ../../../third_party/skia/gm/lighting.cpp -FILE: ../../../third_party/skia/gm/matrixconvolution.cpp -FILE: ../../../third_party/skia/gm/modecolorfilters.cpp -FILE: ../../../third_party/skia/gm/morphology.cpp -FILE: ../../../third_party/skia/gm/patheffects.cpp -FILE: ../../../third_party/skia/gm/pathinterior.cpp -FILE: ../../../third_party/skia/gm/rrect.cpp -FILE: ../../../third_party/skia/gm/rrects.cpp -FILE: ../../../third_party/skia/gm/runtimeimagefilter.cpp -FILE: ../../../third_party/skia/gm/samplerstress.cpp -FILE: ../../../third_party/skia/gm/simpleaaclip.cpp -FILE: ../../../third_party/skia/gm/srcmode.cpp -FILE: ../../../third_party/skia/gm/strokerect.cpp -FILE: ../../../third_party/skia/gm/typeface.cpp -FILE: ../../../third_party/skia/gm/verylargebitmap.cpp -FILE: ../../../third_party/skia/include/core/SkAnnotation.h -FILE: ../../../third_party/skia/include/core/SkImage.h -FILE: ../../../third_party/skia/include/core/SkRRect.h -FILE: ../../../third_party/skia/include/core/SkStrokeRec.h -FILE: ../../../third_party/skia/include/core/SkSurface.h -FILE: ../../../third_party/skia/include/gpu/gl/GrGLFunctions.h -FILE: ../../../third_party/skia/include/pathops/SkPathOps.h -FILE: ../../../third_party/skia/include/private/SkChecksum.h -FILE: ../../../third_party/skia/include/private/SkPathRef.h -FILE: ../../../third_party/skia/include/private/SkWeakRefCnt.h -FILE: ../../../third_party/skia/include/utils/SkNullCanvas.h -FILE: ../../../third_party/skia/samplecode/SampleAnimBlur.cpp -FILE: ../../../third_party/skia/samplecode/SampleFatBits.cpp -FILE: ../../../third_party/skia/samplecode/SampleQuadStroker.cpp -FILE: ../../../third_party/skia/src/codec/SkColorTable.h -FILE: ../../../third_party/skia/src/core/SkAnnotation.cpp -FILE: ../../../third_party/skia/src/core/SkFontDescriptor.cpp -FILE: ../../../third_party/skia/src/core/SkFontDescriptor.h -FILE: ../../../third_party/skia/src/core/SkImagePriv.h -FILE: ../../../third_party/skia/src/core/SkMD5.cpp -FILE: ../../../third_party/skia/src/core/SkMD5.h -FILE: ../../../third_party/skia/src/core/SkMaskGamma.cpp -FILE: ../../../third_party/skia/src/core/SkMaskGamma.h -FILE: ../../../third_party/skia/src/core/SkMathPriv.h -FILE: ../../../third_party/skia/src/core/SkPaintDefaults.h -FILE: ../../../third_party/skia/src/core/SkRRect.cpp -FILE: ../../../third_party/skia/src/core/SkRTree.cpp -FILE: ../../../third_party/skia/src/core/SkRTree.h -FILE: ../../../third_party/skia/src/core/SkReadBuffer.cpp -FILE: ../../../third_party/skia/src/core/SkStrokeRec.cpp -FILE: ../../../third_party/skia/src/core/SkTInternalLList.h -FILE: ../../../third_party/skia/src/core/SkWriteBuffer.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrMemoryPool.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrMemoryPool.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrProcessor.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrProcessor.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrProcessorUnitTest.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrSWMaskHelper.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrSWMaskHelper.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrShaderCaps.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrShaderCaps.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrSurface.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrSurface.h -FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrGaussianConvolutionFragmentProcessor.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrGaussianConvolutionFragmentProcessor.h -FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLCaps.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLCaps.h -FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLProgramDataManager.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLProgramDataManager.h -FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLUtil.h -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/AAConvexPathRenderer.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/AAConvexPathRenderer.h -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/SoftwarePathRenderer.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/SoftwarePathRenderer.h -FILE: ../../../third_party/skia/src/image/SkImage.cpp -FILE: ../../../third_party/skia/src/image/SkImage_Base.h -FILE: ../../../third_party/skia/src/image/SkImage_Gpu.cpp -FILE: ../../../third_party/skia/src/image/SkImage_Raster.cpp -FILE: ../../../third_party/skia/src/image/SkSurface.cpp -FILE: ../../../third_party/skia/src/image/SkSurface_Base.h -FILE: ../../../third_party/skia/src/image/SkSurface_Gpu.cpp -FILE: ../../../third_party/skia/src/image/SkSurface_Raster.cpp -FILE: ../../../third_party/skia/src/pathops/SkAddIntersections.cpp -FILE: ../../../third_party/skia/src/pathops/SkAddIntersections.h -FILE: ../../../third_party/skia/src/pathops/SkDCubicLineIntersection.cpp -FILE: ../../../third_party/skia/src/pathops/SkDLineIntersection.cpp -FILE: ../../../third_party/skia/src/pathops/SkDQuadLineIntersection.cpp -FILE: ../../../third_party/skia/src/pathops/SkIntersectionHelper.h -FILE: ../../../third_party/skia/src/pathops/SkIntersections.cpp -FILE: ../../../third_party/skia/src/pathops/SkIntersections.h -FILE: ../../../third_party/skia/src/pathops/SkLineParameters.h -FILE: ../../../third_party/skia/src/pathops/SkOpAngle.cpp -FILE: ../../../third_party/skia/src/pathops/SkOpAngle.h -FILE: ../../../third_party/skia/src/pathops/SkOpCubicHull.cpp -FILE: ../../../third_party/skia/src/pathops/SkOpEdgeBuilder.cpp -FILE: ../../../third_party/skia/src/pathops/SkOpEdgeBuilder.h -FILE: ../../../third_party/skia/src/pathops/SkOpSegment.cpp -FILE: ../../../third_party/skia/src/pathops/SkOpSegment.h -FILE: ../../../third_party/skia/src/pathops/SkOpSpan.h -FILE: ../../../third_party/skia/src/pathops/SkPathOpsBounds.h -FILE: ../../../third_party/skia/src/pathops/SkPathOpsCommon.cpp -FILE: ../../../third_party/skia/src/pathops/SkPathOpsCommon.h -FILE: ../../../third_party/skia/src/pathops/SkPathOpsCubic.cpp -FILE: ../../../third_party/skia/src/pathops/SkPathOpsCubic.h -FILE: ../../../third_party/skia/src/pathops/SkPathOpsCurve.h -FILE: ../../../third_party/skia/src/pathops/SkPathOpsLine.cpp -FILE: ../../../third_party/skia/src/pathops/SkPathOpsLine.h -FILE: ../../../third_party/skia/src/pathops/SkPathOpsOp.cpp -FILE: ../../../third_party/skia/src/pathops/SkPathOpsPoint.h -FILE: ../../../third_party/skia/src/pathops/SkPathOpsQuad.cpp -FILE: ../../../third_party/skia/src/pathops/SkPathOpsQuad.h -FILE: ../../../third_party/skia/src/pathops/SkPathOpsRect.cpp -FILE: ../../../third_party/skia/src/pathops/SkPathOpsRect.h -FILE: ../../../third_party/skia/src/pathops/SkPathOpsSimplify.cpp -FILE: ../../../third_party/skia/src/pathops/SkPathOpsTypes.cpp -FILE: ../../../third_party/skia/src/pathops/SkPathOpsTypes.h -FILE: ../../../third_party/skia/src/pathops/SkPathWriter.cpp -FILE: ../../../third_party/skia/src/pathops/SkPathWriter.h -FILE: ../../../third_party/skia/src/pathops/SkReduceOrder.cpp -FILE: ../../../third_party/skia/src/pathops/SkReduceOrder.h -FILE: ../../../third_party/skia/src/sfnt/SkIBMFamilyClass.h -FILE: ../../../third_party/skia/src/sfnt/SkOTTableTypes.h -FILE: ../../../third_party/skia/src/sfnt/SkOTTable_OS_2.h -FILE: ../../../third_party/skia/src/sfnt/SkOTTable_OS_2_V0.h -FILE: ../../../third_party/skia/src/sfnt/SkOTTable_OS_2_V1.h -FILE: ../../../third_party/skia/src/sfnt/SkOTTable_OS_2_V2.h -FILE: ../../../third_party/skia/src/sfnt/SkOTTable_OS_2_V3.h -FILE: ../../../third_party/skia/src/sfnt/SkOTTable_OS_2_V4.h -FILE: ../../../third_party/skia/src/sfnt/SkOTTable_OS_2_VA.h -FILE: ../../../third_party/skia/src/sfnt/SkOTTable_glyf.h -FILE: ../../../third_party/skia/src/sfnt/SkOTTable_head.h -FILE: ../../../third_party/skia/src/sfnt/SkOTTable_hhea.h -FILE: ../../../third_party/skia/src/sfnt/SkOTTable_loca.h -FILE: ../../../third_party/skia/src/sfnt/SkOTTable_maxp.h -FILE: ../../../third_party/skia/src/sfnt/SkOTTable_maxp_CFF.h -FILE: ../../../third_party/skia/src/sfnt/SkOTTable_maxp_TT.h -FILE: ../../../third_party/skia/src/sfnt/SkOTTable_name.h -FILE: ../../../third_party/skia/src/sfnt/SkOTTable_post.h -FILE: ../../../third_party/skia/src/sfnt/SkOTUtils.cpp -FILE: ../../../third_party/skia/src/sfnt/SkOTUtils.h -FILE: ../../../third_party/skia/src/sfnt/SkPanose.h -FILE: ../../../third_party/skia/src/sfnt/SkSFNTHeader.h -FILE: ../../../third_party/skia/src/shaders/gradients/SkGradientShaderBase.h -FILE: ../../../third_party/skia/src/shaders/gradients/SkLinearGradient.cpp -FILE: ../../../third_party/skia/src/shaders/gradients/SkLinearGradient.h -FILE: ../../../third_party/skia/src/shaders/gradients/SkRadialGradient.cpp -FILE: ../../../third_party/skia/src/shaders/gradients/SkSweepGradient.cpp -FILE: ../../../third_party/skia/src/shaders/gradients/SkTwoPointConicalGradient.cpp -FILE: ../../../third_party/skia/src/utils/SkFloatUtils.h -FILE: ../../../third_party/skia/src/utils/SkNullCanvas.cpp -FILE: ../../../third_party/skia/src/utils/win/SkDWriteFontFileStream.cpp -FILE: ../../../third_party/skia/src/utils/win/SkDWriteFontFileStream.h -FILE: ../../../third_party/skia/src/utils/win/SkDWriteGeometrySink.cpp -FILE: ../../../third_party/skia/src/utils/win/SkDWriteGeometrySink.h ----------------------------------------------------------------------------------------------------- -Copyright 2012 Google Inc. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - - * Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: skia -ORIGIN: ../../../third_party/skia/bench/BigPath.cpp + ../../../third_party/skia/LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/skia/bench/BigPath.cpp -FILE: ../../../third_party/skia/bench/BigPath.h -FILE: ../../../third_party/skia/bench/CanvasSaveRestoreBench.cpp -FILE: ../../../third_party/skia/bench/TriangulatorBench.cpp -FILE: ../../../third_party/skia/experimental/bazel_test/hello_world.go -FILE: ../../../third_party/skia/experimental/lowp-basic/QMath.h -FILE: ../../../third_party/skia/experimental/lowp-basic/bilerp-study.cpp -FILE: ../../../third_party/skia/experimental/lowp-basic/lerp-study.cpp -FILE: ../../../third_party/skia/experimental/lowp-basic/lowp_experiments.cpp -FILE: ../../../third_party/skia/experimental/tskit/bindings/bindings.h -FILE: ../../../third_party/skia/experimental/tskit/bindings/core.cpp -FILE: ../../../third_party/skia/experimental/tskit/bindings/extension.cpp -FILE: ../../../third_party/skia/experimental/webgpu-bazel/src/bindings.cpp -FILE: ../../../third_party/skia/gm/attributes.cpp -FILE: ../../../third_party/skia/gm/composecolorfilter.cpp -FILE: ../../../third_party/skia/gm/crbug_1167277.cpp -FILE: ../../../third_party/skia/gm/crbug_1174186.cpp -FILE: ../../../third_party/skia/gm/crbug_1174354.cpp -FILE: ../../../third_party/skia/gm/crbug_1177833.cpp -FILE: ../../../third_party/skia/gm/crbug_1257515.cpp -FILE: ../../../third_party/skia/gm/crop_imagefilter.cpp -FILE: ../../../third_party/skia/gm/fillrect_gradient.cpp -FILE: ../../../third_party/skia/gm/graphitestart.cpp -FILE: ../../../third_party/skia/gm/hardstop_gradients_many.cpp -FILE: ../../../third_party/skia/gm/lazytiling.cpp -FILE: ../../../third_party/skia/gm/mesh.cpp -FILE: ../../../third_party/skia/gm/particles.cpp -FILE: ../../../third_party/skia/include/core/SkBlender.h -FILE: ../../../third_party/skia/include/core/SkMesh.h -FILE: ../../../third_party/skia/include/effects/SkBlenders.h -FILE: ../../../third_party/skia/include/gpu/GrSurfaceInfo.h -FILE: ../../../third_party/skia/include/gpu/ShaderErrorHandler.h -FILE: ../../../third_party/skia/include/gpu/gl/egl/GrGLMakeEGLInterface.h -FILE: ../../../third_party/skia/include/gpu/gl/glx/GrGLMakeGLXInterface.h -FILE: ../../../third_party/skia/include/gpu/graphite/BackendTexture.h -FILE: ../../../third_party/skia/include/gpu/graphite/Context.h -FILE: ../../../third_party/skia/include/gpu/graphite/GraphiteTypes.h -FILE: ../../../third_party/skia/include/gpu/graphite/Recorder.h -FILE: ../../../third_party/skia/include/gpu/graphite/Recording.h -FILE: ../../../third_party/skia/include/gpu/graphite/TextureInfo.h -FILE: ../../../third_party/skia/include/gpu/graphite/mtl/MtlBackendContext.h -FILE: ../../../third_party/skia/include/gpu/graphite/mtl/MtlTypes.h -FILE: ../../../third_party/skia/include/private/chromium/GrSlug.h -FILE: ../../../third_party/skia/include/private/chromium/Slug.h -FILE: ../../../third_party/skia/include/private/gpu/ganesh/GrDawnTypesPriv.h -FILE: ../../../third_party/skia/include/private/gpu/ganesh/GrMockTypesPriv.h -FILE: ../../../third_party/skia/include/sksl/DSLSymbols.h -FILE: ../../../third_party/skia/include/sksl/SkSLOperator.h -FILE: ../../../third_party/skia/modules/canvaskit/paragraph_bindings_gen.cpp -FILE: ../../../third_party/skia/src/core/SkBlendModeBlender.cpp -FILE: ../../../third_party/skia/src/core/SkBlendModeBlender.h -FILE: ../../../third_party/skia/src/core/SkBlenderBase.h -FILE: ../../../third_party/skia/src/core/SkEnumBitMask.h -FILE: ../../../third_party/skia/src/core/SkMatrixInvert.cpp -FILE: ../../../third_party/skia/src/core/SkMatrixInvert.h -FILE: ../../../third_party/skia/src/core/SkMesh.cpp -FILE: ../../../third_party/skia/src/core/SkMeshPriv.h -FILE: ../../../third_party/skia/src/core/SkUniform.h -FILE: ../../../third_party/skia/src/core/SkVMBlitter.h -FILE: ../../../third_party/skia/src/core/SkYUVAInfoLocation.h -FILE: ../../../third_party/skia/src/effects/SkBlenders.cpp -FILE: ../../../third_party/skia/src/effects/imagefilters/SkCropImageFilter.cpp -FILE: ../../../third_party/skia/src/effects/imagefilters/SkCropImageFilter.h -FILE: ../../../third_party/skia/src/effects/imagefilters/SkRuntimeImageFilter.cpp -FILE: ../../../third_party/skia/src/effects/imagefilters/SkRuntimeImageFilter.h -FILE: ../../../third_party/skia/src/gpu/KeyBuilder.h -FILE: ../../../third_party/skia/src/gpu/ResourceKey.cpp -FILE: ../../../third_party/skia/src/gpu/ShaderErrorHandler.cpp -FILE: ../../../third_party/skia/src/gpu/SkRenderEngineAbortf.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrDstProxyView.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrEagerVertexAllocator.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrMeshDrawTarget.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrMeshDrawTarget.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrOpsTypes.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrPersistentCacheUtils.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrSurfaceInfo.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrWritePixelsRenderTask.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrWritePixelsRenderTask.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrYUVATextureProxies.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrYUVATextureProxies.h -FILE: ../../../third_party/skia/src/gpu/ganesh/SurfaceFillContext.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/SurfaceFillContext.h -FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DTypesPriv.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/dawn/GrDawnTypesPriv.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/geometry/GrInnerFanTriangulator.h -FILE: ../../../third_party/skia/src/gpu/ganesh/gl/egl/GrGLMakeNativeInterface_egl.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/gl/glx/GrGLMakeNativeInterface_glx.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlTypesPriv.mm -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/DrawMeshOp.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/DrawMeshOp.h -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/FillPathFlags.h -FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkBuffer.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkBuffer.h -FILE: ../../../third_party/skia/src/gpu/graphite/Attribute.h -FILE: ../../../third_party/skia/src/gpu/graphite/BackendTexture.cpp -FILE: ../../../third_party/skia/src/gpu/graphite/Caps.cpp -FILE: ../../../third_party/skia/src/gpu/graphite/Caps.h -FILE: ../../../third_party/skia/src/gpu/graphite/CommandBuffer.cpp -FILE: ../../../third_party/skia/src/gpu/graphite/CommandBuffer.h -FILE: ../../../third_party/skia/src/gpu/graphite/Context.cpp -FILE: ../../../third_party/skia/src/gpu/graphite/ContextPriv.h -FILE: ../../../third_party/skia/src/gpu/graphite/ContextUtils.cpp -FILE: ../../../third_party/skia/src/gpu/graphite/ContextUtils.h -FILE: ../../../third_party/skia/src/gpu/graphite/CopyTask.cpp -FILE: ../../../third_party/skia/src/gpu/graphite/CopyTask.h -FILE: ../../../third_party/skia/src/gpu/graphite/Device.cpp -FILE: ../../../third_party/skia/src/gpu/graphite/Device.h -FILE: ../../../third_party/skia/src/gpu/graphite/DrawContext.cpp -FILE: ../../../third_party/skia/src/gpu/graphite/DrawContext.h -FILE: ../../../third_party/skia/src/gpu/graphite/DrawList.cpp -FILE: ../../../third_party/skia/src/gpu/graphite/DrawList.h -FILE: ../../../third_party/skia/src/gpu/graphite/DrawOrder.h -FILE: ../../../third_party/skia/src/gpu/graphite/DrawPass.cpp -FILE: ../../../third_party/skia/src/gpu/graphite/DrawPass.h -FILE: ../../../third_party/skia/src/gpu/graphite/DrawTypes.h -FILE: ../../../third_party/skia/src/gpu/graphite/DrawWriter.cpp -FILE: ../../../third_party/skia/src/gpu/graphite/DrawWriter.h -FILE: ../../../third_party/skia/src/gpu/graphite/GpuWorkSubmission.h -FILE: ../../../third_party/skia/src/gpu/graphite/GraphicsPipeline.cpp -FILE: ../../../third_party/skia/src/gpu/graphite/GraphicsPipeline.h -FILE: ../../../third_party/skia/src/gpu/graphite/GraphicsPipelineDesc.h -FILE: ../../../third_party/skia/src/gpu/graphite/Image_Graphite.cpp -FILE: ../../../third_party/skia/src/gpu/graphite/Image_Graphite.h -FILE: ../../../third_party/skia/src/gpu/graphite/PipelineDataCache.h -FILE: ../../../third_party/skia/src/gpu/graphite/Recorder.cpp -FILE: ../../../third_party/skia/src/gpu/graphite/Recording.cpp -FILE: ../../../third_party/skia/src/gpu/graphite/RenderPassTask.cpp -FILE: ../../../third_party/skia/src/gpu/graphite/RenderPassTask.h -FILE: ../../../third_party/skia/src/gpu/graphite/Renderer.h -FILE: ../../../third_party/skia/src/gpu/graphite/ResourceProvider.cpp -FILE: ../../../third_party/skia/src/gpu/graphite/ResourceProvider.h -FILE: ../../../third_party/skia/src/gpu/graphite/ResourceTypes.h -FILE: ../../../third_party/skia/src/gpu/graphite/SharedContext.cpp -FILE: ../../../third_party/skia/src/gpu/graphite/SharedContext.h -FILE: ../../../third_party/skia/src/gpu/graphite/Surface_Graphite.cpp -FILE: ../../../third_party/skia/src/gpu/graphite/Surface_Graphite.h -FILE: ../../../third_party/skia/src/gpu/graphite/Task.cpp -FILE: ../../../third_party/skia/src/gpu/graphite/Task.h -FILE: ../../../third_party/skia/src/gpu/graphite/TaskGraph.cpp -FILE: ../../../third_party/skia/src/gpu/graphite/TaskGraph.h -FILE: ../../../third_party/skia/src/gpu/graphite/Texture.cpp -FILE: ../../../third_party/skia/src/gpu/graphite/Texture.h -FILE: ../../../third_party/skia/src/gpu/graphite/TextureInfo.cpp -FILE: ../../../third_party/skia/src/gpu/graphite/TextureProxy.cpp -FILE: ../../../third_party/skia/src/gpu/graphite/TextureProxy.h -FILE: ../../../third_party/skia/src/gpu/graphite/UniformManager.cpp -FILE: ../../../third_party/skia/src/gpu/graphite/UniformManager.h -FILE: ../../../third_party/skia/src/gpu/graphite/geom/BoundsManager.h -FILE: ../../../third_party/skia/src/gpu/graphite/geom/IntersectionTree.cpp -FILE: ../../../third_party/skia/src/gpu/graphite/geom/IntersectionTree.h -FILE: ../../../third_party/skia/src/gpu/graphite/geom/Rect.h -FILE: ../../../third_party/skia/src/gpu/graphite/geom/Shape.cpp -FILE: ../../../third_party/skia/src/gpu/graphite/geom/Shape.h -FILE: ../../../third_party/skia/src/gpu/graphite/geom/Transform.cpp -FILE: ../../../third_party/skia/src/gpu/graphite/geom/Transform_graphite.h -FILE: ../../../third_party/skia/src/gpu/graphite/mtl/MtlCaps.h -FILE: ../../../third_party/skia/src/gpu/graphite/mtl/MtlCaps.mm -FILE: ../../../third_party/skia/src/gpu/graphite/mtl/MtlCommandBuffer.h -FILE: ../../../third_party/skia/src/gpu/graphite/mtl/MtlCommandBuffer.mm -FILE: ../../../third_party/skia/src/gpu/graphite/mtl/MtlGraphicsPipeline.h -FILE: ../../../third_party/skia/src/gpu/graphite/mtl/MtlGraphicsPipeline.mm -FILE: ../../../third_party/skia/src/gpu/graphite/mtl/MtlResourceProvider.h -FILE: ../../../third_party/skia/src/gpu/graphite/mtl/MtlResourceProvider.mm -FILE: ../../../third_party/skia/src/gpu/graphite/mtl/MtlSharedContext.h -FILE: ../../../third_party/skia/src/gpu/graphite/mtl/MtlSharedContext.mm -FILE: ../../../third_party/skia/src/gpu/graphite/mtl/MtlTexture.h -FILE: ../../../third_party/skia/src/gpu/graphite/mtl/MtlTexture.mm -FILE: ../../../third_party/skia/src/gpu/graphite/mtl/MtlTypesPriv.mm -FILE: ../../../third_party/skia/src/gpu/graphite/mtl/MtlUtils.h -FILE: ../../../third_party/skia/src/gpu/mtl/MtlMemoryAllocatorImpl.h -FILE: ../../../third_party/skia/src/gpu/mtl/MtlMemoryAllocatorImpl.mm -FILE: ../../../third_party/skia/src/sksl/SkSLBuiltinTypes.cpp -FILE: ../../../third_party/skia/src/sksl/SkSLBuiltinTypes.h -FILE: ../../../third_party/skia/src/sksl/SkSLContext.cpp -FILE: ../../../third_party/skia/src/sksl/SkSLIntrinsicList.h -FILE: ../../../third_party/skia/src/sksl/SkSLMangler.h -FILE: ../../../third_party/skia/src/sksl/SkSLOperator.cpp -FILE: ../../../third_party/skia/src/sksl/SkSLThreadContext.h -FILE: ../../../third_party/skia/src/sksl/analysis/SkSLCanExitWithoutReturningValue.cpp -FILE: ../../../third_party/skia/src/sksl/analysis/SkSLCheckProgramStructure.cpp -FILE: ../../../third_party/skia/src/sksl/analysis/SkSLGetLoopUnrollInfo.cpp -FILE: ../../../third_party/skia/src/sksl/analysis/SkSLIsConstantExpression.cpp -FILE: ../../../third_party/skia/src/sksl/analysis/SkSLProgramUsage.cpp -FILE: ../../../third_party/skia/src/sksl/analysis/SkSLProgramVisitor.h -FILE: ../../../third_party/skia/src/sksl/analysis/SkSLSwitchCaseContainsExit.cpp -FILE: ../../../third_party/skia/src/sksl/ir/SkSLBinaryExpression.cpp -FILE: ../../../third_party/skia/src/sksl/ir/SkSLBlock.cpp -FILE: ../../../third_party/skia/src/sksl/ir/SkSLChildCall.cpp -FILE: ../../../third_party/skia/src/sksl/ir/SkSLChildCall.h -FILE: ../../../third_party/skia/src/sksl/ir/SkSLConstructorArray.cpp -FILE: ../../../third_party/skia/src/sksl/ir/SkSLConstructorArray.h -FILE: ../../../third_party/skia/src/sksl/ir/SkSLConstructorArrayCast.cpp -FILE: ../../../third_party/skia/src/sksl/ir/SkSLConstructorArrayCast.h -FILE: ../../../third_party/skia/src/sksl/ir/SkSLConstructorCompound.cpp -FILE: ../../../third_party/skia/src/sksl/ir/SkSLConstructorCompound.h -FILE: ../../../third_party/skia/src/sksl/ir/SkSLConstructorCompoundCast.cpp -FILE: ../../../third_party/skia/src/sksl/ir/SkSLConstructorCompoundCast.h -FILE: ../../../third_party/skia/src/sksl/ir/SkSLConstructorDiagonalMatrix.cpp -FILE: ../../../third_party/skia/src/sksl/ir/SkSLConstructorDiagonalMatrix.h -FILE: ../../../third_party/skia/src/sksl/ir/SkSLConstructorMatrixResize.cpp -FILE: ../../../third_party/skia/src/sksl/ir/SkSLConstructorMatrixResize.h -FILE: ../../../third_party/skia/src/sksl/ir/SkSLConstructorScalarCast.cpp -FILE: ../../../third_party/skia/src/sksl/ir/SkSLConstructorScalarCast.h -FILE: ../../../third_party/skia/src/sksl/ir/SkSLConstructorSplat.cpp -FILE: ../../../third_party/skia/src/sksl/ir/SkSLConstructorSplat.h -FILE: ../../../third_party/skia/src/sksl/ir/SkSLConstructorStruct.cpp -FILE: ../../../third_party/skia/src/sksl/ir/SkSLConstructorStruct.h -FILE: ../../../third_party/skia/src/sksl/ir/SkSLDoStatement.cpp -FILE: ../../../third_party/skia/src/sksl/ir/SkSLExpressionStatement.cpp -FILE: ../../../third_party/skia/src/sksl/ir/SkSLFieldAccess.cpp -FILE: ../../../third_party/skia/src/sksl/ir/SkSLForStatement.cpp -FILE: ../../../third_party/skia/src/sksl/ir/SkSLFunctionCall.cpp -FILE: ../../../third_party/skia/src/sksl/ir/SkSLFunctionDefinition.cpp -FILE: ../../../third_party/skia/src/sksl/ir/SkSLIfStatement.cpp -FILE: ../../../third_party/skia/src/sksl/ir/SkSLIndexExpression.cpp -FILE: ../../../third_party/skia/src/sksl/ir/SkSLMethodReference.h -FILE: ../../../third_party/skia/src/sksl/ir/SkSLPostfixExpression.cpp -FILE: ../../../third_party/skia/src/sksl/ir/SkSLSwitchStatement.cpp -FILE: ../../../third_party/skia/src/sksl/ir/SkSLSwizzle.cpp -FILE: ../../../third_party/skia/src/sksl/ir/SkSLTernaryExpression.cpp -FILE: ../../../third_party/skia/src/sksl/ir/SkSLTypeReference.cpp -FILE: ../../../third_party/skia/src/sksl/ir/SkSLVarDeclarations.cpp -FILE: ../../../third_party/skia/src/sksl/tracing/SkVMDebugTrace.cpp -FILE: ../../../third_party/skia/src/sksl/tracing/SkVMDebugTrace.h -FILE: ../../../third_party/skia/src/sksl/tracing/SkVMDebugTracePlayer.cpp -FILE: ../../../third_party/skia/src/sksl/tracing/SkVMDebugTracePlayer.h -FILE: ../../../third_party/skia/src/sksl/transform/SkSLEliminateDeadFunctions.cpp -FILE: ../../../third_party/skia/src/sksl/transform/SkSLEliminateDeadGlobalVariables.cpp -FILE: ../../../third_party/skia/src/sksl/transform/SkSLEliminateDeadLocalVariables.cpp -FILE: ../../../third_party/skia/src/sksl/transform/SkSLEliminateUnreachableCode.cpp -FILE: ../../../third_party/skia/src/sksl/transform/SkSLProgramWriter.h -FILE: ../../../third_party/skia/src/text/gpu/Slug.cpp -FILE: ../../../third_party/skia/src/text/gpu/SubRunAllocator.cpp -FILE: ../../../third_party/skia/src/text/gpu/SubRunAllocator.h -FILE: ../../../third_party/skia/src/utils/SkVMVisualizer.cpp -FILE: ../../../third_party/skia/src/utils/SkVMVisualizer.h ----------------------------------------------------------------------------------------------------- -Copyright 2021 Google LLC - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - - * Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: skia -ORIGIN: ../../../third_party/skia/bench/BigPathBench.cpp + ../../../third_party/skia/LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/skia/bench/BigPathBench.cpp -FILE: ../../../third_party/skia/bench/BitmapRegionDecoderBench.cpp -FILE: ../../../third_party/skia/bench/BitmapRegionDecoderBench.h -FILE: ../../../third_party/skia/bench/CodecBench.cpp -FILE: ../../../third_party/skia/bench/CodecBench.h -FILE: ../../../third_party/skia/bench/CodecBenchPriv.h -FILE: ../../../third_party/skia/bench/ControlBench.cpp -FILE: ../../../third_party/skia/bench/DrawBitmapAABench.cpp -FILE: ../../../third_party/skia/bench/ImageBench.cpp -FILE: ../../../third_party/skia/bench/InterpBench.cpp -FILE: ../../../third_party/skia/bench/MathBench.cpp -FILE: ../../../third_party/skia/bench/MipmapBench.cpp -FILE: ../../../third_party/skia/bench/PictureOverheadBench.cpp -FILE: ../../../third_party/skia/bench/SKPAnimationBench.cpp -FILE: ../../../third_party/skia/bench/SKPAnimationBench.h -FILE: ../../../third_party/skia/bench/Sk4fBench.cpp -FILE: ../../../third_party/skia/bench/SkGlyphCacheBench.cpp -FILE: ../../../third_party/skia/bench/StrokeBench.cpp -FILE: ../../../third_party/skia/bench/TextBlobBench.cpp -FILE: ../../../third_party/skia/bench/TopoSortBench.cpp -FILE: ../../../third_party/skia/bench/nanobench.h -FILE: ../../../third_party/skia/client_utils/android/BRDAllocator.h -FILE: ../../../third_party/skia/client_utils/android/BitmapRegionDecoder.cpp -FILE: ../../../third_party/skia/client_utils/android/BitmapRegionDecoder.h -FILE: ../../../third_party/skia/client_utils/android/BitmapRegionDecoderPriv.h -FILE: ../../../third_party/skia/dm/DMSrcSink.cpp -FILE: ../../../third_party/skia/dm/DMSrcSink.h -FILE: ../../../third_party/skia/experimental/tools/coreGraphicsPdf2png.cpp -FILE: ../../../third_party/skia/gm/aaxfermodes.cpp -FILE: ../../../third_party/skia/gm/addarc.cpp -FILE: ../../../third_party/skia/gm/all_bitmap_configs.cpp -FILE: ../../../third_party/skia/gm/anisotropic.cpp -FILE: ../../../third_party/skia/gm/annotated_text.cpp -FILE: ../../../third_party/skia/gm/badpaint.cpp -FILE: ../../../third_party/skia/gm/bigrrectaaeffect.cpp -FILE: ../../../third_party/skia/gm/bigtileimagefilter.cpp -FILE: ../../../third_party/skia/gm/blend.cpp -FILE: ../../../third_party/skia/gm/blurredclippedcircle.cpp -FILE: ../../../third_party/skia/gm/bmpfilterqualityrepeat.cpp -FILE: ../../../third_party/skia/gm/concavepaths.cpp -FILE: ../../../third_party/skia/gm/constcolorprocessor.cpp -FILE: ../../../third_party/skia/gm/convex_all_line_paths.cpp -FILE: ../../../third_party/skia/gm/draw_bitmap_rect_skbug4374.cpp -FILE: ../../../third_party/skia/gm/drawable.cpp -FILE: ../../../third_party/skia/gm/drawatlas.cpp -FILE: ../../../third_party/skia/gm/drawatlascolor.cpp -FILE: ../../../third_party/skia/gm/drawminibitmaprect.cpp -FILE: ../../../third_party/skia/gm/fadefilter.cpp -FILE: ../../../third_party/skia/gm/fontscalerdistortable.cpp -FILE: ../../../third_party/skia/gm/image_pict.cpp -FILE: ../../../third_party/skia/gm/image_shader.cpp -FILE: ../../../third_party/skia/gm/imagefilters.cpp -FILE: ../../../third_party/skia/gm/imagefiltersstroked.cpp -FILE: ../../../third_party/skia/gm/imagefilterstransformed.cpp -FILE: ../../../third_party/skia/gm/imagefromyuvtextures.cpp -FILE: ../../../third_party/skia/gm/imagescalealigned.cpp -FILE: ../../../third_party/skia/gm/imagesource2.cpp -FILE: ../../../third_party/skia/gm/largeglyphblur.cpp -FILE: ../../../third_party/skia/gm/lcdblendmodes.cpp -FILE: ../../../third_party/skia/gm/lcdoverlap.cpp -FILE: ../../../third_party/skia/gm/localmatriximagefilter.cpp -FILE: ../../../third_party/skia/gm/localmatriximageshader.cpp -FILE: ../../../third_party/skia/gm/mipmap.cpp -FILE: ../../../third_party/skia/gm/path_stroke_with_zero_length.cpp -FILE: ../../../third_party/skia/gm/pathcontourstart.cpp -FILE: ../../../third_party/skia/gm/pdf_never_embed.cpp -FILE: ../../../third_party/skia/gm/perspshaders.cpp -FILE: ../../../third_party/skia/gm/pictureimagegenerator.cpp -FILE: ../../../third_party/skia/gm/pixelsnap.cpp -FILE: ../../../third_party/skia/gm/plus.cpp -FILE: ../../../third_party/skia/gm/repeated_bitmap.cpp -FILE: ../../../third_party/skia/gm/scaledstrokes.cpp -FILE: ../../../third_party/skia/gm/skbug_257.cpp -FILE: ../../../third_party/skia/gm/smallpaths.cpp -FILE: ../../../third_party/skia/gm/stlouisarch.cpp -FILE: ../../../third_party/skia/gm/textblobcolortrans.cpp -FILE: ../../../third_party/skia/gm/textblobgeometrychange.cpp -FILE: ../../../third_party/skia/gm/textblobmixedsizes.cpp -FILE: ../../../third_party/skia/gm/textblobrandomfont.cpp -FILE: ../../../third_party/skia/gm/textblobtransforms.cpp -FILE: ../../../third_party/skia/gm/textblobuseaftergpufree.cpp -FILE: ../../../third_party/skia/gm/transparency.cpp -FILE: ../../../third_party/skia/include/codec/SkAndroidCodec.h -FILE: ../../../third_party/skia/include/codec/SkCodec.h -FILE: ../../../third_party/skia/include/core/SkEncodedImageFormat.h -FILE: ../../../third_party/skia/include/core/SkPathBuilder.h -FILE: ../../../third_party/skia/include/core/SkPixmap.h -FILE: ../../../third_party/skia/include/core/SkPngChunkReader.h -FILE: ../../../third_party/skia/include/core/SkPoint3.h -FILE: ../../../third_party/skia/include/core/SkRSXform.h -FILE: ../../../third_party/skia/include/core/SkTraceMemoryDump.h -FILE: ../../../third_party/skia/include/effects/SkTableColorFilter.h -FILE: ../../../third_party/skia/include/gpu/GrContextOptions.h -FILE: ../../../third_party/skia/include/gpu/gl/GrGLTypes.h -FILE: ../../../third_party/skia/include/ports/SkFontMgr_android.h -FILE: ../../../third_party/skia/include/ports/SkFontMgr_directory.h -FILE: ../../../third_party/skia/include/ports/SkFontMgr_empty.h -FILE: ../../../third_party/skia/include/ports/SkFontMgr_fontconfig.h -FILE: ../../../third_party/skia/include/private/SkMutex.h -FILE: ../../../third_party/skia/include/private/SkSemaphore.h -FILE: ../../../third_party/skia/include/private/SkSpinlock.h -FILE: ../../../third_party/skia/include/private/SkTHash.h -FILE: ../../../third_party/skia/include/private/SkThreadID.h -FILE: ../../../third_party/skia/include/svg/SkSVGCanvas.h -FILE: ../../../third_party/skia/include/utils/SkPaintFilterCanvas.h -FILE: ../../../third_party/skia/samplecode/SampleAnimatedText.cpp -FILE: ../../../third_party/skia/samplecode/SampleAtlas.cpp -FILE: ../../../third_party/skia/samplecode/SampleShip.cpp -FILE: ../../../third_party/skia/samplecode/SampleXfer.cpp -FILE: ../../../third_party/skia/src/codec/SkAndroidCodec.cpp -FILE: ../../../third_party/skia/src/codec/SkAndroidCodecAdapter.cpp -FILE: ../../../third_party/skia/src/codec/SkAndroidCodecAdapter.h -FILE: ../../../third_party/skia/src/codec/SkBmpCodec.cpp -FILE: ../../../third_party/skia/src/codec/SkBmpCodec.h -FILE: ../../../third_party/skia/src/codec/SkBmpMaskCodec.cpp -FILE: ../../../third_party/skia/src/codec/SkBmpMaskCodec.h -FILE: ../../../third_party/skia/src/codec/SkBmpRLECodec.cpp -FILE: ../../../third_party/skia/src/codec/SkBmpRLECodec.h -FILE: ../../../third_party/skia/src/codec/SkBmpStandardCodec.cpp -FILE: ../../../third_party/skia/src/codec/SkBmpStandardCodec.h -FILE: ../../../third_party/skia/src/codec/SkCodec.cpp -FILE: ../../../third_party/skia/src/codec/SkCodecImageGenerator.cpp -FILE: ../../../third_party/skia/src/codec/SkCodecImageGenerator.h -FILE: ../../../third_party/skia/src/codec/SkIcoCodec.cpp -FILE: ../../../third_party/skia/src/codec/SkIcoCodec.h -FILE: ../../../third_party/skia/src/codec/SkJpegCodec.cpp -FILE: ../../../third_party/skia/src/codec/SkJpegCodec.h -FILE: ../../../third_party/skia/src/codec/SkJpegDecoderMgr.cpp -FILE: ../../../third_party/skia/src/codec/SkJpegDecoderMgr.h -FILE: ../../../third_party/skia/src/codec/SkJpegUtility.cpp -FILE: ../../../third_party/skia/src/codec/SkJpegUtility.h -FILE: ../../../third_party/skia/src/codec/SkMaskSwizzler.cpp -FILE: ../../../third_party/skia/src/codec/SkMaskSwizzler.h -FILE: ../../../third_party/skia/src/codec/SkMasks.cpp -FILE: ../../../third_party/skia/src/codec/SkMasks.h -FILE: ../../../third_party/skia/src/codec/SkPngCodec.cpp -FILE: ../../../third_party/skia/src/codec/SkPngCodec.h -FILE: ../../../third_party/skia/src/codec/SkSampledCodec.cpp -FILE: ../../../third_party/skia/src/codec/SkSampledCodec.h -FILE: ../../../third_party/skia/src/codec/SkSampler.cpp -FILE: ../../../third_party/skia/src/codec/SkSampler.h -FILE: ../../../third_party/skia/src/codec/SkSwizzler.cpp -FILE: ../../../third_party/skia/src/codec/SkSwizzler.h -FILE: ../../../third_party/skia/src/codec/SkWbmpCodec.cpp -FILE: ../../../third_party/skia/src/codec/SkWbmpCodec.h -FILE: ../../../third_party/skia/src/codec/SkWebpCodec.cpp -FILE: ../../../third_party/skia/src/codec/SkWebpCodec.h -FILE: ../../../third_party/skia/src/core/Sk4px.h -FILE: ../../../third_party/skia/src/core/SkBigPicture.cpp -FILE: ../../../third_party/skia/src/core/SkBigPicture.h -FILE: ../../../third_party/skia/src/core/SkFontMgr.cpp -FILE: ../../../third_party/skia/src/core/SkLatticeIter.cpp -FILE: ../../../third_party/skia/src/core/SkLatticeIter.h -FILE: ../../../third_party/skia/src/core/SkLocalMatrixImageFilter.cpp -FILE: ../../../third_party/skia/src/core/SkMipmapAccessor.cpp -FILE: ../../../third_party/skia/src/core/SkMipmapAccessor.h -FILE: ../../../third_party/skia/src/core/SkNextID.h -FILE: ../../../third_party/skia/src/core/SkOpts.cpp -FILE: ../../../third_party/skia/src/core/SkOpts.h -FILE: ../../../third_party/skia/src/core/SkPathBuilder.cpp -FILE: ../../../third_party/skia/src/core/SkPathPriv.h -FILE: ../../../third_party/skia/src/core/SkPictureImageGenerator.cpp -FILE: ../../../third_party/skia/src/core/SkPixmap.cpp -FILE: ../../../third_party/skia/src/core/SkPixmapPriv.h -FILE: ../../../third_party/skia/src/core/SkPoint3.cpp -FILE: ../../../third_party/skia/src/core/SkRecord.cpp -FILE: ../../../third_party/skia/src/core/SkRecordPattern.h -FILE: ../../../third_party/skia/src/core/SkRecords.cpp -FILE: ../../../third_party/skia/src/core/SkSemaphore.cpp -FILE: ../../../third_party/skia/src/core/SkSharedMutex.cpp -FILE: ../../../third_party/skia/src/core/SkSharedMutex.h -FILE: ../../../third_party/skia/src/core/SkSpinlock.cpp -FILE: ../../../third_party/skia/src/core/SkTDPQueue.h -FILE: ../../../third_party/skia/src/core/SkThreadID.cpp -FILE: ../../../third_party/skia/src/core/SkTime.cpp -FILE: ../../../third_party/skia/src/core/SkXfermodeInterpretation.cpp -FILE: ../../../third_party/skia/src/core/SkXfermodeInterpretation.h -FILE: ../../../third_party/skia/src/core/SkYUVPlanesCache.cpp -FILE: ../../../third_party/skia/src/core/SkYUVPlanesCache.h -FILE: ../../../third_party/skia/src/effects/SkTableColorFilter.cpp -FILE: ../../../third_party/skia/src/effects/imagefilters/SkImageImageFilter.cpp -FILE: ../../../third_party/skia/src/gpu/Blend.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/Device_drawTexture.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrAutoLocaleSetter.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrBlurUtils.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrBlurUtils.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrCaps.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrDrawOpAtlas.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrDrawOpAtlas.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrDrawOpTest.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrDrawOpTest.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrDrawingManager.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrDrawingManager.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrFragmentProcessor.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrGpuResourcePriv.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrManagedResource.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrNonAtomicRef.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrOpFlushState.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrOpFlushState.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrPipeline.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrPipeline.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrProcessorUnitTest.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrResourceProvider.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrResourceProvider.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrSamplerState.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrSimpleMesh.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrTTopoSort.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrTestUtils.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrTestUtils.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrXferProcessor.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/SurfaceDrawContext.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/SurfaceDrawContext.h -FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrBlendFragmentProcessor.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrBlendFragmentProcessor.h -FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrCustomXfermode.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrCustomXfermode.h -FILE: ../../../third_party/skia/src/gpu/ganesh/geometry/GrAAConvexTessellator.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/geometry/GrAAConvexTessellator.h -FILE: ../../../third_party/skia/src/gpu/ganesh/geometry/GrQuad.h -FILE: ../../../third_party/skia/src/gpu/ganesh/geometry/GrTriangulator.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/geometry/GrTriangulator.h -FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLTextureRenderTarget.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLUniformHandler.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLUniformHandler.h -FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLVaryingHandler.h -FILE: ../../../third_party/skia/src/gpu/ganesh/glsl/GrGLSLBlend.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/glsl/GrGLSLBlend.h -FILE: ../../../third_party/skia/src/gpu/ganesh/glsl/GrGLSLProgramBuilder.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/glsl/GrGLSLProgramBuilder.h -FILE: ../../../third_party/skia/src/gpu/ganesh/glsl/GrGLSLProgramDataManager.h -FILE: ../../../third_party/skia/src/gpu/ganesh/glsl/GrGLSLUniformHandler.h -FILE: ../../../third_party/skia/src/gpu/ganesh/glsl/GrGLSLVarying.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/glsl/GrGLSLVarying.h -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/AALinearizingConvexPathRenderer.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/AALinearizingConvexPathRenderer.h -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/AtlasTextOp.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/AtlasTextOp.h -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/ClearOp.h -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/DashLinePathRenderer.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/DashLinePathRenderer.h -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/DrawAtlasOp.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/DrawAtlasOp.h -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/GrDrawOp.h -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/GrMeshDrawOp.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/GrMeshDrawOp.h -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/GrOp.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/GrOp.h -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/LatticeOp.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/LatticeOp.h -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/TriangulatingPathRenderer.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/TriangulatingPathRenderer.h -FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkCaps.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkCaps.h -FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkCommandBuffer.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkCommandBuffer.h -FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkGpu.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkGpu.h -FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkImage.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkImage.h -FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkMemory.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkMemory.h -FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkRenderPass.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkRenderPass.h -FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkRenderTarget.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkRenderTarget.h -FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkTexture.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkTexture.h -FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkTextureRenderTarget.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkTextureRenderTarget.h -FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkUtil.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkUtil.h -FILE: ../../../third_party/skia/src/gpu/vk/VulkanInterface.cpp -FILE: ../../../third_party/skia/src/gpu/vk/VulkanInterface.h -FILE: ../../../third_party/skia/src/image/SkImage_Gpu.h -FILE: ../../../third_party/skia/src/image/SkImage_Lazy.cpp -FILE: ../../../third_party/skia/src/opts/SkBlitMask_opts.h -FILE: ../../../third_party/skia/src/opts/SkBlitRow_opts.h -FILE: ../../../third_party/skia/src/opts/SkOpts_ssse3.cpp -FILE: ../../../third_party/skia/src/opts/SkXfermode_opts.h -FILE: ../../../third_party/skia/src/pathops/SkDConicLineIntersection.cpp -FILE: ../../../third_party/skia/src/pathops/SkDCubicToQuads.cpp -FILE: ../../../third_party/skia/src/pathops/SkOpCoincidence.cpp -FILE: ../../../third_party/skia/src/pathops/SkPathOpsConic.cpp -FILE: ../../../third_party/skia/src/pathops/SkPathOpsConic.h -FILE: ../../../third_party/skia/src/pathops/SkPathOpsCurve.cpp -FILE: ../../../third_party/skia/src/pathops/SkPathOpsWinding.cpp -FILE: ../../../third_party/skia/src/pdf/SkDocument_PDF_None.cpp -FILE: ../../../third_party/skia/src/pdf/SkJpegInfo.cpp -FILE: ../../../third_party/skia/src/pdf/SkJpegInfo.h -FILE: ../../../third_party/skia/src/pdf/SkPDFBitmap.cpp -FILE: ../../../third_party/skia/src/pdf/SkPDFBitmap.h -FILE: ../../../third_party/skia/src/pdf/SkPDFMetadata.cpp -FILE: ../../../third_party/skia/src/pdf/SkPDFMetadata.h -FILE: ../../../third_party/skia/src/ports/SkFontMgr_android_factory.cpp -FILE: ../../../third_party/skia/src/ports/SkFontMgr_custom_directory_factory.cpp -FILE: ../../../third_party/skia/src/ports/SkFontMgr_custom_embedded_factory.cpp -FILE: ../../../third_party/skia/src/ports/SkFontMgr_fontconfig_factory.cpp -FILE: ../../../third_party/skia/src/ports/SkFontMgr_win_dw_factory.cpp -FILE: ../../../third_party/skia/src/ports/SkOSLibrary.h -FILE: ../../../third_party/skia/src/ports/SkOSLibrary_posix.cpp -FILE: ../../../third_party/skia/src/ports/SkOSLibrary_win.cpp -FILE: ../../../third_party/skia/src/shaders/SkImageShader.cpp -FILE: ../../../third_party/skia/src/shaders/SkImageShader.h -FILE: ../../../third_party/skia/src/svg/SkSVGCanvas.cpp -FILE: ../../../third_party/skia/src/svg/SkSVGDevice.cpp -FILE: ../../../third_party/skia/src/svg/SkSVGDevice.h -FILE: ../../../third_party/skia/src/text/gpu/DistanceFieldAdjustTable.cpp -FILE: ../../../third_party/skia/src/text/gpu/DistanceFieldAdjustTable.h -FILE: ../../../third_party/skia/src/text/gpu/StrikeCache.cpp -FILE: ../../../third_party/skia/src/text/gpu/StrikeCache.h -FILE: ../../../third_party/skia/src/text/gpu/TextBlob.cpp -FILE: ../../../third_party/skia/src/text/gpu/TextBlob.h -FILE: ../../../third_party/skia/src/text/gpu/TextBlobRedrawCoordinator.cpp -FILE: ../../../third_party/skia/src/text/gpu/TextBlobRedrawCoordinator.h -FILE: ../../../third_party/skia/src/utils/SkPaintFilterCanvas.cpp -FILE: ../../../third_party/skia/src/xps/SkXPSDocument.cpp ----------------------------------------------------------------------------------------------------- -Copyright 2015 Google Inc. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - - * Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: skia -ORIGIN: ../../../third_party/skia/bench/BlendmodeBench.cpp + ../../../third_party/skia/LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/skia/bench/BlendmodeBench.cpp -FILE: ../../../third_party/skia/bench/BlurImageFilterBench.cpp -FILE: ../../../third_party/skia/bench/BlurRectBench.cpp -FILE: ../../../third_party/skia/bench/ChartBench.cpp -FILE: ../../../third_party/skia/bench/CmapBench.cpp -FILE: ../../../third_party/skia/bench/ColorFilterBench.cpp -FILE: ../../../third_party/skia/bench/ColorPrivBench.cpp -FILE: ../../../third_party/skia/bench/CoverageBench.cpp -FILE: ../../../third_party/skia/bench/DisplacementBench.cpp -FILE: ../../../third_party/skia/bench/FSRectBench.cpp -FILE: ../../../third_party/skia/bench/FontCacheBench.cpp -FILE: ../../../third_party/skia/bench/GrResourceCacheBench.cpp -FILE: ../../../third_party/skia/bench/HairlinePathBench.cpp -FILE: ../../../third_party/skia/bench/ImageCacheBench.cpp -FILE: ../../../third_party/skia/bench/LightingBench.cpp -FILE: ../../../third_party/skia/bench/MemsetBench.cpp -FILE: ../../../third_party/skia/bench/MergeBench.cpp -FILE: ../../../third_party/skia/bench/PerlinNoiseBench.cpp -FILE: ../../../third_party/skia/bench/PremulAndUnpremulAlphaOpsBench.cpp -FILE: ../../../third_party/skia/bench/RegionContainBench.cpp -FILE: ../../../third_party/skia/bench/ResultsWriter.h -FILE: ../../../third_party/skia/bench/SortBench.cpp -FILE: ../../../third_party/skia/bench/TileBench.cpp -FILE: ../../../third_party/skia/bench/WritePixelsBench.cpp -FILE: ../../../third_party/skia/bench/gUniqueGlyphIDs.h -FILE: ../../../third_party/skia/client_utils/android/FrontBufferedStream.cpp -FILE: ../../../third_party/skia/client_utils/android/FrontBufferedStream.h -FILE: ../../../third_party/skia/dm/DM.cpp -FILE: ../../../third_party/skia/gm/alphagradients.cpp -FILE: ../../../third_party/skia/gm/arcofzorro.cpp -FILE: ../../../third_party/skia/gm/beziereffects.cpp -FILE: ../../../third_party/skia/gm/bigblurs.cpp -FILE: ../../../third_party/skia/gm/bigtext.cpp -FILE: ../../../third_party/skia/gm/bitmappremul.cpp -FILE: ../../../third_party/skia/gm/bitmaprecttest.cpp -FILE: ../../../third_party/skia/gm/bitmapshader.cpp -FILE: ../../../third_party/skia/gm/bleed.cpp -FILE: ../../../third_party/skia/gm/blurquickreject.cpp -FILE: ../../../third_party/skia/gm/blurroundrect.cpp -FILE: ../../../third_party/skia/gm/circularclips.cpp -FILE: ../../../third_party/skia/gm/clippedbitmapshaders.cpp -FILE: ../../../third_party/skia/gm/coloremoji.cpp -FILE: ../../../third_party/skia/gm/conicpaths.cpp -FILE: ../../../third_party/skia/gm/copy_to_4444.cpp -FILE: ../../../third_party/skia/gm/displacement.cpp -FILE: ../../../third_party/skia/gm/dropshadowimagefilter.cpp -FILE: ../../../third_party/skia/gm/dstreadshuffle.cpp -FILE: ../../../third_party/skia/gm/fontcache.cpp -FILE: ../../../third_party/skia/gm/fontmgr.cpp -FILE: ../../../third_party/skia/gm/gradient_dirty_laundry.cpp -FILE: ../../../third_party/skia/gm/gradient_matrix.cpp -FILE: ../../../third_party/skia/gm/gradients_no_texture.cpp -FILE: ../../../third_party/skia/gm/hairlines.cpp -FILE: ../../../third_party/skia/gm/imagealphathreshold.cpp -FILE: ../../../third_party/skia/gm/imagesource.cpp -FILE: ../../../third_party/skia/gm/internal_links.cpp -FILE: ../../../third_party/skia/gm/inversepaths.cpp -FILE: ../../../third_party/skia/gm/lumafilter.cpp -FILE: ../../../third_party/skia/gm/mixedtextblobs.cpp -FILE: ../../../third_party/skia/gm/nested.cpp -FILE: ../../../third_party/skia/gm/nonclosedpaths.cpp -FILE: ../../../third_party/skia/gm/offsetimagefilter.cpp -FILE: ../../../third_party/skia/gm/ovals.cpp -FILE: ../../../third_party/skia/gm/pathopsinverse.cpp -FILE: ../../../third_party/skia/gm/perlinnoise.cpp -FILE: ../../../third_party/skia/gm/pictureimagefilter.cpp -FILE: ../../../third_party/skia/gm/polygons.cpp -FILE: ../../../third_party/skia/gm/resizeimagefilter.cpp -FILE: ../../../third_party/skia/gm/roundrects.cpp -FILE: ../../../third_party/skia/gm/shallowgradient.cpp -FILE: ../../../third_party/skia/gm/skbug1719.cpp -FILE: ../../../third_party/skia/gm/spritebitmap.cpp -FILE: ../../../third_party/skia/gm/stringart.cpp -FILE: ../../../third_party/skia/gm/thinrects.cpp -FILE: ../../../third_party/skia/gm/thinstrokedrects.cpp -FILE: ../../../third_party/skia/gm/tileimagefilter.cpp -FILE: ../../../third_party/skia/gm/vertices.cpp -FILE: ../../../third_party/skia/gm/xfermodeimagefilter.cpp -FILE: ../../../third_party/skia/gm/xfermodes2.cpp -FILE: ../../../third_party/skia/gm/xfermodes3.cpp -FILE: ../../../third_party/skia/include/core/SkDataTable.h -FILE: ../../../third_party/skia/include/core/SkDocument.h -FILE: ../../../third_party/skia/include/core/SkFontMgr.h -FILE: ../../../third_party/skia/include/core/SkFontStyle.h -FILE: ../../../third_party/skia/include/core/SkImageGenerator.h -FILE: ../../../third_party/skia/include/core/SkImageInfo.h -FILE: ../../../third_party/skia/include/effects/SkLumaColorFilter.h -FILE: ../../../third_party/skia/include/effects/SkPerlinNoiseShader.h -FILE: ../../../third_party/skia/include/gpu/gl/GrGLExtensions.h -FILE: ../../../third_party/skia/include/ports/SkFontConfigInterface.h -FILE: ../../../third_party/skia/include/private/SkOnce.h -FILE: ../../../third_party/skia/include/private/SkTFitsIn.h -FILE: ../../../third_party/skia/include/private/SkTLogic.h -FILE: ../../../third_party/skia/include/private/gpu/ganesh/GrTypesPriv.h -FILE: ../../../third_party/skia/include/utils/SkCanvasStateUtils.h -FILE: ../../../third_party/skia/samplecode/SampleChart.cpp -FILE: ../../../third_party/skia/samplecode/SampleClock.cpp -FILE: ../../../third_party/skia/samplecode/SampleManyRects.cpp -FILE: ../../../third_party/skia/samplecode/SampleStringArt.cpp -FILE: ../../../third_party/skia/src/core/SkBitmapDevice.cpp -FILE: ../../../third_party/skia/src/core/SkBitmapDevice.h -FILE: ../../../third_party/skia/src/core/SkDataTable.cpp -FILE: ../../../third_party/skia/src/core/SkDiscardableMemory.h -FILE: ../../../third_party/skia/src/core/SkDocument.cpp -FILE: ../../../third_party/skia/src/core/SkDrawLooper.cpp -FILE: ../../../third_party/skia/src/core/SkFontStream.h -FILE: ../../../third_party/skia/src/core/SkGpuBlurUtils.cpp -FILE: ../../../third_party/skia/src/core/SkGpuBlurUtils.h -FILE: ../../../third_party/skia/src/core/SkMatrixUtils.h -FILE: ../../../third_party/skia/src/core/SkMessageBus.h -FILE: ../../../third_party/skia/src/core/SkMipmap.cpp -FILE: ../../../third_party/skia/src/core/SkMipmap.h -FILE: ../../../third_party/skia/src/core/SkPaintPriv.cpp -FILE: ../../../third_party/skia/src/core/SkPaintPriv.h -FILE: ../../../third_party/skia/src/core/SkPathRef.cpp -FILE: ../../../third_party/skia/src/core/SkResourceCache.cpp -FILE: ../../../third_party/skia/src/core/SkResourceCache.h -FILE: ../../../third_party/skia/src/core/SkStreamPriv.h -FILE: ../../../third_party/skia/src/core/SkStringUtils.cpp -FILE: ../../../third_party/skia/src/core/SkStringUtils.h -FILE: ../../../third_party/skia/src/core/SkTDynamicHash.h -FILE: ../../../third_party/skia/src/core/SkTMultiMap.h -FILE: ../../../third_party/skia/src/core/SkValidationUtils.h -FILE: ../../../third_party/skia/src/effects/SkLumaColorFilter.cpp -FILE: ../../../third_party/skia/src/effects/imagefilters/SkAlphaThresholdImageFilter.cpp -FILE: ../../../third_party/skia/src/effects/imagefilters/SkComposeImageFilter.cpp -FILE: ../../../third_party/skia/src/effects/imagefilters/SkDisplacementMapImageFilter.cpp -FILE: ../../../third_party/skia/src/effects/imagefilters/SkDropShadowImageFilter.cpp -FILE: ../../../third_party/skia/src/effects/imagefilters/SkTileImageFilter.cpp -FILE: ../../../third_party/skia/src/gpu/Blend.h -FILE: ../../../third_party/skia/src/gpu/RectanizerSkyline.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrCaps.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrGeometryProcessor.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrPaint.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrBezierEffect.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrBezierEffect.h -FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrBicubicEffect.h -FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrBitmapTextGeoProc.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrBitmapTextGeoProc.h -FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrDistanceFieldGeoProc.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrDistanceFieldGeoProc.h -FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLContext.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLContext.h -FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLExtensions.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLVertexArray.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLVertexArray.h -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/GrOvalOpFactory.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/GrOvalOpFactory.h -FILE: ../../../third_party/skia/src/lazy/SkDiscardableMemoryPool.cpp -FILE: ../../../third_party/skia/src/lazy/SkDiscardableMemoryPool.h -FILE: ../../../third_party/skia/src/pathops/SkOpCoincidence.h -FILE: ../../../third_party/skia/src/pathops/SkOpContour.cpp -FILE: ../../../third_party/skia/src/pathops/SkOpContour.h -FILE: ../../../third_party/skia/src/pathops/SkPathOpsDebug.cpp -FILE: ../../../third_party/skia/src/pathops/SkPathOpsDebug.h -FILE: ../../../third_party/skia/src/pdf/SkPDFResourceDict.cpp -FILE: ../../../third_party/skia/src/pdf/SkPDFResourceDict.h -FILE: ../../../third_party/skia/src/ports/SkDiscardableMemory_none.cpp -FILE: ../../../third_party/skia/src/ports/SkFontConfigTypeface.h -FILE: ../../../third_party/skia/src/ports/SkFontMgr_FontConfigInterface.cpp -FILE: ../../../third_party/skia/src/ports/SkOSFile_posix.cpp -FILE: ../../../third_party/skia/src/ports/SkOSFile_win.cpp -FILE: ../../../third_party/skia/src/sfnt/SkOTTable_name.cpp -FILE: ../../../third_party/skia/src/sfnt/SkTTCFHeader.h -FILE: ../../../third_party/skia/src/shaders/SkColorFilterShader.cpp -FILE: ../../../third_party/skia/src/shaders/SkPerlinNoiseShader.cpp -FILE: ../../../third_party/skia/src/utils/SkCanvasStack.cpp -FILE: ../../../third_party/skia/src/utils/SkCanvasStack.h -FILE: ../../../third_party/skia/src/utils/SkCanvasStateUtils.cpp ----------------------------------------------------------------------------------------------------- -Copyright 2013 Google Inc. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - - * Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: skia -ORIGIN: ../../../third_party/skia/bench/BulkRectBench.cpp + ../../../third_party/skia/LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/skia/bench/BulkRectBench.cpp -FILE: ../../../third_party/skia/bench/DDLRecorderBench.cpp -FILE: ../../../third_party/skia/bench/SkSLBench.cpp -FILE: ../../../third_party/skia/gm/asyncrescaleandread.cpp -FILE: ../../../third_party/skia/gm/crbug_908646.cpp -FILE: ../../../third_party/skia/gm/crbug_946965.cpp -FILE: ../../../third_party/skia/gm/patharcto.cpp -FILE: ../../../third_party/skia/gm/runtimecolorfilter.cpp -FILE: ../../../third_party/skia/gm/runtimefunctions.cpp -FILE: ../../../third_party/skia/gm/runtimeintrinsics.cpp -FILE: ../../../third_party/skia/gm/runtimeshader.cpp -FILE: ../../../third_party/skia/gm/skbug_9319.cpp -FILE: ../../../third_party/skia/include/effects/SkImageFilters.h -FILE: ../../../third_party/skia/include/effects/SkRuntimeEffect.h -FILE: ../../../third_party/skia/include/gpu/gl/GrGLAssembleHelpers.h -FILE: ../../../third_party/skia/include/private/SkThreadAnnotations.h -FILE: ../../../third_party/skia/include/private/gpu/ganesh/GrGLTypesPriv.h -FILE: ../../../third_party/skia/modules/canvaskit/WasmCommon.h -FILE: ../../../third_party/skia/modules/canvaskit/debugger_bindings.cpp -FILE: ../../../third_party/skia/modules/canvaskit/paragraph_bindings.cpp -FILE: ../../../third_party/skia/modules/canvaskit/particles_bindings.cpp -FILE: ../../../third_party/skia/modules/canvaskit/skottie_bindings.cpp -FILE: ../../../third_party/skia/modules/particles/include/SkParticleBinding.h -FILE: ../../../third_party/skia/modules/particles/include/SkParticleData.h -FILE: ../../../third_party/skia/modules/particles/include/SkParticleDrawable.h -FILE: ../../../third_party/skia/modules/particles/include/SkParticleEffect.h -FILE: ../../../third_party/skia/modules/particles/include/SkParticleSerialization.h -FILE: ../../../third_party/skia/modules/particles/include/SkReflected.h -FILE: ../../../third_party/skia/modules/particles/src/SkParticleBinding.cpp -FILE: ../../../third_party/skia/modules/particles/src/SkParticleDrawable.cpp -FILE: ../../../third_party/skia/modules/particles/src/SkParticleEffect.cpp -FILE: ../../../third_party/skia/modules/particles/src/SkReflected.cpp -FILE: ../../../third_party/skia/modules/skresources/include/SkResources.h -FILE: ../../../third_party/skia/modules/skresources/src/SkResources.cpp -FILE: ../../../third_party/skia/samplecode/SampleFilterBounds.cpp -FILE: ../../../third_party/skia/samplecode/SampleImageFilterDAG.cpp -FILE: ../../../third_party/skia/src/core/SkImageFilterTypes.cpp -FILE: ../../../third_party/skia/src/core/SkImageFilterTypes.h -FILE: ../../../third_party/skia/src/core/SkImageFilter_Base.h -FILE: ../../../third_party/skia/src/core/SkRuntimeEffect.cpp -FILE: ../../../third_party/skia/src/core/SkVM.cpp -FILE: ../../../third_party/skia/src/core/SkVM.h -FILE: ../../../third_party/skia/src/gpu/Swizzle.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrClientMappedBufferManager.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrClientMappedBufferManager.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrCopyRenderTask.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrCopyRenderTask.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrImageInfo.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrPersistentCacheUtils.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrProgramInfo.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrProgramInfo.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrRenderTask.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrRenderTask.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrSurfaceProxyView.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrTextureResolveManager.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrTextureResolveRenderTask.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrTextureResolveRenderTask.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrTransferFromRenderTask.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrTransferFromRenderTask.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrUtil.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrWaitRenderTask.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrWaitRenderTask.h -FILE: ../../../third_party/skia/src/gpu/ganesh/geometry/GrQuadBuffer.h -FILE: ../../../third_party/skia/src/gpu/ganesh/geometry/GrQuadUtils.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/geometry/GrQuadUtils.h -FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLAssembleGLESInterfaceAutogen.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLAssembleGLInterfaceAutogen.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLAssembleHelpers.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLAssembleWebGLInterfaceAutogen.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLTypesPriv.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/mock/GrMockCaps.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/mock/GrMockTypes.cpp -FILE: ../../../third_party/skia/src/sksl/ir/SkSLExternalFunction.h -FILE: ../../../third_party/skia/src/sksl/ir/SkSLExternalFunctionCall.h -FILE: ../../../third_party/skia/src/sksl/ir/SkSLExternalFunctionReference.h -FILE: ../../../third_party/skia/src/utils/SkShaderUtils.cpp -FILE: ../../../third_party/skia/src/utils/SkShaderUtils.h ----------------------------------------------------------------------------------------------------- -Copyright 2019 Google LLC - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - - * Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: skia -ORIGIN: ../../../third_party/skia/bench/ClearBench.cpp + ../../../third_party/skia/LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/skia/bench/ClearBench.cpp -FILE: ../../../third_party/skia/bench/CompositingImagesBench.cpp -FILE: ../../../third_party/skia/bench/CubicMapBench.cpp -FILE: ../../../third_party/skia/bench/ImageCycleBench.cpp -FILE: ../../../third_party/skia/bench/JSONBench.cpp -FILE: ../../../third_party/skia/bench/PathOpsBench.cpp -FILE: ../../../third_party/skia/bench/PolyUtilsBench.cpp -FILE: ../../../third_party/skia/bench/ShaderMaskFilterBench.cpp -FILE: ../../../third_party/skia/bench/TypefaceBench.cpp -FILE: ../../../third_party/skia/fuzz/FuzzCommon.cpp -FILE: ../../../third_party/skia/fuzz/FuzzPathMeasure.cpp -FILE: ../../../third_party/skia/fuzz/FuzzRegionOp.cpp -FILE: ../../../third_party/skia/fuzz/oss_fuzz/FuzzImageFilterDeserialize.cpp -FILE: ../../../third_party/skia/fuzz/oss_fuzz/FuzzPathDeserialize.cpp -FILE: ../../../third_party/skia/fuzz/oss_fuzz/FuzzRegionDeserialize.cpp -FILE: ../../../third_party/skia/fuzz/oss_fuzz/FuzzRegionSetPath.cpp -FILE: ../../../third_party/skia/gm/analytic_gradients.cpp -FILE: ../../../third_party/skia/gm/androidblendmodes.cpp -FILE: ../../../third_party/skia/gm/b_119394958.cpp -FILE: ../../../third_party/skia/gm/clockwise.cpp -FILE: ../../../third_party/skia/gm/crbug_847759.cpp -FILE: ../../../third_party/skia/gm/crbug_884166.cpp -FILE: ../../../third_party/skia/gm/crbug_887103.cpp -FILE: ../../../third_party/skia/gm/crbug_892988.cpp -FILE: ../../../third_party/skia/gm/crbug_899512.cpp -FILE: ../../../third_party/skia/gm/crbug_905548.cpp -FILE: ../../../third_party/skia/gm/daa.cpp -FILE: ../../../third_party/skia/gm/drawimageset.cpp -FILE: ../../../third_party/skia/gm/drawquadset.cpp -FILE: ../../../third_party/skia/gm/fontregen.cpp -FILE: ../../../third_party/skia/gm/fwidth_squircle.cpp -FILE: ../../../third_party/skia/gm/gradients_degenerate.cpp -FILE: ../../../third_party/skia/gm/hugepath.cpp -FILE: ../../../third_party/skia/gm/localmatrixshader.cpp -FILE: ../../../third_party/skia/gm/make_raster_image.cpp -FILE: ../../../third_party/skia/gm/mandoline.cpp -FILE: ../../../third_party/skia/gm/orientation.cpp -FILE: ../../../third_party/skia/gm/p3.cpp -FILE: ../../../third_party/skia/gm/pathmeasure.cpp -FILE: ../../../third_party/skia/gm/perspimages.cpp -FILE: ../../../third_party/skia/gm/polygonoffset.cpp -FILE: ../../../third_party/skia/gm/scaledemoji.cpp -FILE: ../../../third_party/skia/gm/scaledemoji_rendering.cpp -FILE: ../../../third_party/skia/gm/shadermaskfilter.cpp -FILE: ../../../third_party/skia/gm/sharedcorners.cpp -FILE: ../../../third_party/skia/gm/trickycubicstrokes.cpp -FILE: ../../../third_party/skia/gm/unpremul.cpp -FILE: ../../../third_party/skia/gm/wacky_yuv_formats.cpp -FILE: ../../../third_party/skia/include/android/SkAnimatedImage.h -FILE: ../../../third_party/skia/include/core/SkCanvasVirtualEnforcer.h -FILE: ../../../third_party/skia/include/core/SkContourMeasure.h -FILE: ../../../third_party/skia/include/core/SkCoverageMode.h -FILE: ../../../third_party/skia/include/core/SkCubicMap.h -FILE: ../../../third_party/skia/include/core/SkFontMetrics.h -FILE: ../../../third_party/skia/include/core/SkFontParameters.h -FILE: ../../../third_party/skia/include/core/SkFontTypes.h -FILE: ../../../third_party/skia/include/core/SkSpan.h -FILE: ../../../third_party/skia/include/effects/SkOpPathEffect.h -FILE: ../../../third_party/skia/include/effects/SkShaderMaskFilter.h -FILE: ../../../third_party/skia/include/effects/SkTrimPathEffect.h -FILE: ../../../third_party/skia/include/gpu/GrBackendDrawableInfo.h -FILE: ../../../third_party/skia/include/gpu/GrDriverBugWorkarounds.h -FILE: ../../../third_party/skia/include/gpu/vk/GrVkMemoryAllocator.h -FILE: ../../../third_party/skia/include/ports/SkFontMgr_fuchsia.h -FILE: ../../../third_party/skia/include/private/SkMacros.h -FILE: ../../../third_party/skia/include/private/SkSafe32.h -FILE: ../../../third_party/skia/include/private/SkTo.h -FILE: ../../../third_party/skia/include/private/gpu/ganesh/GrVkTypesPriv.h -FILE: ../../../third_party/skia/include/private/gpu/vk/SkiaVulkan.h -FILE: ../../../third_party/skia/include/utils/SkAnimCodecPlayer.h -FILE: ../../../third_party/skia/include/utils/SkTextUtils.h -FILE: ../../../third_party/skia/modules/skcms/skcms.cc -FILE: ../../../third_party/skia/modules/skcms/skcms.h -FILE: ../../../third_party/skia/modules/skcms/skcms_internal.h -FILE: ../../../third_party/skia/modules/skcms/src/Transform_inl.h -FILE: ../../../third_party/skia/modules/skottie/include/SkottieProperty.h -FILE: ../../../third_party/skia/modules/skottie/src/SkottieJson.cpp -FILE: ../../../third_party/skia/modules/skottie/src/SkottieJson.h -FILE: ../../../third_party/skia/modules/skottie/src/SkottiePriv.h -FILE: ../../../third_party/skia/modules/skottie/src/SkottieProperty.cpp -FILE: ../../../third_party/skia/modules/skottie/src/SkottieTest.cpp -FILE: ../../../third_party/skia/modules/skottie/src/SkottieTool.cpp -FILE: ../../../third_party/skia/modules/skottie/src/layers/PrecompLayer.cpp -FILE: ../../../third_party/skia/modules/skottie/src/layers/TextLayer.cpp -FILE: ../../../third_party/skia/modules/skottie/src/layers/shapelayer/ShapeLayer.cpp -FILE: ../../../third_party/skia/modules/skottie/utils/SkottieUtils.cpp -FILE: ../../../third_party/skia/modules/skottie/utils/SkottieUtils.h -FILE: ../../../third_party/skia/modules/sksg/include/SkSGClipEffect.h -FILE: ../../../third_party/skia/modules/sksg/include/SkSGColorFilter.h -FILE: ../../../third_party/skia/modules/sksg/include/SkSGGradient.h -FILE: ../../../third_party/skia/modules/sksg/include/SkSGImage.h -FILE: ../../../third_party/skia/modules/sksg/include/SkSGMaskEffect.h -FILE: ../../../third_party/skia/modules/sksg/include/SkSGOpacityEffect.h -FILE: ../../../third_party/skia/modules/sksg/include/SkSGPlane.h -FILE: ../../../third_party/skia/modules/sksg/include/SkSGScene.h -FILE: ../../../third_party/skia/modules/sksg/include/SkSGText.h -FILE: ../../../third_party/skia/modules/sksg/src/SkSGClipEffect.cpp -FILE: ../../../third_party/skia/modules/sksg/src/SkSGColorFilter.cpp -FILE: ../../../third_party/skia/modules/sksg/src/SkSGGradient.cpp -FILE: ../../../third_party/skia/modules/sksg/src/SkSGImage.cpp -FILE: ../../../third_party/skia/modules/sksg/src/SkSGMaskEffect.cpp -FILE: ../../../third_party/skia/modules/sksg/src/SkSGOpacityEffect.cpp -FILE: ../../../third_party/skia/modules/sksg/src/SkSGPlane.cpp -FILE: ../../../third_party/skia/modules/sksg/src/SkSGScene.cpp -FILE: ../../../third_party/skia/modules/sksg/src/SkSGText.cpp -FILE: ../../../third_party/skia/modules/skshaper/src/SkShaper.cpp -FILE: ../../../third_party/skia/samplecode/SampleAnimatedImage.cpp -FILE: ../../../third_party/skia/samplecode/SampleCusp.cpp -FILE: ../../../third_party/skia/samplecode/SampleFlutterAnimate.cpp -FILE: ../../../third_party/skia/samplecode/SampleGlyphTransform.cpp -FILE: ../../../third_party/skia/src/android/SkAnimatedImage.cpp -FILE: ../../../third_party/skia/src/codec/SkEncodedInfo.cpp -FILE: ../../../third_party/skia/src/codec/SkParseEncodedOrigin.cpp -FILE: ../../../third_party/skia/src/codec/SkWuffsCodec.cpp -FILE: ../../../third_party/skia/src/codec/SkWuffsCodec.h -FILE: ../../../third_party/skia/src/core/SkCanvasPriv.cpp -FILE: ../../../third_party/skia/src/core/SkChromeRemoteGlyphCache.cpp -FILE: ../../../third_party/skia/src/core/SkColorSpaceXformSteps.cpp -FILE: ../../../third_party/skia/src/core/SkColorSpaceXformSteps.h -FILE: ../../../third_party/skia/src/core/SkContourMeasure.cpp -FILE: ../../../third_party/skia/src/core/SkCubicMap.cpp -FILE: ../../../third_party/skia/src/core/SkCubicSolver.h -FILE: ../../../third_party/skia/src/core/SkDeferredDisplayList.cpp -FILE: ../../../third_party/skia/src/core/SkDeferredDisplayListPriv.h -FILE: ../../../third_party/skia/src/core/SkDraw_text.cpp -FILE: ../../../third_party/skia/src/core/SkFontPriv.h -FILE: ../../../third_party/skia/src/core/SkGlyph.cpp -FILE: ../../../third_party/skia/src/core/SkIPoint16.h -FILE: ../../../third_party/skia/src/core/SkMaskFilterBase.h -FILE: ../../../third_party/skia/src/core/SkPath_serial.cpp -FILE: ../../../third_party/skia/src/core/SkPicturePriv.h -FILE: ../../../third_party/skia/src/core/SkRRectPriv.h -FILE: ../../../third_party/skia/src/core/SkRectPriv.h -FILE: ../../../third_party/skia/src/core/SkSafeRange.h -FILE: ../../../third_party/skia/src/core/SkStrikeCache.cpp -FILE: ../../../third_party/skia/src/core/SkSurfaceCharacterization.cpp -FILE: ../../../third_party/skia/src/core/SkTDArray.cpp -FILE: ../../../third_party/skia/src/core/SkTextBlobPriv.h -FILE: ../../../third_party/skia/src/core/SkTypeface_remote.cpp -FILE: ../../../third_party/skia/src/core/SkTypeface_remote.h -FILE: ../../../third_party/skia/src/effects/SkOpPE.h -FILE: ../../../third_party/skia/src/effects/SkOpPathEffect.cpp -FILE: ../../../third_party/skia/src/effects/SkShaderMaskFilter.cpp -FILE: ../../../third_party/skia/src/effects/SkTrimPE.h -FILE: ../../../third_party/skia/src/effects/SkTrimPathEffect.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrContextThreadSafeProxyPriv.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrDDLContext.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrDirectContext.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrDriverBugWorkarounds.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrFPArgs.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrProxyProvider.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrProxyProvider.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrResourceProviderPriv.h -FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrSkSLFP.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrSkSLFP.h -FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrYUVtoRGBEffect.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrYUVtoRGBEffect.h -FILE: ../../../third_party/skia/src/gpu/ganesh/geometry/GrQuad.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/gradients/GrGradientBitmapCache.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/gradients/GrGradientBitmapCache.h -FILE: ../../../third_party/skia/src/gpu/ganesh/gradients/GrGradientShader.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/gradients/GrGradientShader.h -FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlAttachment.h -FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlAttachment.mm -FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlBuffer.h -FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlBuffer.mm -FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlCppUtil.h -FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlDepthStencil.mm -FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlOpsRenderPass.h -FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlOpsRenderPass.mm -FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlPipelineState.h -FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlPipelineState.mm -FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlPipelineStateBuilder.h -FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlPipelineStateBuilder.mm -FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlPipelineStateDataManager.h -FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlPipelineStateDataManager.mm -FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlResourceProvider.h -FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlResourceProvider.mm -FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlSampler.h -FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlSampler.mm -FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlTextureRenderTarget.h -FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlTextureRenderTarget.mm -FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlUniformHandler.h -FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlUniformHandler.mm -FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlVaryingHandler.h -FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlVaryingHandler.mm -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/DrawableOp.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/DrawableOp.h -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/FillRRectOp.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/FillRRectOp.h -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/FillRectOp.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/FillRectOp.h -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/QuadPerEdgeAA.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/QuadPerEdgeAA.h -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/StrokeRectOp.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/StrokeRectOp.h -FILE: ../../../third_party/skia/src/gpu/ganesh/text/GrAtlasManager.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/text/GrAtlasManager.h -FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkCommandPool.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkCommandPool.h -FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkImageLayout.h -FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkSamplerYcbcrConversion.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkSamplerYcbcrConversion.h -FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkTypesPriv.cpp -FILE: ../../../third_party/skia/src/gpu/vk/VulkanAMDMemoryAllocator.cpp -FILE: ../../../third_party/skia/src/gpu/vk/VulkanAMDMemoryAllocator.h -FILE: ../../../third_party/skia/src/image/SkImage_GpuBase.cpp -FILE: ../../../third_party/skia/src/image/SkImage_GpuBase.h -FILE: ../../../third_party/skia/src/image/SkImage_GpuYUVA.cpp -FILE: ../../../third_party/skia/src/image/SkImage_GpuYUVA.h -FILE: ../../../third_party/skia/src/image/SkImage_Lazy.h -FILE: ../../../third_party/skia/src/opts/SkBitmapProcState_opts.h -FILE: ../../../third_party/skia/src/opts/SkOpts_hsw.cpp -FILE: ../../../third_party/skia/src/opts/SkRasterPipeline_opts.h -FILE: ../../../third_party/skia/src/pathops/SkPathOpsAsWinding.cpp -FILE: ../../../third_party/skia/src/pathops/SkPathOpsTCurve.h -FILE: ../../../third_party/skia/src/pdf/SkClusterator.cpp -FILE: ../../../third_party/skia/src/pdf/SkClusterator.h -FILE: ../../../third_party/skia/src/pdf/SkPDFTag.cpp -FILE: ../../../third_party/skia/src/pdf/SkPDFTag.h -FILE: ../../../third_party/skia/src/ports/SkFontMgr_fuchsia.cpp -FILE: ../../../third_party/skia/src/sksl/codegen/SkSLPipelineStageCodeGenerator.cpp -FILE: ../../../third_party/skia/src/sksl/ir/SkSLVariableReference.cpp -FILE: ../../../third_party/skia/src/text/gpu/SDFMaskFilter.cpp -FILE: ../../../third_party/skia/src/utils/SkAnimCodecPlayer.cpp -FILE: ../../../third_party/skia/src/utils/SkCallableTraits.h -FILE: ../../../third_party/skia/src/utils/SkJSON.cpp -FILE: ../../../third_party/skia/src/utils/SkJSON.h -FILE: ../../../third_party/skia/src/utils/SkTextUtils.cpp -FILE: ../../../third_party/skia/src/utils/mac/SkUniqueCFRef.h -FILE: ../../../third_party/skia/src/utils/win/SkDWriteNTDDI_VERSION.h ----------------------------------------------------------------------------------------------------- -Copyright 2018 Google Inc. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - - * Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: skia -ORIGIN: ../../../third_party/skia/bench/ClipMaskBench.cpp + ../../../third_party/skia/LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/skia/bench/ClipMaskBench.cpp -FILE: ../../../third_party/skia/bench/ClipStrategyBench.cpp -FILE: ../../../third_party/skia/bench/PathTextBench.cpp -FILE: ../../../third_party/skia/bench/ShadowBench.cpp -FILE: ../../../third_party/skia/dm/DMGpuTestProcs.cpp -FILE: ../../../third_party/skia/example/HelloWorld.cpp -FILE: ../../../third_party/skia/example/HelloWorld.h -FILE: ../../../third_party/skia/fuzz/FuzzCanvas.cpp -FILE: ../../../third_party/skia/gm/alpha_image.cpp -FILE: ../../../third_party/skia/gm/bitmaptiled.cpp -FILE: ../../../third_party/skia/gm/blurignorexform.cpp -FILE: ../../../third_party/skia/gm/blurimagevmask.cpp -FILE: ../../../third_party/skia/gm/blurpositioning.cpp -FILE: ../../../third_party/skia/gm/blurtextsmallradii.cpp -FILE: ../../../third_party/skia/gm/bug6643.cpp -FILE: ../../../third_party/skia/gm/bug6783.cpp -FILE: ../../../third_party/skia/gm/circle_sizes.cpp -FILE: ../../../third_party/skia/gm/crbug_691386.cpp -FILE: ../../../third_party/skia/gm/crbug_788500.cpp -FILE: ../../../third_party/skia/gm/crosscontextimage.cpp -FILE: ../../../third_party/skia/gm/dftext_blob_persp.cpp -FILE: ../../../third_party/skia/gm/drrect_small_inner.cpp -FILE: ../../../third_party/skia/gm/encode_alpha_jpeg.cpp -FILE: ../../../third_party/skia/gm/flippity.cpp -FILE: ../../../third_party/skia/gm/highcontrastfilter.cpp -FILE: ../../../third_party/skia/gm/hsl.cpp -FILE: ../../../third_party/skia/gm/imageblurclampmode.cpp -FILE: ../../../third_party/skia/gm/imageblurrepeatmode.cpp -FILE: ../../../third_party/skia/gm/jpg_color_cube.cpp -FILE: ../../../third_party/skia/gm/makecolorspace.cpp -FILE: ../../../third_party/skia/gm/manypaths.cpp -FILE: ../../../third_party/skia/gm/pictureshadercache.cpp -FILE: ../../../third_party/skia/gm/radial_gradient_precision.cpp -FILE: ../../../third_party/skia/gm/savelayer.cpp -FILE: ../../../third_party/skia/gm/shadowutils.cpp -FILE: ../../../third_party/skia/gm/simple_magnification.cpp -FILE: ../../../third_party/skia/gm/srgb.cpp -FILE: ../../../third_party/skia/gm/testgradient.cpp -FILE: ../../../third_party/skia/gm/text_scale_skew.cpp -FILE: ../../../third_party/skia/gm/thinconcavepaths.cpp -FILE: ../../../third_party/skia/include/android/SkAndroidFrameworkUtils.h -FILE: ../../../third_party/skia/include/codec/SkEncodedOrigin.h -FILE: ../../../third_party/skia/include/core/SkDeferredDisplayList.h -FILE: ../../../third_party/skia/include/core/SkDeferredDisplayListRecorder.h -FILE: ../../../third_party/skia/include/core/SkExecutor.h -FILE: ../../../third_party/skia/include/core/SkFontArguments.h -FILE: ../../../third_party/skia/include/core/SkPromiseImageTexture.h -FILE: ../../../third_party/skia/include/core/SkSerialProcs.h -FILE: ../../../third_party/skia/include/core/SkSurfaceCharacterization.h -FILE: ../../../third_party/skia/include/core/SkVertices.h -FILE: ../../../third_party/skia/include/docs/SkXPSDocument.h -FILE: ../../../third_party/skia/include/effects/SkHighContrastFilter.h -FILE: ../../../third_party/skia/include/encode/SkEncoder.h -FILE: ../../../third_party/skia/include/encode/SkJpegEncoder.h -FILE: ../../../third_party/skia/include/encode/SkPngEncoder.h -FILE: ../../../third_party/skia/include/encode/SkWebpEncoder.h -FILE: ../../../third_party/skia/include/gpu/GrBackendSemaphore.h -FILE: ../../../third_party/skia/include/gpu/GrBackendSurface.h -FILE: ../../../third_party/skia/include/gpu/mock/GrMockTypes.h -FILE: ../../../third_party/skia/include/gpu/mtl/GrMtlTypes.h -FILE: ../../../third_party/skia/include/ports/SkFontMgr_mac_ct.h -FILE: ../../../third_party/skia/include/private/SkImageInfoPriv.h -FILE: ../../../third_party/skia/include/private/SkMalloc.h -FILE: ../../../third_party/skia/include/private/SkSLString.h -FILE: ../../../third_party/skia/include/private/SkShadowFlags.h -FILE: ../../../third_party/skia/include/utils/SkShadowUtils.h -FILE: ../../../third_party/skia/modules/skottie/gm/ExternalProperties.cpp -FILE: ../../../third_party/skia/modules/skottie/gm/SkottieGM.cpp -FILE: ../../../third_party/skia/modules/skottie/include/Skottie.h -FILE: ../../../third_party/skia/modules/skottie/src/Skottie.cpp -FILE: ../../../third_party/skia/modules/skottie/src/SkottieValue.h -FILE: ../../../third_party/skia/modules/sksg/include/SkSGDraw.h -FILE: ../../../third_party/skia/modules/sksg/include/SkSGEffectNode.h -FILE: ../../../third_party/skia/modules/sksg/include/SkSGGeometryNode.h -FILE: ../../../third_party/skia/modules/sksg/include/SkSGGroup.h -FILE: ../../../third_party/skia/modules/sksg/include/SkSGInvalidationController.h -FILE: ../../../third_party/skia/modules/sksg/include/SkSGMerge.h -FILE: ../../../third_party/skia/modules/sksg/include/SkSGNode.h -FILE: ../../../third_party/skia/modules/sksg/include/SkSGPaint.h -FILE: ../../../third_party/skia/modules/sksg/include/SkSGPath.h -FILE: ../../../third_party/skia/modules/sksg/include/SkSGRect.h -FILE: ../../../third_party/skia/modules/sksg/include/SkSGRenderNode.h -FILE: ../../../third_party/skia/modules/sksg/include/SkSGTransform.h -FILE: ../../../third_party/skia/modules/sksg/src/SkSGDraw.cpp -FILE: ../../../third_party/skia/modules/sksg/src/SkSGEffectNode.cpp -FILE: ../../../third_party/skia/modules/sksg/src/SkSGGeometryNode.cpp -FILE: ../../../third_party/skia/modules/sksg/src/SkSGGroup.cpp -FILE: ../../../third_party/skia/modules/sksg/src/SkSGInvalidationController.cpp -FILE: ../../../third_party/skia/modules/sksg/src/SkSGMerge.cpp -FILE: ../../../third_party/skia/modules/sksg/src/SkSGNode.cpp -FILE: ../../../third_party/skia/modules/sksg/src/SkSGPaint.cpp -FILE: ../../../third_party/skia/modules/sksg/src/SkSGPath.cpp -FILE: ../../../third_party/skia/modules/sksg/src/SkSGRect.cpp -FILE: ../../../third_party/skia/modules/sksg/src/SkSGRenderNode.cpp -FILE: ../../../third_party/skia/modules/sksg/src/SkSGTransform.cpp -FILE: ../../../third_party/skia/modules/svg/include/SkSVGGradient.h -FILE: ../../../third_party/skia/modules/svg/include/SkSVGPattern.h -FILE: ../../../third_party/skia/modules/svg/include/SkSVGRadialGradient.h -FILE: ../../../third_party/skia/modules/svg/include/SkSVGUse.h -FILE: ../../../third_party/skia/modules/svg/src/SkSVGGradient.cpp -FILE: ../../../third_party/skia/modules/svg/src/SkSVGPattern.cpp -FILE: ../../../third_party/skia/modules/svg/src/SkSVGRadialGradient.cpp -FILE: ../../../third_party/skia/modules/svg/src/SkSVGUse.cpp -FILE: ../../../third_party/skia/samplecode/SampleChineseFling.cpp -FILE: ../../../third_party/skia/samplecode/SampleCowboy.cpp -FILE: ../../../third_party/skia/samplecode/SampleMixer.cpp -FILE: ../../../third_party/skia/samplecode/SamplePathText.cpp -FILE: ../../../third_party/skia/samplecode/SampleShadowColor.cpp -FILE: ../../../third_party/skia/samplecode/SampleShadowReference.cpp -FILE: ../../../third_party/skia/samplecode/SampleShadowUtils.cpp -FILE: ../../../third_party/skia/samplecode/SampleStrokeVerb.cpp -FILE: ../../../third_party/skia/src/android/SkAndroidFrameworkUtils.cpp -FILE: ../../../third_party/skia/src/codec/SkBmpBaseCodec.cpp -FILE: ../../../third_party/skia/src/codec/SkBmpBaseCodec.h -FILE: ../../../third_party/skia/src/codec/SkFrameHolder.h -FILE: ../../../third_party/skia/src/codec/SkHeifCodec.cpp -FILE: ../../../third_party/skia/src/codec/SkHeifCodec.h -FILE: ../../../third_party/skia/src/codec/SkJpegPriv.h -FILE: ../../../third_party/skia/src/codec/SkParseEncodedOrigin.h -FILE: ../../../third_party/skia/src/codec/SkPngPriv.h -FILE: ../../../third_party/skia/src/codec/SkStubHeifDecoderAPI.h -FILE: ../../../third_party/skia/src/core/SkArenaAllocList.h -FILE: ../../../third_party/skia/src/core/SkAutoBlitterChoose.h -FILE: ../../../third_party/skia/src/core/SkBlendMode.cpp -FILE: ../../../third_party/skia/src/core/SkClipStackDevice.cpp -FILE: ../../../third_party/skia/src/core/SkClipStackDevice.h -FILE: ../../../third_party/skia/src/core/SkDeferredDisplayListRecorder.cpp -FILE: ../../../third_party/skia/src/core/SkDrawShadowInfo.cpp -FILE: ../../../third_party/skia/src/core/SkDrawShadowInfo.h -FILE: ../../../third_party/skia/src/core/SkDraw_vertices.cpp -FILE: ../../../third_party/skia/src/core/SkExecutor.cpp -FILE: ../../../third_party/skia/src/core/SkFontMgrPriv.h -FILE: ../../../third_party/skia/src/core/SkGaussFilter.cpp -FILE: ../../../third_party/skia/src/core/SkGaussFilter.h -FILE: ../../../third_party/skia/src/core/SkMaskBlurFilter.cpp -FILE: ../../../third_party/skia/src/core/SkMaskBlurFilter.h -FILE: ../../../third_party/skia/src/core/SkPromiseImageTexture.cpp -FILE: ../../../third_party/skia/src/core/SkRasterClipStack.h -FILE: ../../../third_party/skia/src/core/SkSafeMath.h -FILE: ../../../third_party/skia/src/core/SkVertices.cpp -FILE: ../../../third_party/skia/src/core/SkWritePixelsRec.h -FILE: ../../../third_party/skia/src/effects/SkDashImpl.h -FILE: ../../../third_party/skia/src/effects/SkHighContrastFilter.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrAHardwareBufferImageGenerator.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrAHardwareBufferImageGenerator.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrBackendSurface.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrBackendTextureImageGenerator.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrBackendTextureImageGenerator.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrColorInfo.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrColorInfo.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrDeferredProxyUploader.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrDeferredUpload.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrOnFlushResourceProvider.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrOnFlushResourceProvider.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrProcessorSet.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrProcessorSet.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrResourceAllocator.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrResourceAllocator.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrSemaphore.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrSurfaceProxyPriv.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrTextureProxyCacheAccess.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrTextureProxyPriv.h -FILE: ../../../third_party/skia/src/gpu/ganesh/SkGr.h -FILE: ../../../third_party/skia/src/gpu/ganesh/StencilClip.h -FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrAtlasedShaderHelpers.h -FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrTextureEffect.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrTextureEffect.h -FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLOpsRenderPass.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLSemaphore.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLSemaphore.h -FILE: ../../../third_party/skia/src/gpu/ganesh/glsl/GrGLSLVertexGeoBuilder.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/glsl/GrGLSLVertexGeoBuilder.h -FILE: ../../../third_party/skia/src/gpu/ganesh/mock/GrMockAttachment.h -FILE: ../../../third_party/skia/src/gpu/ganesh/mock/GrMockBuffer.h -FILE: ../../../third_party/skia/src/gpu/ganesh/mock/GrMockCaps.h -FILE: ../../../third_party/skia/src/gpu/ganesh/mock/GrMockGpu.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/mock/GrMockGpu.h -FILE: ../../../third_party/skia/src/gpu/ganesh/mock/GrMockOpsRenderPass.h -FILE: ../../../third_party/skia/src/gpu/ganesh/mock/GrMockTexture.h -FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlCaps.h -FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlCaps.mm -FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlGpu.h -FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlGpu.mm -FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlRenderTarget.h -FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlRenderTarget.mm -FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlTexture.h -FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlTexture.mm -FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlTrampoline.h -FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlTrampoline.mm -FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlUtil.h -FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlUtil.mm -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/ClearOp.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/GrSimpleMeshDrawOpHelper.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/GrSimpleMeshDrawOpHelper.h -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/TextureOp.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/TextureOp.h -FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkSemaphore.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkSemaphore.h -FILE: ../../../third_party/skia/src/opts/SkUtils_opts.h -FILE: ../../../third_party/skia/src/pdf/SkKeyedImage.cpp -FILE: ../../../third_party/skia/src/pdf/SkKeyedImage.h -FILE: ../../../third_party/skia/src/pdf/SkPDFGradientShader.cpp -FILE: ../../../third_party/skia/src/pdf/SkPDFGradientShader.h -FILE: ../../../third_party/skia/src/ports/SkFontMgr_custom_directory.cpp -FILE: ../../../third_party/skia/src/ports/SkFontMgr_custom_embedded.cpp -FILE: ../../../third_party/skia/src/ports/SkFontMgr_custom_empty.cpp -FILE: ../../../third_party/skia/src/ports/SkFontMgr_mac_ct_factory.cpp -FILE: ../../../third_party/skia/src/ports/SkOSFile_ios.h -FILE: ../../../third_party/skia/src/sfnt/SkOTTable_fvar.h -FILE: ../../../third_party/skia/src/shaders/SkShaderBase.h -FILE: ../../../third_party/skia/src/sksl/SkSLFileOutputStream.h -FILE: ../../../third_party/skia/src/sksl/SkSLLexer.cpp -FILE: ../../../third_party/skia/src/sksl/SkSLLexer.h -FILE: ../../../third_party/skia/src/sksl/SkSLOutputStream.h -FILE: ../../../third_party/skia/src/sksl/SkSLString.cpp -FILE: ../../../third_party/skia/src/sksl/SkSLStringStream.h -FILE: ../../../third_party/skia/src/sksl/codegen/SkSLPipelineStageCodeGenerator.h -FILE: ../../../third_party/skia/src/sksl/ir/SkSLSetting.cpp -FILE: ../../../third_party/skia/src/sksl/ir/SkSLSwitchCase.h -FILE: ../../../third_party/skia/src/sksl/ir/SkSLSwitchStatement.h -FILE: ../../../third_party/skia/src/sksl/lex/DFA.h -FILE: ../../../third_party/skia/src/sksl/lex/DFAState.h -FILE: ../../../third_party/skia/src/sksl/lex/LexUtil.h -FILE: ../../../third_party/skia/src/sksl/lex/Main.cpp -FILE: ../../../third_party/skia/src/sksl/lex/NFA.cpp -FILE: ../../../third_party/skia/src/sksl/lex/NFA.h -FILE: ../../../third_party/skia/src/sksl/lex/NFAState.h -FILE: ../../../third_party/skia/src/sksl/lex/NFAtoDFA.h -FILE: ../../../third_party/skia/src/sksl/lex/RegexNode.cpp -FILE: ../../../third_party/skia/src/sksl/lex/RegexNode.h -FILE: ../../../third_party/skia/src/sksl/lex/RegexParser.cpp -FILE: ../../../third_party/skia/src/sksl/lex/RegexParser.h -FILE: ../../../third_party/skia/src/utils/SkFloatToDecimal.cpp -FILE: ../../../third_party/skia/src/utils/SkFloatToDecimal.h -FILE: ../../../third_party/skia/src/utils/SkJSONWriter.cpp -FILE: ../../../third_party/skia/src/utils/SkJSONWriter.h -FILE: ../../../third_party/skia/src/utils/SkPolyUtils.cpp -FILE: ../../../third_party/skia/src/utils/SkPolyUtils.h -FILE: ../../../third_party/skia/src/utils/SkShadowTessellator.cpp -FILE: ../../../third_party/skia/src/utils/SkShadowTessellator.h -FILE: ../../../third_party/skia/src/utils/SkShadowUtils.cpp ----------------------------------------------------------------------------------------------------- -Copyright 2017 Google Inc. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - - * Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: skia -ORIGIN: ../../../third_party/skia/bench/CreateBackendTextureBench.cpp + ../../../third_party/skia/LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/skia/bench/CreateBackendTextureBench.cpp -FILE: ../../../third_party/skia/bench/GrQuadBench.cpp -FILE: ../../../third_party/skia/bench/SkSLBench.h -FILE: ../../../third_party/skia/gm/animated_image_orientation.cpp -FILE: ../../../third_party/skia/gm/crbug_1041204.cpp -FILE: ../../../third_party/skia/gm/crbug_1139750.cpp -FILE: ../../../third_party/skia/gm/crbug_1156804.cpp -FILE: ../../../third_party/skia/gm/crbug_1162942.cpp -FILE: ../../../third_party/skia/gm/crbug_224618.cpp -FILE: ../../../third_party/skia/gm/encode_color_types.cpp -FILE: ../../../third_party/skia/gm/userfont.cpp -FILE: ../../../third_party/skia/gm/ycbcrimage.cpp -FILE: ../../../third_party/skia/include/core/SkYUVAInfo.h -FILE: ../../../third_party/skia/include/core/SkYUVAPixmaps.h -FILE: ../../../third_party/skia/include/gpu/GrBackendSurfaceMutableState.h -FILE: ../../../third_party/skia/include/gpu/GrYUVABackendTextures.h -FILE: ../../../third_party/skia/include/gpu/d3d/GrD3DBackendContext.h -FILE: ../../../third_party/skia/include/gpu/d3d/GrD3DTypes.h -FILE: ../../../third_party/skia/include/ports/SkImageGeneratorNDK.h -FILE: ../../../third_party/skia/include/private/SkIDChangeListener.h -FILE: ../../../third_party/skia/include/private/SkSLSampleUsage.h -FILE: ../../../third_party/skia/include/private/gpu/ganesh/GrD3DTypesMinimal.h -FILE: ../../../third_party/skia/include/sksl/DSL.h -FILE: ../../../third_party/skia/include/sksl/DSLCore.h -FILE: ../../../third_party/skia/include/sksl/DSLExpression.h -FILE: ../../../third_party/skia/include/sksl/DSLModifiers.h -FILE: ../../../third_party/skia/include/sksl/DSLType.h -FILE: ../../../third_party/skia/include/sksl/DSLVar.h -FILE: ../../../third_party/skia/include/utils/SkCustomTypeface.h -FILE: ../../../third_party/skia/modules/canvaskit/gm_bindings.cpp -FILE: ../../../third_party/skia/modules/canvaskit/viewer_bindings.cpp -FILE: ../../../third_party/skia/modules/canvaskit/wasm_tools/SIMD/simd_float_capabilities.cpp -FILE: ../../../third_party/skia/modules/canvaskit/wasm_tools/SIMD/simd_int_capabilities.cpp -FILE: ../../../third_party/skia/modules/skunicode/include/SkUnicode.h -FILE: ../../../third_party/skia/samplecode/SampleMaterialShadows.cpp -FILE: ../../../third_party/skia/src/core/SkASAN.h -FILE: ../../../third_party/skia/src/core/SkBlockAllocator.cpp -FILE: ../../../third_party/skia/src/core/SkBlockAllocator.h -FILE: ../../../third_party/skia/src/core/SkIDChangeListener.cpp -FILE: ../../../third_party/skia/src/core/SkMatrixProvider.h -FILE: ../../../third_party/skia/src/core/SkRuntimeEffectPriv.h -FILE: ../../../third_party/skia/src/core/SkVM_fwd.h -FILE: ../../../third_party/skia/src/core/SkYUVAInfo.cpp -FILE: ../../../third_party/skia/src/core/SkYUVAPixmaps.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/ClipStack.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/ClipStack.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrBackendSemaphore.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrBackendSurfaceMutableState.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrBackendSurfaceMutableStateImpl.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrBackendUtils.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrBackendUtils.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrDDLTask.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrDDLTask.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrManagedResource.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrPixmap.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrRefCnt.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrRenderTargetContext.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrRingBuffer.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrRingBuffer.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrStagingBufferManager.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrStagingBufferManager.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrUniformDataManager.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrUniformDataManager.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrUtil.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrYUVABackendTextures.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/StencilMaskHelper.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/StencilMaskHelper.h -FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DAMDMemoryAllocator.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DAMDMemoryAllocator.h -FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DAttachment.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DAttachment.h -FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DBuffer.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DBuffer.h -FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DCaps.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DCaps.h -FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DCommandList.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DCommandList.h -FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DCommandSignature.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DCommandSignature.h -FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DCpuDescriptorManager.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DCpuDescriptorManager.h -FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DDescriptorHeap.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DDescriptorHeap.h -FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DDescriptorTableManager.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DDescriptorTableManager.h -FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DGpu.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DGpu.h -FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DOpsRenderPass.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DOpsRenderPass.h -FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DPipeline.h -FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DPipelineState.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DPipelineState.h -FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DPipelineStateBuilder.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DPipelineStateBuilder.h -FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DPipelineStateDataManager.h -FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DRenderTarget.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DRenderTarget.h -FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DResourceProvider.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DResourceProvider.h -FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DResourceState.h -FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DRootSignature.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DRootSignature.h -FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DSemaphore.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DSemaphore.h -FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DTexture.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DTexture.h -FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DTextureRenderTarget.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DTextureRenderTarget.h -FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DTextureResource.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DTextureResource.h -FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DTypesMinimal.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DTypesPriv.h -FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DUtil.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DUtil.h -FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrMatrixEffect.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrMatrixEffect.h -FILE: ../../../third_party/skia/src/gpu/ganesh/geometry/GrShape.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/geometry/GrShape.h -FILE: ../../../third_party/skia/src/gpu/ganesh/gl/webgl/GrGLMakeNativeInterface_webgl.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/glsl/GrGLSLUniformHandler.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkMSAALoadManager.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkMSAALoadManager.h -FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkManagedResource.h -FILE: ../../../third_party/skia/src/image/SkRescaleAndReadPixels.cpp -FILE: ../../../third_party/skia/src/image/SkRescaleAndReadPixels.h -FILE: ../../../third_party/skia/src/ports/SkImageEncoder_NDK.cpp -FILE: ../../../third_party/skia/src/ports/SkImageGeneratorNDK.cpp -FILE: ../../../third_party/skia/src/ports/SkNDKConversions.cpp -FILE: ../../../third_party/skia/src/ports/SkNDKConversions.h -FILE: ../../../third_party/skia/src/sksl/SkSLAnalysis.h -FILE: ../../../third_party/skia/src/sksl/SkSLBuiltinMap.cpp -FILE: ../../../third_party/skia/src/sksl/SkSLBuiltinMap.h -FILE: ../../../third_party/skia/src/sksl/SkSLConstantFolder.cpp -FILE: ../../../third_party/skia/src/sksl/SkSLConstantFolder.h -FILE: ../../../third_party/skia/src/sksl/SkSLInliner.cpp -FILE: ../../../third_party/skia/src/sksl/SkSLInliner.h -FILE: ../../../third_party/skia/src/sksl/SkSLMemoryPool.h -FILE: ../../../third_party/skia/src/sksl/SkSLPool.cpp -FILE: ../../../third_party/skia/src/sksl/SkSLPool.h -FILE: ../../../third_party/skia/src/sksl/SkSLSampleUsage.cpp -FILE: ../../../third_party/skia/src/sksl/SkSLThreadContext.cpp -FILE: ../../../third_party/skia/src/sksl/codegen/SkSLSPIRVtoHLSL.cpp -FILE: ../../../third_party/skia/src/sksl/codegen/SkSLSPIRVtoHLSL.h -FILE: ../../../third_party/skia/src/sksl/codegen/SkSLVMCodeGenerator.cpp -FILE: ../../../third_party/skia/src/sksl/codegen/SkSLVMCodeGenerator.h -FILE: ../../../third_party/skia/src/sksl/dsl/DSLCore.cpp -FILE: ../../../third_party/skia/src/sksl/dsl/DSLExpression.cpp -FILE: ../../../third_party/skia/src/sksl/dsl/DSLType.cpp -FILE: ../../../third_party/skia/src/sksl/dsl/DSLVar.cpp -FILE: ../../../third_party/skia/src/sksl/dsl/priv/DSLWriter.cpp -FILE: ../../../third_party/skia/src/sksl/dsl/priv/DSLWriter.h -FILE: ../../../third_party/skia/src/sksl/ir/SkSLFunctionPrototype.h -FILE: ../../../third_party/skia/src/sksl/ir/SkSLPrefixExpression.cpp -FILE: ../../../third_party/skia/src/sksl/ir/SkSLStructDefinition.h -FILE: ../../../third_party/skia/src/utils/SkCustomTypeface.cpp ----------------------------------------------------------------------------------------------------- -Copyright 2020 Google LLC - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - - * Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: skia -ORIGIN: ../../../third_party/skia/bench/FindCubicConvex180ChopsBench.cpp + ../../../third_party/skia/LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/skia/bench/FindCubicConvex180ChopsBench.cpp -FILE: ../../../third_party/skia/bench/GlyphQuadFillBench.cpp -FILE: ../../../third_party/skia/bench/TessellateBench.cpp -FILE: ../../../third_party/skia/fuzz/FuzzSkParagraph.cpp -FILE: ../../../third_party/skia/gm/3d.cpp -FILE: ../../../third_party/skia/gm/bc1_transparency.cpp -FILE: ../../../third_party/skia/gm/bicubic.cpp -FILE: ../../../third_party/skia/gm/compressed_textures.cpp -FILE: ../../../third_party/skia/gm/crbug_1073670.cpp -FILE: ../../../third_party/skia/gm/crbug_1086705.cpp -FILE: ../../../third_party/skia/gm/crbug_1113794.cpp -FILE: ../../../third_party/skia/gm/exoticformats.cpp -FILE: ../../../third_party/skia/gm/rsxtext.cpp -FILE: ../../../third_party/skia/gm/skbug_9819.cpp -FILE: ../../../third_party/skia/gm/strokerect_anisotropic.cpp -FILE: ../../../third_party/skia/gm/verifiers/gmverifier.cpp -FILE: ../../../third_party/skia/gm/verifiers/gmverifier.h -FILE: ../../../third_party/skia/gm/widebuttcaps.cpp -FILE: ../../../third_party/skia/include/core/SkM44.h -FILE: ../../../third_party/skia/include/core/SkSamplingOptions.h -FILE: ../../../third_party/skia/include/effects/SkStrokeAndFillPathEffect.h -FILE: ../../../third_party/skia/include/gpu/GrDirectContext.h -FILE: ../../../third_party/skia/include/gpu/mtl/GrMtlBackendContext.h -FILE: ../../../third_party/skia/include/private/SkOpts_spi.h -FILE: ../../../third_party/skia/include/private/SkTPin.h -FILE: ../../../third_party/skia/modules/audioplayer/SkAudioPlayer.cpp -FILE: ../../../third_party/skia/modules/audioplayer/SkAudioPlayer.h -FILE: ../../../third_party/skia/modules/audioplayer/SkAudioPlayer_mac.mm -FILE: ../../../third_party/skia/modules/audioplayer/SkAudioPlayer_none.cpp -FILE: ../../../third_party/skia/modules/audioplayer/SkAudioPlayer_oboe.cpp -FILE: ../../../third_party/skia/modules/audioplayer/SkAudioPlayer_sfml.cpp -FILE: ../../../third_party/skia/modules/skottie/include/ExternalLayer.h -FILE: ../../../third_party/skia/modules/skottie/src/Adapter.h -FILE: ../../../third_party/skia/modules/skottie/src/Camera.cpp -FILE: ../../../third_party/skia/modules/skottie/src/Camera.h -FILE: ../../../third_party/skia/modules/skottie/src/Path.cpp -FILE: ../../../third_party/skia/modules/skottie/src/Transform.cpp -FILE: ../../../third_party/skia/modules/skottie/src/Transform.h -FILE: ../../../third_party/skia/modules/skottie/src/animator/Animator.cpp -FILE: ../../../third_party/skia/modules/skottie/src/animator/Animator.h -FILE: ../../../third_party/skia/modules/skottie/src/animator/KeyframeAnimator.cpp -FILE: ../../../third_party/skia/modules/skottie/src/animator/KeyframeAnimator.h -FILE: ../../../third_party/skia/modules/skottie/src/animator/ScalarKeyframeAnimator.cpp -FILE: ../../../third_party/skia/modules/skottie/src/animator/ShapeKeyframeAnimator.cpp -FILE: ../../../third_party/skia/modules/skottie/src/animator/TextKeyframeAnimator.cpp -FILE: ../../../third_party/skia/modules/skottie/src/animator/Vec2KeyframeAnimator.cpp -FILE: ../../../third_party/skia/modules/skottie/src/animator/VectorKeyframeAnimator.cpp -FILE: ../../../third_party/skia/modules/skottie/src/animator/VectorKeyframeAnimator.h -FILE: ../../../third_party/skia/modules/skottie/src/effects/BlackAndWhiteEffect.cpp -FILE: ../../../third_party/skia/modules/skottie/src/effects/BrightnessContrastEffect.cpp -FILE: ../../../third_party/skia/modules/skottie/src/effects/CornerPinEffect.cpp -FILE: ../../../third_party/skia/modules/skottie/src/effects/DisplacementMapEffect.cpp -FILE: ../../../third_party/skia/modules/skottie/src/effects/GlowStyles.cpp -FILE: ../../../third_party/skia/modules/skottie/src/effects/ShadowStyles.cpp -FILE: ../../../third_party/skia/modules/skottie/src/layers/AudioLayer.cpp -FILE: ../../../third_party/skia/modules/skottie/src/layers/shapelayer/Ellipse.cpp -FILE: ../../../third_party/skia/modules/skottie/src/layers/shapelayer/FillStroke.cpp -FILE: ../../../third_party/skia/modules/skottie/src/layers/shapelayer/Gradient.cpp -FILE: ../../../third_party/skia/modules/skottie/src/layers/shapelayer/MergePaths.cpp -FILE: ../../../third_party/skia/modules/skottie/src/layers/shapelayer/OffsetPaths.cpp -FILE: ../../../third_party/skia/modules/skottie/src/layers/shapelayer/Polystar.cpp -FILE: ../../../third_party/skia/modules/skottie/src/layers/shapelayer/PuckerBloat.cpp -FILE: ../../../third_party/skia/modules/skottie/src/layers/shapelayer/Rectangle.cpp -FILE: ../../../third_party/skia/modules/skottie/src/layers/shapelayer/Repeater.cpp -FILE: ../../../third_party/skia/modules/skottie/src/layers/shapelayer/RoundCorners.cpp -FILE: ../../../third_party/skia/modules/skottie/src/layers/shapelayer/ShapeLayer.h -FILE: ../../../third_party/skia/modules/skottie/src/layers/shapelayer/TrimPaths.cpp -FILE: ../../../third_party/skia/modules/skparagraph/gm/simple_gm.cpp -FILE: ../../../third_party/skia/modules/sksg/include/SkSGGeometryEffect.h -FILE: ../../../third_party/skia/modules/sksg/src/SkSGGeometryEffect.cpp -FILE: ../../../third_party/skia/modules/skshaper/src/SkShaper_coretext.cpp -FILE: ../../../third_party/skia/modules/skunicode/src/SkUnicode_icu.cpp -FILE: ../../../third_party/skia/modules/svg/include/SkSVGFe.h -FILE: ../../../third_party/skia/modules/svg/include/SkSVGFeBlend.h -FILE: ../../../third_party/skia/modules/svg/include/SkSVGFeColorMatrix.h -FILE: ../../../third_party/skia/modules/svg/include/SkSVGFeComposite.h -FILE: ../../../third_party/skia/modules/svg/include/SkSVGFeDisplacementMap.h -FILE: ../../../third_party/skia/modules/svg/include/SkSVGFeFlood.h -FILE: ../../../third_party/skia/modules/svg/include/SkSVGFeGaussianBlur.h -FILE: ../../../third_party/skia/modules/svg/include/SkSVGFeLighting.h -FILE: ../../../third_party/skia/modules/svg/include/SkSVGFeMorphology.h -FILE: ../../../third_party/skia/modules/svg/include/SkSVGFeOffset.h -FILE: ../../../third_party/skia/modules/svg/include/SkSVGFeTurbulence.h -FILE: ../../../third_party/skia/modules/svg/include/SkSVGFilter.h -FILE: ../../../third_party/skia/modules/svg/include/SkSVGFilterContext.h -FILE: ../../../third_party/skia/modules/svg/src/SkSVGFe.cpp -FILE: ../../../third_party/skia/modules/svg/src/SkSVGFeBlend.cpp -FILE: ../../../third_party/skia/modules/svg/src/SkSVGFeColorMatrix.cpp -FILE: ../../../third_party/skia/modules/svg/src/SkSVGFeComposite.cpp -FILE: ../../../third_party/skia/modules/svg/src/SkSVGFeDisplacementMap.cpp -FILE: ../../../third_party/skia/modules/svg/src/SkSVGFeFlood.cpp -FILE: ../../../third_party/skia/modules/svg/src/SkSVGFeGaussianBlur.cpp -FILE: ../../../third_party/skia/modules/svg/src/SkSVGFeLighting.cpp -FILE: ../../../third_party/skia/modules/svg/src/SkSVGFeMorphology.cpp -FILE: ../../../third_party/skia/modules/svg/src/SkSVGFeOffset.cpp -FILE: ../../../third_party/skia/modules/svg/src/SkSVGFeTurbulence.cpp -FILE: ../../../third_party/skia/modules/svg/src/SkSVGFilter.cpp -FILE: ../../../third_party/skia/modules/svg/src/SkSVGFilterContext.cpp -FILE: ../../../third_party/skia/modules/svg/src/SkSVGTextPriv.h -FILE: ../../../third_party/skia/modules/svg/utils/SvgTool.cpp -FILE: ../../../third_party/skia/samplecode/Sample3D.cpp -FILE: ../../../third_party/skia/samplecode/SampleAudio.cpp -FILE: ../../../third_party/skia/samplecode/SampleFitCubicToCircle.cpp -FILE: ../../../third_party/skia/samplecode/SampleSimpleStroker.cpp -FILE: ../../../third_party/skia/samplecode/SampleTiming.cpp -FILE: ../../../third_party/skia/samplecode/SampleVariableWidthStroker.cpp -FILE: ../../../third_party/skia/src/core/SkColorFilterPriv.h -FILE: ../../../third_party/skia/src/core/SkCompressedDataUtils.cpp -FILE: ../../../third_party/skia/src/core/SkCompressedDataUtils.h -FILE: ../../../third_party/skia/src/core/SkM44.cpp -FILE: ../../../third_party/skia/src/core/SkMipmapBuilder.h -FILE: ../../../third_party/skia/src/core/SkOpts_erms.cpp -FILE: ../../../third_party/skia/src/core/SkSamplingPriv.h -FILE: ../../../third_party/skia/src/core/SkVerticesPriv.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrDynamicAtlas.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrDynamicAtlas.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrEagerVertexAllocator.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrHashMapWithCache.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrRecordingContextPriv.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrThreadSafeCache.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrThreadSafeCache.h -FILE: ../../../third_party/skia/src/gpu/ganesh/geometry/GrAATriangulator.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/geometry/GrAATriangulator.h -FILE: ../../../third_party/skia/src/gpu/ganesh/mock/GrMockOpTarget.h -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/DrawAtlasPathOp.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/DrawAtlasPathOp.h -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/GrSimpleMeshDrawOpHelperWithStencil.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/GrSimpleMeshDrawOpHelperWithStencil.h -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/SmallPathAtlasMgr.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/SmallPathAtlasMgr.h -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/SmallPathShapeData.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/SmallPathShapeData.h -FILE: ../../../third_party/skia/src/gpu/tessellate/MiddleOutPolygonTriangulator.h -FILE: ../../../third_party/skia/src/gpu/tessellate/StrokeIterator.h -FILE: ../../../third_party/skia/src/gpu/tessellate/WangsFormula.h -FILE: ../../../third_party/skia/src/opts/SkOpts_skx.cpp -FILE: ../../../third_party/skia/src/ports/SkScalerContext_mac_ct.h -FILE: ../../../third_party/skia/src/ports/SkTypeface_mac_ct.h -FILE: ../../../third_party/skia/src/text/gpu/SDFTControl.cpp -FILE: ../../../third_party/skia/src/text/gpu/SDFTControl.h -FILE: ../../../third_party/skia/src/utils/mac/SkCGBase.h -FILE: ../../../third_party/skia/src/utils/mac/SkCGGeometry.h -FILE: ../../../third_party/skia/src/utils/mac/SkCTFont.cpp -FILE: ../../../third_party/skia/src/utils/mac/SkCTFont.h ----------------------------------------------------------------------------------------------------- -Copyright 2020 Google Inc. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - - * Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: skia -ORIGIN: ../../../third_party/skia/bench/ReadPixBench.cpp + ../../../third_party/skia/LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/skia/bench/ReadPixBench.cpp -FILE: ../../../third_party/skia/bench/WriterBench.cpp -FILE: ../../../third_party/skia/src/core/SkImageFilter.cpp -FILE: ../../../third_party/skia/src/core/SkUtilsArm.cpp -FILE: ../../../third_party/skia/src/effects/imagefilters/SkColorFilterImageFilter.cpp -FILE: ../../../third_party/skia/src/effects/imagefilters/SkLightingImageFilter.cpp -FILE: ../../../third_party/skia/src/effects/imagefilters/SkMagnifierImageFilter.cpp -FILE: ../../../third_party/skia/src/effects/imagefilters/SkMatrixConvolutionImageFilter.cpp -FILE: ../../../third_party/skia/src/effects/imagefilters/SkMergeImageFilter.cpp -FILE: ../../../third_party/skia/src/effects/imagefilters/SkMorphologyImageFilter.cpp -FILE: ../../../third_party/skia/src/effects/imagefilters/SkOffsetImageFilter.cpp -FILE: ../../../third_party/skia/src/images/SkImageEncoderFns.h ----------------------------------------------------------------------------------------------------- -Copyright 2012 The Android Open Source Project - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - - * Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: skia -ORIGIN: ../../../third_party/skia/bench/ShaperBench.cpp + ../../../third_party/skia/LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/skia/bench/ShaperBench.cpp -FILE: ../../../third_party/skia/bench/SkGlyphCacheBench.h -FILE: ../../../third_party/skia/docs/examples/Alpha_Constants_a.cpp -FILE: ../../../third_party/skia/docs/examples/Alpha_Constants_b.cpp -FILE: ../../../third_party/skia/docs/examples/Alpha_Type_Opaque.cpp -FILE: ../../../third_party/skia/docs/examples/Alpha_Type_Premul.cpp -FILE: ../../../third_party/skia/docs/examples/Alpha_Type_Unpremul.cpp -FILE: ../../../third_party/skia/docs/examples/Anti_Alias.cpp -FILE: ../../../third_party/skia/docs/examples/Arc.cpp -FILE: ../../../third_party/skia/docs/examples/AutoCanvasRestore_SkCanvas_star.cpp -FILE: ../../../third_party/skia/docs/examples/AutoCanvasRestore_restore.cpp -FILE: ../../../third_party/skia/docs/examples/Bitmap_012.cpp -FILE: ../../../third_party/skia/docs/examples/Bitmap_ComputeIsOpaque.cpp -FILE: ../../../third_party/skia/docs/examples/Bitmap_HeapAllocator_allocPixelRef.cpp -FILE: ../../../third_party/skia/docs/examples/Bitmap_allocN32Pixels.cpp -FILE: ../../../third_party/skia/docs/examples/Bitmap_allocPixels.cpp -FILE: ../../../third_party/skia/docs/examples/Bitmap_allocPixelsFlags.cpp -FILE: ../../../third_party/skia/docs/examples/Bitmap_bounds.cpp -FILE: ../../../third_party/skia/docs/examples/Bitmap_bytesPerPixel.cpp -FILE: ../../../third_party/skia/docs/examples/Bitmap_colorSpace.cpp -FILE: ../../../third_party/skia/docs/examples/Bitmap_colorType.cpp -FILE: ../../../third_party/skia/docs/examples/Bitmap_computeByteSize.cpp -FILE: ../../../third_party/skia/docs/examples/Bitmap_copy_const_SkBitmap.cpp -FILE: ../../../third_party/skia/docs/examples/Bitmap_copy_operator.cpp -FILE: ../../../third_party/skia/docs/examples/Bitmap_dimensions.cpp -FILE: ../../../third_party/skia/docs/examples/Bitmap_drawsNothing.cpp -FILE: ../../../third_party/skia/docs/examples/Bitmap_empty.cpp -FILE: ../../../third_party/skia/docs/examples/Bitmap_empty_constructor.cpp -FILE: ../../../third_party/skia/docs/examples/Bitmap_erase.cpp -FILE: ../../../third_party/skia/docs/examples/Bitmap_eraseARGB.cpp -FILE: ../../../third_party/skia/docs/examples/Bitmap_eraseColor.cpp -FILE: ../../../third_party/skia/docs/examples/Bitmap_extractAlpha.cpp -FILE: ../../../third_party/skia/docs/examples/Bitmap_extractAlpha_2.cpp -FILE: ../../../third_party/skia/docs/examples/Bitmap_extractAlpha_3.cpp -FILE: ../../../third_party/skia/docs/examples/Bitmap_extractSubset.cpp -FILE: ../../../third_party/skia/docs/examples/Bitmap_getAddr.cpp -FILE: ../../../third_party/skia/docs/examples/Bitmap_getAddr16.cpp -FILE: ../../../third_party/skia/docs/examples/Bitmap_getAddr32.cpp -FILE: ../../../third_party/skia/docs/examples/Bitmap_getAddr8.cpp -FILE: ../../../third_party/skia/docs/examples/Bitmap_getBounds.cpp -FILE: ../../../third_party/skia/docs/examples/Bitmap_getBounds_2.cpp -FILE: ../../../third_party/skia/docs/examples/Bitmap_getColor.cpp -FILE: ../../../third_party/skia/docs/examples/Bitmap_getGenerationID.cpp -FILE: ../../../third_party/skia/docs/examples/Bitmap_getPixels.cpp -FILE: ../../../third_party/skia/docs/examples/Bitmap_getSubset.cpp -FILE: ../../../third_party/skia/docs/examples/Bitmap_height.cpp -FILE: ../../../third_party/skia/docs/examples/Bitmap_info.cpp -FILE: ../../../third_party/skia/docs/examples/Bitmap_installPixels.cpp -FILE: ../../../third_party/skia/docs/examples/Bitmap_installPixels_2.cpp -FILE: ../../../third_party/skia/docs/examples/Bitmap_installPixels_3.cpp -FILE: ../../../third_party/skia/docs/examples/Bitmap_isImmutable.cpp -FILE: ../../../third_party/skia/docs/examples/Bitmap_isNull.cpp -FILE: ../../../third_party/skia/docs/examples/Bitmap_isOpaque.cpp -FILE: ../../../third_party/skia/docs/examples/Bitmap_move_SkBitmap.cpp -FILE: ../../../third_party/skia/docs/examples/Bitmap_move_operator.cpp -FILE: ../../../third_party/skia/docs/examples/Bitmap_notifyPixelsChanged.cpp -FILE: ../../../third_party/skia/docs/examples/Bitmap_peekPixels.cpp -FILE: ../../../third_party/skia/docs/examples/Bitmap_pixelRef.cpp -FILE: ../../../third_party/skia/docs/examples/Bitmap_pixelRefOrigin.cpp -FILE: ../../../third_party/skia/docs/examples/Bitmap_pixmap.cpp -FILE: ../../../third_party/skia/docs/examples/Bitmap_readPixels.cpp -FILE: ../../../third_party/skia/docs/examples/Bitmap_readPixels_2.cpp -FILE: ../../../third_party/skia/docs/examples/Bitmap_readPixels_3.cpp -FILE: ../../../third_party/skia/docs/examples/Bitmap_readyToDraw.cpp -FILE: ../../../third_party/skia/docs/examples/Bitmap_refColorSpace.cpp -FILE: ../../../third_party/skia/docs/examples/Bitmap_reset.cpp -FILE: ../../../third_party/skia/docs/examples/Bitmap_rowBytes.cpp -FILE: ../../../third_party/skia/docs/examples/Bitmap_rowBytesAsPixels.cpp -FILE: ../../../third_party/skia/docs/examples/Bitmap_setAlphaType.cpp -FILE: ../../../third_party/skia/docs/examples/Bitmap_setImmutable.cpp -FILE: ../../../third_party/skia/docs/examples/Bitmap_setInfo.cpp -FILE: ../../../third_party/skia/docs/examples/Bitmap_setPixelRef.cpp -FILE: ../../../third_party/skia/docs/examples/Bitmap_setPixels.cpp -FILE: ../../../third_party/skia/docs/examples/Bitmap_shiftPerPixel.cpp -FILE: ../../../third_party/skia/docs/examples/Bitmap_swap.cpp -FILE: ../../../third_party/skia/docs/examples/Bitmap_tryAllocN32Pixels.cpp -FILE: ../../../third_party/skia/docs/examples/Bitmap_tryAllocPixels.cpp -FILE: ../../../third_party/skia/docs/examples/Bitmap_tryAllocPixelsFlags.cpp -FILE: ../../../third_party/skia/docs/examples/Bitmap_tryAllocPixels_2.cpp -FILE: ../../../third_party/skia/docs/examples/Bitmap_tryAllocPixels_3.cpp -FILE: ../../../third_party/skia/docs/examples/Bitmap_tryAllocPixels_4.cpp -FILE: ../../../third_party/skia/docs/examples/Bitmap_width.cpp -FILE: ../../../third_party/skia/docs/examples/Bitmap_writePixels.cpp -FILE: ../../../third_party/skia/docs/examples/Bitmap_writePixels_2.cpp -FILE: ../../../third_party/skia/docs/examples/Blend_Mode_Methods.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_129.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_MakeRasterDirect.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_MakeRasterDirectN32.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_PointMode.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_SaveLayerRec.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_SaveLayerRec_SaveLayerRec.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_SaveLayerRec_const_SkRect_star_const_SkPaint_star.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_SaveLayerRec_const_SkRect_star_const_SkPaint_star_const_SkImageFilter_star.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_SrcRectConstraint.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_accessTopLayerPixels_a.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_accessTopLayerPixels_b.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_accessTopRasterHandle.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_clear.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_clipPath.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_clipPath_2.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_clipPath_3.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_clipRRect.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_clipRRect_2.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_clipRRect_3.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_clipRect.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_clipRect_2.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_clipRect_3.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_clipRegion.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_concat.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_const_SkBitmap_const_SkSurfaceProps.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_copy_const_SkBitmap.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_destructor.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_drawAnnotation_2.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_drawArc_a.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_drawArc_b.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_drawAtlas.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_drawAtlas_2.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_drawBitmap.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_drawBitmapRect.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_drawBitmapRect_2.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_drawBitmapRect_3.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_drawCircle.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_drawCircle_2.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_drawColor.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_drawDRRect_a.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_drawDRRect_b.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_drawDrawable.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_drawDrawable_2.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_drawIRect.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_drawImage.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_drawImageNine.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_drawImageNine_2.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_drawImageRect.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_drawImageRect_2.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_drawImageRect_3.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_drawImageRect_4.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_drawImageRect_5.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_drawImageRect_6.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_drawImage_2.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_drawLine.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_drawLine_2.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_drawOval.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_drawPaint.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_drawPatch.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_drawPatch_2_a.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_drawPatch_2_b.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_drawPath.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_drawPicture_2.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_drawPicture_3.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_drawPicture_4.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_drawPoint.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_drawPoint_2.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_drawPoints.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_drawPosText.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_drawPosTextH.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_drawRRect.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_drawRect.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_drawRegion.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_drawRoundRect.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_drawString.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_drawString_2.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_drawText.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_drawTextBlob.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_drawTextBlob_2.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_drawTextRSXform.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_drawVertices.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_drawVertices_2.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_empty_constructor.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_getBaseLayerSize.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_getContext.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_getDeviceClipBounds.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_getDeviceClipBounds_2.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_getLocalClipBounds.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_getLocalClipBounds_2.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_getProps.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_getSaveCount.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_getTotalMatrix.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_imageInfo.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_int_int_const_SkSurfaceProps_star.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_isClipEmpty.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_isClipRect.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_kInitWithPrevious_SaveLayerFlag.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_makeSurface.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_peekPixels.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_quickReject.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_quickReject_2.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_readPixels_2.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_readPixels_3.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_readPixels_a.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_readPixels_b.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_resetMatrix.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_restore.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_restoreToCount.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_rotate.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_rotate_2.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_save.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_saveLayer.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_saveLayerAlpha.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_saveLayerPreserveLCDTextRequests.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_saveLayer_2.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_saveLayer_3.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_scale.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_setMatrix.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_skew.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_translate.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_writePixels.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_writePixels_2.cpp -FILE: ../../../third_party/skia/docs/examples/Clear.cpp -FILE: ../../../third_party/skia/docs/examples/Clip.cpp -FILE: ../../../third_party/skia/docs/examples/Color.cpp -FILE: ../../../third_party/skia/docs/examples/ColorGetA.cpp -FILE: ../../../third_party/skia/docs/examples/ColorGetB.cpp -FILE: ../../../third_party/skia/docs/examples/ColorGetG.cpp -FILE: ../../../third_party/skia/docs/examples/ColorGetR.cpp -FILE: ../../../third_party/skia/docs/examples/ColorSetA.cpp -FILE: ../../../third_party/skia/docs/examples/ColorSetARGB.cpp -FILE: ../../../third_party/skia/docs/examples/ColorSetRGB.cpp -FILE: ../../../third_party/skia/docs/examples/ColorToHSV.cpp -FILE: ../../../third_party/skia/docs/examples/ColorTypeBytesPerPixel.cpp -FILE: ../../../third_party/skia/docs/examples/ColorTypeIsAlwaysOpaque.cpp -FILE: ../../../third_party/skia/docs/examples/ColorTypeValidateAlphaType.cpp -FILE: ../../../third_party/skia/docs/examples/Color_Burn.cpp -FILE: ../../../third_party/skia/docs/examples/Color_Constants_a.cpp -FILE: ../../../third_party/skia/docs/examples/Color_Constants_b.cpp -FILE: ../../../third_party/skia/docs/examples/Color_Constants_c.cpp -FILE: ../../../third_party/skia/docs/examples/Color_Constants_d.cpp -FILE: ../../../third_party/skia/docs/examples/Color_Dodge.cpp -FILE: ../../../third_party/skia/docs/examples/Color_Filter_Methods.cpp -FILE: ../../../third_party/skia/docs/examples/Color_Methods.cpp -FILE: ../../../third_party/skia/docs/examples/Color_Type_ARGB_4444.cpp -FILE: ../../../third_party/skia/docs/examples/Color_Type_Alpha_8.cpp -FILE: ../../../third_party/skia/docs/examples/Color_Type_BGRA_8888.cpp -FILE: ../../../third_party/skia/docs/examples/Color_Type_Gray_8.cpp -FILE: ../../../third_party/skia/docs/examples/Color_Type_RGBA_1010102.cpp -FILE: ../../../third_party/skia/docs/examples/Color_Type_RGBA_8888.cpp -FILE: ../../../third_party/skia/docs/examples/Color_Type_RGBA_F16.cpp -FILE: ../../../third_party/skia/docs/examples/Color_Type_RGB_101010.cpp -FILE: ../../../third_party/skia/docs/examples/Color_Type_RGB_565.cpp -FILE: ../../../third_party/skia/docs/examples/Color_Type_RGB_888.cpp -FILE: ../../../third_party/skia/docs/examples/Colors.cpp -FILE: ../../../third_party/skia/docs/examples/Conic_Weight_a.cpp -FILE: ../../../third_party/skia/docs/examples/Conic_Weight_b.cpp -FILE: ../../../third_party/skia/docs/examples/Conic_Weight_c.cpp -FILE: ../../../third_party/skia/docs/examples/Cubic.cpp -FILE: ../../../third_party/skia/docs/examples/Darken.cpp -FILE: ../../../third_party/skia/docs/examples/Device_Text.cpp -FILE: ../../../third_party/skia/docs/examples/Difference.cpp -FILE: ../../../third_party/skia/docs/examples/Dither_a.cpp -FILE: ../../../third_party/skia/docs/examples/Dither_b.cpp -FILE: ../../../third_party/skia/docs/examples/Dst.cpp -FILE: ../../../third_party/skia/docs/examples/Dst_Atop.cpp -FILE: ../../../third_party/skia/docs/examples/Dst_In.cpp -FILE: ../../../third_party/skia/docs/examples/Dst_Out.cpp -FILE: ../../../third_party/skia/docs/examples/Dst_Over.cpp -FILE: ../../../third_party/skia/docs/examples/Exclusion.cpp -FILE: ../../../third_party/skia/docs/examples/Fake_Bold.cpp -FILE: ../../../third_party/skia/docs/examples/Font_breakText.cpp -FILE: ../../../third_party/skia/docs/examples/HSVToColor.cpp -FILE: ../../../third_party/skia/docs/examples/HSVToColor_2.cpp -FILE: ../../../third_party/skia/docs/examples/Hard_Light.cpp -FILE: ../../../third_party/skia/docs/examples/Hue.cpp -FILE: ../../../third_party/skia/docs/examples/IPoint_Make.cpp -FILE: ../../../third_party/skia/docs/examples/IPoint_add_operator.cpp -FILE: ../../../third_party/skia/docs/examples/IPoint_addto_operator.cpp -FILE: ../../../third_party/skia/docs/examples/IPoint_equal_operator.cpp -FILE: ../../../third_party/skia/docs/examples/IPoint_equals.cpp -FILE: ../../../third_party/skia/docs/examples/IPoint_isZero.cpp -FILE: ../../../third_party/skia/docs/examples/IPoint_minus_operator.cpp -FILE: ../../../third_party/skia/docs/examples/IPoint_notequal_operator.cpp -FILE: ../../../third_party/skia/docs/examples/IPoint_set.cpp -FILE: ../../../third_party/skia/docs/examples/IPoint_subtract_operator.cpp -FILE: ../../../third_party/skia/docs/examples/IPoint_subtractfrom_operator.cpp -FILE: ../../../third_party/skia/docs/examples/IPoint_x.cpp -FILE: ../../../third_party/skia/docs/examples/IPoint_y.cpp -FILE: ../../../third_party/skia/docs/examples/IRect_Intersects.cpp -FILE: ../../../third_party/skia/docs/examples/IRect_MakeEmpty.cpp -FILE: ../../../third_party/skia/docs/examples/IRect_MakeLTRB.cpp -FILE: ../../../third_party/skia/docs/examples/IRect_MakeSize.cpp -FILE: ../../../third_party/skia/docs/examples/IRect_MakeWH.cpp -FILE: ../../../third_party/skia/docs/examples/IRect_MakeXYWH.cpp -FILE: ../../../third_party/skia/docs/examples/IRect_adjust.cpp -FILE: ../../../third_party/skia/docs/examples/IRect_bottom.cpp -FILE: ../../../third_party/skia/docs/examples/IRect_contains.cpp -FILE: ../../../third_party/skia/docs/examples/IRect_containsNoEmptyCheck.cpp -FILE: ../../../third_party/skia/docs/examples/IRect_containsNoEmptyCheck_2.cpp -FILE: ../../../third_party/skia/docs/examples/IRect_contains_3.cpp -FILE: ../../../third_party/skia/docs/examples/IRect_contains_4.cpp -FILE: ../../../third_party/skia/docs/examples/IRect_equal_operator.cpp -FILE: ../../../third_party/skia/docs/examples/IRect_height.cpp -FILE: ../../../third_party/skia/docs/examples/IRect_height64.cpp -FILE: ../../../third_party/skia/docs/examples/IRect_inset.cpp -FILE: ../../../third_party/skia/docs/examples/IRect_intersect.cpp -FILE: ../../../third_party/skia/docs/examples/IRect_intersect_2.cpp -FILE: ../../../third_party/skia/docs/examples/IRect_isEmpty.cpp -FILE: ../../../third_party/skia/docs/examples/IRect_isEmpty64.cpp -FILE: ../../../third_party/skia/docs/examples/IRect_join_2.cpp -FILE: ../../../third_party/skia/docs/examples/IRect_left.cpp -FILE: ../../../third_party/skia/docs/examples/IRect_makeInset.cpp -FILE: ../../../third_party/skia/docs/examples/IRect_makeOffset.cpp -FILE: ../../../third_party/skia/docs/examples/IRect_makeOutset.cpp -FILE: ../../../third_party/skia/docs/examples/IRect_makeSorted.cpp -FILE: ../../../third_party/skia/docs/examples/IRect_notequal_operator.cpp -FILE: ../../../third_party/skia/docs/examples/IRect_offset.cpp -FILE: ../../../third_party/skia/docs/examples/IRect_offsetTo.cpp -FILE: ../../../third_party/skia/docs/examples/IRect_offset_2.cpp -FILE: ../../../third_party/skia/docs/examples/IRect_outset.cpp -FILE: ../../../third_party/skia/docs/examples/IRect_right.cpp -FILE: ../../../third_party/skia/docs/examples/IRect_setEmpty.cpp -FILE: ../../../third_party/skia/docs/examples/IRect_setLTRB.cpp -FILE: ../../../third_party/skia/docs/examples/IRect_setXYWH.cpp -FILE: ../../../third_party/skia/docs/examples/IRect_size.cpp -FILE: ../../../third_party/skia/docs/examples/IRect_sort.cpp -FILE: ../../../third_party/skia/docs/examples/IRect_top.cpp -FILE: ../../../third_party/skia/docs/examples/IRect_width.cpp -FILE: ../../../third_party/skia/docs/examples/IRect_width64.cpp -FILE: ../../../third_party/skia/docs/examples/IRect_x.cpp -FILE: ../../../third_party/skia/docs/examples/IRect_y.cpp -FILE: ../../../third_party/skia/docs/examples/ImageInfo_ByteSizeOverflowed.cpp -FILE: ../../../third_party/skia/docs/examples/ImageInfo_Make.cpp -FILE: ../../../third_party/skia/docs/examples/ImageInfo_MakeA8.cpp -FILE: ../../../third_party/skia/docs/examples/ImageInfo_MakeN32.cpp -FILE: ../../../third_party/skia/docs/examples/ImageInfo_MakeN32Premul.cpp -FILE: ../../../third_party/skia/docs/examples/ImageInfo_MakeN32Premul_2.cpp -FILE: ../../../third_party/skia/docs/examples/ImageInfo_MakeS32.cpp -FILE: ../../../third_party/skia/docs/examples/ImageInfo_MakeUnknown.cpp -FILE: ../../../third_party/skia/docs/examples/ImageInfo_MakeUnknown_2.cpp -FILE: ../../../third_party/skia/docs/examples/ImageInfo_alphaType.cpp -FILE: ../../../third_party/skia/docs/examples/ImageInfo_bounds.cpp -FILE: ../../../third_party/skia/docs/examples/ImageInfo_bytesPerPixel.cpp -FILE: ../../../third_party/skia/docs/examples/ImageInfo_colorSpace.cpp -FILE: ../../../third_party/skia/docs/examples/ImageInfo_colorType.cpp -FILE: ../../../third_party/skia/docs/examples/ImageInfo_computeByteSize.cpp -FILE: ../../../third_party/skia/docs/examples/ImageInfo_computeMinByteSize.cpp -FILE: ../../../third_party/skia/docs/examples/ImageInfo_computeOffset.cpp -FILE: ../../../third_party/skia/docs/examples/ImageInfo_dimensions.cpp -FILE: ../../../third_party/skia/docs/examples/ImageInfo_empty_constructor.cpp -FILE: ../../../third_party/skia/docs/examples/ImageInfo_equal1_operator.cpp -FILE: ../../../third_party/skia/docs/examples/ImageInfo_gammaCloseToSRGB.cpp -FILE: ../../../third_party/skia/docs/examples/ImageInfo_height.cpp -FILE: ../../../third_party/skia/docs/examples/ImageInfo_isEmpty.cpp -FILE: ../../../third_party/skia/docs/examples/ImageInfo_isOpaque.cpp -FILE: ../../../third_party/skia/docs/examples/ImageInfo_makeColorSpace.cpp -FILE: ../../../third_party/skia/docs/examples/ImageInfo_makeWH.cpp -FILE: ../../../third_party/skia/docs/examples/ImageInfo_minRowBytes.cpp -FILE: ../../../third_party/skia/docs/examples/ImageInfo_minRowBytes64.cpp -FILE: ../../../third_party/skia/docs/examples/ImageInfo_notequal1_operator.cpp -FILE: ../../../third_party/skia/docs/examples/ImageInfo_refColorSpace.cpp -FILE: ../../../third_party/skia/docs/examples/ImageInfo_reset.cpp -FILE: ../../../third_party/skia/docs/examples/ImageInfo_shiftPerPixel.cpp -FILE: ../../../third_party/skia/docs/examples/ImageInfo_validRowBytes.cpp -FILE: ../../../third_party/skia/docs/examples/ImageInfo_width.cpp -FILE: ../../../third_party/skia/docs/examples/Image_Filter_Methods.cpp -FILE: ../../../third_party/skia/docs/examples/Image_MakeBackendTextureFromSkImage.cpp -FILE: ../../../third_party/skia/docs/examples/Image_MakeCrossContextFromPixmap.cpp -FILE: ../../../third_party/skia/docs/examples/Image_MakeFromAdoptedTexture.cpp -FILE: ../../../third_party/skia/docs/examples/Image_MakeFromBitmap.cpp -FILE: ../../../third_party/skia/docs/examples/Image_MakeFromEncoded.cpp -FILE: ../../../third_party/skia/docs/examples/Image_MakeFromGenerator.cpp -FILE: ../../../third_party/skia/docs/examples/Image_MakeFromPicture.cpp -FILE: ../../../third_party/skia/docs/examples/Image_MakeFromRaster.cpp -FILE: ../../../third_party/skia/docs/examples/Image_MakeFromTexture.cpp -FILE: ../../../third_party/skia/docs/examples/Image_MakeFromTexture_2.cpp -FILE: ../../../third_party/skia/docs/examples/Image_MakeRasterCopy.cpp -FILE: ../../../third_party/skia/docs/examples/Image_MakeRasterData.cpp -FILE: ../../../third_party/skia/docs/examples/Image_alphaType.cpp -FILE: ../../../third_party/skia/docs/examples/Image_bounds.cpp -FILE: ../../../third_party/skia/docs/examples/Image_colorSpace.cpp -FILE: ../../../third_party/skia/docs/examples/Image_colorType.cpp -FILE: ../../../third_party/skia/docs/examples/Image_dimensions.cpp -FILE: ../../../third_party/skia/docs/examples/Image_encodeToData.cpp -FILE: ../../../third_party/skia/docs/examples/Image_encodeToData_2.cpp -FILE: ../../../third_party/skia/docs/examples/Image_getBackendTexture.cpp -FILE: ../../../third_party/skia/docs/examples/Image_height.cpp -FILE: ../../../third_party/skia/docs/examples/Image_isAlphaOnly.cpp -FILE: ../../../third_party/skia/docs/examples/Image_isLazyGenerated_a.cpp -FILE: ../../../third_party/skia/docs/examples/Image_isLazyGenerated_b.cpp -FILE: ../../../third_party/skia/docs/examples/Image_isOpaque.cpp -FILE: ../../../third_party/skia/docs/examples/Image_isTextureBacked.cpp -FILE: ../../../third_party/skia/docs/examples/Image_isValid.cpp -FILE: ../../../third_party/skia/docs/examples/Image_makeColorSpace.cpp -FILE: ../../../third_party/skia/docs/examples/Image_makeNonTextureImage.cpp -FILE: ../../../third_party/skia/docs/examples/Image_makeRasterImage.cpp -FILE: ../../../third_party/skia/docs/examples/Image_makeShader.cpp -FILE: ../../../third_party/skia/docs/examples/Image_makeShader_2.cpp -FILE: ../../../third_party/skia/docs/examples/Image_makeSubset.cpp -FILE: ../../../third_party/skia/docs/examples/Image_makeTextureImage.cpp -FILE: ../../../third_party/skia/docs/examples/Image_makeWithFilter.cpp -FILE: ../../../third_party/skia/docs/examples/Image_peekPixels.cpp -FILE: ../../../third_party/skia/docs/examples/Image_readPixels.cpp -FILE: ../../../third_party/skia/docs/examples/Image_readPixels_2.cpp -FILE: ../../../third_party/skia/docs/examples/Image_refColorSpace.cpp -FILE: ../../../third_party/skia/docs/examples/Image_refEncodedData.cpp -FILE: ../../../third_party/skia/docs/examples/Image_scalePixels.cpp -FILE: ../../../third_party/skia/docs/examples/Image_uniqueID.cpp -FILE: ../../../third_party/skia/docs/examples/Image_width.cpp -FILE: ../../../third_party/skia/docs/examples/Lighten.cpp -FILE: ../../../third_party/skia/docs/examples/Luminosity.cpp -FILE: ../../../third_party/skia/docs/examples/Mask_Filter_Methods.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_063.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_Concat.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_I.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_InvalidMatrix.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_MakeAll.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_MakeRectToRect.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_MakeScale.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_MakeTrans.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_ScaleToFit.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_SetAffineIdentity.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_TypeMask.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_array_operator.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_asAffine.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_decomposeScale.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_dirtyMatrixTypeCache.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_dump.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_get.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_get9.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_getMaxScale.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_getMinMaxScales.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_getMinScale.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_getPerspX.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_getPerspY.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_getScaleX.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_getScaleY.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_getSkewX.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_getSkewY.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_getTranslateX.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_getTranslateY.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_getType.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_hasPerspective.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_invert.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_isFinite.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_isIdentity.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_isScaleTranslate.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_isSimilarity.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_isTranslate.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_mapHomogeneousPoints.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_mapPoints.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_mapPoints_2.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_mapRadius.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_mapRect.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_mapRectScaleTranslate.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_mapRectToQuad.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_mapRect_2.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_mapRect_3.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_mapVector.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_mapVector_2.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_mapVectors.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_mapVectors_2.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_mapXY.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_mapXY_2.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_postConcat.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_postRotate.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_postRotate_2.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_postScale.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_postScale_2.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_postSkew.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_postSkew_2.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_postTranslate.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_preConcat.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_preRotate.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_preRotate_2.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_preScale.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_preScale_2.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_preSkew.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_preSkew_2.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_preTranslate.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_preservesAxisAlignment.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_preservesRightAngles.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_rectStaysRect.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_reset.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_set.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_set9.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_setAffine.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_setAll.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_setConcat.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_setIdentity.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_setPerspX.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_setPerspY.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_setPolyToPoly.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_setRSXform.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_setRotate.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_setRotate_2.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_setScale.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_setScaleTranslate.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_setScaleX.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_setScaleY.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_setScale_2.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_setSinCos.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_setSinCos_2.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_setSkew.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_setSkewX.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_setSkewY.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_setSkew_2.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_setTranslate.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_setTranslateX.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_setTranslateY.cpp -FILE: ../../../third_party/skia/docs/examples/Matrix_setTranslate_2.cpp -FILE: ../../../third_party/skia/docs/examples/MemberIndex.cpp -FILE: ../../../third_party/skia/docs/examples/Miter_Limit.cpp -FILE: ../../../third_party/skia/docs/examples/Modulate.cpp -FILE: ../../../third_party/skia/docs/examples/Multiply.cpp -FILE: ../../../third_party/skia/docs/examples/Overlay.cpp -FILE: ../../../third_party/skia/docs/examples/PDF.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_053.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_057.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_containsText.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_copy_const_SkPaint.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_copy_operator.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_countText.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_empty_constructor.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_equal_operator.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_getAlpha.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_getColor.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_getColor4f.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_getColorFilter.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_getFillPath.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_getFillPath_2.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_getFlags.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_getFontMetrics.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_getFontSpacing.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_getHinting.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_getImageFilter.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_getMaskFilter.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_getPathEffect.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_getPosTextPath.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_getShader.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_getStrokeCap.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_getStrokeJoin.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_getStrokeMiter.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_getStrokeWidth.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_getStyle.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_getTextEncoding.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_getTextPath.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_getTextScaleX.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_getTextSize.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_getTextSkewX.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_getTextWidths.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_getTypeface.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_isAntiAlias.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_isAutohinted.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_isDither.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_isEmbeddedBitmapText.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_isFakeBoldText.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_isLCDRenderText.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_isLinearText.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_isSubpixelText.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_measureText.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_measureText_2.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_move_SkPaint.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_move_operator.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_notequal_operator.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_nothingToDraw.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_refColorFilter.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_refImageFilter.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_refMaskFilter.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_refPathEffect.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_refShader.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_refTypeface.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_reset.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_setARGB.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_setAlpha.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_setAntiAlias.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_setAutohinted.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_setBlendMode.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_setColor.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_setColor4f.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_setColorFilter.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_setDither.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_setEmbeddedBitmapText.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_setFakeBoldText.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_setFlags.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_setHinting.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_setImageFilter.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_setLCDRenderText.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_setLinearText.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_setMaskFilter.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_setPathEffect.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_setShader.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_setStrokeCap_a.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_setStrokeCap_b.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_setStrokeJoin.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_setStrokeMiter.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_setStrokeWidth.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_setStyle.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_setSubpixelText.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_setTextEncoding.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_setTextScaleX.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_setTextSize.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_setTextSkewX.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_setTypeface.cpp -FILE: ../../../third_party/skia/docs/examples/Paint_textToGlyphs.cpp -FILE: ../../../third_party/skia/docs/examples/Path_AddPathMode.cpp -FILE: ../../../third_party/skia/docs/examples/Path_ArcSize.cpp -FILE: ../../../third_party/skia/docs/examples/Path_ConvertConicToQuads.cpp -FILE: ../../../third_party/skia/docs/examples/Path_ConvertToNonInverseFillType.cpp -FILE: ../../../third_party/skia/docs/examples/Path_Convexity.cpp -FILE: ../../../third_party/skia/docs/examples/Path_Direction.cpp -FILE: ../../../third_party/skia/docs/examples/Path_Effect_Methods.cpp -FILE: ../../../third_party/skia/docs/examples/Path_FillType_a.cpp -FILE: ../../../third_party/skia/docs/examples/Path_FillType_b.cpp -FILE: ../../../third_party/skia/docs/examples/Path_IsCubicDegenerate.cpp -FILE: ../../../third_party/skia/docs/examples/Path_IsInverseFillType.cpp -FILE: ../../../third_party/skia/docs/examples/Path_IsLineDegenerate.cpp -FILE: ../../../third_party/skia/docs/examples/Path_IsQuadDegenerate.cpp -FILE: ../../../third_party/skia/docs/examples/Path_Iter.cpp -FILE: ../../../third_party/skia/docs/examples/Path_Iter_Iter.cpp -FILE: ../../../third_party/skia/docs/examples/Path_Iter_conicWeight.cpp -FILE: ../../../third_party/skia/docs/examples/Path_Iter_const_SkPath.cpp -FILE: ../../../third_party/skia/docs/examples/Path_Iter_isCloseLine.cpp -FILE: ../../../third_party/skia/docs/examples/Path_Iter_isClosedContour.cpp -FILE: ../../../third_party/skia/docs/examples/Path_Iter_next.cpp -FILE: ../../../third_party/skia/docs/examples/Path_Iter_setPath.cpp -FILE: ../../../third_party/skia/docs/examples/Path_SegmentMask.cpp -FILE: ../../../third_party/skia/docs/examples/Path_Verb.cpp -FILE: ../../../third_party/skia/docs/examples/Path_addArc.cpp -FILE: ../../../third_party/skia/docs/examples/Path_addCircle.cpp -FILE: ../../../third_party/skia/docs/examples/Path_addOval.cpp -FILE: ../../../third_party/skia/docs/examples/Path_addOval_2.cpp -FILE: ../../../third_party/skia/docs/examples/Path_addPath.cpp -FILE: ../../../third_party/skia/docs/examples/Path_addPath_2.cpp -FILE: ../../../third_party/skia/docs/examples/Path_addPath_3.cpp -FILE: ../../../third_party/skia/docs/examples/Path_addPoly.cpp -FILE: ../../../third_party/skia/docs/examples/Path_addPoly_2.cpp -FILE: ../../../third_party/skia/docs/examples/Path_addRRect.cpp -FILE: ../../../third_party/skia/docs/examples/Path_addRRect_2.cpp -FILE: ../../../third_party/skia/docs/examples/Path_addRect.cpp -FILE: ../../../third_party/skia/docs/examples/Path_addRect_2.cpp -FILE: ../../../third_party/skia/docs/examples/Path_addRect_3.cpp -FILE: ../../../third_party/skia/docs/examples/Path_addRoundRect.cpp -FILE: ../../../third_party/skia/docs/examples/Path_addRoundRect_2.cpp -FILE: ../../../third_party/skia/docs/examples/Path_arcTo.cpp -FILE: ../../../third_party/skia/docs/examples/Path_arcTo_2_a.cpp -FILE: ../../../third_party/skia/docs/examples/Path_arcTo_2_b.cpp -FILE: ../../../third_party/skia/docs/examples/Path_arcTo_2_c.cpp -FILE: ../../../third_party/skia/docs/examples/Path_arcTo_3.cpp -FILE: ../../../third_party/skia/docs/examples/Path_arcTo_4.cpp -FILE: ../../../third_party/skia/docs/examples/Path_close.cpp -FILE: ../../../third_party/skia/docs/examples/Path_computeTightBounds.cpp -FILE: ../../../third_party/skia/docs/examples/Path_conicTo.cpp -FILE: ../../../third_party/skia/docs/examples/Path_conicTo_2.cpp -FILE: ../../../third_party/skia/docs/examples/Path_conservativelyContainsRect.cpp -FILE: ../../../third_party/skia/docs/examples/Path_contains.cpp -FILE: ../../../third_party/skia/docs/examples/Path_copy_const_SkPath.cpp -FILE: ../../../third_party/skia/docs/examples/Path_copy_operator.cpp -FILE: ../../../third_party/skia/docs/examples/Path_countPoints.cpp -FILE: ../../../third_party/skia/docs/examples/Path_countVerbs.cpp -FILE: ../../../third_party/skia/docs/examples/Path_cubicTo.cpp -FILE: ../../../third_party/skia/docs/examples/Path_cubicTo_2.cpp -FILE: ../../../third_party/skia/docs/examples/Path_destructor.cpp -FILE: ../../../third_party/skia/docs/examples/Path_dump.cpp -FILE: ../../../third_party/skia/docs/examples/Path_dumpHex.cpp -FILE: ../../../third_party/skia/docs/examples/Path_dump_2.cpp -FILE: ../../../third_party/skia/docs/examples/Path_empty_constructor.cpp -FILE: ../../../third_party/skia/docs/examples/Path_equal_operator.cpp -FILE: ../../../third_party/skia/docs/examples/Path_getBounds.cpp -FILE: ../../../third_party/skia/docs/examples/Path_getFillType.cpp -FILE: ../../../third_party/skia/docs/examples/Path_getGenerationID.cpp -FILE: ../../../third_party/skia/docs/examples/Path_getLastPt.cpp -FILE: ../../../third_party/skia/docs/examples/Path_getPoint.cpp -FILE: ../../../third_party/skia/docs/examples/Path_getPoints.cpp -FILE: ../../../third_party/skia/docs/examples/Path_getSegmentMasks.cpp -FILE: ../../../third_party/skia/docs/examples/Path_getVerbs.cpp -FILE: ../../../third_party/skia/docs/examples/Path_incReserve.cpp -FILE: ../../../third_party/skia/docs/examples/Path_interpolate.cpp -FILE: ../../../third_party/skia/docs/examples/Path_isConvex.cpp -FILE: ../../../third_party/skia/docs/examples/Path_isEmpty.cpp -FILE: ../../../third_party/skia/docs/examples/Path_isFinite.cpp -FILE: ../../../third_party/skia/docs/examples/Path_isInterpolatable.cpp -FILE: ../../../third_party/skia/docs/examples/Path_isInverseFillType_2.cpp -FILE: ../../../third_party/skia/docs/examples/Path_isLastContourClosed.cpp -FILE: ../../../third_party/skia/docs/examples/Path_isLine.cpp -FILE: ../../../third_party/skia/docs/examples/Path_isOval.cpp -FILE: ../../../third_party/skia/docs/examples/Path_isRRect.cpp -FILE: ../../../third_party/skia/docs/examples/Path_isRect.cpp -FILE: ../../../third_party/skia/docs/examples/Path_isVolatile.cpp -FILE: ../../../third_party/skia/docs/examples/Path_lineTo.cpp -FILE: ../../../third_party/skia/docs/examples/Path_lineTo_2.cpp -FILE: ../../../third_party/skia/docs/examples/Path_moveTo.cpp -FILE: ../../../third_party/skia/docs/examples/Path_moveTo_2.cpp -FILE: ../../../third_party/skia/docs/examples/Path_offset.cpp -FILE: ../../../third_party/skia/docs/examples/Path_offset_2.cpp -FILE: ../../../third_party/skia/docs/examples/Path_quadTo.cpp -FILE: ../../../third_party/skia/docs/examples/Path_quadTo_2.cpp -FILE: ../../../third_party/skia/docs/examples/Path_rArcTo.cpp -FILE: ../../../third_party/skia/docs/examples/Path_rConicTo.cpp -FILE: ../../../third_party/skia/docs/examples/Path_rCubicTo.cpp -FILE: ../../../third_party/skia/docs/examples/Path_rLineTo.cpp -FILE: ../../../third_party/skia/docs/examples/Path_rMoveTo.cpp -FILE: ../../../third_party/skia/docs/examples/Path_rQuadTo.cpp -FILE: ../../../third_party/skia/docs/examples/Path_readFromMemory.cpp -FILE: ../../../third_party/skia/docs/examples/Path_reset.cpp -FILE: ../../../third_party/skia/docs/examples/Path_reverseAddPath.cpp -FILE: ../../../third_party/skia/docs/examples/Path_rewind.cpp -FILE: ../../../third_party/skia/docs/examples/Path_serialize.cpp -FILE: ../../../third_party/skia/docs/examples/Path_setFillType.cpp -FILE: ../../../third_party/skia/docs/examples/Path_setIsVolatile.cpp -FILE: ../../../third_party/skia/docs/examples/Path_setLastPt.cpp -FILE: ../../../third_party/skia/docs/examples/Path_setLastPt_2.cpp -FILE: ../../../third_party/skia/docs/examples/Path_swap.cpp -FILE: ../../../third_party/skia/docs/examples/Path_toggleInverseFillType.cpp -FILE: ../../../third_party/skia/docs/examples/Path_transform.cpp -FILE: ../../../third_party/skia/docs/examples/Path_transform_2.cpp -FILE: ../../../third_party/skia/docs/examples/Path_updateBoundsCache.cpp -FILE: ../../../third_party/skia/docs/examples/Path_writeToMemory.cpp -FILE: ../../../third_party/skia/docs/examples/Picture_008.cpp -FILE: ../../../third_party/skia/docs/examples/Picture_AbortCallback_abort.cpp -FILE: ../../../third_party/skia/docs/examples/Picture_MakeFromData.cpp -FILE: ../../../third_party/skia/docs/examples/Picture_MakeFromStream.cpp -FILE: ../../../third_party/skia/docs/examples/Picture_MakePlaceholder.cpp -FILE: ../../../third_party/skia/docs/examples/Picture_approximateBytesUsed.cpp -FILE: ../../../third_party/skia/docs/examples/Picture_approximateOpCount.cpp -FILE: ../../../third_party/skia/docs/examples/Picture_cullRect.cpp -FILE: ../../../third_party/skia/docs/examples/Picture_playback.cpp -FILE: ../../../third_party/skia/docs/examples/Picture_serialize.cpp -FILE: ../../../third_party/skia/docs/examples/Picture_serialize_2.cpp -FILE: ../../../third_party/skia/docs/examples/Picture_uniqueID.cpp -FILE: ../../../third_party/skia/docs/examples/Pixmap_addr.cpp -FILE: ../../../third_party/skia/docs/examples/Pixmap_addr16.cpp -FILE: ../../../third_party/skia/docs/examples/Pixmap_addr16_2.cpp -FILE: ../../../third_party/skia/docs/examples/Pixmap_addr32.cpp -FILE: ../../../third_party/skia/docs/examples/Pixmap_addr32_2.cpp -FILE: ../../../third_party/skia/docs/examples/Pixmap_addr64.cpp -FILE: ../../../third_party/skia/docs/examples/Pixmap_addr64_2.cpp -FILE: ../../../third_party/skia/docs/examples/Pixmap_addr8.cpp -FILE: ../../../third_party/skia/docs/examples/Pixmap_addr8_2.cpp -FILE: ../../../third_party/skia/docs/examples/Pixmap_addrF16.cpp -FILE: ../../../third_party/skia/docs/examples/Pixmap_addrF16_2.cpp -FILE: ../../../third_party/skia/docs/examples/Pixmap_addr_2.cpp -FILE: ../../../third_party/skia/docs/examples/Pixmap_alphaType.cpp -FILE: ../../../third_party/skia/docs/examples/Pixmap_bounds.cpp -FILE: ../../../third_party/skia/docs/examples/Pixmap_colorSpace.cpp -FILE: ../../../third_party/skia/docs/examples/Pixmap_colorType.cpp -FILE: ../../../third_party/skia/docs/examples/Pixmap_computeByteSize.cpp -FILE: ../../../third_party/skia/docs/examples/Pixmap_computeIsOpaque.cpp -FILE: ../../../third_party/skia/docs/examples/Pixmap_const_SkImageInfo_const_star.cpp -FILE: ../../../third_party/skia/docs/examples/Pixmap_empty_constructor.cpp -FILE: ../../../third_party/skia/docs/examples/Pixmap_erase.cpp -FILE: ../../../third_party/skia/docs/examples/Pixmap_erase_2.cpp -FILE: ../../../third_party/skia/docs/examples/Pixmap_erase_3.cpp -FILE: ../../../third_party/skia/docs/examples/Pixmap_extractSubset.cpp -FILE: ../../../third_party/skia/docs/examples/Pixmap_getColor.cpp -FILE: ../../../third_party/skia/docs/examples/Pixmap_height.cpp -FILE: ../../../third_party/skia/docs/examples/Pixmap_info.cpp -FILE: ../../../third_party/skia/docs/examples/Pixmap_isOpaque.cpp -FILE: ../../../third_party/skia/docs/examples/Pixmap_readPixels.cpp -FILE: ../../../third_party/skia/docs/examples/Pixmap_readPixels_2.cpp -FILE: ../../../third_party/skia/docs/examples/Pixmap_readPixels_3.cpp -FILE: ../../../third_party/skia/docs/examples/Pixmap_readPixels_4.cpp -FILE: ../../../third_party/skia/docs/examples/Pixmap_reset.cpp -FILE: ../../../third_party/skia/docs/examples/Pixmap_reset_2.cpp -FILE: ../../../third_party/skia/docs/examples/Pixmap_rowBytes.cpp -FILE: ../../../third_party/skia/docs/examples/Pixmap_rowBytesAsPixels.cpp -FILE: ../../../third_party/skia/docs/examples/Pixmap_scalePixels.cpp -FILE: ../../../third_party/skia/docs/examples/Pixmap_setColorSpace.cpp -FILE: ../../../third_party/skia/docs/examples/Pixmap_shiftPerPixel.cpp -FILE: ../../../third_party/skia/docs/examples/Pixmap_width.cpp -FILE: ../../../third_party/skia/docs/examples/Pixmap_writable_addr.cpp -FILE: ../../../third_party/skia/docs/examples/Pixmap_writable_addr16.cpp -FILE: ../../../third_party/skia/docs/examples/Pixmap_writable_addr32.cpp -FILE: ../../../third_party/skia/docs/examples/Pixmap_writable_addr64.cpp -FILE: ../../../third_party/skia/docs/examples/Pixmap_writable_addr8.cpp -FILE: ../../../third_party/skia/docs/examples/Pixmap_writable_addrF16.cpp -FILE: ../../../third_party/skia/docs/examples/Pixmap_writable_addr_2.cpp -FILE: ../../../third_party/skia/docs/examples/Plus.cpp -FILE: ../../../third_party/skia/docs/examples/Point_CrossProduct.cpp -FILE: ../../../third_party/skia/docs/examples/Point_Distance.cpp -FILE: ../../../third_party/skia/docs/examples/Point_DotProduct.cpp -FILE: ../../../third_party/skia/docs/examples/Point_Length.cpp -FILE: ../../../third_party/skia/docs/examples/Point_Make.cpp -FILE: ../../../third_party/skia/docs/examples/Point_Normalize.cpp -FILE: ../../../third_party/skia/docs/examples/Point_Offset.cpp -FILE: ../../../third_party/skia/docs/examples/Point_Offset_2.cpp -FILE: ../../../third_party/skia/docs/examples/Point_add_operator.cpp -FILE: ../../../third_party/skia/docs/examples/Point_addto_operator.cpp -FILE: ../../../third_party/skia/docs/examples/Point_cross.cpp -FILE: ../../../third_party/skia/docs/examples/Point_distanceToOrigin.cpp -FILE: ../../../third_party/skia/docs/examples/Point_dot.cpp -FILE: ../../../third_party/skia/docs/examples/Point_equal_operator.cpp -FILE: ../../../third_party/skia/docs/examples/Point_equals.cpp -FILE: ../../../third_party/skia/docs/examples/Point_isFinite.cpp -FILE: ../../../third_party/skia/docs/examples/Point_isZero.cpp -FILE: ../../../third_party/skia/docs/examples/Point_iset.cpp -FILE: ../../../third_party/skia/docs/examples/Point_iset_2.cpp -FILE: ../../../third_party/skia/docs/examples/Point_length_2.cpp -FILE: ../../../third_party/skia/docs/examples/Point_minus_operator.cpp -FILE: ../../../third_party/skia/docs/examples/Point_multiply_operator.cpp -FILE: ../../../third_party/skia/docs/examples/Point_multiplyby_operator.cpp -FILE: ../../../third_party/skia/docs/examples/Point_negate.cpp -FILE: ../../../third_party/skia/docs/examples/Point_normalize_2.cpp -FILE: ../../../third_party/skia/docs/examples/Point_notequal_operator.cpp -FILE: ../../../third_party/skia/docs/examples/Point_offset_3.cpp -FILE: ../../../third_party/skia/docs/examples/Point_scale.cpp -FILE: ../../../third_party/skia/docs/examples/Point_scale_2.cpp -FILE: ../../../third_party/skia/docs/examples/Point_set.cpp -FILE: ../../../third_party/skia/docs/examples/Point_setAbs.cpp -FILE: ../../../third_party/skia/docs/examples/Point_setLength.cpp -FILE: ../../../third_party/skia/docs/examples/Point_setLength_2.cpp -FILE: ../../../third_party/skia/docs/examples/Point_setNormalize.cpp -FILE: ../../../third_party/skia/docs/examples/Point_subtract_operator.cpp -FILE: ../../../third_party/skia/docs/examples/Point_subtractfrom_operator.cpp -FILE: ../../../third_party/skia/docs/examples/Point_x.cpp -FILE: ../../../third_party/skia/docs/examples/Point_y.cpp -FILE: ../../../third_party/skia/docs/examples/PreMultiplyARGB.cpp -FILE: ../../../third_party/skia/docs/examples/PreMultiplyColor.cpp -FILE: ../../../third_party/skia/docs/examples/Quad_a.cpp -FILE: ../../../third_party/skia/docs/examples/Quad_b.cpp -FILE: ../../../third_party/skia/docs/examples/RGBA4f_FromColor.cpp -FILE: ../../../third_party/skia/docs/examples/RGBA4f_equal1_operator.cpp -FILE: ../../../third_party/skia/docs/examples/RGBA4f_notequal1_operator.cpp -FILE: ../../../third_party/skia/docs/examples/RGBA4f_toSkColor.cpp -FILE: ../../../third_party/skia/docs/examples/RGBA4f_vec.cpp -FILE: ../../../third_party/skia/docs/examples/RGBA4f_vec_2.cpp -FILE: ../../../third_party/skia/docs/examples/RGBToHSV.cpp -FILE: ../../../third_party/skia/docs/examples/RRect_Corner.cpp -FILE: ../../../third_party/skia/docs/examples/RRect_MakeEmpty.cpp -FILE: ../../../third_party/skia/docs/examples/RRect_MakeOval.cpp -FILE: ../../../third_party/skia/docs/examples/RRect_MakeRect.cpp -FILE: ../../../third_party/skia/docs/examples/RRect_MakeRectXY.cpp -FILE: ../../../third_party/skia/docs/examples/RRect_Type.cpp -FILE: ../../../third_party/skia/docs/examples/RRect_contains.cpp -FILE: ../../../third_party/skia/docs/examples/RRect_copy_const_SkRRect.cpp -FILE: ../../../third_party/skia/docs/examples/RRect_copy_operator.cpp -FILE: ../../../third_party/skia/docs/examples/RRect_dump.cpp -FILE: ../../../third_party/skia/docs/examples/RRect_dumpHex.cpp -FILE: ../../../third_party/skia/docs/examples/RRect_dump_2.cpp -FILE: ../../../third_party/skia/docs/examples/RRect_empty_constructor.cpp -FILE: ../../../third_party/skia/docs/examples/RRect_equal_operator.cpp -FILE: ../../../third_party/skia/docs/examples/RRect_getBounds.cpp -FILE: ../../../third_party/skia/docs/examples/RRect_getSimpleRadii.cpp -FILE: ../../../third_party/skia/docs/examples/RRect_getType.cpp -FILE: ../../../third_party/skia/docs/examples/RRect_height.cpp -FILE: ../../../third_party/skia/docs/examples/RRect_inset.cpp -FILE: ../../../third_party/skia/docs/examples/RRect_inset_2.cpp -FILE: ../../../third_party/skia/docs/examples/RRect_isComplex.cpp -FILE: ../../../third_party/skia/docs/examples/RRect_isEmpty.cpp -FILE: ../../../third_party/skia/docs/examples/RRect_isNinePatch.cpp -FILE: ../../../third_party/skia/docs/examples/RRect_isOval.cpp -FILE: ../../../third_party/skia/docs/examples/RRect_isRect.cpp -FILE: ../../../third_party/skia/docs/examples/RRect_isSimple.cpp -FILE: ../../../third_party/skia/docs/examples/RRect_isValid.cpp -FILE: ../../../third_party/skia/docs/examples/RRect_makeOffset.cpp -FILE: ../../../third_party/skia/docs/examples/RRect_notequal_operator.cpp -FILE: ../../../third_party/skia/docs/examples/RRect_offset.cpp -FILE: ../../../third_party/skia/docs/examples/RRect_outset.cpp -FILE: ../../../third_party/skia/docs/examples/RRect_outset_2.cpp -FILE: ../../../third_party/skia/docs/examples/RRect_radii.cpp -FILE: ../../../third_party/skia/docs/examples/RRect_readFromMemory.cpp -FILE: ../../../third_party/skia/docs/examples/RRect_rect.cpp -FILE: ../../../third_party/skia/docs/examples/RRect_setEmpty.cpp -FILE: ../../../third_party/skia/docs/examples/RRect_setNinePatch.cpp -FILE: ../../../third_party/skia/docs/examples/RRect_setOval.cpp -FILE: ../../../third_party/skia/docs/examples/RRect_setRect.cpp -FILE: ../../../third_party/skia/docs/examples/RRect_setRectRadii.cpp -FILE: ../../../third_party/skia/docs/examples/RRect_setRectXY.cpp -FILE: ../../../third_party/skia/docs/examples/RRect_transform.cpp -FILE: ../../../third_party/skia/docs/examples/RRect_type_2.cpp -FILE: ../../../third_party/skia/docs/examples/RRect_width.cpp -FILE: ../../../third_party/skia/docs/examples/RRect_writeToMemory.cpp -FILE: ../../../third_party/skia/docs/examples/Rect_Intersects.cpp -FILE: ../../../third_party/skia/docs/examples/Rect_Make.cpp -FILE: ../../../third_party/skia/docs/examples/Rect_MakeEmpty.cpp -FILE: ../../../third_party/skia/docs/examples/Rect_MakeIWH.cpp -FILE: ../../../third_party/skia/docs/examples/Rect_MakeLTRB.cpp -FILE: ../../../third_party/skia/docs/examples/Rect_MakeSize.cpp -FILE: ../../../third_party/skia/docs/examples/Rect_MakeWH.cpp -FILE: ../../../third_party/skia/docs/examples/Rect_MakeXYWH.cpp -FILE: ../../../third_party/skia/docs/examples/Rect_Make_2.cpp -FILE: ../../../third_party/skia/docs/examples/Rect_asScalars.cpp -FILE: ../../../third_party/skia/docs/examples/Rect_bottom.cpp -FILE: ../../../third_party/skia/docs/examples/Rect_centerX.cpp -FILE: ../../../third_party/skia/docs/examples/Rect_centerY.cpp -FILE: ../../../third_party/skia/docs/examples/Rect_contains.cpp -FILE: ../../../third_party/skia/docs/examples/Rect_contains_2.cpp -FILE: ../../../third_party/skia/docs/examples/Rect_contains_3.cpp -FILE: ../../../third_party/skia/docs/examples/Rect_dump.cpp -FILE: ../../../third_party/skia/docs/examples/Rect_dumpHex.cpp -FILE: ../../../third_party/skia/docs/examples/Rect_dump_2.cpp -FILE: ../../../third_party/skia/docs/examples/Rect_equal_operator.cpp -FILE: ../../../third_party/skia/docs/examples/Rect_height.cpp -FILE: ../../../third_party/skia/docs/examples/Rect_inset.cpp -FILE: ../../../third_party/skia/docs/examples/Rect_intersect.cpp -FILE: ../../../third_party/skia/docs/examples/Rect_intersect_2.cpp -FILE: ../../../third_party/skia/docs/examples/Rect_intersect_3.cpp -FILE: ../../../third_party/skia/docs/examples/Rect_intersects_2.cpp -FILE: ../../../third_party/skia/docs/examples/Rect_intersects_3.cpp -FILE: ../../../third_party/skia/docs/examples/Rect_isEmpty.cpp -FILE: ../../../third_party/skia/docs/examples/Rect_isFinite.cpp -FILE: ../../../third_party/skia/docs/examples/Rect_isSorted.cpp -FILE: ../../../third_party/skia/docs/examples/Rect_join.cpp -FILE: ../../../third_party/skia/docs/examples/Rect_joinNonEmptyArg.cpp -FILE: ../../../third_party/skia/docs/examples/Rect_joinPossiblyEmptyRect.cpp -FILE: ../../../third_party/skia/docs/examples/Rect_join_2.cpp -FILE: ../../../third_party/skia/docs/examples/Rect_left.cpp -FILE: ../../../third_party/skia/docs/examples/Rect_makeInset.cpp -FILE: ../../../third_party/skia/docs/examples/Rect_makeOffset.cpp -FILE: ../../../third_party/skia/docs/examples/Rect_makeOutset.cpp -FILE: ../../../third_party/skia/docs/examples/Rect_makeSorted.cpp -FILE: ../../../third_party/skia/docs/examples/Rect_notequal_operator.cpp -FILE: ../../../third_party/skia/docs/examples/Rect_offset.cpp -FILE: ../../../third_party/skia/docs/examples/Rect_offsetTo.cpp -FILE: ../../../third_party/skia/docs/examples/Rect_offset_2.cpp -FILE: ../../../third_party/skia/docs/examples/Rect_outset.cpp -FILE: ../../../third_party/skia/docs/examples/Rect_right.cpp -FILE: ../../../third_party/skia/docs/examples/Rect_round.cpp -FILE: ../../../third_party/skia/docs/examples/Rect_roundIn.cpp -FILE: ../../../third_party/skia/docs/examples/Rect_roundOut.cpp -FILE: ../../../third_party/skia/docs/examples/Rect_roundOut_2.cpp -FILE: ../../../third_party/skia/docs/examples/Rect_roundOut_3.cpp -FILE: ../../../third_party/skia/docs/examples/Rect_round_2.cpp -FILE: ../../../third_party/skia/docs/examples/Rect_set.cpp -FILE: ../../../third_party/skia/docs/examples/Rect_setBounds.cpp -FILE: ../../../third_party/skia/docs/examples/Rect_setBoundsCheck.cpp -FILE: ../../../third_party/skia/docs/examples/Rect_setBoundsNoCheck.cpp -FILE: ../../../third_party/skia/docs/examples/Rect_setEmpty.cpp -FILE: ../../../third_party/skia/docs/examples/Rect_setLTRB.cpp -FILE: ../../../third_party/skia/docs/examples/Rect_setWH.cpp -FILE: ../../../third_party/skia/docs/examples/Rect_setXYWH.cpp -FILE: ../../../third_party/skia/docs/examples/Rect_set_4.cpp -FILE: ../../../third_party/skia/docs/examples/Rect_sort.cpp -FILE: ../../../third_party/skia/docs/examples/Rect_toQuad.cpp -FILE: ../../../third_party/skia/docs/examples/Rect_top.cpp -FILE: ../../../third_party/skia/docs/examples/Rect_width.cpp -FILE: ../../../third_party/skia/docs/examples/Rect_x.cpp -FILE: ../../../third_party/skia/docs/examples/Rect_y.cpp -FILE: ../../../third_party/skia/docs/examples/Region_Cliperator_const_SkRegion_const_SkIRect.cpp -FILE: ../../../third_party/skia/docs/examples/Region_Cliperator_done.cpp -FILE: ../../../third_party/skia/docs/examples/Region_Cliperator_next.cpp -FILE: ../../../third_party/skia/docs/examples/Region_Cliperator_rect.cpp -FILE: ../../../third_party/skia/docs/examples/Region_Iterator_Iterator.cpp -FILE: ../../../third_party/skia/docs/examples/Region_Iterator_copy_const_SkRegion.cpp -FILE: ../../../third_party/skia/docs/examples/Region_Iterator_done.cpp -FILE: ../../../third_party/skia/docs/examples/Region_Iterator_next.cpp -FILE: ../../../third_party/skia/docs/examples/Region_Iterator_rect.cpp -FILE: ../../../third_party/skia/docs/examples/Region_Iterator_reset.cpp -FILE: ../../../third_party/skia/docs/examples/Region_Iterator_rewind.cpp -FILE: ../../../third_party/skia/docs/examples/Region_Iterator_rgn.cpp -FILE: ../../../third_party/skia/docs/examples/Region_Op.cpp -FILE: ../../../third_party/skia/docs/examples/Region_Spanerator_const_SkRegion_int_int_int.cpp -FILE: ../../../third_party/skia/docs/examples/Region_Spanerator_next.cpp -FILE: ../../../third_party/skia/docs/examples/Region_computeRegionComplexity.cpp -FILE: ../../../third_party/skia/docs/examples/Region_contains.cpp -FILE: ../../../third_party/skia/docs/examples/Region_contains_2.cpp -FILE: ../../../third_party/skia/docs/examples/Region_contains_3.cpp -FILE: ../../../third_party/skia/docs/examples/Region_copy_const_SkIRect.cpp -FILE: ../../../third_party/skia/docs/examples/Region_copy_const_SkRegion.cpp -FILE: ../../../third_party/skia/docs/examples/Region_copy_operator.cpp -FILE: ../../../third_party/skia/docs/examples/Region_destructor.cpp -FILE: ../../../third_party/skia/docs/examples/Region_empty_constructor.cpp -FILE: ../../../third_party/skia/docs/examples/Region_equal1_operator.cpp -FILE: ../../../third_party/skia/docs/examples/Region_getBoundaryPath.cpp -FILE: ../../../third_party/skia/docs/examples/Region_getBounds.cpp -FILE: ../../../third_party/skia/docs/examples/Region_intersects.cpp -FILE: ../../../third_party/skia/docs/examples/Region_intersects_2.cpp -FILE: ../../../third_party/skia/docs/examples/Region_isComplex.cpp -FILE: ../../../third_party/skia/docs/examples/Region_isEmpty.cpp -FILE: ../../../third_party/skia/docs/examples/Region_isRect.cpp -FILE: ../../../third_party/skia/docs/examples/Region_notequal1_operator.cpp -FILE: ../../../third_party/skia/docs/examples/Region_op_1.cpp -FILE: ../../../third_party/skia/docs/examples/Region_op_2.cpp -FILE: ../../../third_party/skia/docs/examples/Region_op_3.cpp -FILE: ../../../third_party/skia/docs/examples/Region_op_4.cpp -FILE: ../../../third_party/skia/docs/examples/Region_op_5.cpp -FILE: ../../../third_party/skia/docs/examples/Region_op_6.cpp -FILE: ../../../third_party/skia/docs/examples/Region_quickContains.cpp -FILE: ../../../third_party/skia/docs/examples/Region_quickReject.cpp -FILE: ../../../third_party/skia/docs/examples/Region_quickReject_2.cpp -FILE: ../../../third_party/skia/docs/examples/Region_readFromMemory.cpp -FILE: ../../../third_party/skia/docs/examples/Region_set.cpp -FILE: ../../../third_party/skia/docs/examples/Region_setEmpty.cpp -FILE: ../../../third_party/skia/docs/examples/Region_setPath.cpp -FILE: ../../../third_party/skia/docs/examples/Region_setRect.cpp -FILE: ../../../third_party/skia/docs/examples/Region_setRects.cpp -FILE: ../../../third_party/skia/docs/examples/Region_setRegion.cpp -FILE: ../../../third_party/skia/docs/examples/Region_swap.cpp -FILE: ../../../third_party/skia/docs/examples/Region_translate.cpp -FILE: ../../../third_party/skia/docs/examples/Region_translate_2.cpp -FILE: ../../../third_party/skia/docs/examples/Region_writeToMemory.cpp -FILE: ../../../third_party/skia/docs/examples/Saturation.cpp -FILE: ../../../third_party/skia/docs/examples/Screen.cpp -FILE: ../../../third_party/skia/docs/examples/Shader_Methods_a.cpp -FILE: ../../../third_party/skia/docs/examples/Shader_Methods_b.cpp -FILE: ../../../third_party/skia/docs/examples/Soft_Light.cpp -FILE: ../../../third_party/skia/docs/examples/Src.cpp -FILE: ../../../third_party/skia/docs/examples/Src_Atop.cpp -FILE: ../../../third_party/skia/docs/examples/Src_In.cpp -FILE: ../../../third_party/skia/docs/examples/Src_Out.cpp -FILE: ../../../third_party/skia/docs/examples/Src_Over.cpp -FILE: ../../../third_party/skia/docs/examples/State_Stack_a.cpp -FILE: ../../../third_party/skia/docs/examples/State_Stack_b.cpp -FILE: ../../../third_party/skia/docs/examples/Stroke_Width.cpp -FILE: ../../../third_party/skia/docs/examples/Surface_MakeFromBackendTexture.cpp -FILE: ../../../third_party/skia/docs/examples/Surface_MakeNull.cpp -FILE: ../../../third_party/skia/docs/examples/Surface_MakeRaster.cpp -FILE: ../../../third_party/skia/docs/examples/Surface_MakeRasterDirect.cpp -FILE: ../../../third_party/skia/docs/examples/Surface_MakeRasterDirectReleaseProc.cpp -FILE: ../../../third_party/skia/docs/examples/Surface_MakeRasterN32Premul.cpp -FILE: ../../../third_party/skia/docs/examples/Surface_MakeRaster_2.cpp -FILE: ../../../third_party/skia/docs/examples/Surface_MakeRenderTarget.cpp -FILE: ../../../third_party/skia/docs/examples/Surface_MakeRenderTarget_2.cpp -FILE: ../../../third_party/skia/docs/examples/Surface_MakeRenderTarget_3.cpp -FILE: ../../../third_party/skia/docs/examples/Surface_characterize.cpp -FILE: ../../../third_party/skia/docs/examples/Surface_draw.cpp -FILE: ../../../third_party/skia/docs/examples/Surface_draw_2.cpp -FILE: ../../../third_party/skia/docs/examples/Surface_getCanvas.cpp -FILE: ../../../third_party/skia/docs/examples/Surface_height.cpp -FILE: ../../../third_party/skia/docs/examples/Surface_makeImageSnapshot.cpp -FILE: ../../../third_party/skia/docs/examples/Surface_makeImageSnapshot_2.cpp -FILE: ../../../third_party/skia/docs/examples/Surface_makeSurface.cpp -FILE: ../../../third_party/skia/docs/examples/Surface_notifyContentWillChange.cpp -FILE: ../../../third_party/skia/docs/examples/Surface_peekPixels.cpp -FILE: ../../../third_party/skia/docs/examples/Surface_props.cpp -FILE: ../../../third_party/skia/docs/examples/Surface_readPixels.cpp -FILE: ../../../third_party/skia/docs/examples/Surface_readPixels_2.cpp -FILE: ../../../third_party/skia/docs/examples/Surface_readPixels_3.cpp -FILE: ../../../third_party/skia/docs/examples/Surface_width.cpp -FILE: ../../../third_party/skia/docs/examples/Surface_writePixels.cpp -FILE: ../../../third_party/skia/docs/examples/Surface_writePixels_2.cpp -FILE: ../../../third_party/skia/docs/examples/TextBlobBuilder_allocRun.cpp -FILE: ../../../third_party/skia/docs/examples/TextBlobBuilder_allocRunPos.cpp -FILE: ../../../third_party/skia/docs/examples/TextBlobBuilder_allocRunPosH.cpp -FILE: ../../../third_party/skia/docs/examples/TextBlobBuilder_empty_constructor.cpp -FILE: ../../../third_party/skia/docs/examples/TextBlobBuilder_make.cpp -FILE: ../../../third_party/skia/docs/examples/TextBlob_Deserialize.cpp -FILE: ../../../third_party/skia/docs/examples/TextBlob_MakeFromString.cpp -FILE: ../../../third_party/skia/docs/examples/TextBlob_MakeFromText.cpp -FILE: ../../../third_party/skia/docs/examples/TextBlob_bounds.cpp -FILE: ../../../third_party/skia/docs/examples/TextBlob_getIntercepts.cpp -FILE: ../../../third_party/skia/docs/examples/TextBlob_serialize.cpp -FILE: ../../../third_party/skia/docs/examples/TextBlob_serialize_2.cpp -FILE: ../../../third_party/skia/docs/examples/TextBlob_uniqueID.cpp -FILE: ../../../third_party/skia/docs/examples/Text_Encoding.cpp -FILE: ../../../third_party/skia/docs/examples/Text_Scale_X.cpp -FILE: ../../../third_party/skia/docs/examples/Text_Size.cpp -FILE: ../../../third_party/skia/docs/examples/Text_Skew_X.cpp -FILE: ../../../third_party/skia/docs/examples/Typeface_Methods.cpp -FILE: ../../../third_party/skia/docs/examples/Xor.cpp -FILE: ../../../third_party/skia/docs/examples/incomplete.cpp -FILE: ../../../third_party/skia/experimental/minimal_ios_mtl_skia_app/main.mm -FILE: ../../../third_party/skia/experimental/sktext/editor/App.cpp -FILE: ../../../third_party/skia/gm/crbug_918512.cpp -FILE: ../../../third_party/skia/gm/fp_sample_chaining.cpp -FILE: ../../../third_party/skia/gm/fpcoordinateoverride.cpp -FILE: ../../../third_party/skia/gm/inverseclip.cpp -FILE: ../../../third_party/skia/gm/labyrinth.cpp -FILE: ../../../third_party/skia/gm/manypathatlases.cpp -FILE: ../../../third_party/skia/gm/preservefillrule.cpp -FILE: ../../../third_party/skia/gm/swizzle.cpp -FILE: ../../../third_party/skia/gm/tilemodes_alpha.cpp -FILE: ../../../third_party/skia/include/core/SkPathTypes.h -FILE: ../../../third_party/skia/modules/skparagraph/bench/ParagraphBench.cpp -FILE: ../../../third_party/skia/modules/skplaintexteditor/app/editor_application.cpp -FILE: ../../../third_party/skia/modules/skplaintexteditor/include/editor.h -FILE: ../../../third_party/skia/modules/skplaintexteditor/include/stringslice.h -FILE: ../../../third_party/skia/modules/skplaintexteditor/include/stringview.h -FILE: ../../../third_party/skia/modules/skplaintexteditor/src/editor.cpp -FILE: ../../../third_party/skia/modules/skplaintexteditor/src/shape.cpp -FILE: ../../../third_party/skia/modules/skplaintexteditor/src/shape.h -FILE: ../../../third_party/skia/modules/skplaintexteditor/src/stringslice.cpp -FILE: ../../../third_party/skia/modules/skplaintexteditor/src/word_boundaries.cpp -FILE: ../../../third_party/skia/modules/skplaintexteditor/src/word_boundaries.h -FILE: ../../../third_party/skia/samplecode/SamplePathTessellators.cpp -FILE: ../../../third_party/skia/src/core/SkMalloc.cpp -FILE: ../../../third_party/skia/src/core/SkPixelRefPriv.h -FILE: ../../../third_party/skia/src/core/SkTextBlobTrace.cpp -FILE: ../../../third_party/skia/src/core/SkTextBlobTrace.h -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/AtlasPathRenderer.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/AtlasPathRenderer.h -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/PathInnerTriangulateOp.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/PathInnerTriangulateOp.h -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/TessellationPathRenderer.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/TessellationPathRenderer.h -FILE: ../../../third_party/skia/src/gpu/ganesh/tessellate/GrPathTessellationShader.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/tessellate/GrPathTessellationShader.h -FILE: ../../../third_party/skia/src/pdf/SkPDFGraphicStackState.cpp -FILE: ../../../third_party/skia/src/pdf/SkPDFGraphicStackState.h -FILE: ../../../third_party/skia/src/pdf/SkPDFType1Font.cpp -FILE: ../../../third_party/skia/src/pdf/SkPDFType1Font.h +FILE: ../../../third_party/skia/third_party/harfbuzz/config-override.h +---------------------------------------------------------------------------------------------------- +Copyright (c) 2021 Google Inc. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: skia +ORIGIN: ../../../third_party/skia/include/core/SkRegion.h + ../../../third_party/skia/LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/skia/include/core/SkRegion.h +---------------------------------------------------------------------------------------------------- +Copyright 2005 The Android Open Source Project + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: skia +ORIGIN: ../../../third_party/skia/include/config/SkUserConfig.h + ../../../third_party/skia/LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/skia/include/config/SkUserConfig.h +FILE: ../../../third_party/skia/include/core/SkBitmap.h +FILE: ../../../third_party/skia/include/core/SkCanvas.h +FILE: ../../../third_party/skia/include/core/SkColor.h +FILE: ../../../third_party/skia/include/core/SkColorFilter.h +FILE: ../../../third_party/skia/include/core/SkColorPriv.h +FILE: ../../../third_party/skia/include/core/SkFlattenable.h +FILE: ../../../third_party/skia/include/core/SkGraphics.h +FILE: ../../../third_party/skia/include/core/SkMaskFilter.h +FILE: ../../../third_party/skia/include/core/SkMath.h +FILE: ../../../third_party/skia/include/core/SkMatrix.h +FILE: ../../../third_party/skia/include/core/SkPaint.h +FILE: ../../../third_party/skia/include/core/SkPath.h +FILE: ../../../third_party/skia/include/core/SkPathEffect.h +FILE: ../../../third_party/skia/include/core/SkPathMeasure.h +FILE: ../../../third_party/skia/include/core/SkPoint.h +FILE: ../../../third_party/skia/include/core/SkRect.h +FILE: ../../../third_party/skia/include/core/SkRefCnt.h +FILE: ../../../third_party/skia/include/core/SkScalar.h +FILE: ../../../third_party/skia/include/core/SkShader.h +FILE: ../../../third_party/skia/include/core/SkStream.h +FILE: ../../../third_party/skia/include/core/SkString.h +FILE: ../../../third_party/skia/include/core/SkTime.h +FILE: ../../../third_party/skia/include/core/SkTypeface.h +FILE: ../../../third_party/skia/include/core/SkTypes.h +FILE: ../../../third_party/skia/include/effects/Sk1DPathEffect.h +FILE: ../../../third_party/skia/include/effects/Sk2DPathEffect.h +FILE: ../../../third_party/skia/include/effects/SkBlurMaskFilter.h +FILE: ../../../third_party/skia/include/effects/SkCornerPathEffect.h +FILE: ../../../third_party/skia/include/effects/SkDashPathEffect.h +FILE: ../../../third_party/skia/include/effects/SkDiscretePathEffect.h +FILE: ../../../third_party/skia/include/effects/SkGradientShader.h +FILE: ../../../third_party/skia/include/effects/SkTableMaskFilter.h +FILE: ../../../third_party/skia/include/private/SkColorData.h +FILE: ../../../third_party/skia/include/private/SkDeque.h +FILE: ../../../third_party/skia/include/private/SkFixed.h +FILE: ../../../third_party/skia/include/private/SkFloatingPoint.h +FILE: ../../../third_party/skia/include/private/SkNoncopyable.h +FILE: ../../../third_party/skia/include/private/SkTDArray.h +FILE: ../../../third_party/skia/include/private/SkTemplates.h +FILE: ../../../third_party/skia/include/utils/SkBase64.h +FILE: ../../../third_party/skia/include/utils/SkCamera.h +FILE: ../../../third_party/skia/include/utils/SkParse.h +FILE: ../../../third_party/skia/include/utils/SkParsePath.h +FILE: ../../../third_party/skia/include/utils/SkRandom.h +FILE: ../../../third_party/skia/src/core/SkAlphaRuns.cpp +FILE: ../../../third_party/skia/src/core/SkAnalyticEdge.cpp +FILE: ../../../third_party/skia/src/core/SkAnalyticEdge.h +FILE: ../../../third_party/skia/src/core/SkAntiRun.h +FILE: ../../../third_party/skia/src/core/SkBlitBWMaskTemplate.h +FILE: ../../../third_party/skia/src/core/SkBlitter.cpp +FILE: ../../../third_party/skia/src/core/SkBlitter.h +FILE: ../../../third_party/skia/src/core/SkBlitter_A8.cpp +FILE: ../../../third_party/skia/src/core/SkBlitter_ARGB32.cpp +FILE: ../../../third_party/skia/src/core/SkBlitter_Sprite.cpp +FILE: ../../../third_party/skia/src/core/SkBlurMF.cpp +FILE: ../../../third_party/skia/src/core/SkBlurMask.cpp +FILE: ../../../third_party/skia/src/core/SkBlurMask.h +FILE: ../../../third_party/skia/src/core/SkBuffer.cpp +FILE: ../../../third_party/skia/src/core/SkBuffer.h +FILE: ../../../third_party/skia/src/core/SkColor.cpp +FILE: ../../../third_party/skia/src/core/SkColorFilter.cpp +FILE: ../../../third_party/skia/src/core/SkColorFilterBase.h +FILE: ../../../third_party/skia/src/core/SkCoreBlitters.h +FILE: ../../../third_party/skia/src/core/SkDebug.cpp +FILE: ../../../third_party/skia/src/core/SkDeque.cpp +FILE: ../../../third_party/skia/src/core/SkDescriptor.h +FILE: ../../../third_party/skia/src/core/SkDraw.cpp +FILE: ../../../third_party/skia/src/core/SkDraw.h +FILE: ../../../third_party/skia/src/core/SkEdge.cpp +FILE: ../../../third_party/skia/src/core/SkEdge.h +FILE: ../../../third_party/skia/src/core/SkEndian.h +FILE: ../../../third_party/skia/src/core/SkFDot6.h +FILE: ../../../third_party/skia/src/core/SkGeometry.cpp +FILE: ../../../third_party/skia/src/core/SkGeometry.h +FILE: ../../../third_party/skia/src/core/SkGlyph.h +FILE: ../../../third_party/skia/src/core/SkGraphics.cpp +FILE: ../../../third_party/skia/src/core/SkMask.h +FILE: ../../../third_party/skia/src/core/SkMaskFilter.cpp +FILE: ../../../third_party/skia/src/core/SkMatrix.cpp +FILE: ../../../third_party/skia/src/core/SkModeColorFilter.cpp +FILE: ../../../third_party/skia/src/core/SkOSFile.h +FILE: ../../../third_party/skia/src/core/SkPaint.cpp +FILE: ../../../third_party/skia/src/core/SkPath.cpp +FILE: ../../../third_party/skia/src/core/SkPathEffect.cpp +FILE: ../../../third_party/skia/src/core/SkPathEffectBase.h +FILE: ../../../third_party/skia/src/core/SkPointPriv.h +FILE: ../../../third_party/skia/src/core/SkRect.cpp +FILE: ../../../third_party/skia/src/core/SkRegion.cpp +FILE: ../../../third_party/skia/src/core/SkRegionPriv.h +FILE: ../../../third_party/skia/src/core/SkRegion_path.cpp +FILE: ../../../third_party/skia/src/core/SkScalerCache.cpp +FILE: ../../../third_party/skia/src/core/SkScalerCache.h +FILE: ../../../third_party/skia/src/core/SkScalerContext.cpp +FILE: ../../../third_party/skia/src/core/SkScalerContext.h +FILE: ../../../third_party/skia/src/core/SkScan.cpp +FILE: ../../../third_party/skia/src/core/SkScanPriv.h +FILE: ../../../third_party/skia/src/core/SkScan_AntiPath.cpp +FILE: ../../../third_party/skia/src/core/SkScan_Hairline.cpp +FILE: ../../../third_party/skia/src/core/SkScan_Path.cpp +FILE: ../../../third_party/skia/src/core/SkSpriteBlitter.h +FILE: ../../../third_party/skia/src/core/SkSpriteBlitter_ARGB32.cpp +FILE: ../../../third_party/skia/src/core/SkStream.cpp +FILE: ../../../third_party/skia/src/core/SkString.cpp +FILE: ../../../third_party/skia/src/core/SkStroke.h +FILE: ../../../third_party/skia/src/core/SkStrokerPriv.cpp +FILE: ../../../third_party/skia/src/core/SkStrokerPriv.h +FILE: ../../../third_party/skia/src/core/SkTSearch.cpp +FILE: ../../../third_party/skia/src/core/SkTSearch.h +FILE: ../../../third_party/skia/src/core/SkTSort.h +FILE: ../../../third_party/skia/src/core/SkUtils.cpp +FILE: ../../../third_party/skia/src/core/SkUtils.h +FILE: ../../../third_party/skia/src/core/SkXfermode.cpp +FILE: ../../../third_party/skia/src/core/SkXfermodePriv.h +FILE: ../../../third_party/skia/src/effects/Sk1DPathEffect.cpp +FILE: ../../../third_party/skia/src/effects/Sk2DPathEffect.cpp +FILE: ../../../third_party/skia/src/effects/SkCornerPathEffect.cpp +FILE: ../../../third_party/skia/src/effects/SkDashPathEffect.cpp +FILE: ../../../third_party/skia/src/effects/SkDiscretePathEffect.cpp +FILE: ../../../third_party/skia/src/effects/SkEmbossMask.cpp +FILE: ../../../third_party/skia/src/effects/SkEmbossMask.h +FILE: ../../../third_party/skia/src/effects/SkEmbossMaskFilter.cpp +FILE: ../../../third_party/skia/src/effects/SkEmbossMaskFilter.h +FILE: ../../../third_party/skia/src/images/SkPngEncoder.cpp +FILE: ../../../third_party/skia/src/ports/SkDebug_android.cpp +FILE: ../../../third_party/skia/src/ports/SkDebug_stdio.cpp +FILE: ../../../third_party/skia/src/ports/SkFontHost_FreeType.cpp +FILE: ../../../third_party/skia/src/ports/SkFontHost_win.cpp +FILE: ../../../third_party/skia/src/ports/SkFontMgr_custom.cpp +FILE: ../../../third_party/skia/src/ports/SkFontMgr_custom.h +FILE: ../../../third_party/skia/src/ports/SkFontMgr_mac_ct.cpp +FILE: ../../../third_party/skia/src/ports/SkOSFile_stdio.cpp +FILE: ../../../third_party/skia/src/ports/SkScalerContext_mac_ct.cpp +FILE: ../../../third_party/skia/src/ports/SkTypeface_mac_ct.cpp +FILE: ../../../third_party/skia/src/shaders/SkBitmapProcShader.h +FILE: ../../../third_party/skia/src/shaders/SkComposeShader.cpp +FILE: ../../../third_party/skia/src/shaders/SkShader.cpp +FILE: ../../../third_party/skia/src/shaders/gradients/SkGradientShader.cpp +FILE: ../../../third_party/skia/src/utils/SkBase64.cpp +FILE: ../../../third_party/skia/src/utils/SkCamera.cpp +FILE: ../../../third_party/skia/src/utils/SkParse.cpp +FILE: ../../../third_party/skia/src/utils/SkParseColor.cpp +FILE: ../../../third_party/skia/src/xml/SkDOM.cpp +FILE: ../../../third_party/skia/src/xml/SkDOM.h +FILE: ../../../third_party/skia/src/xml/SkXMLParser.cpp +FILE: ../../../third_party/skia/src/xml/SkXMLParser.h +FILE: ../../../third_party/skia/src/xml/SkXMLWriter.cpp +FILE: ../../../third_party/skia/src/xml/SkXMLWriter.h +---------------------------------------------------------------------------------------------------- +Copyright 2006 The Android Open Source Project + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: skia +ORIGIN: ../../../third_party/skia/src/ports/SkFontHost_FreeType_common.cpp + ../../../third_party/skia/LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/skia/src/ports/SkFontHost_FreeType_common.cpp +FILE: ../../../third_party/skia/src/ports/SkFontHost_FreeType_common.h +---------------------------------------------------------------------------------------------------- +Copyright 2006-2012 The Android Open Source Project +Copyright 2012 Mozilla Foundation + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: skia +ORIGIN: ../../../third_party/skia/include/core/SkPicture.h + ../../../third_party/skia/LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/skia/include/core/SkPicture.h +FILE: ../../../third_party/skia/include/effects/SkColorMatrix.h +FILE: ../../../third_party/skia/include/effects/SkColorMatrixFilter.h +FILE: ../../../third_party/skia/src/core/SkBitmapProcState.h +FILE: ../../../third_party/skia/src/core/SkMask.cpp +FILE: ../../../third_party/skia/src/core/SkPicture.cpp +FILE: ../../../third_party/skia/src/images/SkJpegEncoder.cpp +---------------------------------------------------------------------------------------------------- +Copyright 2007 The Android Open Source Project + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: skia +ORIGIN: ../../../third_party/skia/src/core/SkBitmapProcState_matrixProcs.cpp + ../../../third_party/skia/LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/skia/src/core/SkBitmapProcState_matrixProcs.cpp +FILE: ../../../third_party/skia/src/ports/SkFontMgr_FontConfigInterface_factory.cpp +---------------------------------------------------------------------------------------------------- +Copyright 2008 Google Inc. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: skia +ORIGIN: ../../../third_party/skia/include/core/SkMallocPixelRef.h + ../../../third_party/skia/LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/skia/include/core/SkMallocPixelRef.h +FILE: ../../../third_party/skia/include/core/SkPixelRef.h +FILE: ../../../third_party/skia/include/core/SkUnPreMultiply.h +FILE: ../../../third_party/skia/include/effects/SkBlurDrawLooper.h +FILE: ../../../third_party/skia/include/private/SkFloatBits.h +FILE: ../../../third_party/skia/src/core/SkBitmap.cpp +FILE: ../../../third_party/skia/src/core/SkCanvas.cpp +FILE: ../../../third_party/skia/src/core/SkMath.cpp +FILE: ../../../third_party/skia/src/core/SkPathMeasure.cpp +FILE: ../../../third_party/skia/src/core/SkPoint.cpp +FILE: ../../../third_party/skia/src/core/SkPtrRecorder.h +FILE: ../../../third_party/skia/src/core/SkStroke.cpp +FILE: ../../../third_party/skia/src/core/SkWriter32.h +FILE: ../../../third_party/skia/src/ports/SkFontMgr_empty_factory.cpp +FILE: ../../../third_party/skia/src/ports/SkImageEncoder_CG.cpp +---------------------------------------------------------------------------------------------------- +Copyright 2008 The Android Open Source Project + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: skia +ORIGIN: ../../../third_party/skia/src/codec/SkColorTable.cpp + ../../../third_party/skia/LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/skia/src/codec/SkColorTable.cpp +FILE: ../../../third_party/skia/src/core/SkCubicClipper.cpp +FILE: ../../../third_party/skia/src/core/SkCubicClipper.h +FILE: ../../../third_party/skia/src/core/SkEdgeClipper.cpp +FILE: ../../../third_party/skia/src/core/SkEdgeClipper.h +FILE: ../../../third_party/skia/src/core/SkQuadClipper.cpp +FILE: ../../../third_party/skia/src/core/SkQuadClipper.h +FILE: ../../../third_party/skia/src/images/SkImageEncoder.cpp +---------------------------------------------------------------------------------------------------- +Copyright 2009 The Android Open Source Project + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: skia +ORIGIN: ../../../third_party/skia/src/ports/SkFontConfigInterface_direct.cpp + ../../../third_party/skia/LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/skia/src/ports/SkFontConfigInterface_direct.cpp +FILE: ../../../third_party/skia/src/ports/SkFontConfigInterface_direct.h +FILE: ../../../third_party/skia/src/ports/SkFontConfigInterface_direct_factory.cpp +---------------------------------------------------------------------------------------------------- +Copyright 2009-2015 Google Inc. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: skia +ORIGIN: ../../../third_party/skia/include/gpu/GrConfig.h + ../../../third_party/skia/LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/skia/include/gpu/GrConfig.h +FILE: ../../../third_party/skia/include/gpu/GrTypes.h +FILE: ../../../third_party/skia/src/core/SkImageInfo.cpp +FILE: ../../../third_party/skia/src/core/SkRasterClip.cpp +FILE: ../../../third_party/skia/src/core/SkRasterClip.h +FILE: ../../../third_party/skia/src/core/SkStrikeCache.h +FILE: ../../../third_party/skia/src/core/SkTBlockList.h +FILE: ../../../third_party/skia/src/gpu/BufferWriter.h +FILE: ../../../third_party/skia/src/gpu/GrRectanizer.h +FILE: ../../../third_party/skia/src/gpu/Rectanizer.h +FILE: ../../../third_party/skia/src/gpu/RectanizerPow2.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/Device_v1.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrBufferAllocPool.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrBufferAllocPool.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrClip.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrColor.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrFixedClip.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrGpu.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/SkGr.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/geometry/GrRect.h +FILE: ../../../third_party/skia/src/ports/SkDebug_win.cpp +FILE: ../../../third_party/skia/src/text/gpu/Glyph.h +---------------------------------------------------------------------------------------------------- +Copyright 2010 Google Inc. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: skia +ORIGIN: ../../../third_party/skia/src/core/SkDevice.h + ../../../third_party/skia/LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/skia/src/core/SkDevice.h +FILE: ../../../third_party/skia/src/core/SkScalar.cpp +FILE: ../../../third_party/skia/src/core/SkTextFormatParams.h +FILE: ../../../third_party/skia/src/images/SkJPEGWriteUtility.cpp +FILE: ../../../third_party/skia/src/images/SkJPEGWriteUtility.h +FILE: ../../../third_party/skia/src/images/SkWebpEncoder.cpp +FILE: ../../../third_party/skia/src/pdf/SkDeflate.cpp +FILE: ../../../third_party/skia/src/pdf/SkDeflate.h +FILE: ../../../third_party/skia/src/pdf/SkPDFFormXObject.cpp +FILE: ../../../third_party/skia/src/pdf/SkPDFFormXObject.h +FILE: ../../../third_party/skia/src/pdf/SkPDFGraphicState.h +FILE: ../../../third_party/skia/src/pdf/SkPDFTypes.h +---------------------------------------------------------------------------------------------------- +Copyright 2010 The Android Open Source Project + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: skia +ORIGIN: ../../../third_party/skia/bench/AAClipBench.cpp + ../../../third_party/skia/LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/skia/bench/AAClipBench.cpp +FILE: ../../../third_party/skia/bench/Benchmark.cpp +FILE: ../../../third_party/skia/bench/Benchmark.h +FILE: ../../../third_party/skia/bench/BlurBench.cpp +FILE: ../../../third_party/skia/bench/ChromeBench.cpp +FILE: ../../../third_party/skia/bench/DashBench.cpp +FILE: ../../../third_party/skia/bench/GradientBench.cpp +FILE: ../../../third_party/skia/bench/MatrixBench.cpp +FILE: ../../../third_party/skia/bench/MutexBench.cpp +FILE: ../../../third_party/skia/bench/PathBench.cpp +FILE: ../../../third_party/skia/bench/PathIterBench.cpp +FILE: ../../../third_party/skia/bench/PicturePlaybackBench.cpp +FILE: ../../../third_party/skia/bench/RectBench.cpp +FILE: ../../../third_party/skia/bench/RegionBench.cpp +FILE: ../../../third_party/skia/bench/RepeatTileBench.cpp +FILE: ../../../third_party/skia/bench/ScalarBench.cpp +FILE: ../../../third_party/skia/bench/VertBench.cpp +FILE: ../../../third_party/skia/gm/aaclip.cpp +FILE: ../../../third_party/skia/gm/aarectmodes.cpp +FILE: ../../../third_party/skia/gm/arithmode.cpp +FILE: ../../../third_party/skia/gm/bitmapcopy.cpp +FILE: ../../../third_party/skia/gm/bitmapfilters.cpp +FILE: ../../../third_party/skia/gm/bitmaprect.cpp +FILE: ../../../third_party/skia/gm/blurs.cpp +FILE: ../../../third_party/skia/gm/clip_strokerect.cpp +FILE: ../../../third_party/skia/gm/color4f.cpp +FILE: ../../../third_party/skia/gm/colormatrix.cpp +FILE: ../../../third_party/skia/gm/complexclip.cpp +FILE: ../../../third_party/skia/gm/complexclip2.cpp +FILE: ../../../third_party/skia/gm/convexpaths.cpp +FILE: ../../../third_party/skia/gm/cubicpaths.cpp +FILE: ../../../third_party/skia/gm/degeneratesegments.cpp +FILE: ../../../third_party/skia/gm/dftext.cpp +FILE: ../../../third_party/skia/gm/drawbitmaprect.cpp +FILE: ../../../third_party/skia/gm/emptypath.cpp +FILE: ../../../third_party/skia/gm/encode.cpp +FILE: ../../../third_party/skia/gm/filltypes.cpp +FILE: ../../../third_party/skia/gm/filltypespersp.cpp +FILE: ../../../third_party/skia/gm/filterindiabox.cpp +FILE: ../../../third_party/skia/gm/fontscaler.cpp +FILE: ../../../third_party/skia/gm/gammatext.cpp +FILE: ../../../third_party/skia/gm/giantbitmap.cpp +FILE: ../../../third_party/skia/gm/gm.cpp +FILE: ../../../third_party/skia/gm/gm.h +FILE: ../../../third_party/skia/gm/gradients.cpp +FILE: ../../../third_party/skia/gm/gradtext.cpp +FILE: ../../../third_party/skia/gm/hairmodes.cpp +FILE: ../../../third_party/skia/gm/hittestpath.cpp +FILE: ../../../third_party/skia/gm/image.cpp +FILE: ../../../third_party/skia/gm/imageblur.cpp +FILE: ../../../third_party/skia/gm/imageblur2.cpp +FILE: ../../../third_party/skia/gm/imagefiltersbase.cpp +FILE: ../../../third_party/skia/gm/imagefilterscropped.cpp +FILE: ../../../third_party/skia/gm/lcdtext.cpp +FILE: ../../../third_party/skia/gm/linepaths.cpp +FILE: ../../../third_party/skia/gm/ninepatchstretch.cpp +FILE: ../../../third_party/skia/gm/pathfill.cpp +FILE: ../../../third_party/skia/gm/pathreverse.cpp +FILE: ../../../third_party/skia/gm/points.cpp +FILE: ../../../third_party/skia/gm/poly2poly.cpp +FILE: ../../../third_party/skia/gm/quadpaths.cpp +FILE: ../../../third_party/skia/gm/rasterhandleallocator.cpp +FILE: ../../../third_party/skia/gm/shadertext3.cpp +FILE: ../../../third_party/skia/gm/strokefill.cpp +FILE: ../../../third_party/skia/gm/strokerects.cpp +FILE: ../../../third_party/skia/gm/strokes.cpp +FILE: ../../../third_party/skia/gm/tablecolorfilter.cpp +FILE: ../../../third_party/skia/gm/texteffects.cpp +FILE: ../../../third_party/skia/gm/tilemodes.cpp +FILE: ../../../third_party/skia/gm/tilemodes_scaled.cpp +FILE: ../../../third_party/skia/gm/tinybitmap.cpp +FILE: ../../../third_party/skia/gm/xfermodes.cpp +FILE: ../../../third_party/skia/include/core/SkData.h +FILE: ../../../third_party/skia/include/core/SkImageEncoder.h +FILE: ../../../third_party/skia/include/core/SkImageFilter.h +FILE: ../../../third_party/skia/include/core/SkSize.h +FILE: ../../../third_party/skia/include/effects/SkLayerDrawLooper.h +FILE: ../../../third_party/skia/include/gpu/gl/GrGLConfig.h +FILE: ../../../third_party/skia/include/gpu/gl/GrGLConfig_chrome.h +FILE: ../../../third_party/skia/include/gpu/gl/GrGLInterface.h +FILE: ../../../third_party/skia/include/ports/SkTypeface_mac.h +FILE: ../../../third_party/skia/include/ports/SkTypeface_win.h +FILE: ../../../third_party/skia/include/private/SkTArray.h +FILE: ../../../third_party/skia/include/utils/SkNWayCanvas.h +FILE: ../../../third_party/skia/include/utils/mac/SkCGUtils.h +FILE: ../../../third_party/skia/samplecode/Sample.h +FILE: ../../../third_party/skia/samplecode/SampleArc.cpp +FILE: ../../../third_party/skia/samplecode/SampleCamera.cpp +FILE: ../../../third_party/skia/samplecode/SampleClip.cpp +FILE: ../../../third_party/skia/samplecode/SampleDegenerateTwoPtRadials.cpp +FILE: ../../../third_party/skia/samplecode/SampleGradients.cpp +FILE: ../../../third_party/skia/samplecode/SampleLayers.cpp +FILE: ../../../third_party/skia/samplecode/SamplePatch.cpp +FILE: ../../../third_party/skia/samplecode/SamplePath.cpp +FILE: ../../../third_party/skia/samplecode/SamplePathClip.cpp +FILE: ../../../third_party/skia/samplecode/SamplePathEffects.cpp +FILE: ../../../third_party/skia/samplecode/SampleRepeatTile.cpp +FILE: ../../../third_party/skia/samplecode/SampleSlides.cpp +FILE: ../../../third_party/skia/samplecode/SampleTextBox.cpp +FILE: ../../../third_party/skia/samplecode/vertexdump.cpp +FILE: ../../../third_party/skia/src/core/SkAAClip.cpp +FILE: ../../../third_party/skia/src/core/SkAAClip.h +FILE: ../../../third_party/skia/src/core/SkAdvancedTypefaceMetrics.h +FILE: ../../../third_party/skia/src/core/SkBitmapProcState.cpp +FILE: ../../../third_party/skia/src/core/SkBlitRow.h +FILE: ../../../third_party/skia/src/core/SkBlitRow_D32.cpp +FILE: ../../../third_party/skia/src/core/SkClipStack.cpp +FILE: ../../../third_party/skia/src/core/SkClipStack.h +FILE: ../../../third_party/skia/src/core/SkColorFilter_Matrix.cpp +FILE: ../../../third_party/skia/src/core/SkConvertPixels.h +FILE: ../../../third_party/skia/src/core/SkData.cpp +FILE: ../../../third_party/skia/src/core/SkDevice.cpp +FILE: ../../../third_party/skia/src/core/SkDrawProcs.h +FILE: ../../../third_party/skia/src/core/SkEdgeBuilder.cpp +FILE: ../../../third_party/skia/src/core/SkEdgeBuilder.h +FILE: ../../../third_party/skia/src/core/SkFlattenable.cpp +FILE: ../../../third_party/skia/src/core/SkFontStream.cpp +FILE: ../../../third_party/skia/src/core/SkLineClipper.cpp +FILE: ../../../third_party/skia/src/core/SkLineClipper.h +FILE: ../../../third_party/skia/src/core/SkMallocPixelRef.cpp +FILE: ../../../third_party/skia/src/core/SkPictureData.cpp +FILE: ../../../third_party/skia/src/core/SkPictureData.h +FILE: ../../../third_party/skia/src/core/SkPictureFlat.cpp +FILE: ../../../third_party/skia/src/core/SkPictureFlat.h +FILE: ../../../third_party/skia/src/core/SkPictureRecord.cpp +FILE: ../../../third_party/skia/src/core/SkPictureRecord.h +FILE: ../../../third_party/skia/src/core/SkPixelRef.cpp +FILE: ../../../third_party/skia/src/core/SkPtrRecorder.cpp +FILE: ../../../third_party/skia/src/core/SkReadBuffer.h +FILE: ../../../third_party/skia/src/core/SkTLazy.h +FILE: ../../../third_party/skia/src/core/SkTypefaceCache.cpp +FILE: ../../../third_party/skia/src/core/SkTypefaceCache.h +FILE: ../../../third_party/skia/src/core/SkUnPreMultiply.cpp +FILE: ../../../third_party/skia/src/core/SkWriteBuffer.h +FILE: ../../../third_party/skia/src/core/SkWriter32.cpp +FILE: ../../../third_party/skia/src/effects/SkColorMatrix.cpp +FILE: ../../../third_party/skia/src/effects/SkColorMatrixFilter.cpp +FILE: ../../../third_party/skia/src/effects/SkLayerDrawLooper.cpp +FILE: ../../../third_party/skia/src/effects/SkTableMaskFilter.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/Device.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrAttachment.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrAttachment.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrGpu.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrGpuResource.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrNativeRect.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrPaint.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrRenderTarget.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrRenderTarget.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrStencilSettings.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrTexture.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrTexture.h +FILE: ../../../third_party/skia/src/gpu/ganesh/PathRenderer.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/PathRenderer.h +FILE: ../../../third_party/skia/src/gpu/ganesh/PathRendererChain.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/PathRendererChain.h +FILE: ../../../third_party/skia/src/gpu/ganesh/geometry/GrPathUtils.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/geometry/GrPathUtils.h +FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLAttachment.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLAttachment.h +FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLDefines_impl.h +FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLGLSL.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLGLSL.h +FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLGpu.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLGpu.h +FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLGpuProgramCache.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLInterfaceAutogen.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLMakeNativeInterface_none.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLProgram.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLProgram.h +FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLRenderTarget.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLRenderTarget.h +FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLTexture.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLTexture.h +FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLUtil.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/gl/mac/GrGLMakeNativeInterface_mac.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/gl/win/GrGLMakeNativeInterface_win.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/AAHairLinePathRenderer.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/AAHairLinePathRenderer.h +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/DefaultPathRenderer.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/DefaultPathRenderer.h +FILE: ../../../third_party/skia/src/gpu/gl/GrGLDefines.h +FILE: ../../../third_party/skia/src/pdf/SkPDFDevice.cpp +FILE: ../../../third_party/skia/src/pdf/SkPDFDevice.h +FILE: ../../../third_party/skia/src/pdf/SkPDFDocument.cpp +FILE: ../../../third_party/skia/src/pdf/SkPDFFont.cpp +FILE: ../../../third_party/skia/src/pdf/SkPDFFont.h +FILE: ../../../third_party/skia/src/pdf/SkPDFGraphicState.cpp +FILE: ../../../third_party/skia/src/pdf/SkPDFMakeToUnicodeCmap.cpp +FILE: ../../../third_party/skia/src/pdf/SkPDFShader.cpp +FILE: ../../../third_party/skia/src/pdf/SkPDFShader.h +FILE: ../../../third_party/skia/src/pdf/SkPDFTypes.cpp +FILE: ../../../third_party/skia/src/pdf/SkPDFUtils.cpp +FILE: ../../../third_party/skia/src/pdf/SkPDFUtils.h +FILE: ../../../third_party/skia/src/ports/SkGlobalInitialization_default.cpp +FILE: ../../../third_party/skia/src/ports/SkImageEncoder_WIC.cpp +FILE: ../../../third_party/skia/src/ports/SkMemory_malloc.cpp +FILE: ../../../third_party/skia/src/ports/SkScalerContext_win_dw.cpp +FILE: ../../../third_party/skia/src/shaders/SkBitmapProcShader.cpp +FILE: ../../../third_party/skia/src/utils/SkBitSet.h +FILE: ../../../third_party/skia/src/utils/SkNWayCanvas.cpp +FILE: ../../../third_party/skia/src/utils/SkOSPath.cpp +FILE: ../../../third_party/skia/src/utils/SkParsePath.cpp +FILE: ../../../third_party/skia/src/utils/mac/SkCreateCGImageRef.cpp +FILE: ../../../third_party/skia/src/utils/win/SkAutoCoInitialize.cpp +FILE: ../../../third_party/skia/src/utils/win/SkAutoCoInitialize.h +FILE: ../../../third_party/skia/src/utils/win/SkHRESULT.cpp +FILE: ../../../third_party/skia/src/utils/win/SkHRESULT.h +FILE: ../../../third_party/skia/src/utils/win/SkIStream.cpp +FILE: ../../../third_party/skia/src/utils/win/SkIStream.h +FILE: ../../../third_party/skia/src/utils/win/SkTScopedComPtr.h +FILE: ../../../third_party/skia/src/utils/win/SkWGL.h +FILE: ../../../third_party/skia/src/utils/win/SkWGL_win.cpp +FILE: ../../../third_party/skia/src/xps/SkXPSDevice.cpp +FILE: ../../../third_party/skia/src/xps/SkXPSDevice.h +---------------------------------------------------------------------------------------------------- +Copyright 2011 Google Inc. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: skia +ORIGIN: ../../../third_party/skia/src/ports/SkMemory_mozalloc.cpp + ../../../third_party/skia/LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/skia/src/ports/SkMemory_mozalloc.cpp +---------------------------------------------------------------------------------------------------- +Copyright 2011 Google Inc. +Copyright 2012 Mozilla Foundation + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: skia +ORIGIN: ../../../third_party/skia/include/core/SkDrawLooper.h + ../../../third_party/skia/LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/skia/include/core/SkDrawLooper.h +FILE: ../../../third_party/skia/src/core/SkScan.h +FILE: ../../../third_party/skia/src/core/SkScan_Antihair.cpp +FILE: ../../../third_party/skia/src/core/SkTypeface.cpp +FILE: ../../../third_party/skia/src/effects/imagefilters/SkBlurImageFilter.cpp +FILE: ../../../third_party/skia/src/ports/SkFontMgr_android_parser.cpp +FILE: ../../../third_party/skia/src/ports/SkFontMgr_android_parser.h +---------------------------------------------------------------------------------------------------- +Copyright 2011 The Android Open Source Project + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: skia +ORIGIN: ../../../third_party/skia/bench/BenchLogger.cpp + ../../../third_party/skia/LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/skia/bench/BenchLogger.cpp +FILE: ../../../third_party/skia/bench/BenchLogger.h +FILE: ../../../third_party/skia/bench/ChecksumBench.cpp +FILE: ../../../third_party/skia/bench/FilteringBench.cpp +FILE: ../../../third_party/skia/bench/GameBench.cpp +FILE: ../../../third_party/skia/bench/GrMemoryPoolBench.cpp +FILE: ../../../third_party/skia/bench/LineBench.cpp +FILE: ../../../third_party/skia/bench/Matrix44Bench.cpp +FILE: ../../../third_party/skia/bench/MatrixConvolutionBench.cpp +FILE: ../../../third_party/skia/bench/MorphologyBench.cpp +FILE: ../../../third_party/skia/bench/ParagraphBench.cpp +FILE: ../../../third_party/skia/bench/RTreeBench.cpp +FILE: ../../../third_party/skia/bench/RefCntBench.cpp +FILE: ../../../third_party/skia/bench/TableBench.cpp +FILE: ../../../third_party/skia/gm/bigmatrix.cpp +FILE: ../../../third_party/skia/gm/blurrect.cpp +FILE: ../../../third_party/skia/gm/colorfilterimagefilter.cpp +FILE: ../../../third_party/skia/gm/composeshader.cpp +FILE: ../../../third_party/skia/gm/dashcubics.cpp +FILE: ../../../third_party/skia/gm/dashing.cpp +FILE: ../../../third_party/skia/gm/distantclip.cpp +FILE: ../../../third_party/skia/gm/fatpathfill.cpp +FILE: ../../../third_party/skia/gm/getpostextpath.cpp +FILE: ../../../third_party/skia/gm/imagefiltersgraph.cpp +FILE: ../../../third_party/skia/gm/imagemagnifier.cpp +FILE: ../../../third_party/skia/gm/lighting.cpp +FILE: ../../../third_party/skia/gm/matrixconvolution.cpp +FILE: ../../../third_party/skia/gm/modecolorfilters.cpp +FILE: ../../../third_party/skia/gm/morphology.cpp +FILE: ../../../third_party/skia/gm/patheffects.cpp +FILE: ../../../third_party/skia/gm/pathinterior.cpp +FILE: ../../../third_party/skia/gm/rrect.cpp +FILE: ../../../third_party/skia/gm/rrects.cpp +FILE: ../../../third_party/skia/gm/runtimeimagefilter.cpp +FILE: ../../../third_party/skia/gm/samplerstress.cpp +FILE: ../../../third_party/skia/gm/simpleaaclip.cpp +FILE: ../../../third_party/skia/gm/srcmode.cpp +FILE: ../../../third_party/skia/gm/strokerect.cpp +FILE: ../../../third_party/skia/gm/typeface.cpp +FILE: ../../../third_party/skia/gm/verylargebitmap.cpp +FILE: ../../../third_party/skia/include/core/SkAnnotation.h +FILE: ../../../third_party/skia/include/core/SkImage.h +FILE: ../../../third_party/skia/include/core/SkRRect.h +FILE: ../../../third_party/skia/include/core/SkStrokeRec.h +FILE: ../../../third_party/skia/include/core/SkSurface.h +FILE: ../../../third_party/skia/include/gpu/gl/GrGLFunctions.h +FILE: ../../../third_party/skia/include/pathops/SkPathOps.h +FILE: ../../../third_party/skia/include/private/SkChecksum.h +FILE: ../../../third_party/skia/include/private/SkPathRef.h +FILE: ../../../third_party/skia/include/private/SkWeakRefCnt.h +FILE: ../../../third_party/skia/include/utils/SkNullCanvas.h +FILE: ../../../third_party/skia/samplecode/SampleAnimBlur.cpp +FILE: ../../../third_party/skia/samplecode/SampleFatBits.cpp +FILE: ../../../third_party/skia/samplecode/SampleQuadStroker.cpp +FILE: ../../../third_party/skia/src/codec/SkColorTable.h +FILE: ../../../third_party/skia/src/core/SkAnnotation.cpp +FILE: ../../../third_party/skia/src/core/SkFontDescriptor.cpp +FILE: ../../../third_party/skia/src/core/SkFontDescriptor.h +FILE: ../../../third_party/skia/src/core/SkImagePriv.h +FILE: ../../../third_party/skia/src/core/SkMD5.cpp +FILE: ../../../third_party/skia/src/core/SkMD5.h +FILE: ../../../third_party/skia/src/core/SkMaskGamma.cpp +FILE: ../../../third_party/skia/src/core/SkMaskGamma.h +FILE: ../../../third_party/skia/src/core/SkMathPriv.h +FILE: ../../../third_party/skia/src/core/SkPaintDefaults.h +FILE: ../../../third_party/skia/src/core/SkRRect.cpp +FILE: ../../../third_party/skia/src/core/SkRTree.cpp +FILE: ../../../third_party/skia/src/core/SkRTree.h +FILE: ../../../third_party/skia/src/core/SkReadBuffer.cpp +FILE: ../../../third_party/skia/src/core/SkStrokeRec.cpp +FILE: ../../../third_party/skia/src/core/SkTInternalLList.h +FILE: ../../../third_party/skia/src/core/SkWriteBuffer.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrMemoryPool.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrMemoryPool.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrProcessor.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrProcessor.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrProcessorUnitTest.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrSWMaskHelper.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrSWMaskHelper.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrShaderCaps.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrShaderCaps.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrSurface.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrSurface.h +FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrGaussianConvolutionFragmentProcessor.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrGaussianConvolutionFragmentProcessor.h +FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLCaps.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLCaps.h +FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLProgramDataManager.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLProgramDataManager.h +FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLUtil.h +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/AAConvexPathRenderer.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/AAConvexPathRenderer.h +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/SoftwarePathRenderer.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/SoftwarePathRenderer.h +FILE: ../../../third_party/skia/src/image/SkImage.cpp +FILE: ../../../third_party/skia/src/image/SkImage_Base.h +FILE: ../../../third_party/skia/src/image/SkImage_Gpu.cpp +FILE: ../../../third_party/skia/src/image/SkImage_Raster.cpp +FILE: ../../../third_party/skia/src/image/SkSurface.cpp +FILE: ../../../third_party/skia/src/image/SkSurface_Base.h +FILE: ../../../third_party/skia/src/image/SkSurface_Gpu.cpp +FILE: ../../../third_party/skia/src/image/SkSurface_Raster.cpp +FILE: ../../../third_party/skia/src/pathops/SkAddIntersections.cpp +FILE: ../../../third_party/skia/src/pathops/SkAddIntersections.h +FILE: ../../../third_party/skia/src/pathops/SkDCubicLineIntersection.cpp +FILE: ../../../third_party/skia/src/pathops/SkDLineIntersection.cpp +FILE: ../../../third_party/skia/src/pathops/SkDQuadLineIntersection.cpp +FILE: ../../../third_party/skia/src/pathops/SkIntersectionHelper.h +FILE: ../../../third_party/skia/src/pathops/SkIntersections.cpp +FILE: ../../../third_party/skia/src/pathops/SkIntersections.h +FILE: ../../../third_party/skia/src/pathops/SkLineParameters.h +FILE: ../../../third_party/skia/src/pathops/SkOpAngle.cpp +FILE: ../../../third_party/skia/src/pathops/SkOpAngle.h +FILE: ../../../third_party/skia/src/pathops/SkOpCubicHull.cpp +FILE: ../../../third_party/skia/src/pathops/SkOpEdgeBuilder.cpp +FILE: ../../../third_party/skia/src/pathops/SkOpEdgeBuilder.h +FILE: ../../../third_party/skia/src/pathops/SkOpSegment.cpp +FILE: ../../../third_party/skia/src/pathops/SkOpSegment.h +FILE: ../../../third_party/skia/src/pathops/SkOpSpan.h +FILE: ../../../third_party/skia/src/pathops/SkPathOpsBounds.h +FILE: ../../../third_party/skia/src/pathops/SkPathOpsCommon.cpp +FILE: ../../../third_party/skia/src/pathops/SkPathOpsCommon.h +FILE: ../../../third_party/skia/src/pathops/SkPathOpsCubic.cpp +FILE: ../../../third_party/skia/src/pathops/SkPathOpsCubic.h +FILE: ../../../third_party/skia/src/pathops/SkPathOpsCurve.h +FILE: ../../../third_party/skia/src/pathops/SkPathOpsLine.cpp +FILE: ../../../third_party/skia/src/pathops/SkPathOpsLine.h +FILE: ../../../third_party/skia/src/pathops/SkPathOpsOp.cpp +FILE: ../../../third_party/skia/src/pathops/SkPathOpsPoint.h +FILE: ../../../third_party/skia/src/pathops/SkPathOpsQuad.cpp +FILE: ../../../third_party/skia/src/pathops/SkPathOpsQuad.h +FILE: ../../../third_party/skia/src/pathops/SkPathOpsRect.cpp +FILE: ../../../third_party/skia/src/pathops/SkPathOpsRect.h +FILE: ../../../third_party/skia/src/pathops/SkPathOpsSimplify.cpp +FILE: ../../../third_party/skia/src/pathops/SkPathOpsTypes.cpp +FILE: ../../../third_party/skia/src/pathops/SkPathOpsTypes.h +FILE: ../../../third_party/skia/src/pathops/SkPathWriter.cpp +FILE: ../../../third_party/skia/src/pathops/SkPathWriter.h +FILE: ../../../third_party/skia/src/pathops/SkReduceOrder.cpp +FILE: ../../../third_party/skia/src/pathops/SkReduceOrder.h +FILE: ../../../third_party/skia/src/sfnt/SkIBMFamilyClass.h +FILE: ../../../third_party/skia/src/sfnt/SkOTTableTypes.h +FILE: ../../../third_party/skia/src/sfnt/SkOTTable_OS_2.h +FILE: ../../../third_party/skia/src/sfnt/SkOTTable_OS_2_V0.h +FILE: ../../../third_party/skia/src/sfnt/SkOTTable_OS_2_V1.h +FILE: ../../../third_party/skia/src/sfnt/SkOTTable_OS_2_V2.h +FILE: ../../../third_party/skia/src/sfnt/SkOTTable_OS_2_V3.h +FILE: ../../../third_party/skia/src/sfnt/SkOTTable_OS_2_V4.h +FILE: ../../../third_party/skia/src/sfnt/SkOTTable_OS_2_VA.h +FILE: ../../../third_party/skia/src/sfnt/SkOTTable_glyf.h +FILE: ../../../third_party/skia/src/sfnt/SkOTTable_head.h +FILE: ../../../third_party/skia/src/sfnt/SkOTTable_hhea.h +FILE: ../../../third_party/skia/src/sfnt/SkOTTable_loca.h +FILE: ../../../third_party/skia/src/sfnt/SkOTTable_maxp.h +FILE: ../../../third_party/skia/src/sfnt/SkOTTable_maxp_CFF.h +FILE: ../../../third_party/skia/src/sfnt/SkOTTable_maxp_TT.h +FILE: ../../../third_party/skia/src/sfnt/SkOTTable_name.h +FILE: ../../../third_party/skia/src/sfnt/SkOTTable_post.h +FILE: ../../../third_party/skia/src/sfnt/SkOTUtils.cpp +FILE: ../../../third_party/skia/src/sfnt/SkOTUtils.h +FILE: ../../../third_party/skia/src/sfnt/SkPanose.h +FILE: ../../../third_party/skia/src/sfnt/SkSFNTHeader.h +FILE: ../../../third_party/skia/src/shaders/gradients/SkGradientShaderBase.h +FILE: ../../../third_party/skia/src/shaders/gradients/SkLinearGradient.cpp +FILE: ../../../third_party/skia/src/shaders/gradients/SkLinearGradient.h +FILE: ../../../third_party/skia/src/shaders/gradients/SkRadialGradient.cpp +FILE: ../../../third_party/skia/src/shaders/gradients/SkSweepGradient.cpp +FILE: ../../../third_party/skia/src/shaders/gradients/SkTwoPointConicalGradient.cpp +FILE: ../../../third_party/skia/src/utils/SkFloatUtils.h +FILE: ../../../third_party/skia/src/utils/SkNullCanvas.cpp +FILE: ../../../third_party/skia/src/utils/win/SkDWriteFontFileStream.cpp +FILE: ../../../third_party/skia/src/utils/win/SkDWriteFontFileStream.h +FILE: ../../../third_party/skia/src/utils/win/SkDWriteGeometrySink.cpp +FILE: ../../../third_party/skia/src/utils/win/SkDWriteGeometrySink.h +---------------------------------------------------------------------------------------------------- +Copyright 2012 Google Inc. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: skia +ORIGIN: ../../../third_party/skia/bench/ReadPixBench.cpp + ../../../third_party/skia/LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/skia/bench/ReadPixBench.cpp +FILE: ../../../third_party/skia/bench/WriterBench.cpp +FILE: ../../../third_party/skia/src/core/SkImageFilter.cpp +FILE: ../../../third_party/skia/src/core/SkUtilsArm.cpp +FILE: ../../../third_party/skia/src/effects/imagefilters/SkColorFilterImageFilter.cpp +FILE: ../../../third_party/skia/src/effects/imagefilters/SkLightingImageFilter.cpp +FILE: ../../../third_party/skia/src/effects/imagefilters/SkMagnifierImageFilter.cpp +FILE: ../../../third_party/skia/src/effects/imagefilters/SkMatrixConvolutionImageFilter.cpp +FILE: ../../../third_party/skia/src/effects/imagefilters/SkMergeImageFilter.cpp +FILE: ../../../third_party/skia/src/effects/imagefilters/SkMorphologyImageFilter.cpp +FILE: ../../../third_party/skia/src/images/SkImageEncoderFns.h +---------------------------------------------------------------------------------------------------- +Copyright 2012 The Android Open Source Project + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: skia +ORIGIN: ../../../third_party/skia/bench/BlendmodeBench.cpp + ../../../third_party/skia/LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/skia/bench/BlendmodeBench.cpp +FILE: ../../../third_party/skia/bench/BlurImageFilterBench.cpp +FILE: ../../../third_party/skia/bench/BlurRectBench.cpp +FILE: ../../../third_party/skia/bench/ChartBench.cpp +FILE: ../../../third_party/skia/bench/CmapBench.cpp +FILE: ../../../third_party/skia/bench/ColorFilterBench.cpp +FILE: ../../../third_party/skia/bench/ColorPrivBench.cpp +FILE: ../../../third_party/skia/bench/CoverageBench.cpp +FILE: ../../../third_party/skia/bench/DisplacementBench.cpp +FILE: ../../../third_party/skia/bench/FSRectBench.cpp +FILE: ../../../third_party/skia/bench/FontCacheBench.cpp +FILE: ../../../third_party/skia/bench/GrResourceCacheBench.cpp +FILE: ../../../third_party/skia/bench/HairlinePathBench.cpp +FILE: ../../../third_party/skia/bench/ImageCacheBench.cpp +FILE: ../../../third_party/skia/bench/LightingBench.cpp +FILE: ../../../third_party/skia/bench/MemsetBench.cpp +FILE: ../../../third_party/skia/bench/MergeBench.cpp +FILE: ../../../third_party/skia/bench/PerlinNoiseBench.cpp +FILE: ../../../third_party/skia/bench/PremulAndUnpremulAlphaOpsBench.cpp +FILE: ../../../third_party/skia/bench/RegionContainBench.cpp +FILE: ../../../third_party/skia/bench/ResultsWriter.h +FILE: ../../../third_party/skia/bench/SortBench.cpp +FILE: ../../../third_party/skia/bench/TileBench.cpp +FILE: ../../../third_party/skia/bench/WritePixelsBench.cpp +FILE: ../../../third_party/skia/bench/gUniqueGlyphIDs.h +FILE: ../../../third_party/skia/client_utils/android/FrontBufferedStream.cpp +FILE: ../../../third_party/skia/client_utils/android/FrontBufferedStream.h +FILE: ../../../third_party/skia/dm/DM.cpp +FILE: ../../../third_party/skia/gm/alphagradients.cpp +FILE: ../../../third_party/skia/gm/arcofzorro.cpp +FILE: ../../../third_party/skia/gm/beziereffects.cpp +FILE: ../../../third_party/skia/gm/bigblurs.cpp +FILE: ../../../third_party/skia/gm/bigtext.cpp +FILE: ../../../third_party/skia/gm/bitmappremul.cpp +FILE: ../../../third_party/skia/gm/bitmaprecttest.cpp +FILE: ../../../third_party/skia/gm/bitmapshader.cpp +FILE: ../../../third_party/skia/gm/bleed.cpp +FILE: ../../../third_party/skia/gm/blurquickreject.cpp +FILE: ../../../third_party/skia/gm/blurroundrect.cpp +FILE: ../../../third_party/skia/gm/circularclips.cpp +FILE: ../../../third_party/skia/gm/clippedbitmapshaders.cpp +FILE: ../../../third_party/skia/gm/coloremoji.cpp +FILE: ../../../third_party/skia/gm/conicpaths.cpp +FILE: ../../../third_party/skia/gm/copy_to_4444.cpp +FILE: ../../../third_party/skia/gm/displacement.cpp +FILE: ../../../third_party/skia/gm/dropshadowimagefilter.cpp +FILE: ../../../third_party/skia/gm/dstreadshuffle.cpp +FILE: ../../../third_party/skia/gm/fontcache.cpp +FILE: ../../../third_party/skia/gm/fontmgr.cpp +FILE: ../../../third_party/skia/gm/gradient_dirty_laundry.cpp +FILE: ../../../third_party/skia/gm/gradient_matrix.cpp +FILE: ../../../third_party/skia/gm/gradients_no_texture.cpp +FILE: ../../../third_party/skia/gm/hairlines.cpp +FILE: ../../../third_party/skia/gm/imagealphathreshold.cpp +FILE: ../../../third_party/skia/gm/imagesource.cpp +FILE: ../../../third_party/skia/gm/internal_links.cpp +FILE: ../../../third_party/skia/gm/inversepaths.cpp +FILE: ../../../third_party/skia/gm/lumafilter.cpp +FILE: ../../../third_party/skia/gm/mixedtextblobs.cpp +FILE: ../../../third_party/skia/gm/nested.cpp +FILE: ../../../third_party/skia/gm/nonclosedpaths.cpp +FILE: ../../../third_party/skia/gm/offsetimagefilter.cpp +FILE: ../../../third_party/skia/gm/ovals.cpp +FILE: ../../../third_party/skia/gm/pathopsinverse.cpp +FILE: ../../../third_party/skia/gm/perlinnoise.cpp +FILE: ../../../third_party/skia/gm/pictureimagefilter.cpp +FILE: ../../../third_party/skia/gm/polygons.cpp +FILE: ../../../third_party/skia/gm/resizeimagefilter.cpp +FILE: ../../../third_party/skia/gm/roundrects.cpp +FILE: ../../../third_party/skia/gm/shallowgradient.cpp +FILE: ../../../third_party/skia/gm/skbug1719.cpp +FILE: ../../../third_party/skia/gm/spritebitmap.cpp +FILE: ../../../third_party/skia/gm/stringart.cpp +FILE: ../../../third_party/skia/gm/thinrects.cpp +FILE: ../../../third_party/skia/gm/thinstrokedrects.cpp +FILE: ../../../third_party/skia/gm/tileimagefilter.cpp +FILE: ../../../third_party/skia/gm/vertices.cpp +FILE: ../../../third_party/skia/gm/xfermodeimagefilter.cpp +FILE: ../../../third_party/skia/gm/xfermodes2.cpp +FILE: ../../../third_party/skia/gm/xfermodes3.cpp +FILE: ../../../third_party/skia/include/core/SkDataTable.h +FILE: ../../../third_party/skia/include/core/SkDocument.h +FILE: ../../../third_party/skia/include/core/SkFontMgr.h +FILE: ../../../third_party/skia/include/core/SkFontStyle.h +FILE: ../../../third_party/skia/include/core/SkImageGenerator.h +FILE: ../../../third_party/skia/include/core/SkImageInfo.h +FILE: ../../../third_party/skia/include/effects/SkLumaColorFilter.h +FILE: ../../../third_party/skia/include/effects/SkPerlinNoiseShader.h +FILE: ../../../third_party/skia/include/gpu/gl/GrGLExtensions.h +FILE: ../../../third_party/skia/include/ports/SkFontConfigInterface.h +FILE: ../../../third_party/skia/include/private/SkOnce.h +FILE: ../../../third_party/skia/include/private/SkTFitsIn.h +FILE: ../../../third_party/skia/include/private/SkTLogic.h +FILE: ../../../third_party/skia/include/private/gpu/ganesh/GrTypesPriv.h +FILE: ../../../third_party/skia/include/utils/SkCanvasStateUtils.h +FILE: ../../../third_party/skia/samplecode/SampleChart.cpp +FILE: ../../../third_party/skia/samplecode/SampleClock.cpp +FILE: ../../../third_party/skia/samplecode/SampleManyRects.cpp +FILE: ../../../third_party/skia/samplecode/SampleStringArt.cpp +FILE: ../../../third_party/skia/src/core/SkBitmapDevice.cpp +FILE: ../../../third_party/skia/src/core/SkBitmapDevice.h +FILE: ../../../third_party/skia/src/core/SkDataTable.cpp +FILE: ../../../third_party/skia/src/core/SkDiscardableMemory.h +FILE: ../../../third_party/skia/src/core/SkDocument.cpp +FILE: ../../../third_party/skia/src/core/SkDrawLooper.cpp +FILE: ../../../third_party/skia/src/core/SkFontStream.h +FILE: ../../../third_party/skia/src/core/SkGpuBlurUtils.cpp +FILE: ../../../third_party/skia/src/core/SkGpuBlurUtils.h +FILE: ../../../third_party/skia/src/core/SkMatrixUtils.h +FILE: ../../../third_party/skia/src/core/SkMessageBus.h +FILE: ../../../third_party/skia/src/core/SkMipmap.cpp +FILE: ../../../third_party/skia/src/core/SkMipmap.h +FILE: ../../../third_party/skia/src/core/SkPaintPriv.cpp +FILE: ../../../third_party/skia/src/core/SkPaintPriv.h +FILE: ../../../third_party/skia/src/core/SkPathRef.cpp +FILE: ../../../third_party/skia/src/core/SkResourceCache.cpp +FILE: ../../../third_party/skia/src/core/SkResourceCache.h +FILE: ../../../third_party/skia/src/core/SkStreamPriv.h +FILE: ../../../third_party/skia/src/core/SkStringUtils.cpp +FILE: ../../../third_party/skia/src/core/SkStringUtils.h +FILE: ../../../third_party/skia/src/core/SkTDynamicHash.h +FILE: ../../../third_party/skia/src/core/SkTMultiMap.h +FILE: ../../../third_party/skia/src/core/SkValidationUtils.h +FILE: ../../../third_party/skia/src/effects/SkLumaColorFilter.cpp +FILE: ../../../third_party/skia/src/effects/imagefilters/SkAlphaThresholdImageFilter.cpp +FILE: ../../../third_party/skia/src/effects/imagefilters/SkComposeImageFilter.cpp +FILE: ../../../third_party/skia/src/effects/imagefilters/SkDisplacementMapImageFilter.cpp +FILE: ../../../third_party/skia/src/effects/imagefilters/SkDropShadowImageFilter.cpp +FILE: ../../../third_party/skia/src/effects/imagefilters/SkTileImageFilter.cpp +FILE: ../../../third_party/skia/src/gpu/Blend.h +FILE: ../../../third_party/skia/src/gpu/RectanizerSkyline.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrCaps.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrGeometryProcessor.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrPaint.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrBezierEffect.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrBezierEffect.h +FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrBicubicEffect.h +FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrBitmapTextGeoProc.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrBitmapTextGeoProc.h +FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrDistanceFieldGeoProc.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrDistanceFieldGeoProc.h +FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLContext.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLContext.h +FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLExtensions.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLVertexArray.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLVertexArray.h +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/GrOvalOpFactory.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/GrOvalOpFactory.h +FILE: ../../../third_party/skia/src/lazy/SkDiscardableMemoryPool.cpp +FILE: ../../../third_party/skia/src/lazy/SkDiscardableMemoryPool.h +FILE: ../../../third_party/skia/src/pathops/SkOpCoincidence.h +FILE: ../../../third_party/skia/src/pathops/SkOpContour.cpp +FILE: ../../../third_party/skia/src/pathops/SkOpContour.h +FILE: ../../../third_party/skia/src/pathops/SkPathOpsDebug.cpp +FILE: ../../../third_party/skia/src/pathops/SkPathOpsDebug.h +FILE: ../../../third_party/skia/src/pdf/SkPDFResourceDict.cpp +FILE: ../../../third_party/skia/src/pdf/SkPDFResourceDict.h +FILE: ../../../third_party/skia/src/ports/SkDiscardableMemory_none.cpp +FILE: ../../../third_party/skia/src/ports/SkFontConfigTypeface.h +FILE: ../../../third_party/skia/src/ports/SkFontMgr_FontConfigInterface.cpp +FILE: ../../../third_party/skia/src/ports/SkOSFile_posix.cpp +FILE: ../../../third_party/skia/src/ports/SkOSFile_win.cpp +FILE: ../../../third_party/skia/src/sfnt/SkOTTable_name.cpp +FILE: ../../../third_party/skia/src/sfnt/SkTTCFHeader.h +FILE: ../../../third_party/skia/src/shaders/SkColorFilterShader.cpp +FILE: ../../../third_party/skia/src/shaders/SkPerlinNoiseShader.cpp +FILE: ../../../third_party/skia/src/utils/SkCanvasStack.cpp +FILE: ../../../third_party/skia/src/utils/SkCanvasStack.h +FILE: ../../../third_party/skia/src/utils/SkCanvasStateUtils.cpp ---------------------------------------------------------------------------------------------------- -Copyright 2019 Google LLC. +Copyright 2013 Google Inc. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are @@ -5428,171 +2741,231 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ==================================================================================================== LIBRARY: skia -ORIGIN: ../../../third_party/skia/bench/graphite/BoundsManagerBench.cpp + ../../../third_party/skia/LICENSE +ORIGIN: ../../../third_party/skia/src/effects/imagefilters/SkBlendImageFilter.cpp + ../../../third_party/skia/LICENSE TYPE: LicenseType.bsd -FILE: ../../../third_party/skia/bench/graphite/BoundsManagerBench.cpp -FILE: ../../../third_party/skia/example/VulkanBasic.cpp -FILE: ../../../third_party/skia/gm/bug12866.cpp -FILE: ../../../third_party/skia/gm/crbug_1313579.cpp -FILE: ../../../third_party/skia/include/core/SkAlphaType.h -FILE: ../../../third_party/skia/include/core/SkCapabilities.h -FILE: ../../../third_party/skia/include/core/SkColorType.h -FILE: ../../../third_party/skia/include/gpu/GpuTypes.h -FILE: ../../../third_party/skia/include/gpu/graphite/CombinationBuilder.h -FILE: ../../../third_party/skia/include/gpu/graphite/ContextOptions.h -FILE: ../../../third_party/skia/include/gpu/graphite/ImageProvider.h -FILE: ../../../third_party/skia/include/gpu/vk/VulkanBackendContext.h -FILE: ../../../third_party/skia/include/private/SkUniquePaintParamsID.h -FILE: ../../../third_party/skia/include/sksl/SkSLVersion.h -FILE: ../../../third_party/skia/infra/bots/task_drivers/bazel_build/bazel_build.go -FILE: ../../../third_party/skia/infra/bots/task_drivers/canvaskit_gold/canvaskit_gold.go -FILE: ../../../third_party/skia/modules/skunicode/src/SkUnicode.cpp -FILE: ../../../third_party/skia/src/core/SkBuiltInCodeSnippetID.h -FILE: ../../../third_party/skia/src/core/SkCapabilities.cpp -FILE: ../../../third_party/skia/src/core/SkDebugUtils.h -FILE: ../../../third_party/skia/src/core/SkKeyContext.cpp -FILE: ../../../third_party/skia/src/core/SkKeyContext.h -FILE: ../../../third_party/skia/src/core/SkKeyHelpers.cpp -FILE: ../../../third_party/skia/src/core/SkKeyHelpers.h -FILE: ../../../third_party/skia/src/core/SkPaintParamsKey.cpp -FILE: ../../../third_party/skia/src/core/SkPaintParamsKey.h -FILE: ../../../third_party/skia/src/core/SkPipelineData.cpp -FILE: ../../../third_party/skia/src/core/SkPipelineData.h -FILE: ../../../third_party/skia/src/core/SkRuntimeEffectDictionary.h -FILE: ../../../third_party/skia/src/core/SkSLTypeShared.cpp -FILE: ../../../third_party/skia/src/core/SkSLTypeShared.h -FILE: ../../../third_party/skia/src/core/SkShaderCodeDictionary.cpp -FILE: ../../../third_party/skia/src/core/SkShaderCodeDictionary.h -FILE: ../../../third_party/skia/src/gpu/AtlasTypes.cpp -FILE: ../../../third_party/skia/src/gpu/AtlasTypes.h -FILE: ../../../third_party/skia/src/gpu/RefCntedCallback.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrBufferTransferRenderTask.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrBufferTransferRenderTask.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrBufferUpdateRenderTask.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrBufferUpdateRenderTask.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrImageInfo.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/tessellate/PathTessellator.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/tessellate/PathTessellator.h -FILE: ../../../third_party/skia/src/gpu/ganesh/tessellate/StrokeTessellator.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/tessellate/StrokeTessellator.h -FILE: ../../../third_party/skia/src/gpu/ganesh/tessellate/VertexChunkPatchAllocator.h -FILE: ../../../third_party/skia/src/gpu/graphite/AttachmentTypes.h -FILE: ../../../third_party/skia/src/gpu/graphite/ClipStack.cpp -FILE: ../../../third_party/skia/src/gpu/graphite/ClipStack_graphite.h -FILE: ../../../third_party/skia/src/gpu/graphite/CombinationBuilder.cpp -FILE: ../../../third_party/skia/src/gpu/graphite/CommandTypes.h -FILE: ../../../third_party/skia/src/gpu/graphite/ComputePassTask.cpp -FILE: ../../../third_party/skia/src/gpu/graphite/ComputePassTask.h -FILE: ../../../third_party/skia/src/gpu/graphite/ComputePipeline.cpp -FILE: ../../../third_party/skia/src/gpu/graphite/ComputePipeline.h -FILE: ../../../third_party/skia/src/gpu/graphite/ComputePipelineDesc.h -FILE: ../../../third_party/skia/src/gpu/graphite/ComputeTypes.h -FILE: ../../../third_party/skia/src/gpu/graphite/DrawAtlas.cpp -FILE: ../../../third_party/skia/src/gpu/graphite/DrawAtlas.h -FILE: ../../../third_party/skia/src/gpu/graphite/DrawCommands.h -FILE: ../../../third_party/skia/src/gpu/graphite/DrawParams.h -FILE: ../../../third_party/skia/src/gpu/graphite/FactoryFunctions.cpp -FILE: ../../../third_party/skia/src/gpu/graphite/FactoryFunctions.h -FILE: ../../../third_party/skia/src/gpu/graphite/GlobalCache.cpp -FILE: ../../../third_party/skia/src/gpu/graphite/GlobalCache.h -FILE: ../../../third_party/skia/src/gpu/graphite/GpuWorkSubmission.cpp -FILE: ../../../third_party/skia/src/gpu/graphite/GraphiteResourceKey.cpp -FILE: ../../../third_party/skia/src/gpu/graphite/GraphiteResourceKey.h -FILE: ../../../third_party/skia/src/gpu/graphite/ImageUtils.cpp -FILE: ../../../third_party/skia/src/gpu/graphite/ImageUtils.h -FILE: ../../../third_party/skia/src/gpu/graphite/Log.h -FILE: ../../../third_party/skia/src/gpu/graphite/PaintParams.cpp -FILE: ../../../third_party/skia/src/gpu/graphite/PaintParams.h -FILE: ../../../third_party/skia/src/gpu/graphite/PietRenderTask.cpp -FILE: ../../../third_party/skia/src/gpu/graphite/PietRenderTask.h -FILE: ../../../third_party/skia/src/gpu/graphite/Precompile.h -FILE: ../../../third_party/skia/src/gpu/graphite/QueueManager.cpp -FILE: ../../../third_party/skia/src/gpu/graphite/QueueManager.h -FILE: ../../../third_party/skia/src/gpu/graphite/RecorderPriv.h -FILE: ../../../third_party/skia/src/gpu/graphite/RecordingPriv.h -FILE: ../../../third_party/skia/src/gpu/graphite/Renderer.cpp -FILE: ../../../third_party/skia/src/gpu/graphite/RendererProvider.cpp -FILE: ../../../third_party/skia/src/gpu/graphite/RendererProvider.h -FILE: ../../../third_party/skia/src/gpu/graphite/Resource.cpp -FILE: ../../../third_party/skia/src/gpu/graphite/Resource.h -FILE: ../../../third_party/skia/src/gpu/graphite/ResourceCache.cpp -FILE: ../../../third_party/skia/src/gpu/graphite/ResourceCache.h -FILE: ../../../third_party/skia/src/gpu/graphite/Sampler.cpp -FILE: ../../../third_party/skia/src/gpu/graphite/Sampler.h -FILE: ../../../third_party/skia/src/gpu/graphite/SpecialImage_Graphite.cpp -FILE: ../../../third_party/skia/src/gpu/graphite/SynchronizeToCpuTask.cpp -FILE: ../../../third_party/skia/src/gpu/graphite/SynchronizeToCpuTask.h -FILE: ../../../third_party/skia/src/gpu/graphite/TextureProxyView.h -FILE: ../../../third_party/skia/src/gpu/graphite/TextureUtils.cpp -FILE: ../../../third_party/skia/src/gpu/graphite/TextureUtils.h -FILE: ../../../third_party/skia/src/gpu/graphite/UploadBufferManager.cpp -FILE: ../../../third_party/skia/src/gpu/graphite/UploadBufferManager.h -FILE: ../../../third_party/skia/src/gpu/graphite/UploadTask.cpp -FILE: ../../../third_party/skia/src/gpu/graphite/UploadTask.h -FILE: ../../../third_party/skia/src/gpu/graphite/geom/Geometry.h -FILE: ../../../third_party/skia/src/gpu/graphite/geom/SubRunData.h -FILE: ../../../third_party/skia/src/gpu/graphite/mtl/MtlComputePipeline.h -FILE: ../../../third_party/skia/src/gpu/graphite/mtl/MtlComputePipeline.mm -FILE: ../../../third_party/skia/src/gpu/graphite/mtl/MtlQueueManager.h -FILE: ../../../third_party/skia/src/gpu/graphite/mtl/MtlQueueManager.mm -FILE: ../../../third_party/skia/src/gpu/graphite/mtl/MtlSampler.h -FILE: ../../../third_party/skia/src/gpu/graphite/mtl/MtlSampler.mm -FILE: ../../../third_party/skia/src/gpu/graphite/render/AnalyticRRectRenderStep.cpp -FILE: ../../../third_party/skia/src/gpu/graphite/render/AnalyticRRectRenderStep.h -FILE: ../../../third_party/skia/src/gpu/graphite/render/BitmapTextRenderStep.cpp -FILE: ../../../third_party/skia/src/gpu/graphite/render/BitmapTextRenderStep.h -FILE: ../../../third_party/skia/src/gpu/graphite/render/CommonDepthStencilSettings.h -FILE: ../../../third_party/skia/src/gpu/graphite/render/CoverBoundsRenderStep.cpp -FILE: ../../../third_party/skia/src/gpu/graphite/render/CoverBoundsRenderStep.h -FILE: ../../../third_party/skia/src/gpu/graphite/render/DynamicInstancesPatchAllocator.h -FILE: ../../../third_party/skia/src/gpu/graphite/render/MiddleOutFanRenderStep.cpp -FILE: ../../../third_party/skia/src/gpu/graphite/render/MiddleOutFanRenderStep.h -FILE: ../../../third_party/skia/src/gpu/graphite/render/SDFTextRenderStep.cpp -FILE: ../../../third_party/skia/src/gpu/graphite/render/SDFTextRenderStep.h -FILE: ../../../third_party/skia/src/gpu/graphite/render/TessellateCurvesRenderStep.cpp -FILE: ../../../third_party/skia/src/gpu/graphite/render/TessellateCurvesRenderStep.h -FILE: ../../../third_party/skia/src/gpu/graphite/render/TessellateStrokesRenderStep.cpp -FILE: ../../../third_party/skia/src/gpu/graphite/render/TessellateStrokesRenderStep.h -FILE: ../../../third_party/skia/src/gpu/graphite/render/TessellateWedgesRenderStep.cpp -FILE: ../../../third_party/skia/src/gpu/graphite/render/TessellateWedgesRenderStep.h -FILE: ../../../third_party/skia/src/gpu/graphite/render/VerticesRenderStep.cpp -FILE: ../../../third_party/skia/src/gpu/graphite/render/VerticesRenderStep.h -FILE: ../../../third_party/skia/src/gpu/graphite/text/AtlasManager.cpp -FILE: ../../../third_party/skia/src/gpu/graphite/text/AtlasManager.h -FILE: ../../../third_party/skia/src/gpu/graphite/vk/VulkanCaps.cpp -FILE: ../../../third_party/skia/src/gpu/graphite/vk/VulkanCaps.h -FILE: ../../../third_party/skia/src/gpu/graphite/vk/VulkanCommandBuffer.cpp -FILE: ../../../third_party/skia/src/gpu/graphite/vk/VulkanCommandBuffer.h -FILE: ../../../third_party/skia/src/gpu/graphite/vk/VulkanResourceProvider.cpp -FILE: ../../../third_party/skia/src/gpu/graphite/vk/VulkanResourceProvider.h -FILE: ../../../third_party/skia/src/gpu/graphite/vk/VulkanSharedContext.cpp -FILE: ../../../third_party/skia/src/gpu/graphite/vk/VulkanSharedContext.h -FILE: ../../../third_party/skia/src/gpu/graphite/vk/VulkanUtils.h -FILE: ../../../third_party/skia/src/gpu/tessellate/FixedCountBufferUtils.cpp -FILE: ../../../third_party/skia/src/gpu/tessellate/FixedCountBufferUtils.h -FILE: ../../../third_party/skia/src/gpu/tessellate/LinearTolerances.h -FILE: ../../../third_party/skia/src/shaders/SkEmptyShader.cpp -FILE: ../../../third_party/skia/src/shaders/gradients/SkGradientShaderBase.cpp -FILE: ../../../third_party/skia/src/sksl/SkSLModuleLoader.cpp -FILE: ../../../third_party/skia/src/sksl/SkSLModuleLoader.h -FILE: ../../../third_party/skia/src/sksl/analysis/SkSLFinalizationChecks.cpp -FILE: ../../../third_party/skia/src/sksl/analysis/SkSLHasSideEffects.cpp -FILE: ../../../third_party/skia/src/sksl/analysis/SkSLIsSameExpressionTree.cpp -FILE: ../../../third_party/skia/src/sksl/analysis/SkSLIsTrivialExpression.cpp -FILE: ../../../third_party/skia/src/sksl/analysis/SkSLNoOpErrorReporter.h -FILE: ../../../third_party/skia/src/sksl/analysis/SkSLProgramUsage.h -FILE: ../../../third_party/skia/src/sksl/transform/SkSLAddConstToVarModifiers.cpp -FILE: ../../../third_party/skia/src/sksl/transform/SkSLEliminateEmptyStatements.cpp -FILE: ../../../third_party/skia/src/sksl/transform/SkSLFindAndDeclareBuiltinFunctions.cpp -FILE: ../../../third_party/skia/src/text/StrikeForGPU.cpp -FILE: ../../../third_party/skia/src/text/gpu/GlyphVector.cpp -FILE: ../../../third_party/skia/src/text/gpu/GlyphVector.h -FILE: ../../../third_party/skia/src/text/gpu/SubRunContainer.cpp -FILE: ../../../third_party/skia/src/text/gpu/SubRunContainer.h -FILE: ../../../third_party/skia/src/utils/SkGaussianColorFilter.cpp -FILE: ../../../third_party/skia/src/utils/SkTestCanvas.h +FILE: ../../../third_party/skia/src/effects/imagefilters/SkBlendImageFilter.cpp +FILE: ../../../third_party/skia/src/effects/imagefilters/SkPictureImageFilter.cpp +---------------------------------------------------------------------------------------------------- +Copyright 2013 The Android Open Source Project + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: skia +ORIGIN: ../../../third_party/skia/bench/AlternatingColorPatternBench.cpp + ../../../third_party/skia/LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/skia/bench/AlternatingColorPatternBench.cpp +FILE: ../../../third_party/skia/bench/BezierBench.cpp +FILE: ../../../third_party/skia/bench/BlurRectsBench.cpp +FILE: ../../../third_party/skia/bench/GMBench.cpp +FILE: ../../../third_party/skia/bench/GMBench.h +FILE: ../../../third_party/skia/bench/GeometryBench.cpp +FILE: ../../../third_party/skia/bench/ImageFilterCollapse.cpp +FILE: ../../../third_party/skia/bench/ImageFilterDAGBench.cpp +FILE: ../../../third_party/skia/bench/PatchBench.cpp +FILE: ../../../third_party/skia/bench/PictureNestingBench.cpp +FILE: ../../../third_party/skia/bench/RecordingBench.cpp +FILE: ../../../third_party/skia/bench/RecordingBench.h +FILE: ../../../third_party/skia/bench/RectanizerBench.cpp +FILE: ../../../third_party/skia/bench/RotatedRectBench.cpp +FILE: ../../../third_party/skia/bench/SKPBench.cpp +FILE: ../../../third_party/skia/bench/SKPBench.h +FILE: ../../../third_party/skia/bench/nanobench.cpp +FILE: ../../../third_party/skia/dm/DMJsonWriter.cpp +FILE: ../../../third_party/skia/dm/DMJsonWriter.h +FILE: ../../../third_party/skia/gm/aaa.cpp +FILE: ../../../third_party/skia/gm/beziers.cpp +FILE: ../../../third_party/skia/gm/blurcircles.cpp +FILE: ../../../third_party/skia/gm/clipdrawdraw.cpp +FILE: ../../../third_party/skia/gm/coloremoji_blendmodes.cpp +FILE: ../../../third_party/skia/gm/colorfilters.cpp +FILE: ../../../third_party/skia/gm/colorwheel.cpp +FILE: ../../../third_party/skia/gm/complexclip3.cpp +FILE: ../../../third_party/skia/gm/convexpolyclip.cpp +FILE: ../../../third_party/skia/gm/convexpolyeffect.cpp +FILE: ../../../third_party/skia/gm/discard.cpp +FILE: ../../../third_party/skia/gm/drrect.cpp +FILE: ../../../third_party/skia/gm/emboss.cpp +FILE: ../../../third_party/skia/gm/filterfastbounds.cpp +FILE: ../../../third_party/skia/gm/glyph_pos.cpp +FILE: ../../../third_party/skia/gm/gradients_2pt_conical.cpp +FILE: ../../../third_party/skia/gm/grayscalejpg.cpp +FILE: ../../../third_party/skia/gm/imageblurtiled.cpp +FILE: ../../../third_party/skia/gm/imagefiltersclipped.cpp +FILE: ../../../third_party/skia/gm/imagefilterscropexpand.cpp +FILE: ../../../third_party/skia/gm/imagefiltersscaled.cpp +FILE: ../../../third_party/skia/gm/imageresizetiled.cpp +FILE: ../../../third_party/skia/gm/matriximagefilter.cpp +FILE: ../../../third_party/skia/gm/patch.cpp +FILE: ../../../third_party/skia/gm/picture.cpp +FILE: ../../../third_party/skia/gm/pictureshader.cpp +FILE: ../../../third_party/skia/gm/pictureshadertile.cpp +FILE: ../../../third_party/skia/gm/recordopts.cpp +FILE: ../../../third_party/skia/gm/smallarc.cpp +FILE: ../../../third_party/skia/gm/stroketext.cpp +FILE: ../../../third_party/skia/gm/surface.cpp +FILE: ../../../third_party/skia/gm/tallstretchedbitmaps.cpp +FILE: ../../../third_party/skia/gm/texelsubset.cpp +FILE: ../../../third_party/skia/gm/textblob.cpp +FILE: ../../../third_party/skia/gm/textblobshader.cpp +FILE: ../../../third_party/skia/gm/tiledscaledbitmap.cpp +FILE: ../../../third_party/skia/gm/variedtext.cpp +FILE: ../../../third_party/skia/gm/yuvtorgbsubset.cpp +FILE: ../../../third_party/skia/include/core/SkBBHFactory.h +FILE: ../../../third_party/skia/include/core/SkBlurTypes.h +FILE: ../../../third_party/skia/include/core/SkDrawable.h +FILE: ../../../third_party/skia/include/core/SkFont.h +FILE: ../../../third_party/skia/include/core/SkPictureRecorder.h +FILE: ../../../third_party/skia/include/core/SkSurfaceProps.h +FILE: ../../../third_party/skia/include/core/SkTextBlob.h +FILE: ../../../third_party/skia/include/gpu/gl/GrGLAssembleInterface.h +FILE: ../../../third_party/skia/include/ports/SkFontMgr_indirect.h +FILE: ../../../third_party/skia/include/ports/SkRemotableFontMgr.h +FILE: ../../../third_party/skia/include/private/SkHalf.h +FILE: ../../../third_party/skia/samplecode/SampleRectanizer.cpp +FILE: ../../../third_party/skia/src/core/SkBBHFactory.cpp +FILE: ../../../third_party/skia/src/core/SkBitmapCache.cpp +FILE: ../../../third_party/skia/src/core/SkBitmapCache.h +FILE: ../../../third_party/skia/src/core/SkCachedData.cpp +FILE: ../../../third_party/skia/src/core/SkCachedData.h +FILE: ../../../third_party/skia/src/core/SkCanvasPriv.h +FILE: ../../../third_party/skia/src/core/SkConvertPixels.cpp +FILE: ../../../third_party/skia/src/core/SkDistanceFieldGen.cpp +FILE: ../../../third_party/skia/src/core/SkDistanceFieldGen.h +FILE: ../../../third_party/skia/src/core/SkDrawable.cpp +FILE: ../../../third_party/skia/src/core/SkFont.cpp +FILE: ../../../third_party/skia/src/core/SkFont_serial.cpp +FILE: ../../../third_party/skia/src/core/SkHalf.cpp +FILE: ../../../third_party/skia/src/core/SkImageGenerator.cpp +FILE: ../../../third_party/skia/src/core/SkMaskCache.cpp +FILE: ../../../third_party/skia/src/core/SkMaskCache.h +FILE: ../../../third_party/skia/src/core/SkPicturePlayback.cpp +FILE: ../../../third_party/skia/src/core/SkPicturePlayback.h +FILE: ../../../third_party/skia/src/core/SkPictureRecorder.cpp +FILE: ../../../third_party/skia/src/core/SkRecord.h +FILE: ../../../third_party/skia/src/core/SkRecordDraw.cpp +FILE: ../../../third_party/skia/src/core/SkRecordDraw.h +FILE: ../../../third_party/skia/src/core/SkRecordOpts.cpp +FILE: ../../../third_party/skia/src/core/SkRecordOpts.h +FILE: ../../../third_party/skia/src/core/SkRecorder.cpp +FILE: ../../../third_party/skia/src/core/SkRecorder.h +FILE: ../../../third_party/skia/src/core/SkRecords.h +FILE: ../../../third_party/skia/src/core/SkSurfacePriv.h +FILE: ../../../third_party/skia/src/core/SkTaskGroup.cpp +FILE: ../../../third_party/skia/src/core/SkTaskGroup.h +FILE: ../../../third_party/skia/src/core/SkTextBlob.cpp +FILE: ../../../third_party/skia/src/core/SkVertState.cpp +FILE: ../../../third_party/skia/src/core/SkVertState.h +FILE: ../../../third_party/skia/src/fonts/SkFontMgr_indirect.cpp +FILE: ../../../third_party/skia/src/fonts/SkRemotableFontMgr.cpp +FILE: ../../../third_party/skia/src/gpu/RectanizerPow2.h +FILE: ../../../third_party/skia/src/gpu/RectanizerSkyline.h +FILE: ../../../third_party/skia/src/gpu/ResourceKey.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrDefaultGeoProcFactory.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrDefaultGeoProcFactory.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrFragmentProcessor.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrGeometryProcessor.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrGpuResource.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrGpuResourceCacheAccess.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrProcessorAnalysis.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrProcessorAnalysis.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrProgramDesc.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrResourceCache.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrResourceCache.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrTracing.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrXferProcessor.h +FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrBicubicEffect.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrConvexPolyEffect.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrConvexPolyEffect.h +FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrCoverageSetOpXP.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrCoverageSetOpXP.h +FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrDisableColorXP.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrDisableColorXP.h +FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrMatrixConvolutionEffect.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrMatrixConvolutionEffect.h +FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrOvalEffect.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrOvalEffect.h +FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrPorterDuffXferProcessor.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrPorterDuffXferProcessor.h +FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrRRectEffect.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrRRectEffect.h +FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLAssembleInterface.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLTextureRenderTarget.h +FILE: ../../../third_party/skia/src/gpu/ganesh/gl/android/GrGLMakeNativeInterface_android.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/gl/builders/GrGLProgramBuilder.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/gl/builders/GrGLProgramBuilder.h +FILE: ../../../third_party/skia/src/gpu/ganesh/gl/builders/GrGLShaderStringBuilder.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/gl/builders/GrGLShaderStringBuilder.h +FILE: ../../../third_party/skia/src/gpu/ganesh/gl/egl/GrGLMakeEGLInterface.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/gl/glx/GrGLMakeGLXInterface.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/gl/iOS/GrGLMakeNativeInterface_iOS.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/glsl/GrGLSLFragmentShaderBuilder.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/glsl/GrGLSLFragmentShaderBuilder.h +FILE: ../../../third_party/skia/src/gpu/ganesh/glsl/GrGLSLShaderBuilder.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/glsl/GrGLSLShaderBuilder.h +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/DashOp.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/DashOp.h +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/SmallPathRenderer.h +FILE: ../../../third_party/skia/src/image/SkReadPixelsRec.h +FILE: ../../../third_party/skia/src/image/SkSurface_Gpu.h +FILE: ../../../third_party/skia/src/pathops/SkOpBuilder.cpp +FILE: ../../../third_party/skia/src/pathops/SkOpSpan.cpp +FILE: ../../../third_party/skia/src/pathops/SkPathOpsTSect.cpp +FILE: ../../../third_party/skia/src/pathops/SkPathOpsTSect.h +FILE: ../../../third_party/skia/src/pathops/SkPathOpsTightBounds.cpp +FILE: ../../../third_party/skia/src/ports/SkFontMgr_android.cpp +FILE: ../../../third_party/skia/src/ports/SkFontMgr_fontconfig.cpp +FILE: ../../../third_party/skia/src/ports/SkFontMgr_win_dw.cpp +FILE: ../../../third_party/skia/src/ports/SkRemotableFontMgr_win_dw.cpp +FILE: ../../../third_party/skia/src/ports/SkScalerContext_win_dw.h +FILE: ../../../third_party/skia/src/ports/SkTypeface_win_dw.cpp +FILE: ../../../third_party/skia/src/ports/SkTypeface_win_dw.h +FILE: ../../../third_party/skia/src/sfnt/SkOTTable_EBDT.h +FILE: ../../../third_party/skia/src/sfnt/SkOTTable_EBLC.h +FILE: ../../../third_party/skia/src/sfnt/SkOTTable_EBSC.h +FILE: ../../../third_party/skia/src/sfnt/SkOTTable_gasp.h +FILE: ../../../third_party/skia/src/shaders/SkLocalMatrixShader.cpp +FILE: ../../../third_party/skia/src/shaders/SkLocalMatrixShader.h +FILE: ../../../third_party/skia/src/shaders/SkPictureShader.cpp +FILE: ../../../third_party/skia/src/shaders/SkPictureShader.h +FILE: ../../../third_party/skia/src/utils/SkDashPath.cpp +FILE: ../../../third_party/skia/src/utils/SkDashPathPriv.h +FILE: ../../../third_party/skia/src/utils/SkEventTracer.cpp +FILE: ../../../third_party/skia/src/utils/SkMatrix22.cpp +FILE: ../../../third_party/skia/src/utils/SkMatrix22.h +FILE: ../../../third_party/skia/src/utils/SkPatchUtils.cpp +FILE: ../../../third_party/skia/src/utils/SkPatchUtils.h +FILE: ../../../third_party/skia/src/utils/win/SkDWrite.cpp +FILE: ../../../third_party/skia/src/utils/win/SkDWrite.h ---------------------------------------------------------------------------------------------------- -Copyright 2022 Google LLC +Copyright 2014 Google Inc. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are @@ -5619,109 +2992,18 @@ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: skia -ORIGIN: ../../../third_party/skia/bench/graphite/IntersectionTreeBench.cpp + ../../../third_party/skia/LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/skia/bench/MSKPBench.cpp -FILE: ../../../third_party/skia/bench/MSKPBench.h -FILE: ../../../third_party/skia/bench/graphite/IntersectionTreeBench.cpp -FILE: ../../../third_party/skia/fuzz/FuzzDDLThreading.cpp -FILE: ../../../third_party/skia/gm/aarecteffect.cpp -FILE: ../../../third_party/skia/gm/colorspace.cpp -FILE: ../../../third_party/skia/gm/colrv1.cpp -FILE: ../../../third_party/skia/gm/drawglyphs.cpp -FILE: ../../../third_party/skia/gm/largeclippedpath.cpp -FILE: ../../../third_party/skia/gm/skbug_12212.cpp -FILE: ../../../third_party/skia/gm/slug.cpp -FILE: ../../../third_party/skia/include/private/gpu/ganesh/GrMtlTypesPriv.h -FILE: ../../../third_party/skia/include/private/gpu/graphite/MtlTypesPriv.h -FILE: ../../../third_party/skia/include/utils/SkOrderedFontMgr.h -FILE: ../../../third_party/skia/infra/bots/task_drivers/push_apps_from_skia_image/push_apps_from_skia_image.go -FILE: ../../../third_party/skia/infra/bots/task_drivers/push_bazel_apps_from_wasm_image/push_bazel_apps_from_wasm_image.go -FILE: ../../../third_party/skia/infra/bots/task_drivers/recreate_skps/recreate_skps.go -FILE: ../../../third_party/skia/modules/androidkit/src/AndroidKit.cpp -FILE: ../../../third_party/skia/modules/androidkit/src/Canvas.cpp -FILE: ../../../third_party/skia/modules/androidkit/src/ColorFilters.cpp -FILE: ../../../third_party/skia/modules/androidkit/src/Font.cpp -FILE: ../../../third_party/skia/modules/androidkit/src/FontChainAdapter.cpp -FILE: ../../../third_party/skia/modules/androidkit/src/Gradients.cpp -FILE: ../../../third_party/skia/modules/androidkit/src/Image.cpp -FILE: ../../../third_party/skia/modules/androidkit/src/ImageFilter.cpp -FILE: ../../../third_party/skia/modules/androidkit/src/Matrix.cpp -FILE: ../../../third_party/skia/modules/androidkit/src/Paint.cpp -FILE: ../../../third_party/skia/modules/androidkit/src/Path.cpp -FILE: ../../../third_party/skia/modules/androidkit/src/PathBuilder.cpp -FILE: ../../../third_party/skia/modules/androidkit/src/RuntimeShaderBuilder.cpp -FILE: ../../../third_party/skia/modules/androidkit/src/Shader.cpp -FILE: ../../../third_party/skia/modules/androidkit/src/SkottieAnimation.cpp -FILE: ../../../third_party/skia/modules/androidkit/src/Surface.cpp -FILE: ../../../third_party/skia/modules/androidkit/src/Surface.h -FILE: ../../../third_party/skia/modules/androidkit/src/SurfaceThread.cpp -FILE: ../../../third_party/skia/modules/androidkit/src/SurfaceThread.h -FILE: ../../../third_party/skia/modules/androidkit/src/Text.cpp -FILE: ../../../third_party/skia/modules/androidkit/src/Utils.cpp -FILE: ../../../third_party/skia/modules/androidkit/src/Utils.h -FILE: ../../../third_party/skia/modules/skottie/src/effects/BulgeEffect.cpp -FILE: ../../../third_party/skia/modules/skottie/src/effects/CCTonerEffect.cpp -FILE: ../../../third_party/skia/modules/skottie/src/effects/DirectionalBlur.cpp -FILE: ../../../third_party/skia/modules/skottie/src/effects/FractalNoiseEffect.cpp -FILE: ../../../third_party/skia/modules/skottie/src/effects/SharpenEffect.cpp -FILE: ../../../third_party/skia/modules/skottie/src/effects/SkSLEffect.cpp -FILE: ../../../third_party/skia/modules/skottie/src/effects/SphereEffect.cpp -FILE: ../../../third_party/skia/modules/skottie/src/effects/ThresholdEffect.cpp -FILE: ../../../third_party/skia/modules/skunicode/src/SkUnicode_icu.h -FILE: ../../../third_party/skia/modules/skunicode/src/SkUnicode_icu_builtin.cpp -FILE: ../../../third_party/skia/modules/skunicode/src/SkUnicode_icu_runtime.cpp -FILE: ../../../third_party/skia/modules/svg/include/SkSVGFeImage.h -FILE: ../../../third_party/skia/modules/svg/include/SkSVGFeLightSource.h -FILE: ../../../third_party/skia/modules/svg/include/SkSVGImage.h -FILE: ../../../third_party/skia/modules/svg/include/SkSVGMask.h -FILE: ../../../third_party/skia/modules/svg/src/SkSVGFeImage.cpp -FILE: ../../../third_party/skia/modules/svg/src/SkSVGFeLightSource.cpp -FILE: ../../../third_party/skia/modules/svg/src/SkSVGImage.cpp -FILE: ../../../third_party/skia/modules/svg/src/SkSVGMask.cpp -FILE: ../../../third_party/skia/src/codec/SkJpegxlCodec.cpp -FILE: ../../../third_party/skia/src/codec/SkJpegxlCodec.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrDrawIndirectCommand.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrRenderTaskCluster.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrRenderTaskCluster.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrThreadSafePipelineBuilder.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrThreadSafePipelineBuilder.h -FILE: ../../../third_party/skia/src/gpu/ganesh/mock/GrMockRenderTask.h -FILE: ../../../third_party/skia/src/gpu/ganesh/mock/GrMockSurfaceProxy.h -FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlFramebuffer.h -FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlFramebuffer.mm -FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlPipeline.h -FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlRenderCommandEncoder.h -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/AtlasRenderTask.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/AtlasRenderTask.h -FILE: ../../../third_party/skia/src/gpu/graphite/Buffer.cpp -FILE: ../../../third_party/skia/src/gpu/graphite/Buffer.h -FILE: ../../../third_party/skia/src/gpu/graphite/DrawBufferManager.cpp -FILE: ../../../third_party/skia/src/gpu/graphite/DrawBufferManager.h -FILE: ../../../third_party/skia/src/gpu/graphite/mtl/MtlBlitCommandEncoder.h -FILE: ../../../third_party/skia/src/gpu/graphite/mtl/MtlBuffer.h -FILE: ../../../third_party/skia/src/gpu/graphite/mtl/MtlBuffer.mm -FILE: ../../../third_party/skia/src/gpu/graphite/mtl/MtlRenderCommandEncoder.h -FILE: ../../../third_party/skia/src/gpu/graphite/mtl/MtlTrampoline.h -FILE: ../../../third_party/skia/src/gpu/graphite/mtl/MtlTrampoline.mm -FILE: ../../../third_party/skia/src/gpu/graphite/mtl/MtlUtils.mm -FILE: ../../../third_party/skia/src/gpu/tessellate/CullTest.h -FILE: ../../../third_party/skia/src/gpu/tessellate/Tessellation.h -FILE: ../../../third_party/skia/src/shaders/SkTransformShader.cpp -FILE: ../../../third_party/skia/src/shaders/SkTransformShader.h -FILE: ../../../third_party/skia/src/sksl/SkSLGLSL.h -FILE: ../../../third_party/skia/src/sksl/ir/SkSLExpression.cpp -FILE: ../../../third_party/skia/src/sksl/lex/TransitionTable.cpp -FILE: ../../../third_party/skia/src/sksl/lex/TransitionTable.h -FILE: ../../../third_party/skia/src/utils/SkOrderedFontMgr.cpp +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: skia +ORIGIN: ../../../third_party/skia/src/gpu/ganesh/ops/SmallPathRenderer.cpp + ../../../third_party/skia/LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/SmallPathRenderer.cpp ---------------------------------------------------------------------------------------------------- -Copyright 2021 Google Inc. +Copyright 2014 Google Inc. +Copyright 2017 ARM Ltd. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are @@ -5754,192 +3036,361 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ==================================================================================================== LIBRARY: skia -ORIGIN: ../../../third_party/skia/docs/examples/50_percent_gray.cpp + ../../../third_party/skia/LICENSE +ORIGIN: ../../../third_party/skia/src/effects/imagefilters/SkMatrixTransformImageFilter.cpp + ../../../third_party/skia/LICENSE TYPE: LicenseType.bsd -FILE: ../../../third_party/skia/docs/examples/50_percent_gray.cpp -FILE: ../../../third_party/skia/docs/examples/50_percent_srgb.cpp -FILE: ../../../third_party/skia/docs/examples/BlendModes.cpp -FILE: ../../../third_party/skia/docs/examples/Canvas_saveLayer_4.cpp -FILE: ../../../third_party/skia/docs/examples/ChromeMDRefreshTab.cpp -FILE: ../../../third_party/skia/docs/examples/ChromeMDRefreshTabs.cpp -FILE: ../../../third_party/skia/docs/examples/Color_Wheel.cpp -FILE: ../../../third_party/skia/docs/examples/DCIToXYZD50.cpp -FILE: ../../../third_party/skia/docs/examples/GradientShader_MakeLinear.cpp -FILE: ../../../third_party/skia/docs/examples/Octopus_Generator.cpp -FILE: ../../../third_party/skia/docs/examples/Octopus_Generator_Animated.cpp -FILE: ../../../third_party/skia/docs/examples/PaintDump.cpp -FILE: ../../../third_party/skia/docs/examples/SKIA_LOGO.cpp -FILE: ../../../third_party/skia/docs/examples/SKIA_LOGO_ANIMATE.cpp -FILE: ../../../third_party/skia/docs/examples/SKIA_LOGO_svg.cpp -FILE: ../../../third_party/skia/docs/examples/SkFontMgr_example.cpp -FILE: ../../../third_party/skia/docs/examples/SkFontMgr_example2.cpp -FILE: ../../../third_party/skia/docs/examples/SkImage_to_PPM_ascii.cpp -FILE: ../../../third_party/skia/docs/examples/SkImage_to_PPM_binary.cpp -FILE: ../../../third_party/skia/docs/examples/SkParsePath_FromSVGString.cpp -FILE: ../../../third_party/skia/docs/examples/SkParsePath_ToSVGString.cpp -FILE: ../../../third_party/skia/docs/examples/SkPath_arcTo_example.cpp -FILE: ../../../third_party/skia/docs/examples/SkPath_arcto_conic_parametric.cpp -FILE: ../../../third_party/skia/docs/examples/SkPath_arcto_conic_parametric2.cpp -FILE: ../../../third_party/skia/docs/examples/SkPath_cubicTo_example.cpp -FILE: ../../../third_party/skia/docs/examples/SkPath_cubicTo_example_parametric.cpp -FILE: ../../../third_party/skia/docs/examples/SkPath_cubicTo_example_parametric_animated.cpp -FILE: ../../../third_party/skia/docs/examples/SkPath_quadTo_example.cpp -FILE: ../../../third_party/skia/docs/examples/SkPath_quadTo_example_parametric.cpp -FILE: ../../../third_party/skia/docs/examples/SkPath_quadTo_example_parametric_animated.cpp -FILE: ../../../third_party/skia/docs/examples/SmoothBezierSplineInterpolation.cpp -FILE: ../../../third_party/skia/docs/examples/Turtle.cpp -FILE: ../../../third_party/skia/docs/examples/UnicornPoop.cpp -FILE: ../../../third_party/skia/docs/examples/UnpremulBugs.cpp -FILE: ../../../third_party/skia/docs/examples/UnpremulGPU.cpp -FILE: ../../../third_party/skia/docs/examples/alpha_bitmap_color_filter_mask_filter.cpp -FILE: ../../../third_party/skia/docs/examples/alphaimage_shader_colorfilter.cpp -FILE: ../../../third_party/skia/docs/examples/backdrop_blur_with_rrect_clip.cpp -FILE: ../../../third_party/skia/docs/examples/bezier_curves.cpp -FILE: ../../../third_party/skia/docs/examples/blur4444.cpp -FILE: ../../../third_party/skia/docs/examples/blur_alpha_img.cpp -FILE: ../../../third_party/skia/docs/examples/blurbug.cpp -FILE: ../../../third_party/skia/docs/examples/bug5252.cpp -FILE: ../../../third_party/skia/docs/examples/bug583299.cpp -FILE: ../../../third_party/skia/docs/examples/bug6495.cpp -FILE: ../../../third_party/skia/docs/examples/bug7573.cpp -FILE: ../../../third_party/skia/docs/examples/bug7573_1.cpp -FILE: ../../../third_party/skia/docs/examples/bug767834.cpp -FILE: ../../../third_party/skia/docs/examples/bugoftheday.cpp -FILE: ../../../third_party/skia/docs/examples/checker_board.cpp -FILE: ../../../third_party/skia/docs/examples/color_filter_vs_colorFilterImageFilter_saveLayer.cpp -FILE: ../../../third_party/skia/docs/examples/compose_path.cpp -FILE: ../../../third_party/skia/docs/examples/convex_overstroke_linear_approx_curve.cpp -FILE: ../../../third_party/skia/docs/examples/convex_overstroke_quad.cpp -FILE: ../../../third_party/skia/docs/examples/count_verbs.cpp -FILE: ../../../third_party/skia/docs/examples/crbug_663246.cpp -FILE: ../../../third_party/skia/docs/examples/crbug_918512.cpp -FILE: ../../../third_party/skia/docs/examples/cubics_are_horrible.cpp -FILE: ../../../third_party/skia/docs/examples/default.cpp -FILE: ../../../third_party/skia/docs/examples/default2.cpp -FILE: ../../../third_party/skia/docs/examples/default3.cpp -FILE: ../../../third_party/skia/docs/examples/discrete_path.cpp -FILE: ../../../third_party/skia/docs/examples/dither1.cpp -FILE: ../../../third_party/skia/docs/examples/draw_a8_bitmap.cpp -FILE: ../../../third_party/skia/docs/examples/draw_image_nine_blur_mask.cpp -FILE: ../../../third_party/skia/docs/examples/draw_patch.cpp -FILE: ../../../third_party/skia/docs/examples/draw_pixel_array.cpp -FILE: ../../../third_party/skia/docs/examples/draw_pixel_array_nocopy.cpp -FILE: ../../../third_party/skia/docs/examples/draw_pixel_array_with_copy.cpp -FILE: ../../../third_party/skia/docs/examples/draw_text_fails.cpp -FILE: ../../../third_party/skia/docs/examples/draw_vertices.cpp -FILE: ../../../third_party/skia/docs/examples/drawarcs.cpp -FILE: ../../../third_party/skia/docs/examples/example3ps.cpp -FILE: ../../../third_party/skia/docs/examples/f16.cpp -FILE: ../../../third_party/skia/docs/examples/f16to8888busted.cpp -FILE: ../../../third_party/skia/docs/examples/f16to8888drawImageBug.cpp -FILE: ../../../third_party/skia/docs/examples/failing_example.cpp -FILE: ../../../third_party/skia/docs/examples/fivearcs.cpp -FILE: ../../../third_party/skia/docs/examples/flag_us_1792.cpp -FILE: ../../../third_party/skia/docs/examples/flag_us_1960.cpp -FILE: ../../../third_party/skia/docs/examples/fluttershadow.cpp -FILE: ../../../third_party/skia/docs/examples/gamma_mask_filter.cpp -FILE: ../../../third_party/skia/docs/examples/getLocalBounds_broken.cpp -FILE: ../../../third_party/skia/docs/examples/getLocalBounds_working.cpp -FILE: ../../../third_party/skia/docs/examples/gpu4444diff.cpp -FILE: ../../../third_party/skia/docs/examples/gpu8888diff.cpp -FILE: ../../../third_party/skia/docs/examples/gpuconicbug.cpp -FILE: ../../../third_party/skia/docs/examples/homogeneous.cpp -FILE: ../../../third_party/skia/docs/examples/image_subsets_get_different_uids.cpp -FILE: ../../../third_party/skia/docs/examples/image_to_bitmap_does_not_preserve_genid.cpp -FILE: ../../../third_party/skia/docs/examples/inlinepixmapconstructor.cpp -FILE: ../../../third_party/skia/docs/examples/issue640176.cpp -FILE: ../../../third_party/skia/docs/examples/l_system_plant.cpp -FILE: ../../../third_party/skia/docs/examples/maddash.cpp -FILE: ../../../third_party/skia/docs/examples/makeRasterImage_fail.cpp -FILE: ../../../third_party/skia/docs/examples/mapradius.cpp -FILE: ../../../third_party/skia/docs/examples/massive_coordinates_svg.cpp -FILE: ../../../third_party/skia/docs/examples/measure_text_bounds.cpp -FILE: ../../../third_party/skia/docs/examples/no_gpu_blur.cpp -FILE: ../../../third_party/skia/docs/examples/not_path_gradient.cpp -FILE: ../../../third_party/skia/docs/examples/pathmeasure.cpp -FILE: ../../../third_party/skia/docs/examples/pathops.cpp -FILE: ../../../third_party/skia/docs/examples/persp_text_2.cpp -FILE: ../../../third_party/skia/docs/examples/picture_shader.cpp -FILE: ../../../third_party/skia/docs/examples/pong.cpp -FILE: ../../../third_party/skia/docs/examples/pong2.cpp -FILE: ../../../third_party/skia/docs/examples/purplestamp.cpp -FILE: ../../../third_party/skia/docs/examples/radial_gradient_shader_with_animated_color.cpp -FILE: ../../../third_party/skia/docs/examples/radial_gradient_test.cpp -FILE: ../../../third_party/skia/docs/examples/redwhiteonblue.cpp -FILE: ../../../third_party/skia/docs/examples/rotations.cpp -FILE: ../../../third_party/skia/docs/examples/setimagefilter.cpp -FILE: ../../../third_party/skia/docs/examples/shader.cpp -FILE: ../../../third_party/skia/docs/examples/shader_alphaimage.cpp -FILE: ../../../third_party/skia/docs/examples/shapes.cpp -FILE: ../../../third_party/skia/docs/examples/shapes_with_motion.cpp -FILE: ../../../third_party/skia/docs/examples/skbug6031.cpp -FILE: ../../../third_party/skia/docs/examples/skbug_237_drawImageRect.cpp -FILE: ../../../third_party/skia/docs/examples/skbug_237_drawImage_with_blur.cpp -FILE: ../../../third_party/skia/docs/examples/skbug_5648.cpp -FILE: ../../../third_party/skia/docs/examples/skbug_633528.cpp -FILE: ../../../third_party/skia/docs/examples/skcanvas_paint.cpp -FILE: ../../../third_party/skia/docs/examples/skcanvas_square.cpp -FILE: ../../../third_party/skia/docs/examples/skcanvas_star.cpp -FILE: ../../../third_party/skia/docs/examples/skew_x_animated.cpp -FILE: ../../../third_party/skia/docs/examples/skpaint_2pt.cpp -FILE: ../../../third_party/skia/docs/examples/skpaint_bitmap_shader.cpp -FILE: ../../../third_party/skia/docs/examples/skpaint_blur_mask_filter.cpp -FILE: ../../../third_party/skia/docs/examples/skpaint_blur_mask_filter_2.cpp -FILE: ../../../third_party/skia/docs/examples/skpaint_color_table_filter.cpp -FILE: ../../../third_party/skia/docs/examples/skpaint_compose.cpp -FILE: ../../../third_party/skia/docs/examples/skpaint_compose_path_effect.cpp -FILE: ../../../third_party/skia/docs/examples/skpaint_compose_shader.cpp -FILE: ../../../third_party/skia/docs/examples/skpaint_corner_path_effects.cpp -FILE: ../../../third_party/skia/docs/examples/skpaint_dash_path_effect.cpp -FILE: ../../../third_party/skia/docs/examples/skpaint_discrete_path_effect.cpp -FILE: ../../../third_party/skia/docs/examples/skpaint_line_2d_path_effect.cpp -FILE: ../../../third_party/skia/docs/examples/skpaint_matrix_color_filter.cpp -FILE: ../../../third_party/skia/docs/examples/skpaint_mix.cpp -FILE: ../../../third_party/skia/docs/examples/skpaint_path_1d_path_effect.cpp -FILE: ../../../third_party/skia/docs/examples/skpaint_path_2d_path_effect.cpp -FILE: ../../../third_party/skia/docs/examples/skpaint_perlin.cpp -FILE: ../../../third_party/skia/docs/examples/skpaint_radial.cpp -FILE: ../../../third_party/skia/docs/examples/skpaint_shader.cpp -FILE: ../../../third_party/skia/docs/examples/skpaint_skia.cpp -FILE: ../../../third_party/skia/docs/examples/skpaint_sum_path_effect.cpp -FILE: ../../../third_party/skia/docs/examples/skpaint_sweep.cpp -FILE: ../../../third_party/skia/docs/examples/skpaint_turb.cpp -FILE: ../../../third_party/skia/docs/examples/skpaint_xfer.cpp -FILE: ../../../third_party/skia/docs/examples/software_bitmap_w_perspective.cpp -FILE: ../../../third_party/skia/docs/examples/star.cpp -FILE: ../../../third_party/skia/docs/examples/star2.cpp -FILE: ../../../third_party/skia/docs/examples/stroke_closed_degenerate_path.cpp -FILE: ../../../third_party/skia/docs/examples/strokerect_gm.cpp -FILE: ../../../third_party/skia/docs/examples/subset_example.cpp -FILE: ../../../third_party/skia/docs/examples/sum_path_effect.cpp -FILE: ../../../third_party/skia/docs/examples/sweep_gradient_talk_1.cpp -FILE: ../../../third_party/skia/docs/examples/sweep_gradient_talk_2.cpp -FILE: ../../../third_party/skia/docs/examples/sweep_gradient_talk_4.cpp -FILE: ../../../third_party/skia/docs/examples/sweep_gradient_talk_lots.cpp -FILE: ../../../third_party/skia/docs/examples/text_only.cpp -FILE: ../../../third_party/skia/docs/examples/text_rendering.cpp -FILE: ../../../third_party/skia/docs/examples/text_shadow.cpp -FILE: ../../../third_party/skia/docs/examples/unexpected_setAlphaType.cpp -FILE: ../../../third_party/skia/docs/examples/upscale_checkerboard.cpp -FILE: ../../../third_party/skia/docs/examples/weird_RRect_bug.cpp -FILE: ../../../third_party/skia/docs/examples/zero_off_dashing.cpp -FILE: ../../../third_party/skia/experimental/bazel_test/bazel_test.cpp -FILE: ../../../third_party/skia/gm/clear_swizzle.cpp -FILE: ../../../third_party/skia/gm/gpu_blur_utils.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrFinishCallbacks.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrFinishCallbacks.h -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/AtlasInstancedHelper.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/StrokeTessellateOp.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/StrokeTessellateOp.h -FILE: ../../../third_party/skia/src/gpu/ganesh/tessellate/GrStrokeTessellationShader.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/tessellate/GrStrokeTessellationShader.h -FILE: ../../../third_party/skia/src/gpu/ganesh/tessellate/GrTessellationShader.h -FILE: ../../../third_party/skia/src/opts/SkVM_opts.h -FILE: ../../../third_party/skia/src/sksl/SkSLAnalysis.cpp -FILE: ../../../third_party/skia/src/sksl/SkSLModifiersPool.h -FILE: ../../../third_party/skia/src/sksl/ir/SkSLConstructor.cpp +FILE: ../../../third_party/skia/src/effects/imagefilters/SkMatrixTransformImageFilter.cpp +---------------------------------------------------------------------------------------------------- +Copyright 2014 The Android Open Source Project + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: skia +ORIGIN: ../../../third_party/skia/bench/BigPathBench.cpp + ../../../third_party/skia/LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/skia/bench/BigPathBench.cpp +FILE: ../../../third_party/skia/bench/BitmapRegionDecoderBench.cpp +FILE: ../../../third_party/skia/bench/BitmapRegionDecoderBench.h +FILE: ../../../third_party/skia/bench/CodecBench.cpp +FILE: ../../../third_party/skia/bench/CodecBench.h +FILE: ../../../third_party/skia/bench/CodecBenchPriv.h +FILE: ../../../third_party/skia/bench/ControlBench.cpp +FILE: ../../../third_party/skia/bench/DrawBitmapAABench.cpp +FILE: ../../../third_party/skia/bench/ImageBench.cpp +FILE: ../../../third_party/skia/bench/InterpBench.cpp +FILE: ../../../third_party/skia/bench/MathBench.cpp +FILE: ../../../third_party/skia/bench/MipmapBench.cpp +FILE: ../../../third_party/skia/bench/PictureOverheadBench.cpp +FILE: ../../../third_party/skia/bench/SKPAnimationBench.cpp +FILE: ../../../third_party/skia/bench/SKPAnimationBench.h +FILE: ../../../third_party/skia/bench/Sk4fBench.cpp +FILE: ../../../third_party/skia/bench/SkGlyphCacheBench.cpp +FILE: ../../../third_party/skia/bench/StrokeBench.cpp +FILE: ../../../third_party/skia/bench/TextBlobBench.cpp +FILE: ../../../third_party/skia/bench/TopoSortBench.cpp +FILE: ../../../third_party/skia/bench/nanobench.h +FILE: ../../../third_party/skia/client_utils/android/BRDAllocator.h +FILE: ../../../third_party/skia/client_utils/android/BitmapRegionDecoder.cpp +FILE: ../../../third_party/skia/client_utils/android/BitmapRegionDecoder.h +FILE: ../../../third_party/skia/client_utils/android/BitmapRegionDecoderPriv.h +FILE: ../../../third_party/skia/dm/DMSrcSink.cpp +FILE: ../../../third_party/skia/dm/DMSrcSink.h +FILE: ../../../third_party/skia/experimental/tools/coreGraphicsPdf2png.cpp +FILE: ../../../third_party/skia/gm/aaxfermodes.cpp +FILE: ../../../third_party/skia/gm/addarc.cpp +FILE: ../../../third_party/skia/gm/all_bitmap_configs.cpp +FILE: ../../../third_party/skia/gm/anisotropic.cpp +FILE: ../../../third_party/skia/gm/annotated_text.cpp +FILE: ../../../third_party/skia/gm/badpaint.cpp +FILE: ../../../third_party/skia/gm/bigrrectaaeffect.cpp +FILE: ../../../third_party/skia/gm/bigtileimagefilter.cpp +FILE: ../../../third_party/skia/gm/blend.cpp +FILE: ../../../third_party/skia/gm/blurredclippedcircle.cpp +FILE: ../../../third_party/skia/gm/bmpfilterqualityrepeat.cpp +FILE: ../../../third_party/skia/gm/concavepaths.cpp +FILE: ../../../third_party/skia/gm/constcolorprocessor.cpp +FILE: ../../../third_party/skia/gm/convex_all_line_paths.cpp +FILE: ../../../third_party/skia/gm/draw_bitmap_rect_skbug4374.cpp +FILE: ../../../third_party/skia/gm/drawable.cpp +FILE: ../../../third_party/skia/gm/drawatlas.cpp +FILE: ../../../third_party/skia/gm/drawatlascolor.cpp +FILE: ../../../third_party/skia/gm/drawminibitmaprect.cpp +FILE: ../../../third_party/skia/gm/fadefilter.cpp +FILE: ../../../third_party/skia/gm/fontscalerdistortable.cpp +FILE: ../../../third_party/skia/gm/image_pict.cpp +FILE: ../../../third_party/skia/gm/image_shader.cpp +FILE: ../../../third_party/skia/gm/imagefilters.cpp +FILE: ../../../third_party/skia/gm/imagefiltersstroked.cpp +FILE: ../../../third_party/skia/gm/imagefilterstransformed.cpp +FILE: ../../../third_party/skia/gm/imagefromyuvtextures.cpp +FILE: ../../../third_party/skia/gm/imagesource2.cpp +FILE: ../../../third_party/skia/gm/largeglyphblur.cpp +FILE: ../../../third_party/skia/gm/lcdblendmodes.cpp +FILE: ../../../third_party/skia/gm/lcdoverlap.cpp +FILE: ../../../third_party/skia/gm/localmatriximagefilter.cpp +FILE: ../../../third_party/skia/gm/localmatriximageshader.cpp +FILE: ../../../third_party/skia/gm/mipmap.cpp +FILE: ../../../third_party/skia/gm/path_stroke_with_zero_length.cpp +FILE: ../../../third_party/skia/gm/pathcontourstart.cpp +FILE: ../../../third_party/skia/gm/pdf_never_embed.cpp +FILE: ../../../third_party/skia/gm/perspshaders.cpp +FILE: ../../../third_party/skia/gm/pictureimagegenerator.cpp +FILE: ../../../third_party/skia/gm/plus.cpp +FILE: ../../../third_party/skia/gm/repeated_bitmap.cpp +FILE: ../../../third_party/skia/gm/scaledstrokes.cpp +FILE: ../../../third_party/skia/gm/skbug_257.cpp +FILE: ../../../third_party/skia/gm/smallpaths.cpp +FILE: ../../../third_party/skia/gm/stlouisarch.cpp +FILE: ../../../third_party/skia/gm/textblobcolortrans.cpp +FILE: ../../../third_party/skia/gm/textblobgeometrychange.cpp +FILE: ../../../third_party/skia/gm/textblobmixedsizes.cpp +FILE: ../../../third_party/skia/gm/textblobrandomfont.cpp +FILE: ../../../third_party/skia/gm/textblobtransforms.cpp +FILE: ../../../third_party/skia/gm/textblobuseaftergpufree.cpp +FILE: ../../../third_party/skia/gm/transparency.cpp +FILE: ../../../third_party/skia/include/codec/SkAndroidCodec.h +FILE: ../../../third_party/skia/include/codec/SkCodec.h +FILE: ../../../third_party/skia/include/core/SkEncodedImageFormat.h +FILE: ../../../third_party/skia/include/core/SkPathBuilder.h +FILE: ../../../third_party/skia/include/core/SkPixmap.h +FILE: ../../../third_party/skia/include/core/SkPngChunkReader.h +FILE: ../../../third_party/skia/include/core/SkPoint3.h +FILE: ../../../third_party/skia/include/core/SkRSXform.h +FILE: ../../../third_party/skia/include/core/SkTraceMemoryDump.h +FILE: ../../../third_party/skia/include/effects/SkTableColorFilter.h +FILE: ../../../third_party/skia/include/gpu/GrContextOptions.h +FILE: ../../../third_party/skia/include/gpu/gl/GrGLTypes.h +FILE: ../../../third_party/skia/include/ports/SkFontMgr_android.h +FILE: ../../../third_party/skia/include/ports/SkFontMgr_directory.h +FILE: ../../../third_party/skia/include/ports/SkFontMgr_empty.h +FILE: ../../../third_party/skia/include/ports/SkFontMgr_fontconfig.h +FILE: ../../../third_party/skia/include/private/SkMutex.h +FILE: ../../../third_party/skia/include/private/SkSemaphore.h +FILE: ../../../third_party/skia/include/private/SkSpinlock.h +FILE: ../../../third_party/skia/include/private/SkTHash.h +FILE: ../../../third_party/skia/include/private/SkThreadID.h +FILE: ../../../third_party/skia/include/svg/SkSVGCanvas.h +FILE: ../../../third_party/skia/include/utils/SkPaintFilterCanvas.h +FILE: ../../../third_party/skia/samplecode/SampleAnimatedText.cpp +FILE: ../../../third_party/skia/samplecode/SampleAtlas.cpp +FILE: ../../../third_party/skia/samplecode/SampleShip.cpp +FILE: ../../../third_party/skia/samplecode/SampleXfer.cpp +FILE: ../../../third_party/skia/src/codec/SkAndroidCodec.cpp +FILE: ../../../third_party/skia/src/codec/SkAndroidCodecAdapter.cpp +FILE: ../../../third_party/skia/src/codec/SkAndroidCodecAdapter.h +FILE: ../../../third_party/skia/src/codec/SkBmpCodec.cpp +FILE: ../../../third_party/skia/src/codec/SkBmpCodec.h +FILE: ../../../third_party/skia/src/codec/SkBmpMaskCodec.cpp +FILE: ../../../third_party/skia/src/codec/SkBmpMaskCodec.h +FILE: ../../../third_party/skia/src/codec/SkBmpRLECodec.cpp +FILE: ../../../third_party/skia/src/codec/SkBmpRLECodec.h +FILE: ../../../third_party/skia/src/codec/SkBmpStandardCodec.cpp +FILE: ../../../third_party/skia/src/codec/SkBmpStandardCodec.h +FILE: ../../../third_party/skia/src/codec/SkCodec.cpp +FILE: ../../../third_party/skia/src/codec/SkCodecImageGenerator.cpp +FILE: ../../../third_party/skia/src/codec/SkCodecImageGenerator.h +FILE: ../../../third_party/skia/src/codec/SkIcoCodec.cpp +FILE: ../../../third_party/skia/src/codec/SkIcoCodec.h +FILE: ../../../third_party/skia/src/codec/SkJpegCodec.cpp +FILE: ../../../third_party/skia/src/codec/SkJpegCodec.h +FILE: ../../../third_party/skia/src/codec/SkJpegDecoderMgr.cpp +FILE: ../../../third_party/skia/src/codec/SkJpegDecoderMgr.h +FILE: ../../../third_party/skia/src/codec/SkJpegUtility.cpp +FILE: ../../../third_party/skia/src/codec/SkJpegUtility.h +FILE: ../../../third_party/skia/src/codec/SkMaskSwizzler.cpp +FILE: ../../../third_party/skia/src/codec/SkMaskSwizzler.h +FILE: ../../../third_party/skia/src/codec/SkMasks.cpp +FILE: ../../../third_party/skia/src/codec/SkMasks.h +FILE: ../../../third_party/skia/src/codec/SkPngCodec.cpp +FILE: ../../../third_party/skia/src/codec/SkPngCodec.h +FILE: ../../../third_party/skia/src/codec/SkSampledCodec.cpp +FILE: ../../../third_party/skia/src/codec/SkSampledCodec.h +FILE: ../../../third_party/skia/src/codec/SkSampler.cpp +FILE: ../../../third_party/skia/src/codec/SkSampler.h +FILE: ../../../third_party/skia/src/codec/SkSwizzler.cpp +FILE: ../../../third_party/skia/src/codec/SkSwizzler.h +FILE: ../../../third_party/skia/src/codec/SkWbmpCodec.cpp +FILE: ../../../third_party/skia/src/codec/SkWbmpCodec.h +FILE: ../../../third_party/skia/src/codec/SkWebpCodec.cpp +FILE: ../../../third_party/skia/src/codec/SkWebpCodec.h +FILE: ../../../third_party/skia/src/core/Sk4px.h +FILE: ../../../third_party/skia/src/core/SkBigPicture.cpp +FILE: ../../../third_party/skia/src/core/SkBigPicture.h +FILE: ../../../third_party/skia/src/core/SkFontMgr.cpp +FILE: ../../../third_party/skia/src/core/SkLatticeIter.cpp +FILE: ../../../third_party/skia/src/core/SkLatticeIter.h +FILE: ../../../third_party/skia/src/core/SkLocalMatrixImageFilter.cpp +FILE: ../../../third_party/skia/src/core/SkMipmapAccessor.cpp +FILE: ../../../third_party/skia/src/core/SkMipmapAccessor.h +FILE: ../../../third_party/skia/src/core/SkNextID.h +FILE: ../../../third_party/skia/src/core/SkOpts.cpp +FILE: ../../../third_party/skia/src/core/SkOpts.h +FILE: ../../../third_party/skia/src/core/SkPathBuilder.cpp +FILE: ../../../third_party/skia/src/core/SkPathPriv.h +FILE: ../../../third_party/skia/src/core/SkPictureImageGenerator.cpp +FILE: ../../../third_party/skia/src/core/SkPixmap.cpp +FILE: ../../../third_party/skia/src/core/SkPixmapPriv.h +FILE: ../../../third_party/skia/src/core/SkPoint3.cpp +FILE: ../../../third_party/skia/src/core/SkRecord.cpp +FILE: ../../../third_party/skia/src/core/SkRecordPattern.h +FILE: ../../../third_party/skia/src/core/SkRecords.cpp +FILE: ../../../third_party/skia/src/core/SkSemaphore.cpp +FILE: ../../../third_party/skia/src/core/SkSharedMutex.cpp +FILE: ../../../third_party/skia/src/core/SkSharedMutex.h +FILE: ../../../third_party/skia/src/core/SkSpinlock.cpp +FILE: ../../../third_party/skia/src/core/SkTDPQueue.h +FILE: ../../../third_party/skia/src/core/SkThreadID.cpp +FILE: ../../../third_party/skia/src/core/SkTime.cpp +FILE: ../../../third_party/skia/src/core/SkXfermodeInterpretation.cpp +FILE: ../../../third_party/skia/src/core/SkXfermodeInterpretation.h +FILE: ../../../third_party/skia/src/core/SkYUVPlanesCache.cpp +FILE: ../../../third_party/skia/src/core/SkYUVPlanesCache.h +FILE: ../../../third_party/skia/src/effects/SkTableColorFilter.cpp +FILE: ../../../third_party/skia/src/effects/imagefilters/SkImageImageFilter.cpp +FILE: ../../../third_party/skia/src/gpu/Blend.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/Device_drawTexture.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrAutoLocaleSetter.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrBlurUtils.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrBlurUtils.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrCaps.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrDrawOpAtlas.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrDrawOpAtlas.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrDrawOpTest.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrDrawOpTest.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrDrawingManager.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrDrawingManager.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrFragmentProcessor.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrGpuResourcePriv.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrManagedResource.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrNonAtomicRef.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrOpFlushState.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrOpFlushState.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrPipeline.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrPipeline.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrProcessorUnitTest.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrResourceProvider.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrResourceProvider.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrSamplerState.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrSimpleMesh.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrTTopoSort.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrTestUtils.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrTestUtils.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrXferProcessor.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/SurfaceDrawContext.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/SurfaceDrawContext.h +FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrBlendFragmentProcessor.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrBlendFragmentProcessor.h +FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrCustomXfermode.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrCustomXfermode.h +FILE: ../../../third_party/skia/src/gpu/ganesh/geometry/GrAAConvexTessellator.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/geometry/GrAAConvexTessellator.h +FILE: ../../../third_party/skia/src/gpu/ganesh/geometry/GrQuad.h +FILE: ../../../third_party/skia/src/gpu/ganesh/geometry/GrTriangulator.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/geometry/GrTriangulator.h +FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLTextureRenderTarget.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLUniformHandler.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLUniformHandler.h +FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLVaryingHandler.h +FILE: ../../../third_party/skia/src/gpu/ganesh/glsl/GrGLSLBlend.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/glsl/GrGLSLBlend.h +FILE: ../../../third_party/skia/src/gpu/ganesh/glsl/GrGLSLProgramBuilder.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/glsl/GrGLSLProgramBuilder.h +FILE: ../../../third_party/skia/src/gpu/ganesh/glsl/GrGLSLProgramDataManager.h +FILE: ../../../third_party/skia/src/gpu/ganesh/glsl/GrGLSLUniformHandler.h +FILE: ../../../third_party/skia/src/gpu/ganesh/glsl/GrGLSLVarying.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/glsl/GrGLSLVarying.h +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/AALinearizingConvexPathRenderer.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/AALinearizingConvexPathRenderer.h +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/AtlasTextOp.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/AtlasTextOp.h +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/ClearOp.h +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/DashLinePathRenderer.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/DashLinePathRenderer.h +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/DrawAtlasOp.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/DrawAtlasOp.h +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/GrDrawOp.h +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/GrMeshDrawOp.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/GrMeshDrawOp.h +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/GrOp.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/GrOp.h +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/LatticeOp.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/LatticeOp.h +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/TriangulatingPathRenderer.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/TriangulatingPathRenderer.h +FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkCaps.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkCaps.h +FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkCommandBuffer.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkCommandBuffer.h +FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkGpu.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkGpu.h +FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkImage.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkImage.h +FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkMemory.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkMemory.h +FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkRenderPass.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkRenderPass.h +FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkRenderTarget.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkRenderTarget.h +FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkTexture.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkTexture.h +FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkTextureRenderTarget.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkTextureRenderTarget.h +FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkUtil.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkUtil.h +FILE: ../../../third_party/skia/src/gpu/vk/VulkanInterface.cpp +FILE: ../../../third_party/skia/src/gpu/vk/VulkanInterface.h +FILE: ../../../third_party/skia/src/image/SkImage_Gpu.h +FILE: ../../../third_party/skia/src/image/SkImage_Lazy.cpp +FILE: ../../../third_party/skia/src/opts/SkBlitMask_opts.h +FILE: ../../../third_party/skia/src/opts/SkBlitRow_opts.h +FILE: ../../../third_party/skia/src/opts/SkOpts_ssse3.cpp +FILE: ../../../third_party/skia/src/opts/SkXfermode_opts.h +FILE: ../../../third_party/skia/src/pathops/SkDConicLineIntersection.cpp +FILE: ../../../third_party/skia/src/pathops/SkDCubicToQuads.cpp +FILE: ../../../third_party/skia/src/pathops/SkOpCoincidence.cpp +FILE: ../../../third_party/skia/src/pathops/SkPathOpsConic.cpp +FILE: ../../../third_party/skia/src/pathops/SkPathOpsConic.h +FILE: ../../../third_party/skia/src/pathops/SkPathOpsCurve.cpp +FILE: ../../../third_party/skia/src/pathops/SkPathOpsWinding.cpp +FILE: ../../../third_party/skia/src/pdf/SkDocument_PDF_None.cpp +FILE: ../../../third_party/skia/src/pdf/SkJpegInfo.cpp +FILE: ../../../third_party/skia/src/pdf/SkJpegInfo.h +FILE: ../../../third_party/skia/src/pdf/SkPDFBitmap.cpp +FILE: ../../../third_party/skia/src/pdf/SkPDFBitmap.h +FILE: ../../../third_party/skia/src/pdf/SkPDFMetadata.cpp +FILE: ../../../third_party/skia/src/pdf/SkPDFMetadata.h +FILE: ../../../third_party/skia/src/ports/SkFontMgr_android_factory.cpp +FILE: ../../../third_party/skia/src/ports/SkFontMgr_custom_directory_factory.cpp +FILE: ../../../third_party/skia/src/ports/SkFontMgr_custom_embedded_factory.cpp +FILE: ../../../third_party/skia/src/ports/SkFontMgr_fontconfig_factory.cpp +FILE: ../../../third_party/skia/src/ports/SkFontMgr_win_dw_factory.cpp +FILE: ../../../third_party/skia/src/ports/SkOSLibrary.h +FILE: ../../../third_party/skia/src/ports/SkOSLibrary_posix.cpp +FILE: ../../../third_party/skia/src/ports/SkOSLibrary_win.cpp +FILE: ../../../third_party/skia/src/shaders/SkImageShader.cpp +FILE: ../../../third_party/skia/src/shaders/SkImageShader.h +FILE: ../../../third_party/skia/src/svg/SkSVGCanvas.cpp +FILE: ../../../third_party/skia/src/svg/SkSVGDevice.cpp +FILE: ../../../third_party/skia/src/svg/SkSVGDevice.h +FILE: ../../../third_party/skia/src/text/gpu/DistanceFieldAdjustTable.cpp +FILE: ../../../third_party/skia/src/text/gpu/DistanceFieldAdjustTable.h +FILE: ../../../third_party/skia/src/text/gpu/StrikeCache.cpp +FILE: ../../../third_party/skia/src/text/gpu/StrikeCache.h +FILE: ../../../third_party/skia/src/text/gpu/TextBlob.cpp +FILE: ../../../third_party/skia/src/text/gpu/TextBlob.h +FILE: ../../../third_party/skia/src/text/gpu/TextBlobRedrawCoordinator.cpp +FILE: ../../../third_party/skia/src/text/gpu/TextBlobRedrawCoordinator.h +FILE: ../../../third_party/skia/src/utils/SkPaintFilterCanvas.cpp +FILE: ../../../third_party/skia/src/xps/SkXPSDocument.cpp ---------------------------------------------------------------------------------------------------- -Copyright 2020 Google LLC. +Copyright 2015 Google Inc. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are @@ -5972,164 +3423,14 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ==================================================================================================== LIBRARY: skia -ORIGIN: ../../../third_party/skia/experimental/ffmpeg/SkVideoDecoder.cpp + ../../../third_party/skia/LICENSE +ORIGIN: ../../../third_party/skia/src/codec/SkCodecPriv.h + ../../../third_party/skia/LICENSE TYPE: LicenseType.bsd -FILE: ../../../third_party/skia/experimental/ffmpeg/SkVideoDecoder.cpp -FILE: ../../../third_party/skia/experimental/ffmpeg/SkVideoDecoder.h -FILE: ../../../third_party/skia/experimental/ffmpeg/SkVideoEncoder.cpp -FILE: ../../../third_party/skia/experimental/ffmpeg/SkVideoEncoder.h -FILE: ../../../third_party/skia/gm/backdrop.cpp -FILE: ../../../third_party/skia/gm/backdrop_imagefilter_croprect.cpp -FILE: ../../../third_party/skia/gm/bug9331.cpp -FILE: ../../../third_party/skia/gm/clip_sierpinski_region.cpp -FILE: ../../../third_party/skia/gm/collapsepaths.cpp -FILE: ../../../third_party/skia/gm/compositor_quads.cpp -FILE: ../../../third_party/skia/gm/crbug_913349.cpp -FILE: ../../../third_party/skia/gm/crbug_938592.cpp -FILE: ../../../third_party/skia/gm/crbug_947055.cpp -FILE: ../../../third_party/skia/gm/crbug_996140.cpp -FILE: ../../../third_party/skia/gm/ducky_yuv_blend.cpp -FILE: ../../../third_party/skia/gm/fiddle.cpp -FILE: ../../../third_party/skia/gm/mac_aa_explorer.cpp -FILE: ../../../third_party/skia/gm/mixercolorfilter.cpp -FILE: ../../../third_party/skia/gm/overdrawcanvas.cpp -FILE: ../../../third_party/skia/gm/postercircle.cpp -FILE: ../../../third_party/skia/gm/skbug_8664.cpp -FILE: ../../../third_party/skia/gm/skbug_8955.cpp -FILE: ../../../third_party/skia/gm/video_decoder.cpp -FILE: ../../../third_party/skia/gm/yuv420_odd_dim.cpp -FILE: ../../../third_party/skia/include/core/SkTileMode.h -FILE: ../../../third_party/skia/include/gpu/GrContextThreadSafeProxy.h -FILE: ../../../third_party/skia/include/gpu/GrRecordingContext.h -FILE: ../../../third_party/skia/include/gpu/dawn/GrDawnTypes.h -FILE: ../../../third_party/skia/include/ports/SkCFObject.h -FILE: ../../../third_party/skia/include/private/SkSLDefines.h -FILE: ../../../third_party/skia/include/private/SkVx.h -FILE: ../../../third_party/skia/include/private/gpu/ganesh/GrContext_Base.h -FILE: ../../../third_party/skia/include/private/gpu/ganesh/GrImageContext.h -FILE: ../../../third_party/skia/modules/skottie/src/Composition.cpp -FILE: ../../../third_party/skia/modules/skottie/src/Composition.h -FILE: ../../../third_party/skia/modules/skottie/src/Layer.cpp -FILE: ../../../third_party/skia/modules/skottie/src/Layer.h -FILE: ../../../third_party/skia/modules/skottie/src/effects/DropShadowEffect.cpp -FILE: ../../../third_party/skia/modules/skottie/src/effects/Effects.cpp -FILE: ../../../third_party/skia/modules/skottie/src/effects/Effects.h -FILE: ../../../third_party/skia/modules/skottie/src/effects/FillEffect.cpp -FILE: ../../../third_party/skia/modules/skottie/src/effects/GaussianBlurEffect.cpp -FILE: ../../../third_party/skia/modules/skottie/src/effects/GradientEffect.cpp -FILE: ../../../third_party/skia/modules/skottie/src/effects/HueSaturationEffect.cpp -FILE: ../../../third_party/skia/modules/skottie/src/effects/InvertEffect.cpp -FILE: ../../../third_party/skia/modules/skottie/src/effects/LevelsEffect.cpp -FILE: ../../../third_party/skia/modules/skottie/src/effects/LinearWipeEffect.cpp -FILE: ../../../third_party/skia/modules/skottie/src/effects/MotionBlurEffect.cpp -FILE: ../../../third_party/skia/modules/skottie/src/effects/MotionBlurEffect.h -FILE: ../../../third_party/skia/modules/skottie/src/effects/MotionTileEffect.cpp -FILE: ../../../third_party/skia/modules/skottie/src/effects/RadialWipeEffect.cpp -FILE: ../../../third_party/skia/modules/skottie/src/effects/ShiftChannelsEffect.cpp -FILE: ../../../third_party/skia/modules/skottie/src/effects/TintEffect.cpp -FILE: ../../../third_party/skia/modules/skottie/src/effects/TransformEffect.cpp -FILE: ../../../third_party/skia/modules/skottie/src/effects/TritoneEffect.cpp -FILE: ../../../third_party/skia/modules/skottie/src/effects/VenetianBlindsEffect.cpp -FILE: ../../../third_party/skia/modules/skottie/src/layers/FootageLayer.cpp -FILE: ../../../third_party/skia/modules/skottie/src/layers/NullLayer.cpp -FILE: ../../../third_party/skia/modules/skottie/src/layers/SolidLayer.cpp -FILE: ../../../third_party/skia/modules/skottie/src/text/RangeSelector.cpp -FILE: ../../../third_party/skia/modules/skottie/src/text/RangeSelector.h -FILE: ../../../third_party/skia/modules/skottie/src/text/SkottieShaper.cpp -FILE: ../../../third_party/skia/modules/skottie/src/text/SkottieShaper.h -FILE: ../../../third_party/skia/modules/skottie/src/text/TextAdapter.cpp -FILE: ../../../third_party/skia/modules/skottie/src/text/TextAdapter.h -FILE: ../../../third_party/skia/modules/skottie/src/text/TextAnimator.cpp -FILE: ../../../third_party/skia/modules/skottie/src/text/TextAnimator.h -FILE: ../../../third_party/skia/modules/skottie/src/text/TextValue.cpp -FILE: ../../../third_party/skia/modules/skottie/src/text/TextValue.h -FILE: ../../../third_party/skia/modules/sksg/include/SkSGRenderEffect.h -FILE: ../../../third_party/skia/modules/sksg/src/SkSGNodePriv.h -FILE: ../../../third_party/skia/modules/sksg/src/SkSGRenderEffect.cpp -FILE: ../../../third_party/skia/modules/sksg/src/SkSGTransformPriv.h -FILE: ../../../third_party/skia/modules/svg/include/SkSVGText.h -FILE: ../../../third_party/skia/modules/svg/src/SkSVGText.cpp -FILE: ../../../third_party/skia/samplecode/SampleDegenerateQuads.cpp -FILE: ../../../third_party/skia/samplecode/SampleSG.cpp -FILE: ../../../third_party/skia/samplecode/SampleThinAA.cpp -FILE: ../../../third_party/skia/src/codec/SkScalingCodec.h -FILE: ../../../third_party/skia/src/core/SkDescriptor.cpp -FILE: ../../../third_party/skia/src/core/SkDraw_atlas.cpp -FILE: ../../../third_party/skia/src/core/SkEffectPriv.h -FILE: ../../../third_party/skia/src/core/SkEnumerate.h -FILE: ../../../third_party/skia/src/core/SkGlyphBuffer.cpp -FILE: ../../../third_party/skia/src/core/SkGlyphBuffer.h -FILE: ../../../third_party/skia/src/core/SkPathMakers.h -FILE: ../../../third_party/skia/src/core/SkStrikeSpec.h -FILE: ../../../third_party/skia/src/core/SkVMBlitter.cpp -FILE: ../../../third_party/skia/src/core/SkYUVMath.cpp -FILE: ../../../third_party/skia/src/core/SkYUVMath.h -FILE: ../../../third_party/skia/src/core/SkZip.h -FILE: ../../../third_party/skia/src/gpu/GrAHardwareBufferUtils.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrAHardwareBufferUtils.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrAHardwareBufferUtils_impl.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrBaseContextPriv.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrBuffer.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrContextThreadSafeProxy.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrContext_Base.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrCpuBuffer.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrDataUtils.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrDataUtils.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrDirectContextPriv.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrGpuBuffer.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrGpuBuffer.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrImageContext.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrImageContextPriv.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrRecordingContext.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrRecordingContextPriv.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrSPIRVUniformHandler.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrSPIRVUniformHandler.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrSPIRVVaryingHandler.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrSPIRVVaryingHandler.h -FILE: ../../../third_party/skia/src/gpu/ganesh/dawn/GrDawnAttachment.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/dawn/GrDawnAttachment.h -FILE: ../../../third_party/skia/src/gpu/ganesh/dawn/GrDawnBuffer.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/dawn/GrDawnBuffer.h -FILE: ../../../third_party/skia/src/gpu/ganesh/dawn/GrDawnCaps.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/dawn/GrDawnCaps.h -FILE: ../../../third_party/skia/src/gpu/ganesh/dawn/GrDawnGpu.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/dawn/GrDawnGpu.h -FILE: ../../../third_party/skia/src/gpu/ganesh/dawn/GrDawnOpsRenderPass.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/dawn/GrDawnOpsRenderPass.h -FILE: ../../../third_party/skia/src/gpu/ganesh/dawn/GrDawnProgramBuilder.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/dawn/GrDawnProgramBuilder.h -FILE: ../../../third_party/skia/src/gpu/ganesh/dawn/GrDawnProgramDataManager.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/dawn/GrDawnProgramDataManager.h -FILE: ../../../third_party/skia/src/gpu/ganesh/dawn/GrDawnRenderTarget.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/dawn/GrDawnRenderTarget.h -FILE: ../../../third_party/skia/src/gpu/ganesh/dawn/GrDawnRingBuffer.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/dawn/GrDawnRingBuffer.h -FILE: ../../../third_party/skia/src/gpu/ganesh/dawn/GrDawnTexture.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/dawn/GrDawnTexture.h -FILE: ../../../third_party/skia/src/gpu/ganesh/dawn/GrDawnTextureRenderTarget.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/dawn/GrDawnTextureRenderTarget.h -FILE: ../../../third_party/skia/src/gpu/ganesh/dawn/GrDawnUtil.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/dawn/GrDawnUtil.h -FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlCommandBuffer.h -FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlCommandBuffer.mm -FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlDepthStencil.h -FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlSemaphore.h -FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlSemaphore.mm -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/OpsTask.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/OpsTask.h -FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkSecondaryCBDrawContext.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkSecondaryCBDrawContext_impl.h -FILE: ../../../third_party/skia/src/gpu/vk/GrVkSecondaryCBDrawContext.h -FILE: ../../../third_party/skia/src/image/SkSurface_GpuMtl.mm -FILE: ../../../third_party/skia/src/sksl/SkSLOutputStream.cpp -FILE: ../../../third_party/skia/src/text/StrikeForGPU.h -FILE: ../../../third_party/skia/src/utils/SkCharToGlyphCache.cpp -FILE: ../../../third_party/skia/src/utils/SkCharToGlyphCache.h -FILE: ../../../third_party/skia/src/utils/SkClipStackUtils.cpp -FILE: ../../../third_party/skia/src/utils/SkClipStackUtils.h -FILE: ../../../third_party/skia/src/utils/win/SkObjBase.h +FILE: ../../../third_party/skia/src/codec/SkCodecPriv.h +FILE: ../../../third_party/skia/src/core/SkLocalMatrixImageFilter.h +FILE: ../../../third_party/skia/src/ports/SkImageGenerator_none.cpp +FILE: ../../../third_party/skia/src/ports/SkImageGenerator_skia.cpp ---------------------------------------------------------------------------------------------------- -Copyright 2019 Google Inc. +Copyright 2015 The Android Open Source Project Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are @@ -6162,62 +3463,385 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ==================================================================================================== LIBRARY: skia -ORIGIN: ../../../third_party/skia/experimental/sorttoy/Cmds.cpp + ../../../third_party/skia/LICENSE +ORIGIN: ../../../third_party/icu/scripts/LICENSE TYPE: LicenseType.bsd -FILE: ../../../third_party/skia/experimental/sorttoy/Cmds.cpp -FILE: ../../../third_party/skia/experimental/sorttoy/Cmds.h -FILE: ../../../third_party/skia/experimental/sorttoy/Fake.cpp -FILE: ../../../third_party/skia/experimental/sorttoy/Fake.h -FILE: ../../../third_party/skia/experimental/sorttoy/SortKey.h -FILE: ../../../third_party/skia/experimental/sorttoy/sorttoy.cpp -FILE: ../../../third_party/skia/experimental/sorttoy/sorttypes.h -FILE: ../../../third_party/skia/gm/batchedconvexpaths.cpp -FILE: ../../../third_party/skia/gm/destcolor.cpp -FILE: ../../../third_party/skia/include/private/SkSLProgramKind.h -FILE: ../../../third_party/skia/include/private/SkStringView.h -FILE: ../../../third_party/skia/include/private/chromium/SkChromeRemoteGlyphCache.h -FILE: ../../../third_party/skia/include/sksl/DSLBlock.h -FILE: ../../../third_party/skia/include/sksl/DSLCase.h -FILE: ../../../third_party/skia/include/sksl/DSLFunction.h -FILE: ../../../third_party/skia/include/sksl/DSLLayout.h -FILE: ../../../third_party/skia/include/sksl/DSLStatement.h -FILE: ../../../third_party/skia/include/sksl/SkSLDebugTrace.h -FILE: ../../../third_party/skia/include/sksl/SkSLErrorReporter.h -FILE: ../../../third_party/skia/include/sksl/SkSLPosition.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrVertexChunkArray.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrVertexChunkArray.h -FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrModulateAtlasCoverageEffect.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrModulateAtlasCoverageEffect.h -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/AtlasInstancedHelper.h -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/PathStencilCoverOp.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/PathStencilCoverOp.h -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/PathTessellateOp.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/PathTessellateOp.h -FILE: ../../../third_party/skia/src/gpu/ganesh/tessellate/GrTessellationShader.cpp -FILE: ../../../third_party/skia/src/gpu/tessellate/AffineMatrix.h -FILE: ../../../third_party/skia/src/gpu/tessellate/PatchWriter.h -FILE: ../../../third_party/skia/src/gpu/tessellate/Tessellation.cpp -FILE: ../../../third_party/skia/src/sksl/SkSLErrorReporter.cpp -FILE: ../../../third_party/skia/src/sksl/SkSLIntrinsicList.cpp -FILE: ../../../third_party/skia/src/sksl/SkSLMangler.cpp -FILE: ../../../third_party/skia/src/sksl/SkSLParsedModule.h -FILE: ../../../third_party/skia/src/sksl/SkSLParser.cpp -FILE: ../../../third_party/skia/src/sksl/SkSLParser.h -FILE: ../../../third_party/skia/src/sksl/dsl/DSLBlock.cpp -FILE: ../../../third_party/skia/src/sksl/dsl/DSLCase.cpp -FILE: ../../../third_party/skia/src/sksl/dsl/DSLFunction.cpp -FILE: ../../../third_party/skia/src/sksl/dsl/DSLLayout.cpp -FILE: ../../../third_party/skia/src/sksl/dsl/DSLStatement.cpp -FILE: ../../../third_party/skia/src/sksl/dsl/DSLSymbols.cpp -FILE: ../../../third_party/skia/src/sksl/dsl/priv/DSL_priv.h -FILE: ../../../third_party/skia/src/sksl/ir/SkSLFunctionDeclaration.cpp -FILE: ../../../third_party/skia/src/sksl/ir/SkSLModifiers.cpp -FILE: ../../../third_party/skia/src/sksl/ir/SkSLPoison.h -FILE: ../../../third_party/skia/src/sksl/ir/SkSLVariable.cpp -FILE: ../../../third_party/skia/src/sksl/transform/SkSLFindAndDeclareBuiltinVariables.cpp -FILE: ../../../third_party/skia/src/sksl/transform/SkSLTransform.h +FILE: ../../../third_party/skia/src/core/SkTraceEventCommon.h +---------------------------------------------------------------------------------------------------- +Copyright 2015 The Chromium Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: skia +ORIGIN: ../../../third_party/skia/bench/AndroidCodecBench.cpp + ../../../third_party/skia/LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/skia/bench/AndroidCodecBench.cpp +FILE: ../../../third_party/skia/bench/AndroidCodecBench.h +FILE: ../../../third_party/skia/bench/DecodeBench.cpp +FILE: ../../../third_party/skia/bench/EncodeBench.cpp +FILE: ../../../third_party/skia/bench/GrMipmapBench.cpp +FILE: ../../../third_party/skia/bench/HardStopGradientBench_ScaleNumColors.cpp +FILE: ../../../third_party/skia/bench/HardStopGradientBench_ScaleNumHardStops.cpp +FILE: ../../../third_party/skia/bench/HardStopGradientBench_SpecialHardStops.cpp +FILE: ../../../third_party/skia/bench/ImageCacheBudgetBench.cpp +FILE: ../../../third_party/skia/bench/PDFBench.cpp +FILE: ../../../third_party/skia/bench/QuickRejectBench.cpp +FILE: ../../../third_party/skia/bench/ShapesBench.cpp +FILE: ../../../third_party/skia/bench/StreamBench.cpp +FILE: ../../../third_party/skia/bench/SwizzleBench.cpp +FILE: ../../../third_party/skia/bench/TileImageFilterBench.cpp +FILE: ../../../third_party/skia/bench/VertexColorSpaceBench.cpp +FILE: ../../../third_party/skia/fuzz/Fuzz.cpp +FILE: ../../../third_party/skia/fuzz/Fuzz.h +FILE: ../../../third_party/skia/fuzz/FuzzGradients.cpp +FILE: ../../../third_party/skia/fuzz/FuzzMain.cpp +FILE: ../../../third_party/skia/fuzz/FuzzParsePath.cpp +FILE: ../../../third_party/skia/fuzz/FuzzPathop.cpp +FILE: ../../../third_party/skia/gm/animated_gif.cpp +FILE: ../../../third_party/skia/gm/animatedimageblurs.cpp +FILE: ../../../third_party/skia/gm/arcto.cpp +FILE: ../../../third_party/skia/gm/bigrect.cpp +FILE: ../../../third_party/skia/gm/bitmapimage.cpp +FILE: ../../../third_party/skia/gm/blurcircles2.cpp +FILE: ../../../third_party/skia/gm/bug5252.cpp +FILE: ../../../third_party/skia/gm/bug530095.cpp +FILE: ../../../third_party/skia/gm/bug615686.cpp +FILE: ../../../third_party/skia/gm/circulararcs.cpp +FILE: ../../../third_party/skia/gm/clip_error.cpp +FILE: ../../../third_party/skia/gm/colorfilteralpha8.cpp +FILE: ../../../third_party/skia/gm/complexclip4.cpp +FILE: ../../../third_party/skia/gm/complexclip_blur_tiled.cpp +FILE: ../../../third_party/skia/gm/croppedrects.cpp +FILE: ../../../third_party/skia/gm/dashcircle.cpp +FILE: ../../../third_party/skia/gm/drawregion.cpp +FILE: ../../../third_party/skia/gm/drawregionmodes.cpp +FILE: ../../../third_party/skia/gm/encode_platform.cpp +FILE: ../../../third_party/skia/gm/encode_srgb.cpp +FILE: ../../../third_party/skia/gm/filterbug.cpp +FILE: ../../../third_party/skia/gm/hardstop_gradients.cpp +FILE: ../../../third_party/skia/gm/imagemakewithfilter.cpp +FILE: ../../../third_party/skia/gm/imagemasksubset.cpp +FILE: ../../../third_party/skia/gm/lattice.cpp +FILE: ../../../third_party/skia/gm/overdrawcolorfilter.cpp +FILE: ../../../third_party/skia/gm/overstroke.cpp +FILE: ../../../third_party/skia/gm/pathmaskcache.cpp +FILE: ../../../third_party/skia/gm/readpixels.cpp +FILE: ../../../third_party/skia/gm/rectangletexture.cpp +FILE: ../../../third_party/skia/gm/rrectclipdrawpaint.cpp +FILE: ../../../third_party/skia/gm/shapes.cpp +FILE: ../../../third_party/skia/gm/showmiplevels.cpp +FILE: ../../../third_party/skia/gm/simplerect.cpp +FILE: ../../../third_party/skia/gm/skbug_4868.cpp +FILE: ../../../third_party/skia/gm/skbug_5321.cpp +FILE: ../../../third_party/skia/gm/stroke_rect_shader.cpp +FILE: ../../../third_party/skia/gm/strokedlines.cpp +FILE: ../../../third_party/skia/gm/subsetshader.cpp +FILE: ../../../third_party/skia/gm/textblobblockreordering.cpp +FILE: ../../../third_party/skia/gm/windowrectangles.cpp +FILE: ../../../third_party/skia/include/codec/SkCodecAnimation.h +FILE: ../../../third_party/skia/include/core/SkBlendMode.h +FILE: ../../../third_party/skia/include/core/SkClipOp.h +FILE: ../../../third_party/skia/include/core/SkColorSpace.h +FILE: ../../../third_party/skia/include/core/SkICC.h +FILE: ../../../third_party/skia/include/core/SkMilestone.h +FILE: ../../../third_party/skia/include/core/SkOverdrawCanvas.h +FILE: ../../../third_party/skia/include/core/SkRasterHandleAllocator.h +FILE: ../../../third_party/skia/include/core/SkSwizzle.h +FILE: ../../../third_party/skia/include/effects/SkOverdrawColorFilter.h +FILE: ../../../third_party/skia/include/gpu/vk/GrVkBackendContext.h +FILE: ../../../third_party/skia/include/gpu/vk/GrVkExtensions.h +FILE: ../../../third_party/skia/include/gpu/vk/GrVkTypes.h +FILE: ../../../third_party/skia/include/ports/SkFontMgr_FontConfigInterface.h +FILE: ../../../third_party/skia/include/ports/SkImageGeneratorCG.h +FILE: ../../../third_party/skia/include/ports/SkImageGeneratorWIC.h +FILE: ../../../third_party/skia/include/private/SingleOwner.h +FILE: ../../../third_party/skia/include/private/SkBitmaskEnum.h +FILE: ../../../third_party/skia/include/private/SkEncodedInfo.h +FILE: ../../../third_party/skia/include/private/SkSLIRNode.h +FILE: ../../../third_party/skia/include/private/SkSLLayout.h +FILE: ../../../third_party/skia/include/private/SkSLModifiers.h +FILE: ../../../third_party/skia/include/private/SkSLProgramElement.h +FILE: ../../../third_party/skia/include/private/SkSLStatement.h +FILE: ../../../third_party/skia/include/private/SkSLSymbol.h +FILE: ../../../third_party/skia/include/private/SkSafe_math.h +FILE: ../../../third_party/skia/include/utils/SkNoDrawCanvas.h +FILE: ../../../third_party/skia/modules/sksg/samples/SampleSVGPong.cpp +FILE: ../../../third_party/skia/modules/skshaper/include/SkShaper.h +FILE: ../../../third_party/skia/modules/skshaper/src/SkShaper_harfbuzz.cpp +FILE: ../../../third_party/skia/modules/skshaper/src/SkShaper_primitive.cpp +FILE: ../../../third_party/skia/modules/svg/include/SkSVGAttribute.h +FILE: ../../../third_party/skia/modules/svg/include/SkSVGAttributeParser.h +FILE: ../../../third_party/skia/modules/svg/include/SkSVGCircle.h +FILE: ../../../third_party/skia/modules/svg/include/SkSVGClipPath.h +FILE: ../../../third_party/skia/modules/svg/include/SkSVGContainer.h +FILE: ../../../third_party/skia/modules/svg/include/SkSVGDOM.h +FILE: ../../../third_party/skia/modules/svg/include/SkSVGDefs.h +FILE: ../../../third_party/skia/modules/svg/include/SkSVGEllipse.h +FILE: ../../../third_party/skia/modules/svg/include/SkSVGG.h +FILE: ../../../third_party/skia/modules/svg/include/SkSVGHiddenContainer.h +FILE: ../../../third_party/skia/modules/svg/include/SkSVGIDMapper.h +FILE: ../../../third_party/skia/modules/svg/include/SkSVGLine.h +FILE: ../../../third_party/skia/modules/svg/include/SkSVGLinearGradient.h +FILE: ../../../third_party/skia/modules/svg/include/SkSVGNode.h +FILE: ../../../third_party/skia/modules/svg/include/SkSVGPath.h +FILE: ../../../third_party/skia/modules/svg/include/SkSVGPoly.h +FILE: ../../../third_party/skia/modules/svg/include/SkSVGRect.h +FILE: ../../../third_party/skia/modules/svg/include/SkSVGRenderContext.h +FILE: ../../../third_party/skia/modules/svg/include/SkSVGSVG.h +FILE: ../../../third_party/skia/modules/svg/include/SkSVGShape.h +FILE: ../../../third_party/skia/modules/svg/include/SkSVGStop.h +FILE: ../../../third_party/skia/modules/svg/include/SkSVGTransformableNode.h +FILE: ../../../third_party/skia/modules/svg/include/SkSVGTypes.h +FILE: ../../../third_party/skia/modules/svg/include/SkSVGValue.h +FILE: ../../../third_party/skia/modules/svg/src/SkSVGAttribute.cpp +FILE: ../../../third_party/skia/modules/svg/src/SkSVGAttributeParser.cpp +FILE: ../../../third_party/skia/modules/svg/src/SkSVGCircle.cpp +FILE: ../../../third_party/skia/modules/svg/src/SkSVGClipPath.cpp +FILE: ../../../third_party/skia/modules/svg/src/SkSVGContainer.cpp +FILE: ../../../third_party/skia/modules/svg/src/SkSVGDOM.cpp +FILE: ../../../third_party/skia/modules/svg/src/SkSVGEllipse.cpp +FILE: ../../../third_party/skia/modules/svg/src/SkSVGLine.cpp +FILE: ../../../third_party/skia/modules/svg/src/SkSVGLinearGradient.cpp +FILE: ../../../third_party/skia/modules/svg/src/SkSVGNode.cpp +FILE: ../../../third_party/skia/modules/svg/src/SkSVGPath.cpp +FILE: ../../../third_party/skia/modules/svg/src/SkSVGPoly.cpp +FILE: ../../../third_party/skia/modules/svg/src/SkSVGRect.cpp +FILE: ../../../third_party/skia/modules/svg/src/SkSVGRenderContext.cpp +FILE: ../../../third_party/skia/modules/svg/src/SkSVGSVG.cpp +FILE: ../../../third_party/skia/modules/svg/src/SkSVGShape.cpp +FILE: ../../../third_party/skia/modules/svg/src/SkSVGStop.cpp +FILE: ../../../third_party/skia/modules/svg/src/SkSVGTransformableNode.cpp +FILE: ../../../third_party/skia/modules/svg/src/SkSVGValue.cpp +FILE: ../../../third_party/skia/samplecode/DecodeFile.h +FILE: ../../../third_party/skia/samplecode/Sample.cpp +FILE: ../../../third_party/skia/samplecode/SampleAndroidShadows.cpp +FILE: ../../../third_party/skia/samplecode/SampleMegaStroke.cpp +FILE: ../../../third_party/skia/samplecode/SamplePathOverstroke.cpp +FILE: ../../../third_party/skia/samplecode/SampleSVGFile.cpp +FILE: ../../../third_party/skia/src/codec/SkRawCodec.cpp +FILE: ../../../third_party/skia/src/codec/SkRawCodec.h +FILE: ../../../third_party/skia/src/core/SkATrace.cpp +FILE: ../../../third_party/skia/src/core/SkATrace.h +FILE: ../../../third_party/skia/src/core/SkAnnotationKeys.h +FILE: ../../../third_party/skia/src/core/SkArenaAlloc.cpp +FILE: ../../../third_party/skia/src/core/SkArenaAlloc.h +FILE: ../../../third_party/skia/src/core/SkAutoMalloc.h +FILE: ../../../third_party/skia/src/core/SkAutoPixmapStorage.cpp +FILE: ../../../third_party/skia/src/core/SkAutoPixmapStorage.h +FILE: ../../../third_party/skia/src/core/SkBlendModePriv.h +FILE: ../../../third_party/skia/src/core/SkColorSpace.cpp +FILE: ../../../third_party/skia/src/core/SkColorSpacePriv.h +FILE: ../../../third_party/skia/src/core/SkCpu.cpp +FILE: ../../../third_party/skia/src/core/SkCpu.h +FILE: ../../../third_party/skia/src/core/SkFuzzLogging.h +FILE: ../../../third_party/skia/src/core/SkGlobalInitialization_core.cpp +FILE: ../../../third_party/skia/src/core/SkICC.cpp +FILE: ../../../third_party/skia/src/core/SkICCPriv.h +FILE: ../../../third_party/skia/src/core/SkImageFilterCache.cpp +FILE: ../../../third_party/skia/src/core/SkImageFilterCache.h +FILE: ../../../third_party/skia/src/core/SkLRUCache.h +FILE: ../../../third_party/skia/src/core/SkLeanWindows.h +FILE: ../../../third_party/skia/src/core/SkMSAN.h +FILE: ../../../third_party/skia/src/core/SkMatrixPriv.h +FILE: ../../../third_party/skia/src/core/SkOverdrawCanvas.cpp +FILE: ../../../third_party/skia/src/core/SkPathMeasurePriv.h +FILE: ../../../third_party/skia/src/core/SkRasterPipeline.cpp +FILE: ../../../third_party/skia/src/core/SkRasterPipeline.h +FILE: ../../../third_party/skia/src/core/SkRasterPipelineBlitter.cpp +FILE: ../../../third_party/skia/src/core/SkRecordedDrawable.cpp +FILE: ../../../third_party/skia/src/core/SkRecordedDrawable.h +FILE: ../../../third_party/skia/src/core/SkScaleToSides.h +FILE: ../../../third_party/skia/src/core/SkScopeExit.h +FILE: ../../../third_party/skia/src/core/SkSpecialImage.cpp +FILE: ../../../third_party/skia/src/core/SkSpecialImage.h +FILE: ../../../third_party/skia/src/core/SkSpecialSurface.cpp +FILE: ../../../third_party/skia/src/core/SkSpecialSurface.h +FILE: ../../../third_party/skia/src/core/SkSwizzle.cpp +FILE: ../../../third_party/skia/src/effects/SkOverdrawColorFilter.cpp +FILE: ../../../third_party/skia/src/effects/imagefilters/SkArithmeticImageFilter.cpp +FILE: ../../../third_party/skia/src/effects/imagefilters/SkShaderImageFilter.cpp +FILE: ../../../third_party/skia/src/gpu/Swizzle.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrAppliedClip.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrAuditTrail.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrAuditTrail.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrColorSpaceXform.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrColorSpaceXform.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrDirectContextPriv.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrFixedClip.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrOpsRenderPass.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrOpsRenderPass.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrProgramDesc.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrRenderTargetProxy.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrRenderTargetProxy.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrResourceHandle.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrScissorState.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrShaderVar.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrShaderVar.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrStencilSettings.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrStyle.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrStyle.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrSurfaceProxy.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrSurfaceProxy.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrTextureProxy.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrTextureProxy.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrTextureRenderTargetProxy.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrTextureRenderTargetProxy.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrUserStencilSettings.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrWindowRectangles.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrWindowRectsState.h +FILE: ../../../third_party/skia/src/gpu/ganesh/SurfaceContext.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/SurfaceContext.h +FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DPipelineStateDataManager.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrShadowGeoProc.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrShadowGeoProc.h +FILE: ../../../third_party/skia/src/gpu/ganesh/geometry/GrStyledShape.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/geometry/GrStyledShape.h +FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLBuffer.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLBuffer.h +FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLOpsRenderPass.h +FILE: ../../../third_party/skia/src/gpu/ganesh/gl/glfw/GrGLMakeNativeInterface_glfw.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/glsl/GrGLSLColorSpaceXformHelper.h +FILE: ../../../third_party/skia/src/gpu/ganesh/glsl/GrGLSLProgramDataManager.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/GrPathStencilSettings.h +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/RegionOp.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/RegionOp.h +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/ShadowRRectOp.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/ShadowRRectOp.h +FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkDescriptorPool.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkDescriptorPool.h +FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkDescriptorSet.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkDescriptorSet.h +FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkDescriptorSetManager.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkDescriptorSetManager.h +FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkFramebuffer.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkFramebuffer.h +FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkImageView.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkImageView.h +FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkOpsRenderPass.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkOpsRenderPass.h +FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkPipeline.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkPipeline.h +FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkPipelineState.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkPipelineState.h +FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkPipelineStateBuilder.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkPipelineStateBuilder.h +FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkPipelineStateCache.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkPipelineStateDataManager.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkPipelineStateDataManager.h +FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkResourceProvider.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkResourceProvider.h +FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkSampler.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkSampler.h +FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkUniformHandler.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkUniformHandler.h +FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkVaryingHandler.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkVaryingHandler.h +FILE: ../../../third_party/skia/src/gpu/vk/VulkanExtensions.cpp +FILE: ../../../third_party/skia/src/images/SkImageEncoderPriv.h +FILE: ../../../third_party/skia/src/opts/SkChecksum_opts.h +FILE: ../../../third_party/skia/src/opts/SkOpts_avx.cpp +FILE: ../../../third_party/skia/src/opts/SkOpts_crc32.cpp +FILE: ../../../third_party/skia/src/opts/SkOpts_sse42.cpp +FILE: ../../../third_party/skia/src/opts/SkSwizzler_opts.h +FILE: ../../../third_party/skia/src/pdf/SkBitmapKey.h +FILE: ../../../third_party/skia/src/pdf/SkPDFDocumentPriv.h +FILE: ../../../third_party/skia/src/pdf/SkPDFMakeCIDGlyphWidthsArray.cpp +FILE: ../../../third_party/skia/src/pdf/SkPDFMakeCIDGlyphWidthsArray.h +FILE: ../../../third_party/skia/src/pdf/SkPDFMakeToUnicodeCmap.h +FILE: ../../../third_party/skia/src/ports/SkFontConfigInterface.cpp +FILE: ../../../third_party/skia/src/ports/SkFontMgr_custom_empty_factory.cpp +FILE: ../../../third_party/skia/src/ports/SkImageGeneratorCG.cpp +FILE: ../../../third_party/skia/src/ports/SkImageGeneratorWIC.cpp +FILE: ../../../third_party/skia/src/shaders/SkColorFilterShader.h +FILE: ../../../third_party/skia/src/shaders/SkColorShader.cpp +FILE: ../../../third_party/skia/src/shaders/gradients/Sk4fGradientBase.cpp +FILE: ../../../third_party/skia/src/shaders/gradients/Sk4fGradientBase.h +FILE: ../../../third_party/skia/src/shaders/gradients/Sk4fGradientPriv.h +FILE: ../../../third_party/skia/src/shaders/gradients/Sk4fLinearGradient.cpp +FILE: ../../../third_party/skia/src/shaders/gradients/Sk4fLinearGradient.h +FILE: ../../../third_party/skia/src/sksl/SkSLCompiler.cpp +FILE: ../../../third_party/skia/src/sksl/SkSLCompiler.h +FILE: ../../../third_party/skia/src/sksl/SkSLContext.h +FILE: ../../../third_party/skia/src/sksl/SkSLMemoryLayout.h +FILE: ../../../third_party/skia/src/sksl/SkSLProgramSettings.h +FILE: ../../../third_party/skia/src/sksl/SkSLUtil.cpp +FILE: ../../../third_party/skia/src/sksl/SkSLUtil.h +FILE: ../../../third_party/skia/src/sksl/codegen/SkSLCodeGenerator.h +FILE: ../../../third_party/skia/src/sksl/codegen/SkSLGLSLCodeGenerator.cpp +FILE: ../../../third_party/skia/src/sksl/codegen/SkSLGLSLCodeGenerator.h +FILE: ../../../third_party/skia/src/sksl/codegen/SkSLMetalCodeGenerator.cpp +FILE: ../../../third_party/skia/src/sksl/codegen/SkSLMetalCodeGenerator.h +FILE: ../../../third_party/skia/src/sksl/codegen/SkSLSPIRVCodeGenerator.cpp +FILE: ../../../third_party/skia/src/sksl/codegen/SkSLSPIRVCodeGenerator.h +FILE: ../../../third_party/skia/src/sksl/ir/SkSLBinaryExpression.h +FILE: ../../../third_party/skia/src/sksl/ir/SkSLBlock.h +FILE: ../../../third_party/skia/src/sksl/ir/SkSLBreakStatement.h +FILE: ../../../third_party/skia/src/sksl/ir/SkSLConstructor.h +FILE: ../../../third_party/skia/src/sksl/ir/SkSLContinueStatement.h +FILE: ../../../third_party/skia/src/sksl/ir/SkSLDiscardStatement.h +FILE: ../../../third_party/skia/src/sksl/ir/SkSLDoStatement.h +FILE: ../../../third_party/skia/src/sksl/ir/SkSLExpression.h +FILE: ../../../third_party/skia/src/sksl/ir/SkSLExpressionStatement.h +FILE: ../../../third_party/skia/src/sksl/ir/SkSLExtension.h +FILE: ../../../third_party/skia/src/sksl/ir/SkSLField.h +FILE: ../../../third_party/skia/src/sksl/ir/SkSLFieldAccess.h +FILE: ../../../third_party/skia/src/sksl/ir/SkSLForStatement.h +FILE: ../../../third_party/skia/src/sksl/ir/SkSLFunctionCall.h +FILE: ../../../third_party/skia/src/sksl/ir/SkSLFunctionDeclaration.h +FILE: ../../../third_party/skia/src/sksl/ir/SkSLFunctionDefinition.h +FILE: ../../../third_party/skia/src/sksl/ir/SkSLFunctionReference.h +FILE: ../../../third_party/skia/src/sksl/ir/SkSLIfStatement.h +FILE: ../../../third_party/skia/src/sksl/ir/SkSLIndexExpression.h +FILE: ../../../third_party/skia/src/sksl/ir/SkSLInterfaceBlock.h +FILE: ../../../third_party/skia/src/sksl/ir/SkSLLiteral.h +FILE: ../../../third_party/skia/src/sksl/ir/SkSLModifiersDeclaration.h +FILE: ../../../third_party/skia/src/sksl/ir/SkSLNop.h +FILE: ../../../third_party/skia/src/sksl/ir/SkSLPostfixExpression.h +FILE: ../../../third_party/skia/src/sksl/ir/SkSLPrefixExpression.h +FILE: ../../../third_party/skia/src/sksl/ir/SkSLProgram.h +FILE: ../../../third_party/skia/src/sksl/ir/SkSLReturnStatement.h +FILE: ../../../third_party/skia/src/sksl/ir/SkSLSetting.h +FILE: ../../../third_party/skia/src/sksl/ir/SkSLSwizzle.h +FILE: ../../../third_party/skia/src/sksl/ir/SkSLSymbolTable.cpp +FILE: ../../../third_party/skia/src/sksl/ir/SkSLSymbolTable.h +FILE: ../../../third_party/skia/src/sksl/ir/SkSLTernaryExpression.h +FILE: ../../../third_party/skia/src/sksl/ir/SkSLType.cpp +FILE: ../../../third_party/skia/src/sksl/ir/SkSLType.h +FILE: ../../../third_party/skia/src/sksl/ir/SkSLTypeReference.h +FILE: ../../../third_party/skia/src/sksl/ir/SkSLVarDeclarations.h +FILE: ../../../third_party/skia/src/sksl/ir/SkSLVariable.h +FILE: ../../../third_party/skia/src/sksl/ir/SkSLVariableReference.h +FILE: ../../../third_party/skia/src/utils/SkMultiPictureDocument.cpp +FILE: ../../../third_party/skia/src/utils/SkMultiPictureDocument.h +FILE: ../../../third_party/skia/src/utils/SkMultiPictureDocumentPriv.h +FILE: ../../../third_party/skia/src/utils/SkOSPath.h ---------------------------------------------------------------------------------------------------- -Copyright 2021 Google LLC. +Copyright 2016 Google Inc. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are @@ -6287,151 +3911,11 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ==================================================================================================== LIBRARY: skia -ORIGIN: ../../../third_party/skia/fuzz/FuzzEncoders.cpp + ../../../third_party/skia/LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/skia/fuzz/FuzzEncoders.cpp -FILE: ../../../third_party/skia/fuzz/FuzzPolyUtils.cpp -FILE: ../../../third_party/skia/modules/canvaskit/canvaskit_bindings.cpp -FILE: ../../../third_party/skia/modules/pathkit/pathkit_wasm_bindings.cpp ----------------------------------------------------------------------------------------------------- -Copyright 2018 Google LLC - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - - * Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: skia -ORIGIN: ../../../third_party/skia/fuzz/oss_fuzz/FuzzAPICreateDDL.cpp + ../../../third_party/skia/LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/skia/fuzz/FuzzCreateDDL.cpp -FILE: ../../../third_party/skia/fuzz/FuzzPath.cpp -FILE: ../../../third_party/skia/fuzz/FuzzRRect.cpp -FILE: ../../../third_party/skia/fuzz/oss_fuzz/FuzzAPICreateDDL.cpp -FILE: ../../../third_party/skia/fuzz/oss_fuzz/FuzzAPISVGCanvas.cpp -FILE: ../../../third_party/skia/fuzz/oss_fuzz/FuzzSKP.cpp -FILE: ../../../third_party/skia/fuzz/oss_fuzz/FuzzSVG.cpp -FILE: ../../../third_party/skia/fuzz/oss_fuzz/FuzzSkRuntimeEffect.cpp ----------------------------------------------------------------------------------------------------- -Copyright 2020 Google, LLC - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - - * Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: skia -ORIGIN: ../../../third_party/skia/fuzz/oss_fuzz/FuzzAPIImageFilter.cpp + ../../../third_party/skia/LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/skia/fuzz/FuzzCommon.h -FILE: ../../../third_party/skia/fuzz/oss_fuzz/FuzzAPIImageFilter.cpp -FILE: ../../../third_party/skia/fuzz/oss_fuzz/FuzzAndroidCodec.cpp -FILE: ../../../third_party/skia/fuzz/oss_fuzz/FuzzAnimatedImage.cpp -FILE: ../../../third_party/skia/fuzz/oss_fuzz/FuzzDrawFunctions.cpp -FILE: ../../../third_party/skia/fuzz/oss_fuzz/FuzzGradients.cpp -FILE: ../../../third_party/skia/fuzz/oss_fuzz/FuzzImage.cpp -FILE: ../../../third_party/skia/fuzz/oss_fuzz/FuzzIncrementalImage.cpp -FILE: ../../../third_party/skia/fuzz/oss_fuzz/FuzzJPEGEncoder.cpp -FILE: ../../../third_party/skia/fuzz/oss_fuzz/FuzzJSON.cpp -FILE: ../../../third_party/skia/fuzz/oss_fuzz/FuzzMockGPUCanvas.cpp -FILE: ../../../third_party/skia/fuzz/oss_fuzz/FuzzNullCanvas.cpp -FILE: ../../../third_party/skia/fuzz/oss_fuzz/FuzzPNGEncoder.cpp -FILE: ../../../third_party/skia/fuzz/oss_fuzz/FuzzPathMeasure.cpp -FILE: ../../../third_party/skia/fuzz/oss_fuzz/FuzzPathop.cpp -FILE: ../../../third_party/skia/fuzz/oss_fuzz/FuzzPolyUtils.cpp -FILE: ../../../third_party/skia/fuzz/oss_fuzz/FuzzRasterN32Canvas.cpp -FILE: ../../../third_party/skia/fuzz/oss_fuzz/FuzzTextBlobDeserialize.cpp -FILE: ../../../third_party/skia/fuzz/oss_fuzz/FuzzWEBPEncoder.cpp -FILE: ../../../third_party/skia/modules/skottie/fuzz/FuzzSkottieJSON.cpp ----------------------------------------------------------------------------------------------------- -Copyright 2018 Google, LLC - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - - * Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: skia -ORIGIN: ../../../third_party/skia/fuzz/oss_fuzz/FuzzCOLRv1.cpp + ../../../third_party/skia/LICENSE +ORIGIN: ../../../third_party/skia/src/core/SkScan_AAAPath.cpp + ../../../third_party/skia/LICENSE TYPE: LicenseType.bsd -FILE: ../../../third_party/skia/fuzz/oss_fuzz/FuzzCOLRv1.cpp +FILE: ../../../third_party/skia/src/core/SkScan_AAAPath.cpp ---------------------------------------------------------------------------------------------------- -Copyright 2022 Google, LLC +Copyright 2016 The Android Open Source Project Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are @@ -6464,15 +3948,48 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ==================================================================================================== LIBRARY: skia -ORIGIN: ../../../third_party/skia/fuzz/oss_fuzz/FuzzDDLThreading.cpp + ../../../third_party/skia/LICENSE +ORIGIN: ../../../third_party/skia/infra/bots/gen_tasks_logic/gen_tasks_logic.go + ../../../LICENSE TYPE: LicenseType.bsd -FILE: ../../../third_party/skia/fuzz/FuzzTriangulation.cpp -FILE: ../../../third_party/skia/fuzz/oss_fuzz/FuzzDDLThreading.cpp -FILE: ../../../third_party/skia/fuzz/oss_fuzz/FuzzRegionOp.cpp -FILE: ../../../third_party/skia/fuzz/oss_fuzz/FuzzSkParagraph.cpp -FILE: ../../../third_party/skia/fuzz/oss_fuzz/FuzzTriangulation.cpp +FILE: ../../../third_party/skia/infra/bots/gen_tasks.go +FILE: ../../../third_party/skia/infra/bots/gen_tasks_logic/gen_tasks_logic.go ---------------------------------------------------------------------------------------------------- -Copyright 2021 Google, LLC +Copyright 2016 The Chromium Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: skia +ORIGIN: ../../../third_party/skia/src/gpu/ganesh/GrDistanceFieldGenFromVector.cpp + ../../../third_party/skia/LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/skia/src/gpu/ganesh/GrDistanceFieldGenFromVector.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrDistanceFieldGenFromVector.h +---------------------------------------------------------------------------------------------------- +Copyright 2017 ARM Ltd. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are @@ -6505,15 +4022,251 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ==================================================================================================== LIBRARY: skia -ORIGIN: ../../../third_party/skia/fuzz/oss_fuzz/FuzzSKSL2GLSL.cpp + ../../../third_party/skia/LICENSE +ORIGIN: ../../../third_party/skia/bench/ClipMaskBench.cpp + ../../../third_party/skia/LICENSE TYPE: LicenseType.bsd -FILE: ../../../third_party/skia/fuzz/oss_fuzz/FuzzSKSL2GLSL.cpp -FILE: ../../../third_party/skia/fuzz/oss_fuzz/FuzzSKSL2Metal.cpp -FILE: ../../../third_party/skia/fuzz/oss_fuzz/FuzzSKSL2Pipeline.cpp -FILE: ../../../third_party/skia/fuzz/oss_fuzz/FuzzSKSL2SPIRV.cpp -FILE: ../../../third_party/skia/fuzz/oss_fuzz/FuzzSkDescriptorDeserialize.cpp +FILE: ../../../third_party/skia/bench/ClipMaskBench.cpp +FILE: ../../../third_party/skia/bench/ClipStrategyBench.cpp +FILE: ../../../third_party/skia/bench/PathTextBench.cpp +FILE: ../../../third_party/skia/bench/ShadowBench.cpp +FILE: ../../../third_party/skia/dm/DMGpuTestProcs.cpp +FILE: ../../../third_party/skia/example/HelloWorld.cpp +FILE: ../../../third_party/skia/example/HelloWorld.h +FILE: ../../../third_party/skia/fuzz/FuzzCanvas.cpp +FILE: ../../../third_party/skia/gm/alpha_image.cpp +FILE: ../../../third_party/skia/gm/bitmaptiled.cpp +FILE: ../../../third_party/skia/gm/blurignorexform.cpp +FILE: ../../../third_party/skia/gm/blurimagevmask.cpp +FILE: ../../../third_party/skia/gm/blurpositioning.cpp +FILE: ../../../third_party/skia/gm/blurtextsmallradii.cpp +FILE: ../../../third_party/skia/gm/bug6643.cpp +FILE: ../../../third_party/skia/gm/bug6783.cpp +FILE: ../../../third_party/skia/gm/circle_sizes.cpp +FILE: ../../../third_party/skia/gm/crbug_691386.cpp +FILE: ../../../third_party/skia/gm/crbug_788500.cpp +FILE: ../../../third_party/skia/gm/crosscontextimage.cpp +FILE: ../../../third_party/skia/gm/dftext_blob_persp.cpp +FILE: ../../../third_party/skia/gm/drrect_small_inner.cpp +FILE: ../../../third_party/skia/gm/encode_alpha_jpeg.cpp +FILE: ../../../third_party/skia/gm/flippity.cpp +FILE: ../../../third_party/skia/gm/highcontrastfilter.cpp +FILE: ../../../third_party/skia/gm/hsl.cpp +FILE: ../../../third_party/skia/gm/imageblurclampmode.cpp +FILE: ../../../third_party/skia/gm/imageblurrepeatmode.cpp +FILE: ../../../third_party/skia/gm/jpg_color_cube.cpp +FILE: ../../../third_party/skia/gm/makecolorspace.cpp +FILE: ../../../third_party/skia/gm/manypaths.cpp +FILE: ../../../third_party/skia/gm/pictureshadercache.cpp +FILE: ../../../third_party/skia/gm/radial_gradient_precision.cpp +FILE: ../../../third_party/skia/gm/savelayer.cpp +FILE: ../../../third_party/skia/gm/shadowutils.cpp +FILE: ../../../third_party/skia/gm/simple_magnification.cpp +FILE: ../../../third_party/skia/gm/srgb.cpp +FILE: ../../../third_party/skia/gm/testgradient.cpp +FILE: ../../../third_party/skia/gm/text_scale_skew.cpp +FILE: ../../../third_party/skia/gm/thinconcavepaths.cpp +FILE: ../../../third_party/skia/include/android/SkAndroidFrameworkUtils.h +FILE: ../../../third_party/skia/include/codec/SkEncodedOrigin.h +FILE: ../../../third_party/skia/include/core/SkDeferredDisplayList.h +FILE: ../../../third_party/skia/include/core/SkDeferredDisplayListRecorder.h +FILE: ../../../third_party/skia/include/core/SkExecutor.h +FILE: ../../../third_party/skia/include/core/SkFontArguments.h +FILE: ../../../third_party/skia/include/core/SkPromiseImageTexture.h +FILE: ../../../third_party/skia/include/core/SkSerialProcs.h +FILE: ../../../third_party/skia/include/core/SkSurfaceCharacterization.h +FILE: ../../../third_party/skia/include/core/SkVertices.h +FILE: ../../../third_party/skia/include/docs/SkXPSDocument.h +FILE: ../../../third_party/skia/include/effects/SkHighContrastFilter.h +FILE: ../../../third_party/skia/include/encode/SkEncoder.h +FILE: ../../../third_party/skia/include/encode/SkJpegEncoder.h +FILE: ../../../third_party/skia/include/encode/SkPngEncoder.h +FILE: ../../../third_party/skia/include/encode/SkWebpEncoder.h +FILE: ../../../third_party/skia/include/gpu/GrBackendSemaphore.h +FILE: ../../../third_party/skia/include/gpu/GrBackendSurface.h +FILE: ../../../third_party/skia/include/gpu/mock/GrMockTypes.h +FILE: ../../../third_party/skia/include/gpu/mtl/GrMtlTypes.h +FILE: ../../../third_party/skia/include/ports/SkFontMgr_mac_ct.h +FILE: ../../../third_party/skia/include/private/SkImageInfoPriv.h +FILE: ../../../third_party/skia/include/private/SkMalloc.h +FILE: ../../../third_party/skia/include/private/SkSLString.h +FILE: ../../../third_party/skia/include/private/SkShadowFlags.h +FILE: ../../../third_party/skia/include/utils/SkShadowUtils.h +FILE: ../../../third_party/skia/modules/skottie/gm/ExternalProperties.cpp +FILE: ../../../third_party/skia/modules/skottie/gm/SkottieGM.cpp +FILE: ../../../third_party/skia/modules/skottie/include/Skottie.h +FILE: ../../../third_party/skia/modules/skottie/src/Skottie.cpp +FILE: ../../../third_party/skia/modules/skottie/src/SkottieValue.h +FILE: ../../../third_party/skia/modules/sksg/include/SkSGDraw.h +FILE: ../../../third_party/skia/modules/sksg/include/SkSGEffectNode.h +FILE: ../../../third_party/skia/modules/sksg/include/SkSGGeometryNode.h +FILE: ../../../third_party/skia/modules/sksg/include/SkSGGroup.h +FILE: ../../../third_party/skia/modules/sksg/include/SkSGInvalidationController.h +FILE: ../../../third_party/skia/modules/sksg/include/SkSGMerge.h +FILE: ../../../third_party/skia/modules/sksg/include/SkSGNode.h +FILE: ../../../third_party/skia/modules/sksg/include/SkSGPaint.h +FILE: ../../../third_party/skia/modules/sksg/include/SkSGPath.h +FILE: ../../../third_party/skia/modules/sksg/include/SkSGRect.h +FILE: ../../../third_party/skia/modules/sksg/include/SkSGRenderNode.h +FILE: ../../../third_party/skia/modules/sksg/include/SkSGTransform.h +FILE: ../../../third_party/skia/modules/sksg/src/SkSGDraw.cpp +FILE: ../../../third_party/skia/modules/sksg/src/SkSGEffectNode.cpp +FILE: ../../../third_party/skia/modules/sksg/src/SkSGGeometryNode.cpp +FILE: ../../../third_party/skia/modules/sksg/src/SkSGGroup.cpp +FILE: ../../../third_party/skia/modules/sksg/src/SkSGInvalidationController.cpp +FILE: ../../../third_party/skia/modules/sksg/src/SkSGMerge.cpp +FILE: ../../../third_party/skia/modules/sksg/src/SkSGNode.cpp +FILE: ../../../third_party/skia/modules/sksg/src/SkSGPaint.cpp +FILE: ../../../third_party/skia/modules/sksg/src/SkSGPath.cpp +FILE: ../../../third_party/skia/modules/sksg/src/SkSGRect.cpp +FILE: ../../../third_party/skia/modules/sksg/src/SkSGRenderNode.cpp +FILE: ../../../third_party/skia/modules/sksg/src/SkSGTransform.cpp +FILE: ../../../third_party/skia/modules/svg/include/SkSVGGradient.h +FILE: ../../../third_party/skia/modules/svg/include/SkSVGPattern.h +FILE: ../../../third_party/skia/modules/svg/include/SkSVGRadialGradient.h +FILE: ../../../third_party/skia/modules/svg/include/SkSVGUse.h +FILE: ../../../third_party/skia/modules/svg/src/SkSVGGradient.cpp +FILE: ../../../third_party/skia/modules/svg/src/SkSVGPattern.cpp +FILE: ../../../third_party/skia/modules/svg/src/SkSVGRadialGradient.cpp +FILE: ../../../third_party/skia/modules/svg/src/SkSVGUse.cpp +FILE: ../../../third_party/skia/samplecode/SampleChineseFling.cpp +FILE: ../../../third_party/skia/samplecode/SampleCowboy.cpp +FILE: ../../../third_party/skia/samplecode/SampleMixer.cpp +FILE: ../../../third_party/skia/samplecode/SamplePathText.cpp +FILE: ../../../third_party/skia/samplecode/SampleShadowColor.cpp +FILE: ../../../third_party/skia/samplecode/SampleShadowReference.cpp +FILE: ../../../third_party/skia/samplecode/SampleShadowUtils.cpp +FILE: ../../../third_party/skia/samplecode/SampleStrokeVerb.cpp +FILE: ../../../third_party/skia/src/android/SkAndroidFrameworkUtils.cpp +FILE: ../../../third_party/skia/src/codec/SkBmpBaseCodec.cpp +FILE: ../../../third_party/skia/src/codec/SkBmpBaseCodec.h +FILE: ../../../third_party/skia/src/codec/SkFrameHolder.h +FILE: ../../../third_party/skia/src/codec/SkHeifCodec.cpp +FILE: ../../../third_party/skia/src/codec/SkHeifCodec.h +FILE: ../../../third_party/skia/src/codec/SkJpegPriv.h +FILE: ../../../third_party/skia/src/codec/SkParseEncodedOrigin.h +FILE: ../../../third_party/skia/src/codec/SkPngPriv.h +FILE: ../../../third_party/skia/src/codec/SkStubHeifDecoderAPI.h +FILE: ../../../third_party/skia/src/core/SkArenaAllocList.h +FILE: ../../../third_party/skia/src/core/SkAutoBlitterChoose.h +FILE: ../../../third_party/skia/src/core/SkBlendMode.cpp +FILE: ../../../third_party/skia/src/core/SkClipStackDevice.cpp +FILE: ../../../third_party/skia/src/core/SkClipStackDevice.h +FILE: ../../../third_party/skia/src/core/SkDeferredDisplayListRecorder.cpp +FILE: ../../../third_party/skia/src/core/SkDrawShadowInfo.cpp +FILE: ../../../third_party/skia/src/core/SkDrawShadowInfo.h +FILE: ../../../third_party/skia/src/core/SkDraw_vertices.cpp +FILE: ../../../third_party/skia/src/core/SkExecutor.cpp +FILE: ../../../third_party/skia/src/core/SkFontMgrPriv.h +FILE: ../../../third_party/skia/src/core/SkGaussFilter.cpp +FILE: ../../../third_party/skia/src/core/SkGaussFilter.h +FILE: ../../../third_party/skia/src/core/SkMaskBlurFilter.cpp +FILE: ../../../third_party/skia/src/core/SkMaskBlurFilter.h +FILE: ../../../third_party/skia/src/core/SkPromiseImageTexture.cpp +FILE: ../../../third_party/skia/src/core/SkRasterClipStack.h +FILE: ../../../third_party/skia/src/core/SkSafeMath.h +FILE: ../../../third_party/skia/src/core/SkVertices.cpp +FILE: ../../../third_party/skia/src/core/SkWritePixelsRec.h +FILE: ../../../third_party/skia/src/effects/SkDashImpl.h +FILE: ../../../third_party/skia/src/effects/SkHighContrastFilter.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrAHardwareBufferImageGenerator.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrAHardwareBufferImageGenerator.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrBackendSurface.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrBackendTextureImageGenerator.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrBackendTextureImageGenerator.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrColorInfo.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrColorInfo.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrDeferredProxyUploader.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrDeferredUpload.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrOnFlushResourceProvider.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrOnFlushResourceProvider.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrProcessorSet.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrProcessorSet.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrResourceAllocator.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrResourceAllocator.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrSemaphore.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrSurfaceProxyPriv.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrTextureProxyCacheAccess.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrTextureProxyPriv.h +FILE: ../../../third_party/skia/src/gpu/ganesh/SkGr.h +FILE: ../../../third_party/skia/src/gpu/ganesh/StencilClip.h +FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrAtlasedShaderHelpers.h +FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrTextureEffect.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrTextureEffect.h +FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLOpsRenderPass.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLSemaphore.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLSemaphore.h +FILE: ../../../third_party/skia/src/gpu/ganesh/glsl/GrGLSLVertexGeoBuilder.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/glsl/GrGLSLVertexGeoBuilder.h +FILE: ../../../third_party/skia/src/gpu/ganesh/mock/GrMockAttachment.h +FILE: ../../../third_party/skia/src/gpu/ganesh/mock/GrMockBuffer.h +FILE: ../../../third_party/skia/src/gpu/ganesh/mock/GrMockCaps.h +FILE: ../../../third_party/skia/src/gpu/ganesh/mock/GrMockGpu.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/mock/GrMockGpu.h +FILE: ../../../third_party/skia/src/gpu/ganesh/mock/GrMockOpsRenderPass.h +FILE: ../../../third_party/skia/src/gpu/ganesh/mock/GrMockTexture.h +FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlCaps.h +FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlCaps.mm +FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlGpu.h +FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlGpu.mm +FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlRenderTarget.h +FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlRenderTarget.mm +FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlTexture.h +FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlTexture.mm +FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlTrampoline.h +FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlTrampoline.mm +FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlUtil.h +FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlUtil.mm +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/ClearOp.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/GrSimpleMeshDrawOpHelper.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/GrSimpleMeshDrawOpHelper.h +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/TextureOp.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/TextureOp.h +FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkSemaphore.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkSemaphore.h +FILE: ../../../third_party/skia/src/opts/SkUtils_opts.h +FILE: ../../../third_party/skia/src/pdf/SkKeyedImage.cpp +FILE: ../../../third_party/skia/src/pdf/SkKeyedImage.h +FILE: ../../../third_party/skia/src/pdf/SkPDFGradientShader.cpp +FILE: ../../../third_party/skia/src/pdf/SkPDFGradientShader.h +FILE: ../../../third_party/skia/src/ports/SkFontMgr_custom_directory.cpp +FILE: ../../../third_party/skia/src/ports/SkFontMgr_custom_embedded.cpp +FILE: ../../../third_party/skia/src/ports/SkFontMgr_custom_empty.cpp +FILE: ../../../third_party/skia/src/ports/SkFontMgr_mac_ct_factory.cpp +FILE: ../../../third_party/skia/src/ports/SkOSFile_ios.h +FILE: ../../../third_party/skia/src/sfnt/SkOTTable_fvar.h +FILE: ../../../third_party/skia/src/shaders/SkShaderBase.h +FILE: ../../../third_party/skia/src/sksl/SkSLFileOutputStream.h +FILE: ../../../third_party/skia/src/sksl/SkSLLexer.cpp +FILE: ../../../third_party/skia/src/sksl/SkSLLexer.h +FILE: ../../../third_party/skia/src/sksl/SkSLOutputStream.h +FILE: ../../../third_party/skia/src/sksl/SkSLString.cpp +FILE: ../../../third_party/skia/src/sksl/SkSLStringStream.h +FILE: ../../../third_party/skia/src/sksl/codegen/SkSLPipelineStageCodeGenerator.h +FILE: ../../../third_party/skia/src/sksl/ir/SkSLSetting.cpp +FILE: ../../../third_party/skia/src/sksl/ir/SkSLSwitchCase.h +FILE: ../../../third_party/skia/src/sksl/ir/SkSLSwitchStatement.h +FILE: ../../../third_party/skia/src/sksl/lex/DFA.h +FILE: ../../../third_party/skia/src/sksl/lex/DFAState.h +FILE: ../../../third_party/skia/src/sksl/lex/LexUtil.h +FILE: ../../../third_party/skia/src/sksl/lex/Main.cpp +FILE: ../../../third_party/skia/src/sksl/lex/NFA.cpp +FILE: ../../../third_party/skia/src/sksl/lex/NFA.h +FILE: ../../../third_party/skia/src/sksl/lex/NFAState.h +FILE: ../../../third_party/skia/src/sksl/lex/NFAtoDFA.h +FILE: ../../../third_party/skia/src/sksl/lex/RegexNode.cpp +FILE: ../../../third_party/skia/src/sksl/lex/RegexNode.h +FILE: ../../../third_party/skia/src/sksl/lex/RegexParser.cpp +FILE: ../../../third_party/skia/src/sksl/lex/RegexParser.h +FILE: ../../../third_party/skia/src/utils/SkFloatToDecimal.cpp +FILE: ../../../third_party/skia/src/utils/SkFloatToDecimal.h +FILE: ../../../third_party/skia/src/utils/SkJSONWriter.cpp +FILE: ../../../third_party/skia/src/utils/SkJSONWriter.h +FILE: ../../../third_party/skia/src/utils/SkPolyUtils.cpp +FILE: ../../../third_party/skia/src/utils/SkPolyUtils.h +FILE: ../../../third_party/skia/src/utils/SkShadowTessellator.cpp +FILE: ../../../third_party/skia/src/utils/SkShadowTessellator.h +FILE: ../../../third_party/skia/src/utils/SkShadowUtils.cpp ---------------------------------------------------------------------------------------------------- -Copyright 2019 Google, LLC +Copyright 2017 Google Inc. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are @@ -6545,217 +4298,278 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ==================================================================================================== ==================================================================================================== -LIBRARY: skia -ORIGIN: ../../../third_party/skia/gm/drawlines_with_local_matrix.cpp + ../../../third_party/skia/LICENSE +LIBRARY: vulkanmemoryallocator +ORIGIN: ../../../third_party/skia/third_party/vulkanmemoryallocator/GrVulkanMemoryAllocator.cpp + ../../../third_party/skia/modules/canvaskit/npm_build/LICENSE TYPE: LicenseType.bsd -FILE: ../../../third_party/skia/gm/drawlines_with_local_matrix.cpp -FILE: ../../../third_party/skia/gm/palette.cpp -FILE: ../../../third_party/skia/include/core/SkOpenTypeSVGDecoder.h -FILE: ../../../third_party/skia/include/gpu/mtl/MtlMemoryAllocator.h -FILE: ../../../third_party/skia/modules/skottie/src/BlendModes.cpp -FILE: ../../../third_party/skia/modules/skottie/src/text/Font.cpp -FILE: ../../../third_party/skia/modules/skottie/src/text/Font.h -FILE: ../../../third_party/skia/modules/skunicode/src/SkUnicode_client.cpp -FILE: ../../../third_party/skia/modules/svg/include/SkSVGOpenTypeSVGDecoder.h -FILE: ../../../third_party/skia/modules/svg/src/SkSVGOpenTypeSVGDecoder.cpp -FILE: ../../../third_party/skia/samplecode/SampleSBIX.cpp -FILE: ../../../third_party/skia/src/codec/SkAvifCodec.cpp -FILE: ../../../third_party/skia/src/codec/SkAvifCodec.h -FILE: ../../../third_party/skia/src/gpu/graphite/mtl/MtlComputeCommandEncoder.h -FILE: ../../../third_party/skia/src/sfnt/SkOTTable_hmtx.h -FILE: ../../../third_party/skia/src/sksl/codegen/SkSLWGSLCodeGenerator.cpp -FILE: ../../../third_party/skia/src/sksl/codegen/SkSLWGSLCodeGenerator.h -FILE: ../../../third_party/skia/src/sksl/ir/SkSLLiteral.cpp -FILE: ../../../third_party/skia/src/text/gpu/SDFMaskFilter.h -FILE: ../../../third_party/skia/src/utils/SkBlitterTrace.h -FILE: ../../../third_party/skia/src/utils/SkBlitterTraceCommon.h -FILE: ../../../third_party/skia/src/utils/SkCycles.h +FILE: ../../../third_party/skia/third_party/vulkanmemoryallocator/GrVulkanMemoryAllocator.cpp +FILE: ../../../third_party/skia/third_party/vulkanmemoryallocator/GrVulkanMemoryAllocator.h ---------------------------------------------------------------------------------------------------- -Copyright 2022 Google Inc. +Copyright 2018 Google Inc. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - - * Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: skia -ORIGIN: ../../../third_party/skia/include/config/SkUserConfig.h + ../../../third_party/skia/LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/skia/include/config/SkUserConfig.h -FILE: ../../../third_party/skia/include/core/SkBitmap.h -FILE: ../../../third_party/skia/include/core/SkCanvas.h -FILE: ../../../third_party/skia/include/core/SkColor.h -FILE: ../../../third_party/skia/include/core/SkColorFilter.h -FILE: ../../../third_party/skia/include/core/SkColorPriv.h -FILE: ../../../third_party/skia/include/core/SkFlattenable.h -FILE: ../../../third_party/skia/include/core/SkGraphics.h -FILE: ../../../third_party/skia/include/core/SkMaskFilter.h -FILE: ../../../third_party/skia/include/core/SkMath.h -FILE: ../../../third_party/skia/include/core/SkMatrix.h -FILE: ../../../third_party/skia/include/core/SkPaint.h -FILE: ../../../third_party/skia/include/core/SkPath.h -FILE: ../../../third_party/skia/include/core/SkPathEffect.h -FILE: ../../../third_party/skia/include/core/SkPathMeasure.h -FILE: ../../../third_party/skia/include/core/SkPoint.h -FILE: ../../../third_party/skia/include/core/SkRect.h -FILE: ../../../third_party/skia/include/core/SkRefCnt.h -FILE: ../../../third_party/skia/include/core/SkScalar.h -FILE: ../../../third_party/skia/include/core/SkShader.h -FILE: ../../../third_party/skia/include/core/SkStream.h -FILE: ../../../third_party/skia/include/core/SkString.h -FILE: ../../../third_party/skia/include/core/SkTime.h -FILE: ../../../third_party/skia/include/core/SkTypeface.h -FILE: ../../../third_party/skia/include/core/SkTypes.h -FILE: ../../../third_party/skia/include/effects/Sk1DPathEffect.h -FILE: ../../../third_party/skia/include/effects/Sk2DPathEffect.h -FILE: ../../../third_party/skia/include/effects/SkBlurMaskFilter.h -FILE: ../../../third_party/skia/include/effects/SkCornerPathEffect.h -FILE: ../../../third_party/skia/include/effects/SkDashPathEffect.h -FILE: ../../../third_party/skia/include/effects/SkDiscretePathEffect.h -FILE: ../../../third_party/skia/include/effects/SkGradientShader.h -FILE: ../../../third_party/skia/include/effects/SkTableMaskFilter.h -FILE: ../../../third_party/skia/include/private/SkColorData.h -FILE: ../../../third_party/skia/include/private/SkDeque.h -FILE: ../../../third_party/skia/include/private/SkFixed.h -FILE: ../../../third_party/skia/include/private/SkFloatingPoint.h -FILE: ../../../third_party/skia/include/private/SkNoncopyable.h -FILE: ../../../third_party/skia/include/private/SkTDArray.h -FILE: ../../../third_party/skia/include/private/SkTemplates.h -FILE: ../../../third_party/skia/include/utils/SkBase64.h -FILE: ../../../third_party/skia/include/utils/SkCamera.h -FILE: ../../../third_party/skia/include/utils/SkParse.h -FILE: ../../../third_party/skia/include/utils/SkParsePath.h -FILE: ../../../third_party/skia/include/utils/SkRandom.h -FILE: ../../../third_party/skia/src/core/SkAlphaRuns.cpp -FILE: ../../../third_party/skia/src/core/SkAnalyticEdge.cpp -FILE: ../../../third_party/skia/src/core/SkAnalyticEdge.h -FILE: ../../../third_party/skia/src/core/SkAntiRun.h -FILE: ../../../third_party/skia/src/core/SkBlitBWMaskTemplate.h -FILE: ../../../third_party/skia/src/core/SkBlitter.cpp -FILE: ../../../third_party/skia/src/core/SkBlitter.h -FILE: ../../../third_party/skia/src/core/SkBlitter_A8.cpp -FILE: ../../../third_party/skia/src/core/SkBlitter_ARGB32.cpp -FILE: ../../../third_party/skia/src/core/SkBlitter_Sprite.cpp -FILE: ../../../third_party/skia/src/core/SkBlurMF.cpp -FILE: ../../../third_party/skia/src/core/SkBlurMask.cpp -FILE: ../../../third_party/skia/src/core/SkBlurMask.h -FILE: ../../../third_party/skia/src/core/SkBuffer.cpp -FILE: ../../../third_party/skia/src/core/SkBuffer.h -FILE: ../../../third_party/skia/src/core/SkColor.cpp -FILE: ../../../third_party/skia/src/core/SkColorFilter.cpp -FILE: ../../../third_party/skia/src/core/SkColorFilterBase.h -FILE: ../../../third_party/skia/src/core/SkCoreBlitters.h -FILE: ../../../third_party/skia/src/core/SkDebug.cpp -FILE: ../../../third_party/skia/src/core/SkDeque.cpp -FILE: ../../../third_party/skia/src/core/SkDescriptor.h -FILE: ../../../third_party/skia/src/core/SkDraw.cpp -FILE: ../../../third_party/skia/src/core/SkDraw.h -FILE: ../../../third_party/skia/src/core/SkEdge.cpp -FILE: ../../../third_party/skia/src/core/SkEdge.h -FILE: ../../../third_party/skia/src/core/SkEndian.h -FILE: ../../../third_party/skia/src/core/SkFDot6.h -FILE: ../../../third_party/skia/src/core/SkGeometry.cpp -FILE: ../../../third_party/skia/src/core/SkGeometry.h -FILE: ../../../third_party/skia/src/core/SkGlyph.h -FILE: ../../../third_party/skia/src/core/SkGraphics.cpp -FILE: ../../../third_party/skia/src/core/SkMask.h -FILE: ../../../third_party/skia/src/core/SkMaskFilter.cpp -FILE: ../../../third_party/skia/src/core/SkMatrix.cpp -FILE: ../../../third_party/skia/src/core/SkModeColorFilter.cpp -FILE: ../../../third_party/skia/src/core/SkOSFile.h -FILE: ../../../third_party/skia/src/core/SkPaint.cpp -FILE: ../../../third_party/skia/src/core/SkPath.cpp -FILE: ../../../third_party/skia/src/core/SkPathEffect.cpp -FILE: ../../../third_party/skia/src/core/SkPathEffectBase.h -FILE: ../../../third_party/skia/src/core/SkPointPriv.h -FILE: ../../../third_party/skia/src/core/SkRect.cpp -FILE: ../../../third_party/skia/src/core/SkRegion.cpp -FILE: ../../../third_party/skia/src/core/SkRegionPriv.h -FILE: ../../../third_party/skia/src/core/SkRegion_path.cpp -FILE: ../../../third_party/skia/src/core/SkScalerCache.cpp -FILE: ../../../third_party/skia/src/core/SkScalerCache.h -FILE: ../../../third_party/skia/src/core/SkScalerContext.cpp -FILE: ../../../third_party/skia/src/core/SkScalerContext.h -FILE: ../../../third_party/skia/src/core/SkScan.cpp -FILE: ../../../third_party/skia/src/core/SkScanPriv.h -FILE: ../../../third_party/skia/src/core/SkScan_AntiPath.cpp -FILE: ../../../third_party/skia/src/core/SkScan_Hairline.cpp -FILE: ../../../third_party/skia/src/core/SkScan_Path.cpp -FILE: ../../../third_party/skia/src/core/SkSpriteBlitter.h -FILE: ../../../third_party/skia/src/core/SkSpriteBlitter_ARGB32.cpp -FILE: ../../../third_party/skia/src/core/SkStream.cpp -FILE: ../../../third_party/skia/src/core/SkString.cpp -FILE: ../../../third_party/skia/src/core/SkStroke.h -FILE: ../../../third_party/skia/src/core/SkStrokerPriv.cpp -FILE: ../../../third_party/skia/src/core/SkStrokerPriv.h -FILE: ../../../third_party/skia/src/core/SkTSearch.cpp -FILE: ../../../third_party/skia/src/core/SkTSearch.h -FILE: ../../../third_party/skia/src/core/SkTSort.h -FILE: ../../../third_party/skia/src/core/SkUtils.cpp -FILE: ../../../third_party/skia/src/core/SkUtils.h -FILE: ../../../third_party/skia/src/core/SkXfermode.cpp -FILE: ../../../third_party/skia/src/core/SkXfermodePriv.h -FILE: ../../../third_party/skia/src/effects/Sk1DPathEffect.cpp -FILE: ../../../third_party/skia/src/effects/Sk2DPathEffect.cpp -FILE: ../../../third_party/skia/src/effects/SkCornerPathEffect.cpp -FILE: ../../../third_party/skia/src/effects/SkDashPathEffect.cpp -FILE: ../../../third_party/skia/src/effects/SkDiscretePathEffect.cpp -FILE: ../../../third_party/skia/src/effects/SkEmbossMask.cpp -FILE: ../../../third_party/skia/src/effects/SkEmbossMask.h -FILE: ../../../third_party/skia/src/effects/SkEmbossMaskFilter.cpp -FILE: ../../../third_party/skia/src/effects/SkEmbossMaskFilter.h -FILE: ../../../third_party/skia/src/images/SkPngEncoder.cpp -FILE: ../../../third_party/skia/src/ports/SkDebug_android.cpp -FILE: ../../../third_party/skia/src/ports/SkDebug_stdio.cpp -FILE: ../../../third_party/skia/src/ports/SkFontHost_FreeType.cpp -FILE: ../../../third_party/skia/src/ports/SkFontHost_win.cpp -FILE: ../../../third_party/skia/src/ports/SkFontMgr_custom.cpp -FILE: ../../../third_party/skia/src/ports/SkFontMgr_custom.h -FILE: ../../../third_party/skia/src/ports/SkFontMgr_mac_ct.cpp -FILE: ../../../third_party/skia/src/ports/SkOSFile_stdio.cpp -FILE: ../../../third_party/skia/src/ports/SkScalerContext_mac_ct.cpp -FILE: ../../../third_party/skia/src/ports/SkTypeface_mac_ct.cpp -FILE: ../../../third_party/skia/src/shaders/SkBitmapProcShader.h -FILE: ../../../third_party/skia/src/shaders/SkComposeShader.cpp -FILE: ../../../third_party/skia/src/shaders/SkShader.cpp -FILE: ../../../third_party/skia/src/shaders/gradients/SkGradientShader.cpp -FILE: ../../../third_party/skia/src/utils/SkBase64.cpp -FILE: ../../../third_party/skia/src/utils/SkCamera.cpp -FILE: ../../../third_party/skia/src/utils/SkParse.cpp -FILE: ../../../third_party/skia/src/utils/SkParseColor.cpp -FILE: ../../../third_party/skia/src/xml/SkDOM.cpp -FILE: ../../../third_party/skia/src/xml/SkDOM.h -FILE: ../../../third_party/skia/src/xml/SkXMLParser.cpp -FILE: ../../../third_party/skia/src/xml/SkXMLParser.h -FILE: ../../../third_party/skia/src/xml/SkXMLWriter.cpp -FILE: ../../../third_party/skia/src/xml/SkXMLWriter.h +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: skia +ORIGIN: ../../../third_party/skia/bench/ClearBench.cpp + ../../../third_party/skia/LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/skia/bench/ClearBench.cpp +FILE: ../../../third_party/skia/bench/CompositingImagesBench.cpp +FILE: ../../../third_party/skia/bench/CubicMapBench.cpp +FILE: ../../../third_party/skia/bench/ImageCycleBench.cpp +FILE: ../../../third_party/skia/bench/JSONBench.cpp +FILE: ../../../third_party/skia/bench/PathOpsBench.cpp +FILE: ../../../third_party/skia/bench/PolyUtilsBench.cpp +FILE: ../../../third_party/skia/bench/ShaderMaskFilterBench.cpp +FILE: ../../../third_party/skia/bench/TypefaceBench.cpp +FILE: ../../../third_party/skia/fuzz/FuzzCommon.cpp +FILE: ../../../third_party/skia/fuzz/FuzzPathMeasure.cpp +FILE: ../../../third_party/skia/fuzz/FuzzRegionOp.cpp +FILE: ../../../third_party/skia/fuzz/oss_fuzz/FuzzImageFilterDeserialize.cpp +FILE: ../../../third_party/skia/fuzz/oss_fuzz/FuzzPathDeserialize.cpp +FILE: ../../../third_party/skia/fuzz/oss_fuzz/FuzzRegionDeserialize.cpp +FILE: ../../../third_party/skia/fuzz/oss_fuzz/FuzzRegionSetPath.cpp +FILE: ../../../third_party/skia/gm/analytic_gradients.cpp +FILE: ../../../third_party/skia/gm/androidblendmodes.cpp +FILE: ../../../third_party/skia/gm/b_119394958.cpp +FILE: ../../../third_party/skia/gm/clockwise.cpp +FILE: ../../../third_party/skia/gm/crbug_847759.cpp +FILE: ../../../third_party/skia/gm/crbug_884166.cpp +FILE: ../../../third_party/skia/gm/crbug_887103.cpp +FILE: ../../../third_party/skia/gm/crbug_892988.cpp +FILE: ../../../third_party/skia/gm/crbug_899512.cpp +FILE: ../../../third_party/skia/gm/crbug_905548.cpp +FILE: ../../../third_party/skia/gm/daa.cpp +FILE: ../../../third_party/skia/gm/drawimageset.cpp +FILE: ../../../third_party/skia/gm/drawquadset.cpp +FILE: ../../../third_party/skia/gm/fontregen.cpp +FILE: ../../../third_party/skia/gm/fwidth_squircle.cpp +FILE: ../../../third_party/skia/gm/gradients_degenerate.cpp +FILE: ../../../third_party/skia/gm/hugepath.cpp +FILE: ../../../third_party/skia/gm/localmatrixshader.cpp +FILE: ../../../third_party/skia/gm/make_raster_image.cpp +FILE: ../../../third_party/skia/gm/mandoline.cpp +FILE: ../../../third_party/skia/gm/orientation.cpp +FILE: ../../../third_party/skia/gm/p3.cpp +FILE: ../../../third_party/skia/gm/pathmeasure.cpp +FILE: ../../../third_party/skia/gm/perspimages.cpp +FILE: ../../../third_party/skia/gm/polygonoffset.cpp +FILE: ../../../third_party/skia/gm/scaledemoji.cpp +FILE: ../../../third_party/skia/gm/scaledemoji_rendering.cpp +FILE: ../../../third_party/skia/gm/shadermaskfilter.cpp +FILE: ../../../third_party/skia/gm/sharedcorners.cpp +FILE: ../../../third_party/skia/gm/trickycubicstrokes.cpp +FILE: ../../../third_party/skia/gm/unpremul.cpp +FILE: ../../../third_party/skia/gm/wacky_yuv_formats.cpp +FILE: ../../../third_party/skia/include/android/SkAnimatedImage.h +FILE: ../../../third_party/skia/include/core/SkCanvasVirtualEnforcer.h +FILE: ../../../third_party/skia/include/core/SkContourMeasure.h +FILE: ../../../third_party/skia/include/core/SkCoverageMode.h +FILE: ../../../third_party/skia/include/core/SkCubicMap.h +FILE: ../../../third_party/skia/include/core/SkFontMetrics.h +FILE: ../../../third_party/skia/include/core/SkFontParameters.h +FILE: ../../../third_party/skia/include/core/SkFontTypes.h +FILE: ../../../third_party/skia/include/core/SkSpan.h +FILE: ../../../third_party/skia/include/effects/SkOpPathEffect.h +FILE: ../../../third_party/skia/include/effects/SkShaderMaskFilter.h +FILE: ../../../third_party/skia/include/effects/SkTrimPathEffect.h +FILE: ../../../third_party/skia/include/gpu/GrBackendDrawableInfo.h +FILE: ../../../third_party/skia/include/gpu/GrDriverBugWorkarounds.h +FILE: ../../../third_party/skia/include/gpu/vk/GrVkMemoryAllocator.h +FILE: ../../../third_party/skia/include/ports/SkFontMgr_fuchsia.h +FILE: ../../../third_party/skia/include/private/SkMacros.h +FILE: ../../../third_party/skia/include/private/SkSafe32.h +FILE: ../../../third_party/skia/include/private/SkTo.h +FILE: ../../../third_party/skia/include/private/gpu/ganesh/GrVkTypesPriv.h +FILE: ../../../third_party/skia/include/private/gpu/vk/SkiaVulkan.h +FILE: ../../../third_party/skia/include/utils/SkAnimCodecPlayer.h +FILE: ../../../third_party/skia/include/utils/SkTextUtils.h +FILE: ../../../third_party/skia/modules/skcms/skcms.cc +FILE: ../../../third_party/skia/modules/skcms/skcms.h +FILE: ../../../third_party/skia/modules/skcms/skcms_internal.h +FILE: ../../../third_party/skia/modules/skcms/src/Transform_inl.h +FILE: ../../../third_party/skia/modules/skottie/include/SkottieProperty.h +FILE: ../../../third_party/skia/modules/skottie/src/SkottieJson.cpp +FILE: ../../../third_party/skia/modules/skottie/src/SkottieJson.h +FILE: ../../../third_party/skia/modules/skottie/src/SkottiePriv.h +FILE: ../../../third_party/skia/modules/skottie/src/SkottieProperty.cpp +FILE: ../../../third_party/skia/modules/skottie/src/SkottieTest.cpp +FILE: ../../../third_party/skia/modules/skottie/src/SkottieTool.cpp +FILE: ../../../third_party/skia/modules/skottie/src/layers/PrecompLayer.cpp +FILE: ../../../third_party/skia/modules/skottie/src/layers/TextLayer.cpp +FILE: ../../../third_party/skia/modules/skottie/src/layers/shapelayer/ShapeLayer.cpp +FILE: ../../../third_party/skia/modules/skottie/utils/SkottieUtils.cpp +FILE: ../../../third_party/skia/modules/skottie/utils/SkottieUtils.h +FILE: ../../../third_party/skia/modules/sksg/include/SkSGClipEffect.h +FILE: ../../../third_party/skia/modules/sksg/include/SkSGColorFilter.h +FILE: ../../../third_party/skia/modules/sksg/include/SkSGGradient.h +FILE: ../../../third_party/skia/modules/sksg/include/SkSGImage.h +FILE: ../../../third_party/skia/modules/sksg/include/SkSGMaskEffect.h +FILE: ../../../third_party/skia/modules/sksg/include/SkSGOpacityEffect.h +FILE: ../../../third_party/skia/modules/sksg/include/SkSGPlane.h +FILE: ../../../third_party/skia/modules/sksg/include/SkSGScene.h +FILE: ../../../third_party/skia/modules/sksg/include/SkSGText.h +FILE: ../../../third_party/skia/modules/sksg/src/SkSGClipEffect.cpp +FILE: ../../../third_party/skia/modules/sksg/src/SkSGColorFilter.cpp +FILE: ../../../third_party/skia/modules/sksg/src/SkSGGradient.cpp +FILE: ../../../third_party/skia/modules/sksg/src/SkSGImage.cpp +FILE: ../../../third_party/skia/modules/sksg/src/SkSGMaskEffect.cpp +FILE: ../../../third_party/skia/modules/sksg/src/SkSGOpacityEffect.cpp +FILE: ../../../third_party/skia/modules/sksg/src/SkSGPlane.cpp +FILE: ../../../third_party/skia/modules/sksg/src/SkSGScene.cpp +FILE: ../../../third_party/skia/modules/sksg/src/SkSGText.cpp +FILE: ../../../third_party/skia/modules/skshaper/src/SkShaper.cpp +FILE: ../../../third_party/skia/samplecode/SampleAnimatedImage.cpp +FILE: ../../../third_party/skia/samplecode/SampleCusp.cpp +FILE: ../../../third_party/skia/samplecode/SampleFlutterAnimate.cpp +FILE: ../../../third_party/skia/samplecode/SampleGlyphTransform.cpp +FILE: ../../../third_party/skia/src/android/SkAnimatedImage.cpp +FILE: ../../../third_party/skia/src/codec/SkEncodedInfo.cpp +FILE: ../../../third_party/skia/src/codec/SkParseEncodedOrigin.cpp +FILE: ../../../third_party/skia/src/codec/SkWuffsCodec.cpp +FILE: ../../../third_party/skia/src/codec/SkWuffsCodec.h +FILE: ../../../third_party/skia/src/core/SkCanvasPriv.cpp +FILE: ../../../third_party/skia/src/core/SkChromeRemoteGlyphCache.cpp +FILE: ../../../third_party/skia/src/core/SkColorSpaceXformSteps.cpp +FILE: ../../../third_party/skia/src/core/SkColorSpaceXformSteps.h +FILE: ../../../third_party/skia/src/core/SkContourMeasure.cpp +FILE: ../../../third_party/skia/src/core/SkCubicMap.cpp +FILE: ../../../third_party/skia/src/core/SkCubicSolver.h +FILE: ../../../third_party/skia/src/core/SkDeferredDisplayList.cpp +FILE: ../../../third_party/skia/src/core/SkDeferredDisplayListPriv.h +FILE: ../../../third_party/skia/src/core/SkDraw_text.cpp +FILE: ../../../third_party/skia/src/core/SkFontPriv.h +FILE: ../../../third_party/skia/src/core/SkGlyph.cpp +FILE: ../../../third_party/skia/src/core/SkIPoint16.h +FILE: ../../../third_party/skia/src/core/SkMaskFilterBase.h +FILE: ../../../third_party/skia/src/core/SkPath_serial.cpp +FILE: ../../../third_party/skia/src/core/SkPicturePriv.h +FILE: ../../../third_party/skia/src/core/SkRRectPriv.h +FILE: ../../../third_party/skia/src/core/SkRectPriv.h +FILE: ../../../third_party/skia/src/core/SkSafeRange.h +FILE: ../../../third_party/skia/src/core/SkStrikeCache.cpp +FILE: ../../../third_party/skia/src/core/SkSurfaceCharacterization.cpp +FILE: ../../../third_party/skia/src/core/SkTDArray.cpp +FILE: ../../../third_party/skia/src/core/SkTextBlobPriv.h +FILE: ../../../third_party/skia/src/core/SkTypeface_remote.cpp +FILE: ../../../third_party/skia/src/core/SkTypeface_remote.h +FILE: ../../../third_party/skia/src/effects/SkOpPE.h +FILE: ../../../third_party/skia/src/effects/SkOpPathEffect.cpp +FILE: ../../../third_party/skia/src/effects/SkShaderMaskFilter.cpp +FILE: ../../../third_party/skia/src/effects/SkTrimPE.h +FILE: ../../../third_party/skia/src/effects/SkTrimPathEffect.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrContextThreadSafeProxyPriv.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrDDLContext.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrDirectContext.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrDriverBugWorkarounds.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrFPArgs.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrProxyProvider.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrProxyProvider.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrResourceProviderPriv.h +FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrSkSLFP.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrSkSLFP.h +FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrYUVtoRGBEffect.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrYUVtoRGBEffect.h +FILE: ../../../third_party/skia/src/gpu/ganesh/geometry/GrQuad.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/gradients/GrGradientBitmapCache.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/gradients/GrGradientBitmapCache.h +FILE: ../../../third_party/skia/src/gpu/ganesh/gradients/GrGradientShader.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/gradients/GrGradientShader.h +FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlAttachment.h +FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlAttachment.mm +FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlBuffer.h +FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlBuffer.mm +FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlCppUtil.h +FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlDepthStencil.mm +FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlOpsRenderPass.h +FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlOpsRenderPass.mm +FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlPipelineState.h +FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlPipelineState.mm +FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlPipelineStateBuilder.h +FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlPipelineStateBuilder.mm +FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlPipelineStateDataManager.h +FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlPipelineStateDataManager.mm +FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlResourceProvider.h +FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlResourceProvider.mm +FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlSampler.h +FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlSampler.mm +FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlTextureRenderTarget.h +FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlTextureRenderTarget.mm +FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlUniformHandler.h +FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlUniformHandler.mm +FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlVaryingHandler.h +FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlVaryingHandler.mm +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/DrawableOp.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/DrawableOp.h +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/FillRRectOp.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/FillRRectOp.h +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/FillRectOp.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/FillRectOp.h +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/QuadPerEdgeAA.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/QuadPerEdgeAA.h +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/StrokeRectOp.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/StrokeRectOp.h +FILE: ../../../third_party/skia/src/gpu/ganesh/text/GrAtlasManager.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/text/GrAtlasManager.h +FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkCommandPool.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkCommandPool.h +FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkImageLayout.h +FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkSamplerYcbcrConversion.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkSamplerYcbcrConversion.h +FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkTypesPriv.cpp +FILE: ../../../third_party/skia/src/gpu/vk/VulkanAMDMemoryAllocator.cpp +FILE: ../../../third_party/skia/src/gpu/vk/VulkanAMDMemoryAllocator.h +FILE: ../../../third_party/skia/src/image/SkImage_GpuBase.cpp +FILE: ../../../third_party/skia/src/image/SkImage_GpuBase.h +FILE: ../../../third_party/skia/src/image/SkImage_GpuYUVA.cpp +FILE: ../../../third_party/skia/src/image/SkImage_GpuYUVA.h +FILE: ../../../third_party/skia/src/image/SkImage_Lazy.h +FILE: ../../../third_party/skia/src/opts/SkBitmapProcState_opts.h +FILE: ../../../third_party/skia/src/opts/SkOpts_hsw.cpp +FILE: ../../../third_party/skia/src/opts/SkRasterPipeline_opts.h +FILE: ../../../third_party/skia/src/pathops/SkPathOpsAsWinding.cpp +FILE: ../../../third_party/skia/src/pathops/SkPathOpsTCurve.h +FILE: ../../../third_party/skia/src/pdf/SkClusterator.cpp +FILE: ../../../third_party/skia/src/pdf/SkClusterator.h +FILE: ../../../third_party/skia/src/pdf/SkPDFTag.cpp +FILE: ../../../third_party/skia/src/pdf/SkPDFTag.h +FILE: ../../../third_party/skia/src/ports/SkFontMgr_fuchsia.cpp +FILE: ../../../third_party/skia/src/sksl/codegen/SkSLPipelineStageCodeGenerator.cpp +FILE: ../../../third_party/skia/src/sksl/ir/SkSLVariableReference.cpp +FILE: ../../../third_party/skia/src/text/gpu/SDFMaskFilter.cpp +FILE: ../../../third_party/skia/src/utils/SkAnimCodecPlayer.cpp +FILE: ../../../third_party/skia/src/utils/SkCallableTraits.h +FILE: ../../../third_party/skia/src/utils/SkJSON.cpp +FILE: ../../../third_party/skia/src/utils/SkJSON.h +FILE: ../../../third_party/skia/src/utils/SkTextUtils.cpp +FILE: ../../../third_party/skia/src/utils/mac/SkUniqueCFRef.h +FILE: ../../../third_party/skia/src/utils/win/SkDWriteNTDDI_VERSION.h ---------------------------------------------------------------------------------------------------- -Copyright 2006 The Android Open Source Project +Copyright 2018 Google Inc. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are @@ -6788,17 +4602,14 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ==================================================================================================== LIBRARY: skia -ORIGIN: ../../../third_party/skia/include/core/SkDrawLooper.h + ../../../third_party/skia/LICENSE +ORIGIN: ../../../third_party/skia/fuzz/FuzzEncoders.cpp + ../../../third_party/skia/LICENSE TYPE: LicenseType.bsd -FILE: ../../../third_party/skia/include/core/SkDrawLooper.h -FILE: ../../../third_party/skia/src/core/SkScan.h -FILE: ../../../third_party/skia/src/core/SkScan_Antihair.cpp -FILE: ../../../third_party/skia/src/core/SkTypeface.cpp -FILE: ../../../third_party/skia/src/effects/imagefilters/SkBlurImageFilter.cpp -FILE: ../../../third_party/skia/src/ports/SkFontMgr_android_parser.cpp -FILE: ../../../third_party/skia/src/ports/SkFontMgr_android_parser.h +FILE: ../../../third_party/skia/fuzz/FuzzEncoders.cpp +FILE: ../../../third_party/skia/fuzz/FuzzPolyUtils.cpp +FILE: ../../../third_party/skia/modules/canvaskit/canvaskit_bindings.cpp +FILE: ../../../third_party/skia/modules/pathkit/pathkit_wasm_bindings.cpp ---------------------------------------------------------------------------------------------------- -Copyright 2011 The Android Open Source Project +Copyright 2018 Google LLC Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are @@ -6831,25 +4642,18 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ==================================================================================================== LIBRARY: skia -ORIGIN: ../../../third_party/skia/include/core/SkMallocPixelRef.h + ../../../third_party/skia/LICENSE +ORIGIN: ../../../third_party/skia/include/docs/SkPDFDocument.h + ../../../third_party/skia/LICENSE TYPE: LicenseType.bsd -FILE: ../../../third_party/skia/include/core/SkMallocPixelRef.h -FILE: ../../../third_party/skia/include/core/SkPixelRef.h -FILE: ../../../third_party/skia/include/core/SkUnPreMultiply.h -FILE: ../../../third_party/skia/include/effects/SkBlurDrawLooper.h -FILE: ../../../third_party/skia/include/private/SkFloatBits.h -FILE: ../../../third_party/skia/src/core/SkBitmap.cpp -FILE: ../../../third_party/skia/src/core/SkCanvas.cpp -FILE: ../../../third_party/skia/src/core/SkMath.cpp -FILE: ../../../third_party/skia/src/core/SkPathMeasure.cpp -FILE: ../../../third_party/skia/src/core/SkPoint.cpp -FILE: ../../../third_party/skia/src/core/SkPtrRecorder.h -FILE: ../../../third_party/skia/src/core/SkStroke.cpp -FILE: ../../../third_party/skia/src/core/SkWriter32.h -FILE: ../../../third_party/skia/src/ports/SkFontMgr_empty_factory.cpp -FILE: ../../../third_party/skia/src/ports/SkImageEncoder_CG.cpp +FILE: ../../../third_party/skia/include/docs/SkPDFDocument.h +FILE: ../../../third_party/skia/src/pdf/SkPDFGlyphUse.h +FILE: ../../../third_party/skia/src/pdf/SkPDFSubsetFont.cpp +FILE: ../../../third_party/skia/src/pdf/SkPDFSubsetFont.h +FILE: ../../../third_party/skia/src/pdf/SkPDFUnion.h +FILE: ../../../third_party/skia/src/pdf/SkUUID.h +FILE: ../../../third_party/skia/src/utils/SkUTF.cpp +FILE: ../../../third_party/skia/src/utils/SkUTF.h ---------------------------------------------------------------------------------------------------- -Copyright 2008 The Android Open Source Project +Copyright 2018 Google LLC. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are @@ -6882,17 +4686,30 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ==================================================================================================== LIBRARY: skia -ORIGIN: ../../../third_party/skia/include/core/SkPicture.h + ../../../third_party/skia/LICENSE +ORIGIN: ../../../third_party/skia/fuzz/oss_fuzz/FuzzAPIImageFilter.cpp + ../../../third_party/skia/LICENSE TYPE: LicenseType.bsd -FILE: ../../../third_party/skia/include/core/SkPicture.h -FILE: ../../../third_party/skia/include/effects/SkColorMatrix.h -FILE: ../../../third_party/skia/include/effects/SkColorMatrixFilter.h -FILE: ../../../third_party/skia/src/core/SkBitmapProcState.h -FILE: ../../../third_party/skia/src/core/SkMask.cpp -FILE: ../../../third_party/skia/src/core/SkPicture.cpp -FILE: ../../../third_party/skia/src/images/SkJpegEncoder.cpp +FILE: ../../../third_party/skia/fuzz/FuzzCommon.h +FILE: ../../../third_party/skia/fuzz/oss_fuzz/FuzzAPIImageFilter.cpp +FILE: ../../../third_party/skia/fuzz/oss_fuzz/FuzzAndroidCodec.cpp +FILE: ../../../third_party/skia/fuzz/oss_fuzz/FuzzAnimatedImage.cpp +FILE: ../../../third_party/skia/fuzz/oss_fuzz/FuzzDrawFunctions.cpp +FILE: ../../../third_party/skia/fuzz/oss_fuzz/FuzzGradients.cpp +FILE: ../../../third_party/skia/fuzz/oss_fuzz/FuzzImage.cpp +FILE: ../../../third_party/skia/fuzz/oss_fuzz/FuzzIncrementalImage.cpp +FILE: ../../../third_party/skia/fuzz/oss_fuzz/FuzzJPEGEncoder.cpp +FILE: ../../../third_party/skia/fuzz/oss_fuzz/FuzzJSON.cpp +FILE: ../../../third_party/skia/fuzz/oss_fuzz/FuzzMockGPUCanvas.cpp +FILE: ../../../third_party/skia/fuzz/oss_fuzz/FuzzNullCanvas.cpp +FILE: ../../../third_party/skia/fuzz/oss_fuzz/FuzzPNGEncoder.cpp +FILE: ../../../third_party/skia/fuzz/oss_fuzz/FuzzPathMeasure.cpp +FILE: ../../../third_party/skia/fuzz/oss_fuzz/FuzzPathop.cpp +FILE: ../../../third_party/skia/fuzz/oss_fuzz/FuzzPolyUtils.cpp +FILE: ../../../third_party/skia/fuzz/oss_fuzz/FuzzRasterN32Canvas.cpp +FILE: ../../../third_party/skia/fuzz/oss_fuzz/FuzzTextBlobDeserialize.cpp +FILE: ../../../third_party/skia/fuzz/oss_fuzz/FuzzWEBPEncoder.cpp +FILE: ../../../third_party/skia/modules/skottie/fuzz/FuzzSkottieJSON.cpp ---------------------------------------------------------------------------------------------------- -Copyright 2007 The Android Open Source Project +Copyright 2018 Google, LLC Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are @@ -6925,11 +4742,243 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ==================================================================================================== LIBRARY: skia -ORIGIN: ../../../third_party/skia/include/core/SkRegion.h + ../../../third_party/skia/LICENSE +ORIGIN: ../../../third_party/skia/src/core/SkGlyphRunPainter.cpp + ../../../third_party/skia/LICENSE TYPE: LicenseType.bsd -FILE: ../../../third_party/skia/include/core/SkRegion.h +FILE: ../../../third_party/skia/src/core/SkGlyphRunPainter.cpp +FILE: ../../../third_party/skia/src/core/SkGlyphRunPainter.h +FILE: ../../../third_party/skia/src/text/GlyphRun.cpp +FILE: ../../../third_party/skia/src/text/GlyphRun.h +---------------------------------------------------------------------------------------------------- +Copyright 2018 The Android Open Source Project + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: skia +ORIGIN: ../../../third_party/skia/include/gpu/GrDriverBugWorkaroundsAutogen.h + ../../../LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/skia/include/gpu/GrDriverBugWorkaroundsAutogen.h +FILE: ../../../third_party/skia/include/utils/SkTraceEventPhase.h +FILE: ../../../third_party/skia/infra/lottiecap/gold/lottie-web-aggregator.go +FILE: ../../../third_party/skia/infra/wasm-common/gold/wasm_gold_aggregator.go +FILE: ../../../third_party/skia/infra/wasm-common/perf/wasm_perf_aggregator.go +---------------------------------------------------------------------------------------------------- +Copyright 2018 The Chromium Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: skia +ORIGIN: ../../../third_party/skia/experimental/ffmpeg/SkVideoDecoder.cpp + ../../../third_party/skia/LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/skia/experimental/ffmpeg/SkVideoDecoder.cpp +FILE: ../../../third_party/skia/experimental/ffmpeg/SkVideoDecoder.h +FILE: ../../../third_party/skia/experimental/ffmpeg/SkVideoEncoder.cpp +FILE: ../../../third_party/skia/experimental/ffmpeg/SkVideoEncoder.h +FILE: ../../../third_party/skia/gm/backdrop.cpp +FILE: ../../../third_party/skia/gm/backdrop_imagefilter_croprect.cpp +FILE: ../../../third_party/skia/gm/bug9331.cpp +FILE: ../../../third_party/skia/gm/clip_sierpinski_region.cpp +FILE: ../../../third_party/skia/gm/collapsepaths.cpp +FILE: ../../../third_party/skia/gm/compositor_quads.cpp +FILE: ../../../third_party/skia/gm/crbug_913349.cpp +FILE: ../../../third_party/skia/gm/crbug_938592.cpp +FILE: ../../../third_party/skia/gm/crbug_947055.cpp +FILE: ../../../third_party/skia/gm/crbug_996140.cpp +FILE: ../../../third_party/skia/gm/ducky_yuv_blend.cpp +FILE: ../../../third_party/skia/gm/fiddle.cpp +FILE: ../../../third_party/skia/gm/mac_aa_explorer.cpp +FILE: ../../../third_party/skia/gm/mixercolorfilter.cpp +FILE: ../../../third_party/skia/gm/overdrawcanvas.cpp +FILE: ../../../third_party/skia/gm/postercircle.cpp +FILE: ../../../third_party/skia/gm/skbug_8664.cpp +FILE: ../../../third_party/skia/gm/skbug_8955.cpp +FILE: ../../../third_party/skia/gm/video_decoder.cpp +FILE: ../../../third_party/skia/gm/yuv420_odd_dim.cpp +FILE: ../../../third_party/skia/include/core/SkTileMode.h +FILE: ../../../third_party/skia/include/gpu/GrContextThreadSafeProxy.h +FILE: ../../../third_party/skia/include/gpu/GrRecordingContext.h +FILE: ../../../third_party/skia/include/gpu/dawn/GrDawnTypes.h +FILE: ../../../third_party/skia/include/ports/SkCFObject.h +FILE: ../../../third_party/skia/include/private/SkSLDefines.h +FILE: ../../../third_party/skia/include/private/SkVx.h +FILE: ../../../third_party/skia/include/private/gpu/ganesh/GrContext_Base.h +FILE: ../../../third_party/skia/include/private/gpu/ganesh/GrImageContext.h +FILE: ../../../third_party/skia/modules/skottie/src/Composition.cpp +FILE: ../../../third_party/skia/modules/skottie/src/Composition.h +FILE: ../../../third_party/skia/modules/skottie/src/Layer.cpp +FILE: ../../../third_party/skia/modules/skottie/src/Layer.h +FILE: ../../../third_party/skia/modules/skottie/src/effects/DropShadowEffect.cpp +FILE: ../../../third_party/skia/modules/skottie/src/effects/Effects.cpp +FILE: ../../../third_party/skia/modules/skottie/src/effects/Effects.h +FILE: ../../../third_party/skia/modules/skottie/src/effects/FillEffect.cpp +FILE: ../../../third_party/skia/modules/skottie/src/effects/GaussianBlurEffect.cpp +FILE: ../../../third_party/skia/modules/skottie/src/effects/GradientEffect.cpp +FILE: ../../../third_party/skia/modules/skottie/src/effects/HueSaturationEffect.cpp +FILE: ../../../third_party/skia/modules/skottie/src/effects/InvertEffect.cpp +FILE: ../../../third_party/skia/modules/skottie/src/effects/LevelsEffect.cpp +FILE: ../../../third_party/skia/modules/skottie/src/effects/LinearWipeEffect.cpp +FILE: ../../../third_party/skia/modules/skottie/src/effects/MotionBlurEffect.cpp +FILE: ../../../third_party/skia/modules/skottie/src/effects/MotionBlurEffect.h +FILE: ../../../third_party/skia/modules/skottie/src/effects/MotionTileEffect.cpp +FILE: ../../../third_party/skia/modules/skottie/src/effects/RadialWipeEffect.cpp +FILE: ../../../third_party/skia/modules/skottie/src/effects/ShiftChannelsEffect.cpp +FILE: ../../../third_party/skia/modules/skottie/src/effects/TintEffect.cpp +FILE: ../../../third_party/skia/modules/skottie/src/effects/TransformEffect.cpp +FILE: ../../../third_party/skia/modules/skottie/src/effects/TritoneEffect.cpp +FILE: ../../../third_party/skia/modules/skottie/src/effects/VenetianBlindsEffect.cpp +FILE: ../../../third_party/skia/modules/skottie/src/layers/FootageLayer.cpp +FILE: ../../../third_party/skia/modules/skottie/src/layers/NullLayer.cpp +FILE: ../../../third_party/skia/modules/skottie/src/layers/SolidLayer.cpp +FILE: ../../../third_party/skia/modules/skottie/src/text/RangeSelector.cpp +FILE: ../../../third_party/skia/modules/skottie/src/text/RangeSelector.h +FILE: ../../../third_party/skia/modules/skottie/src/text/SkottieShaper.cpp +FILE: ../../../third_party/skia/modules/skottie/src/text/SkottieShaper.h +FILE: ../../../third_party/skia/modules/skottie/src/text/TextAdapter.cpp +FILE: ../../../third_party/skia/modules/skottie/src/text/TextAdapter.h +FILE: ../../../third_party/skia/modules/skottie/src/text/TextAnimator.cpp +FILE: ../../../third_party/skia/modules/skottie/src/text/TextAnimator.h +FILE: ../../../third_party/skia/modules/skottie/src/text/TextValue.cpp +FILE: ../../../third_party/skia/modules/skottie/src/text/TextValue.h +FILE: ../../../third_party/skia/modules/sksg/include/SkSGRenderEffect.h +FILE: ../../../third_party/skia/modules/sksg/src/SkSGNodePriv.h +FILE: ../../../third_party/skia/modules/sksg/src/SkSGRenderEffect.cpp +FILE: ../../../third_party/skia/modules/sksg/src/SkSGTransformPriv.h +FILE: ../../../third_party/skia/modules/svg/include/SkSVGText.h +FILE: ../../../third_party/skia/modules/svg/src/SkSVGText.cpp +FILE: ../../../third_party/skia/samplecode/SampleDegenerateQuads.cpp +FILE: ../../../third_party/skia/samplecode/SampleSG.cpp +FILE: ../../../third_party/skia/samplecode/SampleThinAA.cpp +FILE: ../../../third_party/skia/src/codec/SkScalingCodec.h +FILE: ../../../third_party/skia/src/core/SkDescriptor.cpp +FILE: ../../../third_party/skia/src/core/SkDraw_atlas.cpp +FILE: ../../../third_party/skia/src/core/SkEffectPriv.h +FILE: ../../../third_party/skia/src/core/SkEnumerate.h +FILE: ../../../third_party/skia/src/core/SkGlyphBuffer.cpp +FILE: ../../../third_party/skia/src/core/SkGlyphBuffer.h +FILE: ../../../third_party/skia/src/core/SkPathMakers.h +FILE: ../../../third_party/skia/src/core/SkStrikeSpec.h +FILE: ../../../third_party/skia/src/core/SkVMBlitter.cpp +FILE: ../../../third_party/skia/src/core/SkYUVMath.cpp +FILE: ../../../third_party/skia/src/core/SkYUVMath.h +FILE: ../../../third_party/skia/src/core/SkZip.h +FILE: ../../../third_party/skia/src/gpu/GrAHardwareBufferUtils.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrAHardwareBufferUtils.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrAHardwareBufferUtils_impl.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrBaseContextPriv.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrBuffer.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrContextThreadSafeProxy.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrContext_Base.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrCpuBuffer.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrDataUtils.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrDataUtils.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrDirectContextPriv.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrGpuBuffer.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrGpuBuffer.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrImageContext.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrImageContextPriv.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrRecordingContext.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrRecordingContextPriv.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrSPIRVUniformHandler.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrSPIRVUniformHandler.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrSPIRVVaryingHandler.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrSPIRVVaryingHandler.h +FILE: ../../../third_party/skia/src/gpu/ganesh/dawn/GrDawnAttachment.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/dawn/GrDawnAttachment.h +FILE: ../../../third_party/skia/src/gpu/ganesh/dawn/GrDawnBuffer.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/dawn/GrDawnBuffer.h +FILE: ../../../third_party/skia/src/gpu/ganesh/dawn/GrDawnCaps.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/dawn/GrDawnCaps.h +FILE: ../../../third_party/skia/src/gpu/ganesh/dawn/GrDawnGpu.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/dawn/GrDawnGpu.h +FILE: ../../../third_party/skia/src/gpu/ganesh/dawn/GrDawnOpsRenderPass.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/dawn/GrDawnOpsRenderPass.h +FILE: ../../../third_party/skia/src/gpu/ganesh/dawn/GrDawnProgramBuilder.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/dawn/GrDawnProgramBuilder.h +FILE: ../../../third_party/skia/src/gpu/ganesh/dawn/GrDawnProgramDataManager.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/dawn/GrDawnProgramDataManager.h +FILE: ../../../third_party/skia/src/gpu/ganesh/dawn/GrDawnRenderTarget.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/dawn/GrDawnRenderTarget.h +FILE: ../../../third_party/skia/src/gpu/ganesh/dawn/GrDawnRingBuffer.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/dawn/GrDawnRingBuffer.h +FILE: ../../../third_party/skia/src/gpu/ganesh/dawn/GrDawnTexture.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/dawn/GrDawnTexture.h +FILE: ../../../third_party/skia/src/gpu/ganesh/dawn/GrDawnTextureRenderTarget.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/dawn/GrDawnTextureRenderTarget.h +FILE: ../../../third_party/skia/src/gpu/ganesh/dawn/GrDawnUtil.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/dawn/GrDawnUtil.h +FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlCommandBuffer.h +FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlCommandBuffer.mm +FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlDepthStencil.h +FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlSemaphore.h +FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlSemaphore.mm +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/OpsTask.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/OpsTask.h +FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkSecondaryCBDrawContext.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkSecondaryCBDrawContext_impl.h +FILE: ../../../third_party/skia/src/gpu/vk/GrVkSecondaryCBDrawContext.h +FILE: ../../../third_party/skia/src/image/SkSurface_GpuMtl.mm +FILE: ../../../third_party/skia/src/sksl/SkSLOutputStream.cpp +FILE: ../../../third_party/skia/src/text/StrikeForGPU.h +FILE: ../../../third_party/skia/src/utils/SkCharToGlyphCache.cpp +FILE: ../../../third_party/skia/src/utils/SkCharToGlyphCache.h +FILE: ../../../third_party/skia/src/utils/SkClipStackUtils.cpp +FILE: ../../../third_party/skia/src/utils/SkClipStackUtils.h +FILE: ../../../third_party/skia/src/utils/win/SkObjBase.h ---------------------------------------------------------------------------------------------------- -Copyright 2005 The Android Open Source Project +Copyright 2019 Google Inc. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are @@ -6962,18 +5011,11 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ==================================================================================================== LIBRARY: skia -ORIGIN: ../../../third_party/skia/include/docs/SkPDFDocument.h + ../../../third_party/skia/LICENSE +ORIGIN: ../../../third_party/skia/samplecode/SampleTextureUpload.cpp + ../../../third_party/skia/LICENSE TYPE: LicenseType.bsd -FILE: ../../../third_party/skia/include/docs/SkPDFDocument.h -FILE: ../../../third_party/skia/src/pdf/SkPDFGlyphUse.h -FILE: ../../../third_party/skia/src/pdf/SkPDFSubsetFont.cpp -FILE: ../../../third_party/skia/src/pdf/SkPDFSubsetFont.h -FILE: ../../../third_party/skia/src/pdf/SkPDFUnion.h -FILE: ../../../third_party/skia/src/pdf/SkUUID.h -FILE: ../../../third_party/skia/src/utils/SkUTF.cpp -FILE: ../../../third_party/skia/src/utils/SkUTF.h +FILE: ../../../third_party/skia/samplecode/SampleTextureUpload.cpp ---------------------------------------------------------------------------------------------------- -Copyright 2018 Google LLC. +Copyright 2019 Google Inc. and Adobe Inc. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are @@ -7006,32 +5048,88 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ==================================================================================================== LIBRARY: skia -ORIGIN: ../../../third_party/skia/include/gpu/GrConfig.h + ../../../third_party/skia/LICENSE +ORIGIN: ../../../third_party/skia/bench/BulkRectBench.cpp + ../../../third_party/skia/LICENSE TYPE: LicenseType.bsd -FILE: ../../../third_party/skia/include/gpu/GrConfig.h -FILE: ../../../third_party/skia/include/gpu/GrTypes.h -FILE: ../../../third_party/skia/src/core/SkImageInfo.cpp -FILE: ../../../third_party/skia/src/core/SkRasterClip.cpp -FILE: ../../../third_party/skia/src/core/SkRasterClip.h -FILE: ../../../third_party/skia/src/core/SkStrikeCache.h -FILE: ../../../third_party/skia/src/core/SkTBlockList.h -FILE: ../../../third_party/skia/src/gpu/BufferWriter.h -FILE: ../../../third_party/skia/src/gpu/GrRectanizer.h -FILE: ../../../third_party/skia/src/gpu/Rectanizer.h -FILE: ../../../third_party/skia/src/gpu/RectanizerPow2.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/Device_v1.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrBufferAllocPool.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrBufferAllocPool.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrClip.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrColor.h -FILE: ../../../third_party/skia/src/gpu/ganesh/GrFixedClip.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrGpu.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/SkGr.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/geometry/GrRect.h -FILE: ../../../third_party/skia/src/ports/SkDebug_win.cpp -FILE: ../../../third_party/skia/src/text/gpu/Glyph.h +FILE: ../../../third_party/skia/bench/BulkRectBench.cpp +FILE: ../../../third_party/skia/bench/DDLRecorderBench.cpp +FILE: ../../../third_party/skia/bench/SkSLBench.cpp +FILE: ../../../third_party/skia/gm/asyncrescaleandread.cpp +FILE: ../../../third_party/skia/gm/crbug_908646.cpp +FILE: ../../../third_party/skia/gm/crbug_946965.cpp +FILE: ../../../third_party/skia/gm/patharcto.cpp +FILE: ../../../third_party/skia/gm/runtimecolorfilter.cpp +FILE: ../../../third_party/skia/gm/runtimefunctions.cpp +FILE: ../../../third_party/skia/gm/runtimeintrinsics.cpp +FILE: ../../../third_party/skia/gm/runtimeshader.cpp +FILE: ../../../third_party/skia/gm/skbug_9319.cpp +FILE: ../../../third_party/skia/include/effects/SkImageFilters.h +FILE: ../../../third_party/skia/include/effects/SkRuntimeEffect.h +FILE: ../../../third_party/skia/include/gpu/gl/GrGLAssembleHelpers.h +FILE: ../../../third_party/skia/include/private/SkThreadAnnotations.h +FILE: ../../../third_party/skia/include/private/gpu/ganesh/GrGLTypesPriv.h +FILE: ../../../third_party/skia/modules/canvaskit/WasmCommon.h +FILE: ../../../third_party/skia/modules/canvaskit/debugger_bindings.cpp +FILE: ../../../third_party/skia/modules/canvaskit/paragraph_bindings.cpp +FILE: ../../../third_party/skia/modules/canvaskit/particles_bindings.cpp +FILE: ../../../third_party/skia/modules/canvaskit/skottie_bindings.cpp +FILE: ../../../third_party/skia/modules/particles/include/SkParticleBinding.h +FILE: ../../../third_party/skia/modules/particles/include/SkParticleData.h +FILE: ../../../third_party/skia/modules/particles/include/SkParticleDrawable.h +FILE: ../../../third_party/skia/modules/particles/include/SkParticleEffect.h +FILE: ../../../third_party/skia/modules/particles/include/SkParticleSerialization.h +FILE: ../../../third_party/skia/modules/particles/include/SkReflected.h +FILE: ../../../third_party/skia/modules/particles/src/SkParticleBinding.cpp +FILE: ../../../third_party/skia/modules/particles/src/SkParticleDrawable.cpp +FILE: ../../../third_party/skia/modules/particles/src/SkParticleEffect.cpp +FILE: ../../../third_party/skia/modules/particles/src/SkReflected.cpp +FILE: ../../../third_party/skia/modules/skresources/include/SkResources.h +FILE: ../../../third_party/skia/modules/skresources/src/SkResources.cpp +FILE: ../../../third_party/skia/samplecode/SampleFilterBounds.cpp +FILE: ../../../third_party/skia/samplecode/SampleImageFilterDAG.cpp +FILE: ../../../third_party/skia/src/core/SkImageFilterTypes.cpp +FILE: ../../../third_party/skia/src/core/SkImageFilterTypes.h +FILE: ../../../third_party/skia/src/core/SkImageFilter_Base.h +FILE: ../../../third_party/skia/src/core/SkRuntimeEffect.cpp +FILE: ../../../third_party/skia/src/core/SkVM.cpp +FILE: ../../../third_party/skia/src/core/SkVM.h +FILE: ../../../third_party/skia/src/gpu/AsyncReadTypes.h +FILE: ../../../third_party/skia/src/gpu/Swizzle.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrClientMappedBufferManager.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrClientMappedBufferManager.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrCopyRenderTask.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrCopyRenderTask.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrImageInfo.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrPersistentCacheUtils.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrProgramInfo.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrProgramInfo.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrRenderTask.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrRenderTask.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrSurfaceProxyView.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrTextureResolveManager.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrTextureResolveRenderTask.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrTextureResolveRenderTask.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrTransferFromRenderTask.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrTransferFromRenderTask.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrUtil.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrWaitRenderTask.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrWaitRenderTask.h +FILE: ../../../third_party/skia/src/gpu/ganesh/geometry/GrQuadBuffer.h +FILE: ../../../third_party/skia/src/gpu/ganesh/geometry/GrQuadUtils.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/geometry/GrQuadUtils.h +FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLAssembleGLESInterfaceAutogen.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLAssembleGLInterfaceAutogen.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLAssembleHelpers.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLAssembleWebGLInterfaceAutogen.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/gl/GrGLTypesPriv.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/mock/GrMockCaps.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/mock/GrMockTypes.cpp +FILE: ../../../third_party/skia/src/sksl/ir/SkSLExternalFunction.h +FILE: ../../../third_party/skia/src/sksl/ir/SkSLExternalFunctionCall.h +FILE: ../../../third_party/skia/src/sksl/ir/SkSLExternalFunctionReference.h +FILE: ../../../third_party/skia/src/utils/SkShaderUtils.cpp +FILE: ../../../third_party/skia/src/utils/SkShaderUtils.h ---------------------------------------------------------------------------------------------------- -Copyright 2010 Google Inc. +Copyright 2019 Google LLC Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are @@ -7064,64 +5162,1088 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ==================================================================================================== LIBRARY: skia -ORIGIN: ../../../third_party/skia/include/gpu/GrDriverBugWorkaroundsAutogen.h + ../../../LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/skia/include/gpu/GrDriverBugWorkaroundsAutogen.h -FILE: ../../../third_party/skia/include/utils/SkTraceEventPhase.h -FILE: ../../../third_party/skia/infra/lottiecap/gold/lottie-web-aggregator.go -FILE: ../../../third_party/skia/infra/wasm-common/gold/wasm_gold_aggregator.go -FILE: ../../../third_party/skia/infra/wasm-common/perf/wasm_perf_aggregator.go ----------------------------------------------------------------------------------------------------- -Copyright 2018 The Chromium Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: skia -ORIGIN: ../../../third_party/skia/include/gpu/graphite/vk/VulkanGraphiteTypes.h + ../../../third_party/skia/LICENSE +ORIGIN: ../../../third_party/skia/bench/ShaperBench.cpp + ../../../third_party/skia/LICENSE TYPE: LicenseType.bsd -FILE: ../../../third_party/skia/include/gpu/graphite/vk/VulkanGraphiteTypes.h -FILE: ../../../third_party/skia/include/gpu/vk/VulkanExtensions.h -FILE: ../../../third_party/skia/include/gpu/vk/VulkanMemoryAllocator.h -FILE: ../../../third_party/skia/include/gpu/vk/VulkanTypes.h -FILE: ../../../third_party/skia/include/private/gpu/graphite/VulkanGraphiteTypesPriv.h -FILE: ../../../third_party/skia/src/gpu/ganesh/dawn/GrDawnAsyncWait.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/dawn/GrDawnAsyncWait.h -FILE: ../../../third_party/skia/src/gpu/graphite/vk/VulkanGraphiteTypes.cpp -FILE: ../../../third_party/skia/src/gpu/piet/PietTypes.h -FILE: ../../../third_party/skia/src/gpu/piet/Render.cpp -FILE: ../../../third_party/skia/src/gpu/piet/Render.h -FILE: ../../../third_party/skia/src/gpu/piet/Scene.cpp -FILE: ../../../third_party/skia/src/gpu/piet/Scene.h -FILE: ../../../third_party/skia/src/gpu/tessellate/MidpointContourParser.h -FILE: ../../../third_party/skia/src/sksl/SkSLPosition.cpp +FILE: ../../../third_party/skia/bench/ShaperBench.cpp +FILE: ../../../third_party/skia/bench/SkGlyphCacheBench.h +FILE: ../../../third_party/skia/docs/examples/Alpha_Constants_a.cpp +FILE: ../../../third_party/skia/docs/examples/Alpha_Constants_b.cpp +FILE: ../../../third_party/skia/docs/examples/Alpha_Type_Opaque.cpp +FILE: ../../../third_party/skia/docs/examples/Alpha_Type_Premul.cpp +FILE: ../../../third_party/skia/docs/examples/Alpha_Type_Unpremul.cpp +FILE: ../../../third_party/skia/docs/examples/Anti_Alias.cpp +FILE: ../../../third_party/skia/docs/examples/Arc.cpp +FILE: ../../../third_party/skia/docs/examples/AutoCanvasRestore_SkCanvas_star.cpp +FILE: ../../../third_party/skia/docs/examples/AutoCanvasRestore_restore.cpp +FILE: ../../../third_party/skia/docs/examples/Bitmap_012.cpp +FILE: ../../../third_party/skia/docs/examples/Bitmap_ComputeIsOpaque.cpp +FILE: ../../../third_party/skia/docs/examples/Bitmap_HeapAllocator_allocPixelRef.cpp +FILE: ../../../third_party/skia/docs/examples/Bitmap_allocN32Pixels.cpp +FILE: ../../../third_party/skia/docs/examples/Bitmap_allocPixels.cpp +FILE: ../../../third_party/skia/docs/examples/Bitmap_allocPixelsFlags.cpp +FILE: ../../../third_party/skia/docs/examples/Bitmap_bounds.cpp +FILE: ../../../third_party/skia/docs/examples/Bitmap_bytesPerPixel.cpp +FILE: ../../../third_party/skia/docs/examples/Bitmap_colorSpace.cpp +FILE: ../../../third_party/skia/docs/examples/Bitmap_colorType.cpp +FILE: ../../../third_party/skia/docs/examples/Bitmap_computeByteSize.cpp +FILE: ../../../third_party/skia/docs/examples/Bitmap_copy_const_SkBitmap.cpp +FILE: ../../../third_party/skia/docs/examples/Bitmap_copy_operator.cpp +FILE: ../../../third_party/skia/docs/examples/Bitmap_dimensions.cpp +FILE: ../../../third_party/skia/docs/examples/Bitmap_drawsNothing.cpp +FILE: ../../../third_party/skia/docs/examples/Bitmap_empty.cpp +FILE: ../../../third_party/skia/docs/examples/Bitmap_empty_constructor.cpp +FILE: ../../../third_party/skia/docs/examples/Bitmap_erase.cpp +FILE: ../../../third_party/skia/docs/examples/Bitmap_eraseARGB.cpp +FILE: ../../../third_party/skia/docs/examples/Bitmap_eraseColor.cpp +FILE: ../../../third_party/skia/docs/examples/Bitmap_extractAlpha.cpp +FILE: ../../../third_party/skia/docs/examples/Bitmap_extractAlpha_2.cpp +FILE: ../../../third_party/skia/docs/examples/Bitmap_extractAlpha_3.cpp +FILE: ../../../third_party/skia/docs/examples/Bitmap_extractSubset.cpp +FILE: ../../../third_party/skia/docs/examples/Bitmap_getAddr.cpp +FILE: ../../../third_party/skia/docs/examples/Bitmap_getAddr16.cpp +FILE: ../../../third_party/skia/docs/examples/Bitmap_getAddr32.cpp +FILE: ../../../third_party/skia/docs/examples/Bitmap_getAddr8.cpp +FILE: ../../../third_party/skia/docs/examples/Bitmap_getBounds.cpp +FILE: ../../../third_party/skia/docs/examples/Bitmap_getBounds_2.cpp +FILE: ../../../third_party/skia/docs/examples/Bitmap_getColor.cpp +FILE: ../../../third_party/skia/docs/examples/Bitmap_getGenerationID.cpp +FILE: ../../../third_party/skia/docs/examples/Bitmap_getPixels.cpp +FILE: ../../../third_party/skia/docs/examples/Bitmap_getSubset.cpp +FILE: ../../../third_party/skia/docs/examples/Bitmap_height.cpp +FILE: ../../../third_party/skia/docs/examples/Bitmap_info.cpp +FILE: ../../../third_party/skia/docs/examples/Bitmap_installPixels.cpp +FILE: ../../../third_party/skia/docs/examples/Bitmap_installPixels_2.cpp +FILE: ../../../third_party/skia/docs/examples/Bitmap_installPixels_3.cpp +FILE: ../../../third_party/skia/docs/examples/Bitmap_isImmutable.cpp +FILE: ../../../third_party/skia/docs/examples/Bitmap_isNull.cpp +FILE: ../../../third_party/skia/docs/examples/Bitmap_isOpaque.cpp +FILE: ../../../third_party/skia/docs/examples/Bitmap_move_SkBitmap.cpp +FILE: ../../../third_party/skia/docs/examples/Bitmap_move_operator.cpp +FILE: ../../../third_party/skia/docs/examples/Bitmap_notifyPixelsChanged.cpp +FILE: ../../../third_party/skia/docs/examples/Bitmap_peekPixels.cpp +FILE: ../../../third_party/skia/docs/examples/Bitmap_pixelRef.cpp +FILE: ../../../third_party/skia/docs/examples/Bitmap_pixelRefOrigin.cpp +FILE: ../../../third_party/skia/docs/examples/Bitmap_pixmap.cpp +FILE: ../../../third_party/skia/docs/examples/Bitmap_readPixels.cpp +FILE: ../../../third_party/skia/docs/examples/Bitmap_readPixels_2.cpp +FILE: ../../../third_party/skia/docs/examples/Bitmap_readPixels_3.cpp +FILE: ../../../third_party/skia/docs/examples/Bitmap_readyToDraw.cpp +FILE: ../../../third_party/skia/docs/examples/Bitmap_refColorSpace.cpp +FILE: ../../../third_party/skia/docs/examples/Bitmap_reset.cpp +FILE: ../../../third_party/skia/docs/examples/Bitmap_rowBytes.cpp +FILE: ../../../third_party/skia/docs/examples/Bitmap_rowBytesAsPixels.cpp +FILE: ../../../third_party/skia/docs/examples/Bitmap_setAlphaType.cpp +FILE: ../../../third_party/skia/docs/examples/Bitmap_setImmutable.cpp +FILE: ../../../third_party/skia/docs/examples/Bitmap_setInfo.cpp +FILE: ../../../third_party/skia/docs/examples/Bitmap_setPixelRef.cpp +FILE: ../../../third_party/skia/docs/examples/Bitmap_setPixels.cpp +FILE: ../../../third_party/skia/docs/examples/Bitmap_shiftPerPixel.cpp +FILE: ../../../third_party/skia/docs/examples/Bitmap_swap.cpp +FILE: ../../../third_party/skia/docs/examples/Bitmap_tryAllocN32Pixels.cpp +FILE: ../../../third_party/skia/docs/examples/Bitmap_tryAllocPixels.cpp +FILE: ../../../third_party/skia/docs/examples/Bitmap_tryAllocPixelsFlags.cpp +FILE: ../../../third_party/skia/docs/examples/Bitmap_tryAllocPixels_2.cpp +FILE: ../../../third_party/skia/docs/examples/Bitmap_tryAllocPixels_3.cpp +FILE: ../../../third_party/skia/docs/examples/Bitmap_tryAllocPixels_4.cpp +FILE: ../../../third_party/skia/docs/examples/Bitmap_width.cpp +FILE: ../../../third_party/skia/docs/examples/Bitmap_writePixels.cpp +FILE: ../../../third_party/skia/docs/examples/Bitmap_writePixels_2.cpp +FILE: ../../../third_party/skia/docs/examples/Blend_Mode_Methods.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_129.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_MakeRasterDirect.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_MakeRasterDirectN32.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_PointMode.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_SaveLayerRec.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_SaveLayerRec_SaveLayerRec.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_SaveLayerRec_const_SkRect_star_const_SkPaint_star.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_SaveLayerRec_const_SkRect_star_const_SkPaint_star_const_SkImageFilter_star.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_SrcRectConstraint.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_accessTopLayerPixels_a.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_accessTopLayerPixels_b.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_accessTopRasterHandle.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_clear.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_clipPath.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_clipPath_2.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_clipPath_3.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_clipRRect.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_clipRRect_2.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_clipRRect_3.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_clipRect.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_clipRect_2.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_clipRect_3.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_clipRegion.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_concat.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_const_SkBitmap_const_SkSurfaceProps.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_copy_const_SkBitmap.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_destructor.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_drawAnnotation_2.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_drawArc_a.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_drawArc_b.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_drawAtlas.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_drawAtlas_2.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_drawBitmap.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_drawBitmapRect.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_drawBitmapRect_2.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_drawBitmapRect_3.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_drawCircle.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_drawCircle_2.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_drawColor.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_drawDRRect_a.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_drawDRRect_b.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_drawDrawable.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_drawDrawable_2.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_drawIRect.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_drawImage.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_drawImageNine.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_drawImageNine_2.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_drawImageRect.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_drawImageRect_2.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_drawImageRect_3.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_drawImageRect_4.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_drawImageRect_5.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_drawImageRect_6.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_drawImage_2.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_drawLine.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_drawLine_2.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_drawOval.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_drawPaint.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_drawPatch.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_drawPatch_2_a.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_drawPatch_2_b.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_drawPath.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_drawPicture_2.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_drawPicture_3.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_drawPicture_4.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_drawPoint.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_drawPoint_2.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_drawPoints.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_drawPosText.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_drawPosTextH.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_drawRRect.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_drawRect.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_drawRegion.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_drawRoundRect.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_drawString.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_drawString_2.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_drawText.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_drawTextBlob.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_drawTextBlob_2.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_drawTextRSXform.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_drawVertices.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_drawVertices_2.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_empty_constructor.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_getBaseLayerSize.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_getContext.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_getDeviceClipBounds.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_getDeviceClipBounds_2.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_getLocalClipBounds.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_getLocalClipBounds_2.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_getProps.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_getSaveCount.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_getTotalMatrix.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_imageInfo.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_int_int_const_SkSurfaceProps_star.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_isClipEmpty.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_isClipRect.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_kInitWithPrevious_SaveLayerFlag.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_makeSurface.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_peekPixels.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_quickReject.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_quickReject_2.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_readPixels_2.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_readPixels_3.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_readPixels_a.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_readPixels_b.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_resetMatrix.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_restore.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_restoreToCount.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_rotate.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_rotate_2.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_save.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_saveLayer.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_saveLayerAlpha.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_saveLayerPreserveLCDTextRequests.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_saveLayer_2.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_saveLayer_3.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_scale.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_setMatrix.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_skew.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_translate.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_writePixels.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_writePixels_2.cpp +FILE: ../../../third_party/skia/docs/examples/Clear.cpp +FILE: ../../../third_party/skia/docs/examples/Clip.cpp +FILE: ../../../third_party/skia/docs/examples/Color.cpp +FILE: ../../../third_party/skia/docs/examples/ColorGetA.cpp +FILE: ../../../third_party/skia/docs/examples/ColorGetB.cpp +FILE: ../../../third_party/skia/docs/examples/ColorGetG.cpp +FILE: ../../../third_party/skia/docs/examples/ColorGetR.cpp +FILE: ../../../third_party/skia/docs/examples/ColorSetA.cpp +FILE: ../../../third_party/skia/docs/examples/ColorSetARGB.cpp +FILE: ../../../third_party/skia/docs/examples/ColorSetRGB.cpp +FILE: ../../../third_party/skia/docs/examples/ColorToHSV.cpp +FILE: ../../../third_party/skia/docs/examples/ColorTypeBytesPerPixel.cpp +FILE: ../../../third_party/skia/docs/examples/ColorTypeIsAlwaysOpaque.cpp +FILE: ../../../third_party/skia/docs/examples/ColorTypeValidateAlphaType.cpp +FILE: ../../../third_party/skia/docs/examples/Color_Burn.cpp +FILE: ../../../third_party/skia/docs/examples/Color_Constants_a.cpp +FILE: ../../../third_party/skia/docs/examples/Color_Constants_b.cpp +FILE: ../../../third_party/skia/docs/examples/Color_Constants_c.cpp +FILE: ../../../third_party/skia/docs/examples/Color_Constants_d.cpp +FILE: ../../../third_party/skia/docs/examples/Color_Dodge.cpp +FILE: ../../../third_party/skia/docs/examples/Color_Filter_Methods.cpp +FILE: ../../../third_party/skia/docs/examples/Color_Methods.cpp +FILE: ../../../third_party/skia/docs/examples/Color_Type_ARGB_4444.cpp +FILE: ../../../third_party/skia/docs/examples/Color_Type_Alpha_8.cpp +FILE: ../../../third_party/skia/docs/examples/Color_Type_BGRA_8888.cpp +FILE: ../../../third_party/skia/docs/examples/Color_Type_Gray_8.cpp +FILE: ../../../third_party/skia/docs/examples/Color_Type_RGBA_1010102.cpp +FILE: ../../../third_party/skia/docs/examples/Color_Type_RGBA_8888.cpp +FILE: ../../../third_party/skia/docs/examples/Color_Type_RGBA_F16.cpp +FILE: ../../../third_party/skia/docs/examples/Color_Type_RGB_101010.cpp +FILE: ../../../third_party/skia/docs/examples/Color_Type_RGB_565.cpp +FILE: ../../../third_party/skia/docs/examples/Color_Type_RGB_888.cpp +FILE: ../../../third_party/skia/docs/examples/Colors.cpp +FILE: ../../../third_party/skia/docs/examples/Conic_Weight_a.cpp +FILE: ../../../third_party/skia/docs/examples/Conic_Weight_b.cpp +FILE: ../../../third_party/skia/docs/examples/Conic_Weight_c.cpp +FILE: ../../../third_party/skia/docs/examples/Cubic.cpp +FILE: ../../../third_party/skia/docs/examples/Darken.cpp +FILE: ../../../third_party/skia/docs/examples/Device_Text.cpp +FILE: ../../../third_party/skia/docs/examples/Difference.cpp +FILE: ../../../third_party/skia/docs/examples/Dither_a.cpp +FILE: ../../../third_party/skia/docs/examples/Dither_b.cpp +FILE: ../../../third_party/skia/docs/examples/Dst.cpp +FILE: ../../../third_party/skia/docs/examples/Dst_Atop.cpp +FILE: ../../../third_party/skia/docs/examples/Dst_In.cpp +FILE: ../../../third_party/skia/docs/examples/Dst_Out.cpp +FILE: ../../../third_party/skia/docs/examples/Dst_Over.cpp +FILE: ../../../third_party/skia/docs/examples/Exclusion.cpp +FILE: ../../../third_party/skia/docs/examples/Fake_Bold.cpp +FILE: ../../../third_party/skia/docs/examples/Font_breakText.cpp +FILE: ../../../third_party/skia/docs/examples/HSVToColor.cpp +FILE: ../../../third_party/skia/docs/examples/HSVToColor_2.cpp +FILE: ../../../third_party/skia/docs/examples/Hard_Light.cpp +FILE: ../../../third_party/skia/docs/examples/Hue.cpp +FILE: ../../../third_party/skia/docs/examples/IPoint_Make.cpp +FILE: ../../../third_party/skia/docs/examples/IPoint_add_operator.cpp +FILE: ../../../third_party/skia/docs/examples/IPoint_addto_operator.cpp +FILE: ../../../third_party/skia/docs/examples/IPoint_equal_operator.cpp +FILE: ../../../third_party/skia/docs/examples/IPoint_equals.cpp +FILE: ../../../third_party/skia/docs/examples/IPoint_isZero.cpp +FILE: ../../../third_party/skia/docs/examples/IPoint_minus_operator.cpp +FILE: ../../../third_party/skia/docs/examples/IPoint_notequal_operator.cpp +FILE: ../../../third_party/skia/docs/examples/IPoint_set.cpp +FILE: ../../../third_party/skia/docs/examples/IPoint_subtract_operator.cpp +FILE: ../../../third_party/skia/docs/examples/IPoint_subtractfrom_operator.cpp +FILE: ../../../third_party/skia/docs/examples/IPoint_x.cpp +FILE: ../../../third_party/skia/docs/examples/IPoint_y.cpp +FILE: ../../../third_party/skia/docs/examples/IRect_Intersects.cpp +FILE: ../../../third_party/skia/docs/examples/IRect_MakeEmpty.cpp +FILE: ../../../third_party/skia/docs/examples/IRect_MakeLTRB.cpp +FILE: ../../../third_party/skia/docs/examples/IRect_MakeSize.cpp +FILE: ../../../third_party/skia/docs/examples/IRect_MakeWH.cpp +FILE: ../../../third_party/skia/docs/examples/IRect_MakeXYWH.cpp +FILE: ../../../third_party/skia/docs/examples/IRect_adjust.cpp +FILE: ../../../third_party/skia/docs/examples/IRect_bottom.cpp +FILE: ../../../third_party/skia/docs/examples/IRect_contains.cpp +FILE: ../../../third_party/skia/docs/examples/IRect_containsNoEmptyCheck.cpp +FILE: ../../../third_party/skia/docs/examples/IRect_containsNoEmptyCheck_2.cpp +FILE: ../../../third_party/skia/docs/examples/IRect_contains_3.cpp +FILE: ../../../third_party/skia/docs/examples/IRect_contains_4.cpp +FILE: ../../../third_party/skia/docs/examples/IRect_equal_operator.cpp +FILE: ../../../third_party/skia/docs/examples/IRect_height.cpp +FILE: ../../../third_party/skia/docs/examples/IRect_height64.cpp +FILE: ../../../third_party/skia/docs/examples/IRect_inset.cpp +FILE: ../../../third_party/skia/docs/examples/IRect_intersect.cpp +FILE: ../../../third_party/skia/docs/examples/IRect_intersect_2.cpp +FILE: ../../../third_party/skia/docs/examples/IRect_isEmpty.cpp +FILE: ../../../third_party/skia/docs/examples/IRect_isEmpty64.cpp +FILE: ../../../third_party/skia/docs/examples/IRect_join_2.cpp +FILE: ../../../third_party/skia/docs/examples/IRect_left.cpp +FILE: ../../../third_party/skia/docs/examples/IRect_makeInset.cpp +FILE: ../../../third_party/skia/docs/examples/IRect_makeOffset.cpp +FILE: ../../../third_party/skia/docs/examples/IRect_makeOutset.cpp +FILE: ../../../third_party/skia/docs/examples/IRect_makeSorted.cpp +FILE: ../../../third_party/skia/docs/examples/IRect_notequal_operator.cpp +FILE: ../../../third_party/skia/docs/examples/IRect_offset.cpp +FILE: ../../../third_party/skia/docs/examples/IRect_offsetTo.cpp +FILE: ../../../third_party/skia/docs/examples/IRect_offset_2.cpp +FILE: ../../../third_party/skia/docs/examples/IRect_outset.cpp +FILE: ../../../third_party/skia/docs/examples/IRect_right.cpp +FILE: ../../../third_party/skia/docs/examples/IRect_setEmpty.cpp +FILE: ../../../third_party/skia/docs/examples/IRect_setLTRB.cpp +FILE: ../../../third_party/skia/docs/examples/IRect_setXYWH.cpp +FILE: ../../../third_party/skia/docs/examples/IRect_size.cpp +FILE: ../../../third_party/skia/docs/examples/IRect_sort.cpp +FILE: ../../../third_party/skia/docs/examples/IRect_top.cpp +FILE: ../../../third_party/skia/docs/examples/IRect_width.cpp +FILE: ../../../third_party/skia/docs/examples/IRect_width64.cpp +FILE: ../../../third_party/skia/docs/examples/IRect_x.cpp +FILE: ../../../third_party/skia/docs/examples/IRect_y.cpp +FILE: ../../../third_party/skia/docs/examples/ImageInfo_ByteSizeOverflowed.cpp +FILE: ../../../third_party/skia/docs/examples/ImageInfo_Make.cpp +FILE: ../../../third_party/skia/docs/examples/ImageInfo_MakeA8.cpp +FILE: ../../../third_party/skia/docs/examples/ImageInfo_MakeN32.cpp +FILE: ../../../third_party/skia/docs/examples/ImageInfo_MakeN32Premul.cpp +FILE: ../../../third_party/skia/docs/examples/ImageInfo_MakeN32Premul_2.cpp +FILE: ../../../third_party/skia/docs/examples/ImageInfo_MakeS32.cpp +FILE: ../../../third_party/skia/docs/examples/ImageInfo_MakeUnknown.cpp +FILE: ../../../third_party/skia/docs/examples/ImageInfo_MakeUnknown_2.cpp +FILE: ../../../third_party/skia/docs/examples/ImageInfo_alphaType.cpp +FILE: ../../../third_party/skia/docs/examples/ImageInfo_bounds.cpp +FILE: ../../../third_party/skia/docs/examples/ImageInfo_bytesPerPixel.cpp +FILE: ../../../third_party/skia/docs/examples/ImageInfo_colorSpace.cpp +FILE: ../../../third_party/skia/docs/examples/ImageInfo_colorType.cpp +FILE: ../../../third_party/skia/docs/examples/ImageInfo_computeByteSize.cpp +FILE: ../../../third_party/skia/docs/examples/ImageInfo_computeMinByteSize.cpp +FILE: ../../../third_party/skia/docs/examples/ImageInfo_computeOffset.cpp +FILE: ../../../third_party/skia/docs/examples/ImageInfo_dimensions.cpp +FILE: ../../../third_party/skia/docs/examples/ImageInfo_empty_constructor.cpp +FILE: ../../../third_party/skia/docs/examples/ImageInfo_equal1_operator.cpp +FILE: ../../../third_party/skia/docs/examples/ImageInfo_gammaCloseToSRGB.cpp +FILE: ../../../third_party/skia/docs/examples/ImageInfo_height.cpp +FILE: ../../../third_party/skia/docs/examples/ImageInfo_isEmpty.cpp +FILE: ../../../third_party/skia/docs/examples/ImageInfo_isOpaque.cpp +FILE: ../../../third_party/skia/docs/examples/ImageInfo_makeColorSpace.cpp +FILE: ../../../third_party/skia/docs/examples/ImageInfo_makeWH.cpp +FILE: ../../../third_party/skia/docs/examples/ImageInfo_minRowBytes.cpp +FILE: ../../../third_party/skia/docs/examples/ImageInfo_minRowBytes64.cpp +FILE: ../../../third_party/skia/docs/examples/ImageInfo_notequal1_operator.cpp +FILE: ../../../third_party/skia/docs/examples/ImageInfo_refColorSpace.cpp +FILE: ../../../third_party/skia/docs/examples/ImageInfo_reset.cpp +FILE: ../../../third_party/skia/docs/examples/ImageInfo_shiftPerPixel.cpp +FILE: ../../../third_party/skia/docs/examples/ImageInfo_validRowBytes.cpp +FILE: ../../../third_party/skia/docs/examples/ImageInfo_width.cpp +FILE: ../../../third_party/skia/docs/examples/Image_Filter_Methods.cpp +FILE: ../../../third_party/skia/docs/examples/Image_MakeBackendTextureFromSkImage.cpp +FILE: ../../../third_party/skia/docs/examples/Image_MakeCrossContextFromPixmap.cpp +FILE: ../../../third_party/skia/docs/examples/Image_MakeFromAdoptedTexture.cpp +FILE: ../../../third_party/skia/docs/examples/Image_MakeFromBitmap.cpp +FILE: ../../../third_party/skia/docs/examples/Image_MakeFromEncoded.cpp +FILE: ../../../third_party/skia/docs/examples/Image_MakeFromGenerator.cpp +FILE: ../../../third_party/skia/docs/examples/Image_MakeFromPicture.cpp +FILE: ../../../third_party/skia/docs/examples/Image_MakeFromRaster.cpp +FILE: ../../../third_party/skia/docs/examples/Image_MakeFromTexture.cpp +FILE: ../../../third_party/skia/docs/examples/Image_MakeFromTexture_2.cpp +FILE: ../../../third_party/skia/docs/examples/Image_MakeRasterCopy.cpp +FILE: ../../../third_party/skia/docs/examples/Image_MakeRasterData.cpp +FILE: ../../../third_party/skia/docs/examples/Image_alphaType.cpp +FILE: ../../../third_party/skia/docs/examples/Image_bounds.cpp +FILE: ../../../third_party/skia/docs/examples/Image_colorSpace.cpp +FILE: ../../../third_party/skia/docs/examples/Image_colorType.cpp +FILE: ../../../third_party/skia/docs/examples/Image_dimensions.cpp +FILE: ../../../third_party/skia/docs/examples/Image_encodeToData.cpp +FILE: ../../../third_party/skia/docs/examples/Image_encodeToData_2.cpp +FILE: ../../../third_party/skia/docs/examples/Image_getBackendTexture.cpp +FILE: ../../../third_party/skia/docs/examples/Image_height.cpp +FILE: ../../../third_party/skia/docs/examples/Image_isAlphaOnly.cpp +FILE: ../../../third_party/skia/docs/examples/Image_isLazyGenerated_a.cpp +FILE: ../../../third_party/skia/docs/examples/Image_isLazyGenerated_b.cpp +FILE: ../../../third_party/skia/docs/examples/Image_isOpaque.cpp +FILE: ../../../third_party/skia/docs/examples/Image_isTextureBacked.cpp +FILE: ../../../third_party/skia/docs/examples/Image_isValid.cpp +FILE: ../../../third_party/skia/docs/examples/Image_makeColorSpace.cpp +FILE: ../../../third_party/skia/docs/examples/Image_makeNonTextureImage.cpp +FILE: ../../../third_party/skia/docs/examples/Image_makeRasterImage.cpp +FILE: ../../../third_party/skia/docs/examples/Image_makeShader.cpp +FILE: ../../../third_party/skia/docs/examples/Image_makeShader_2.cpp +FILE: ../../../third_party/skia/docs/examples/Image_makeSubset.cpp +FILE: ../../../third_party/skia/docs/examples/Image_makeTextureImage.cpp +FILE: ../../../third_party/skia/docs/examples/Image_makeWithFilter.cpp +FILE: ../../../third_party/skia/docs/examples/Image_peekPixels.cpp +FILE: ../../../third_party/skia/docs/examples/Image_readPixels.cpp +FILE: ../../../third_party/skia/docs/examples/Image_readPixels_2.cpp +FILE: ../../../third_party/skia/docs/examples/Image_refColorSpace.cpp +FILE: ../../../third_party/skia/docs/examples/Image_refEncodedData.cpp +FILE: ../../../third_party/skia/docs/examples/Image_scalePixels.cpp +FILE: ../../../third_party/skia/docs/examples/Image_uniqueID.cpp +FILE: ../../../third_party/skia/docs/examples/Image_width.cpp +FILE: ../../../third_party/skia/docs/examples/Lighten.cpp +FILE: ../../../third_party/skia/docs/examples/Luminosity.cpp +FILE: ../../../third_party/skia/docs/examples/Mask_Filter_Methods.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_063.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_Concat.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_I.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_InvalidMatrix.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_MakeAll.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_MakeRectToRect.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_MakeScale.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_MakeTrans.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_ScaleToFit.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_SetAffineIdentity.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_TypeMask.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_array_operator.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_asAffine.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_decomposeScale.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_dirtyMatrixTypeCache.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_dump.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_get.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_get9.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_getMaxScale.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_getMinMaxScales.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_getMinScale.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_getPerspX.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_getPerspY.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_getScaleX.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_getScaleY.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_getSkewX.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_getSkewY.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_getTranslateX.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_getTranslateY.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_getType.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_hasPerspective.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_invert.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_isFinite.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_isIdentity.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_isScaleTranslate.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_isSimilarity.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_isTranslate.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_mapHomogeneousPoints.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_mapPoints.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_mapPoints_2.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_mapRadius.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_mapRect.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_mapRectScaleTranslate.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_mapRectToQuad.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_mapRect_2.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_mapRect_3.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_mapVector.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_mapVector_2.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_mapVectors.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_mapVectors_2.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_mapXY.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_mapXY_2.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_postConcat.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_postRotate.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_postRotate_2.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_postScale.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_postScale_2.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_postSkew.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_postSkew_2.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_postTranslate.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_preConcat.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_preRotate.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_preRotate_2.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_preScale.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_preScale_2.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_preSkew.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_preSkew_2.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_preTranslate.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_preservesAxisAlignment.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_preservesRightAngles.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_rectStaysRect.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_reset.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_set.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_set9.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_setAffine.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_setAll.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_setConcat.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_setIdentity.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_setPerspX.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_setPerspY.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_setPolyToPoly.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_setRSXform.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_setRotate.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_setRotate_2.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_setScale.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_setScaleTranslate.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_setScaleX.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_setScaleY.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_setScale_2.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_setSinCos.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_setSinCos_2.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_setSkew.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_setSkewX.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_setSkewY.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_setSkew_2.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_setTranslate.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_setTranslateX.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_setTranslateY.cpp +FILE: ../../../third_party/skia/docs/examples/Matrix_setTranslate_2.cpp +FILE: ../../../third_party/skia/docs/examples/MemberIndex.cpp +FILE: ../../../third_party/skia/docs/examples/Miter_Limit.cpp +FILE: ../../../third_party/skia/docs/examples/Modulate.cpp +FILE: ../../../third_party/skia/docs/examples/Multiply.cpp +FILE: ../../../third_party/skia/docs/examples/Overlay.cpp +FILE: ../../../third_party/skia/docs/examples/PDF.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_053.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_057.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_containsText.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_copy_const_SkPaint.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_copy_operator.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_countText.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_empty_constructor.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_equal_operator.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_getAlpha.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_getColor.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_getColor4f.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_getColorFilter.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_getFillPath.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_getFillPath_2.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_getFlags.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_getFontMetrics.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_getFontSpacing.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_getHinting.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_getImageFilter.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_getMaskFilter.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_getPathEffect.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_getPosTextPath.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_getShader.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_getStrokeCap.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_getStrokeJoin.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_getStrokeMiter.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_getStrokeWidth.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_getStyle.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_getTextEncoding.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_getTextPath.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_getTextScaleX.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_getTextSize.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_getTextSkewX.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_getTextWidths.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_getTypeface.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_isAntiAlias.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_isAutohinted.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_isDither.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_isEmbeddedBitmapText.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_isFakeBoldText.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_isLCDRenderText.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_isLinearText.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_isSubpixelText.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_measureText.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_measureText_2.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_move_SkPaint.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_move_operator.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_notequal_operator.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_nothingToDraw.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_refColorFilter.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_refImageFilter.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_refMaskFilter.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_refPathEffect.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_refShader.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_refTypeface.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_reset.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_setARGB.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_setAlpha.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_setAntiAlias.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_setAutohinted.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_setBlendMode.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_setColor.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_setColor4f.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_setColorFilter.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_setDither.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_setEmbeddedBitmapText.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_setFakeBoldText.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_setFlags.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_setHinting.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_setImageFilter.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_setLCDRenderText.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_setLinearText.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_setMaskFilter.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_setPathEffect.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_setShader.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_setStrokeCap_a.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_setStrokeCap_b.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_setStrokeJoin.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_setStrokeMiter.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_setStrokeWidth.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_setStyle.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_setSubpixelText.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_setTextEncoding.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_setTextScaleX.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_setTextSize.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_setTextSkewX.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_setTypeface.cpp +FILE: ../../../third_party/skia/docs/examples/Paint_textToGlyphs.cpp +FILE: ../../../third_party/skia/docs/examples/Path_AddPathMode.cpp +FILE: ../../../third_party/skia/docs/examples/Path_ArcSize.cpp +FILE: ../../../third_party/skia/docs/examples/Path_ConvertConicToQuads.cpp +FILE: ../../../third_party/skia/docs/examples/Path_ConvertToNonInverseFillType.cpp +FILE: ../../../third_party/skia/docs/examples/Path_Convexity.cpp +FILE: ../../../third_party/skia/docs/examples/Path_Direction.cpp +FILE: ../../../third_party/skia/docs/examples/Path_Effect_Methods.cpp +FILE: ../../../third_party/skia/docs/examples/Path_FillType_a.cpp +FILE: ../../../third_party/skia/docs/examples/Path_FillType_b.cpp +FILE: ../../../third_party/skia/docs/examples/Path_IsCubicDegenerate.cpp +FILE: ../../../third_party/skia/docs/examples/Path_IsInverseFillType.cpp +FILE: ../../../third_party/skia/docs/examples/Path_IsLineDegenerate.cpp +FILE: ../../../third_party/skia/docs/examples/Path_IsQuadDegenerate.cpp +FILE: ../../../third_party/skia/docs/examples/Path_Iter.cpp +FILE: ../../../third_party/skia/docs/examples/Path_Iter_Iter.cpp +FILE: ../../../third_party/skia/docs/examples/Path_Iter_conicWeight.cpp +FILE: ../../../third_party/skia/docs/examples/Path_Iter_const_SkPath.cpp +FILE: ../../../third_party/skia/docs/examples/Path_Iter_isCloseLine.cpp +FILE: ../../../third_party/skia/docs/examples/Path_Iter_isClosedContour.cpp +FILE: ../../../third_party/skia/docs/examples/Path_Iter_next.cpp +FILE: ../../../third_party/skia/docs/examples/Path_Iter_setPath.cpp +FILE: ../../../third_party/skia/docs/examples/Path_SegmentMask.cpp +FILE: ../../../third_party/skia/docs/examples/Path_Verb.cpp +FILE: ../../../third_party/skia/docs/examples/Path_addArc.cpp +FILE: ../../../third_party/skia/docs/examples/Path_addCircle.cpp +FILE: ../../../third_party/skia/docs/examples/Path_addOval.cpp +FILE: ../../../third_party/skia/docs/examples/Path_addOval_2.cpp +FILE: ../../../third_party/skia/docs/examples/Path_addPath.cpp +FILE: ../../../third_party/skia/docs/examples/Path_addPath_2.cpp +FILE: ../../../third_party/skia/docs/examples/Path_addPath_3.cpp +FILE: ../../../third_party/skia/docs/examples/Path_addPoly.cpp +FILE: ../../../third_party/skia/docs/examples/Path_addPoly_2.cpp +FILE: ../../../third_party/skia/docs/examples/Path_addRRect.cpp +FILE: ../../../third_party/skia/docs/examples/Path_addRRect_2.cpp +FILE: ../../../third_party/skia/docs/examples/Path_addRect.cpp +FILE: ../../../third_party/skia/docs/examples/Path_addRect_2.cpp +FILE: ../../../third_party/skia/docs/examples/Path_addRect_3.cpp +FILE: ../../../third_party/skia/docs/examples/Path_addRoundRect.cpp +FILE: ../../../third_party/skia/docs/examples/Path_addRoundRect_2.cpp +FILE: ../../../third_party/skia/docs/examples/Path_arcTo.cpp +FILE: ../../../third_party/skia/docs/examples/Path_arcTo_2_a.cpp +FILE: ../../../third_party/skia/docs/examples/Path_arcTo_2_b.cpp +FILE: ../../../third_party/skia/docs/examples/Path_arcTo_2_c.cpp +FILE: ../../../third_party/skia/docs/examples/Path_arcTo_3.cpp +FILE: ../../../third_party/skia/docs/examples/Path_arcTo_4.cpp +FILE: ../../../third_party/skia/docs/examples/Path_close.cpp +FILE: ../../../third_party/skia/docs/examples/Path_computeTightBounds.cpp +FILE: ../../../third_party/skia/docs/examples/Path_conicTo.cpp +FILE: ../../../third_party/skia/docs/examples/Path_conicTo_2.cpp +FILE: ../../../third_party/skia/docs/examples/Path_conservativelyContainsRect.cpp +FILE: ../../../third_party/skia/docs/examples/Path_contains.cpp +FILE: ../../../third_party/skia/docs/examples/Path_copy_const_SkPath.cpp +FILE: ../../../third_party/skia/docs/examples/Path_copy_operator.cpp +FILE: ../../../third_party/skia/docs/examples/Path_countPoints.cpp +FILE: ../../../third_party/skia/docs/examples/Path_countVerbs.cpp +FILE: ../../../third_party/skia/docs/examples/Path_cubicTo.cpp +FILE: ../../../third_party/skia/docs/examples/Path_cubicTo_2.cpp +FILE: ../../../third_party/skia/docs/examples/Path_destructor.cpp +FILE: ../../../third_party/skia/docs/examples/Path_dump.cpp +FILE: ../../../third_party/skia/docs/examples/Path_dumpHex.cpp +FILE: ../../../third_party/skia/docs/examples/Path_dump_2.cpp +FILE: ../../../third_party/skia/docs/examples/Path_empty_constructor.cpp +FILE: ../../../third_party/skia/docs/examples/Path_equal_operator.cpp +FILE: ../../../third_party/skia/docs/examples/Path_getBounds.cpp +FILE: ../../../third_party/skia/docs/examples/Path_getFillType.cpp +FILE: ../../../third_party/skia/docs/examples/Path_getGenerationID.cpp +FILE: ../../../third_party/skia/docs/examples/Path_getLastPt.cpp +FILE: ../../../third_party/skia/docs/examples/Path_getPoint.cpp +FILE: ../../../third_party/skia/docs/examples/Path_getPoints.cpp +FILE: ../../../third_party/skia/docs/examples/Path_getSegmentMasks.cpp +FILE: ../../../third_party/skia/docs/examples/Path_getVerbs.cpp +FILE: ../../../third_party/skia/docs/examples/Path_incReserve.cpp +FILE: ../../../third_party/skia/docs/examples/Path_interpolate.cpp +FILE: ../../../third_party/skia/docs/examples/Path_isConvex.cpp +FILE: ../../../third_party/skia/docs/examples/Path_isEmpty.cpp +FILE: ../../../third_party/skia/docs/examples/Path_isFinite.cpp +FILE: ../../../third_party/skia/docs/examples/Path_isInterpolatable.cpp +FILE: ../../../third_party/skia/docs/examples/Path_isInverseFillType_2.cpp +FILE: ../../../third_party/skia/docs/examples/Path_isLastContourClosed.cpp +FILE: ../../../third_party/skia/docs/examples/Path_isLine.cpp +FILE: ../../../third_party/skia/docs/examples/Path_isOval.cpp +FILE: ../../../third_party/skia/docs/examples/Path_isRRect.cpp +FILE: ../../../third_party/skia/docs/examples/Path_isRect.cpp +FILE: ../../../third_party/skia/docs/examples/Path_isVolatile.cpp +FILE: ../../../third_party/skia/docs/examples/Path_lineTo.cpp +FILE: ../../../third_party/skia/docs/examples/Path_lineTo_2.cpp +FILE: ../../../third_party/skia/docs/examples/Path_moveTo.cpp +FILE: ../../../third_party/skia/docs/examples/Path_moveTo_2.cpp +FILE: ../../../third_party/skia/docs/examples/Path_offset.cpp +FILE: ../../../third_party/skia/docs/examples/Path_offset_2.cpp +FILE: ../../../third_party/skia/docs/examples/Path_quadTo.cpp +FILE: ../../../third_party/skia/docs/examples/Path_quadTo_2.cpp +FILE: ../../../third_party/skia/docs/examples/Path_rArcTo.cpp +FILE: ../../../third_party/skia/docs/examples/Path_rConicTo.cpp +FILE: ../../../third_party/skia/docs/examples/Path_rCubicTo.cpp +FILE: ../../../third_party/skia/docs/examples/Path_rLineTo.cpp +FILE: ../../../third_party/skia/docs/examples/Path_rMoveTo.cpp +FILE: ../../../third_party/skia/docs/examples/Path_rQuadTo.cpp +FILE: ../../../third_party/skia/docs/examples/Path_readFromMemory.cpp +FILE: ../../../third_party/skia/docs/examples/Path_reset.cpp +FILE: ../../../third_party/skia/docs/examples/Path_reverseAddPath.cpp +FILE: ../../../third_party/skia/docs/examples/Path_rewind.cpp +FILE: ../../../third_party/skia/docs/examples/Path_serialize.cpp +FILE: ../../../third_party/skia/docs/examples/Path_setFillType.cpp +FILE: ../../../third_party/skia/docs/examples/Path_setIsVolatile.cpp +FILE: ../../../third_party/skia/docs/examples/Path_setLastPt.cpp +FILE: ../../../third_party/skia/docs/examples/Path_setLastPt_2.cpp +FILE: ../../../third_party/skia/docs/examples/Path_swap.cpp +FILE: ../../../third_party/skia/docs/examples/Path_toggleInverseFillType.cpp +FILE: ../../../third_party/skia/docs/examples/Path_transform.cpp +FILE: ../../../third_party/skia/docs/examples/Path_transform_2.cpp +FILE: ../../../third_party/skia/docs/examples/Path_updateBoundsCache.cpp +FILE: ../../../third_party/skia/docs/examples/Path_writeToMemory.cpp +FILE: ../../../third_party/skia/docs/examples/Picture_008.cpp +FILE: ../../../third_party/skia/docs/examples/Picture_AbortCallback_abort.cpp +FILE: ../../../third_party/skia/docs/examples/Picture_MakeFromData.cpp +FILE: ../../../third_party/skia/docs/examples/Picture_MakeFromStream.cpp +FILE: ../../../third_party/skia/docs/examples/Picture_MakePlaceholder.cpp +FILE: ../../../third_party/skia/docs/examples/Picture_approximateBytesUsed.cpp +FILE: ../../../third_party/skia/docs/examples/Picture_approximateOpCount.cpp +FILE: ../../../third_party/skia/docs/examples/Picture_cullRect.cpp +FILE: ../../../third_party/skia/docs/examples/Picture_playback.cpp +FILE: ../../../third_party/skia/docs/examples/Picture_serialize.cpp +FILE: ../../../third_party/skia/docs/examples/Picture_serialize_2.cpp +FILE: ../../../third_party/skia/docs/examples/Picture_uniqueID.cpp +FILE: ../../../third_party/skia/docs/examples/Pixmap_addr.cpp +FILE: ../../../third_party/skia/docs/examples/Pixmap_addr16.cpp +FILE: ../../../third_party/skia/docs/examples/Pixmap_addr16_2.cpp +FILE: ../../../third_party/skia/docs/examples/Pixmap_addr32.cpp +FILE: ../../../third_party/skia/docs/examples/Pixmap_addr32_2.cpp +FILE: ../../../third_party/skia/docs/examples/Pixmap_addr64.cpp +FILE: ../../../third_party/skia/docs/examples/Pixmap_addr64_2.cpp +FILE: ../../../third_party/skia/docs/examples/Pixmap_addr8.cpp +FILE: ../../../third_party/skia/docs/examples/Pixmap_addr8_2.cpp +FILE: ../../../third_party/skia/docs/examples/Pixmap_addrF16.cpp +FILE: ../../../third_party/skia/docs/examples/Pixmap_addrF16_2.cpp +FILE: ../../../third_party/skia/docs/examples/Pixmap_addr_2.cpp +FILE: ../../../third_party/skia/docs/examples/Pixmap_alphaType.cpp +FILE: ../../../third_party/skia/docs/examples/Pixmap_bounds.cpp +FILE: ../../../third_party/skia/docs/examples/Pixmap_colorSpace.cpp +FILE: ../../../third_party/skia/docs/examples/Pixmap_colorType.cpp +FILE: ../../../third_party/skia/docs/examples/Pixmap_computeByteSize.cpp +FILE: ../../../third_party/skia/docs/examples/Pixmap_computeIsOpaque.cpp +FILE: ../../../third_party/skia/docs/examples/Pixmap_const_SkImageInfo_const_star.cpp +FILE: ../../../third_party/skia/docs/examples/Pixmap_empty_constructor.cpp +FILE: ../../../third_party/skia/docs/examples/Pixmap_erase.cpp +FILE: ../../../third_party/skia/docs/examples/Pixmap_erase_2.cpp +FILE: ../../../third_party/skia/docs/examples/Pixmap_erase_3.cpp +FILE: ../../../third_party/skia/docs/examples/Pixmap_extractSubset.cpp +FILE: ../../../third_party/skia/docs/examples/Pixmap_getColor.cpp +FILE: ../../../third_party/skia/docs/examples/Pixmap_height.cpp +FILE: ../../../third_party/skia/docs/examples/Pixmap_info.cpp +FILE: ../../../third_party/skia/docs/examples/Pixmap_isOpaque.cpp +FILE: ../../../third_party/skia/docs/examples/Pixmap_readPixels.cpp +FILE: ../../../third_party/skia/docs/examples/Pixmap_readPixels_2.cpp +FILE: ../../../third_party/skia/docs/examples/Pixmap_readPixels_3.cpp +FILE: ../../../third_party/skia/docs/examples/Pixmap_readPixels_4.cpp +FILE: ../../../third_party/skia/docs/examples/Pixmap_reset.cpp +FILE: ../../../third_party/skia/docs/examples/Pixmap_reset_2.cpp +FILE: ../../../third_party/skia/docs/examples/Pixmap_rowBytes.cpp +FILE: ../../../third_party/skia/docs/examples/Pixmap_rowBytesAsPixels.cpp +FILE: ../../../third_party/skia/docs/examples/Pixmap_scalePixels.cpp +FILE: ../../../third_party/skia/docs/examples/Pixmap_setColorSpace.cpp +FILE: ../../../third_party/skia/docs/examples/Pixmap_shiftPerPixel.cpp +FILE: ../../../third_party/skia/docs/examples/Pixmap_width.cpp +FILE: ../../../third_party/skia/docs/examples/Pixmap_writable_addr.cpp +FILE: ../../../third_party/skia/docs/examples/Pixmap_writable_addr16.cpp +FILE: ../../../third_party/skia/docs/examples/Pixmap_writable_addr32.cpp +FILE: ../../../third_party/skia/docs/examples/Pixmap_writable_addr64.cpp +FILE: ../../../third_party/skia/docs/examples/Pixmap_writable_addr8.cpp +FILE: ../../../third_party/skia/docs/examples/Pixmap_writable_addrF16.cpp +FILE: ../../../third_party/skia/docs/examples/Pixmap_writable_addr_2.cpp +FILE: ../../../third_party/skia/docs/examples/Plus.cpp +FILE: ../../../third_party/skia/docs/examples/Point_CrossProduct.cpp +FILE: ../../../third_party/skia/docs/examples/Point_Distance.cpp +FILE: ../../../third_party/skia/docs/examples/Point_DotProduct.cpp +FILE: ../../../third_party/skia/docs/examples/Point_Length.cpp +FILE: ../../../third_party/skia/docs/examples/Point_Make.cpp +FILE: ../../../third_party/skia/docs/examples/Point_Normalize.cpp +FILE: ../../../third_party/skia/docs/examples/Point_Offset.cpp +FILE: ../../../third_party/skia/docs/examples/Point_Offset_2.cpp +FILE: ../../../third_party/skia/docs/examples/Point_add_operator.cpp +FILE: ../../../third_party/skia/docs/examples/Point_addto_operator.cpp +FILE: ../../../third_party/skia/docs/examples/Point_cross.cpp +FILE: ../../../third_party/skia/docs/examples/Point_distanceToOrigin.cpp +FILE: ../../../third_party/skia/docs/examples/Point_dot.cpp +FILE: ../../../third_party/skia/docs/examples/Point_equal_operator.cpp +FILE: ../../../third_party/skia/docs/examples/Point_equals.cpp +FILE: ../../../third_party/skia/docs/examples/Point_isFinite.cpp +FILE: ../../../third_party/skia/docs/examples/Point_isZero.cpp +FILE: ../../../third_party/skia/docs/examples/Point_iset.cpp +FILE: ../../../third_party/skia/docs/examples/Point_iset_2.cpp +FILE: ../../../third_party/skia/docs/examples/Point_length_2.cpp +FILE: ../../../third_party/skia/docs/examples/Point_minus_operator.cpp +FILE: ../../../third_party/skia/docs/examples/Point_multiply_operator.cpp +FILE: ../../../third_party/skia/docs/examples/Point_multiplyby_operator.cpp +FILE: ../../../third_party/skia/docs/examples/Point_negate.cpp +FILE: ../../../third_party/skia/docs/examples/Point_normalize_2.cpp +FILE: ../../../third_party/skia/docs/examples/Point_notequal_operator.cpp +FILE: ../../../third_party/skia/docs/examples/Point_offset_3.cpp +FILE: ../../../third_party/skia/docs/examples/Point_scale.cpp +FILE: ../../../third_party/skia/docs/examples/Point_scale_2.cpp +FILE: ../../../third_party/skia/docs/examples/Point_set.cpp +FILE: ../../../third_party/skia/docs/examples/Point_setAbs.cpp +FILE: ../../../third_party/skia/docs/examples/Point_setLength.cpp +FILE: ../../../third_party/skia/docs/examples/Point_setLength_2.cpp +FILE: ../../../third_party/skia/docs/examples/Point_setNormalize.cpp +FILE: ../../../third_party/skia/docs/examples/Point_subtract_operator.cpp +FILE: ../../../third_party/skia/docs/examples/Point_subtractfrom_operator.cpp +FILE: ../../../third_party/skia/docs/examples/Point_x.cpp +FILE: ../../../third_party/skia/docs/examples/Point_y.cpp +FILE: ../../../third_party/skia/docs/examples/PreMultiplyARGB.cpp +FILE: ../../../third_party/skia/docs/examples/PreMultiplyColor.cpp +FILE: ../../../third_party/skia/docs/examples/Quad_a.cpp +FILE: ../../../third_party/skia/docs/examples/Quad_b.cpp +FILE: ../../../third_party/skia/docs/examples/RGBA4f_FromColor.cpp +FILE: ../../../third_party/skia/docs/examples/RGBA4f_equal1_operator.cpp +FILE: ../../../third_party/skia/docs/examples/RGBA4f_notequal1_operator.cpp +FILE: ../../../third_party/skia/docs/examples/RGBA4f_toSkColor.cpp +FILE: ../../../third_party/skia/docs/examples/RGBA4f_vec.cpp +FILE: ../../../third_party/skia/docs/examples/RGBA4f_vec_2.cpp +FILE: ../../../third_party/skia/docs/examples/RGBToHSV.cpp +FILE: ../../../third_party/skia/docs/examples/RRect_Corner.cpp +FILE: ../../../third_party/skia/docs/examples/RRect_MakeEmpty.cpp +FILE: ../../../third_party/skia/docs/examples/RRect_MakeOval.cpp +FILE: ../../../third_party/skia/docs/examples/RRect_MakeRect.cpp +FILE: ../../../third_party/skia/docs/examples/RRect_MakeRectXY.cpp +FILE: ../../../third_party/skia/docs/examples/RRect_Type.cpp +FILE: ../../../third_party/skia/docs/examples/RRect_contains.cpp +FILE: ../../../third_party/skia/docs/examples/RRect_copy_const_SkRRect.cpp +FILE: ../../../third_party/skia/docs/examples/RRect_copy_operator.cpp +FILE: ../../../third_party/skia/docs/examples/RRect_dump.cpp +FILE: ../../../third_party/skia/docs/examples/RRect_dumpHex.cpp +FILE: ../../../third_party/skia/docs/examples/RRect_dump_2.cpp +FILE: ../../../third_party/skia/docs/examples/RRect_empty_constructor.cpp +FILE: ../../../third_party/skia/docs/examples/RRect_equal_operator.cpp +FILE: ../../../third_party/skia/docs/examples/RRect_getBounds.cpp +FILE: ../../../third_party/skia/docs/examples/RRect_getSimpleRadii.cpp +FILE: ../../../third_party/skia/docs/examples/RRect_getType.cpp +FILE: ../../../third_party/skia/docs/examples/RRect_height.cpp +FILE: ../../../third_party/skia/docs/examples/RRect_inset.cpp +FILE: ../../../third_party/skia/docs/examples/RRect_inset_2.cpp +FILE: ../../../third_party/skia/docs/examples/RRect_isComplex.cpp +FILE: ../../../third_party/skia/docs/examples/RRect_isEmpty.cpp +FILE: ../../../third_party/skia/docs/examples/RRect_isNinePatch.cpp +FILE: ../../../third_party/skia/docs/examples/RRect_isOval.cpp +FILE: ../../../third_party/skia/docs/examples/RRect_isRect.cpp +FILE: ../../../third_party/skia/docs/examples/RRect_isSimple.cpp +FILE: ../../../third_party/skia/docs/examples/RRect_isValid.cpp +FILE: ../../../third_party/skia/docs/examples/RRect_makeOffset.cpp +FILE: ../../../third_party/skia/docs/examples/RRect_notequal_operator.cpp +FILE: ../../../third_party/skia/docs/examples/RRect_offset.cpp +FILE: ../../../third_party/skia/docs/examples/RRect_outset.cpp +FILE: ../../../third_party/skia/docs/examples/RRect_outset_2.cpp +FILE: ../../../third_party/skia/docs/examples/RRect_radii.cpp +FILE: ../../../third_party/skia/docs/examples/RRect_readFromMemory.cpp +FILE: ../../../third_party/skia/docs/examples/RRect_rect.cpp +FILE: ../../../third_party/skia/docs/examples/RRect_setEmpty.cpp +FILE: ../../../third_party/skia/docs/examples/RRect_setNinePatch.cpp +FILE: ../../../third_party/skia/docs/examples/RRect_setOval.cpp +FILE: ../../../third_party/skia/docs/examples/RRect_setRect.cpp +FILE: ../../../third_party/skia/docs/examples/RRect_setRectRadii.cpp +FILE: ../../../third_party/skia/docs/examples/RRect_setRectXY.cpp +FILE: ../../../third_party/skia/docs/examples/RRect_transform.cpp +FILE: ../../../third_party/skia/docs/examples/RRect_type_2.cpp +FILE: ../../../third_party/skia/docs/examples/RRect_width.cpp +FILE: ../../../third_party/skia/docs/examples/RRect_writeToMemory.cpp +FILE: ../../../third_party/skia/docs/examples/Rect_Intersects.cpp +FILE: ../../../third_party/skia/docs/examples/Rect_Make.cpp +FILE: ../../../third_party/skia/docs/examples/Rect_MakeEmpty.cpp +FILE: ../../../third_party/skia/docs/examples/Rect_MakeIWH.cpp +FILE: ../../../third_party/skia/docs/examples/Rect_MakeLTRB.cpp +FILE: ../../../third_party/skia/docs/examples/Rect_MakeSize.cpp +FILE: ../../../third_party/skia/docs/examples/Rect_MakeWH.cpp +FILE: ../../../third_party/skia/docs/examples/Rect_MakeXYWH.cpp +FILE: ../../../third_party/skia/docs/examples/Rect_Make_2.cpp +FILE: ../../../third_party/skia/docs/examples/Rect_asScalars.cpp +FILE: ../../../third_party/skia/docs/examples/Rect_bottom.cpp +FILE: ../../../third_party/skia/docs/examples/Rect_centerX.cpp +FILE: ../../../third_party/skia/docs/examples/Rect_centerY.cpp +FILE: ../../../third_party/skia/docs/examples/Rect_contains.cpp +FILE: ../../../third_party/skia/docs/examples/Rect_contains_2.cpp +FILE: ../../../third_party/skia/docs/examples/Rect_contains_3.cpp +FILE: ../../../third_party/skia/docs/examples/Rect_dump.cpp +FILE: ../../../third_party/skia/docs/examples/Rect_dumpHex.cpp +FILE: ../../../third_party/skia/docs/examples/Rect_dump_2.cpp +FILE: ../../../third_party/skia/docs/examples/Rect_equal_operator.cpp +FILE: ../../../third_party/skia/docs/examples/Rect_height.cpp +FILE: ../../../third_party/skia/docs/examples/Rect_inset.cpp +FILE: ../../../third_party/skia/docs/examples/Rect_intersect.cpp +FILE: ../../../third_party/skia/docs/examples/Rect_intersect_2.cpp +FILE: ../../../third_party/skia/docs/examples/Rect_intersect_3.cpp +FILE: ../../../third_party/skia/docs/examples/Rect_intersects_2.cpp +FILE: ../../../third_party/skia/docs/examples/Rect_intersects_3.cpp +FILE: ../../../third_party/skia/docs/examples/Rect_isEmpty.cpp +FILE: ../../../third_party/skia/docs/examples/Rect_isFinite.cpp +FILE: ../../../third_party/skia/docs/examples/Rect_isSorted.cpp +FILE: ../../../third_party/skia/docs/examples/Rect_join.cpp +FILE: ../../../third_party/skia/docs/examples/Rect_joinNonEmptyArg.cpp +FILE: ../../../third_party/skia/docs/examples/Rect_joinPossiblyEmptyRect.cpp +FILE: ../../../third_party/skia/docs/examples/Rect_join_2.cpp +FILE: ../../../third_party/skia/docs/examples/Rect_left.cpp +FILE: ../../../third_party/skia/docs/examples/Rect_makeInset.cpp +FILE: ../../../third_party/skia/docs/examples/Rect_makeOffset.cpp +FILE: ../../../third_party/skia/docs/examples/Rect_makeOutset.cpp +FILE: ../../../third_party/skia/docs/examples/Rect_makeSorted.cpp +FILE: ../../../third_party/skia/docs/examples/Rect_notequal_operator.cpp +FILE: ../../../third_party/skia/docs/examples/Rect_offset.cpp +FILE: ../../../third_party/skia/docs/examples/Rect_offsetTo.cpp +FILE: ../../../third_party/skia/docs/examples/Rect_offset_2.cpp +FILE: ../../../third_party/skia/docs/examples/Rect_outset.cpp +FILE: ../../../third_party/skia/docs/examples/Rect_right.cpp +FILE: ../../../third_party/skia/docs/examples/Rect_round.cpp +FILE: ../../../third_party/skia/docs/examples/Rect_roundIn.cpp +FILE: ../../../third_party/skia/docs/examples/Rect_roundOut.cpp +FILE: ../../../third_party/skia/docs/examples/Rect_roundOut_2.cpp +FILE: ../../../third_party/skia/docs/examples/Rect_roundOut_3.cpp +FILE: ../../../third_party/skia/docs/examples/Rect_round_2.cpp +FILE: ../../../third_party/skia/docs/examples/Rect_set.cpp +FILE: ../../../third_party/skia/docs/examples/Rect_setBounds.cpp +FILE: ../../../third_party/skia/docs/examples/Rect_setBoundsCheck.cpp +FILE: ../../../third_party/skia/docs/examples/Rect_setBoundsNoCheck.cpp +FILE: ../../../third_party/skia/docs/examples/Rect_setEmpty.cpp +FILE: ../../../third_party/skia/docs/examples/Rect_setLTRB.cpp +FILE: ../../../third_party/skia/docs/examples/Rect_setWH.cpp +FILE: ../../../third_party/skia/docs/examples/Rect_setXYWH.cpp +FILE: ../../../third_party/skia/docs/examples/Rect_set_4.cpp +FILE: ../../../third_party/skia/docs/examples/Rect_sort.cpp +FILE: ../../../third_party/skia/docs/examples/Rect_toQuad.cpp +FILE: ../../../third_party/skia/docs/examples/Rect_top.cpp +FILE: ../../../third_party/skia/docs/examples/Rect_width.cpp +FILE: ../../../third_party/skia/docs/examples/Rect_x.cpp +FILE: ../../../third_party/skia/docs/examples/Rect_y.cpp +FILE: ../../../third_party/skia/docs/examples/Region_Cliperator_const_SkRegion_const_SkIRect.cpp +FILE: ../../../third_party/skia/docs/examples/Region_Cliperator_done.cpp +FILE: ../../../third_party/skia/docs/examples/Region_Cliperator_next.cpp +FILE: ../../../third_party/skia/docs/examples/Region_Cliperator_rect.cpp +FILE: ../../../third_party/skia/docs/examples/Region_Iterator_Iterator.cpp +FILE: ../../../third_party/skia/docs/examples/Region_Iterator_copy_const_SkRegion.cpp +FILE: ../../../third_party/skia/docs/examples/Region_Iterator_done.cpp +FILE: ../../../third_party/skia/docs/examples/Region_Iterator_next.cpp +FILE: ../../../third_party/skia/docs/examples/Region_Iterator_rect.cpp +FILE: ../../../third_party/skia/docs/examples/Region_Iterator_reset.cpp +FILE: ../../../third_party/skia/docs/examples/Region_Iterator_rewind.cpp +FILE: ../../../third_party/skia/docs/examples/Region_Iterator_rgn.cpp +FILE: ../../../third_party/skia/docs/examples/Region_Op.cpp +FILE: ../../../third_party/skia/docs/examples/Region_Spanerator_const_SkRegion_int_int_int.cpp +FILE: ../../../third_party/skia/docs/examples/Region_Spanerator_next.cpp +FILE: ../../../third_party/skia/docs/examples/Region_computeRegionComplexity.cpp +FILE: ../../../third_party/skia/docs/examples/Region_contains.cpp +FILE: ../../../third_party/skia/docs/examples/Region_contains_2.cpp +FILE: ../../../third_party/skia/docs/examples/Region_contains_3.cpp +FILE: ../../../third_party/skia/docs/examples/Region_copy_const_SkIRect.cpp +FILE: ../../../third_party/skia/docs/examples/Region_copy_const_SkRegion.cpp +FILE: ../../../third_party/skia/docs/examples/Region_copy_operator.cpp +FILE: ../../../third_party/skia/docs/examples/Region_destructor.cpp +FILE: ../../../third_party/skia/docs/examples/Region_empty_constructor.cpp +FILE: ../../../third_party/skia/docs/examples/Region_equal1_operator.cpp +FILE: ../../../third_party/skia/docs/examples/Region_getBoundaryPath.cpp +FILE: ../../../third_party/skia/docs/examples/Region_getBounds.cpp +FILE: ../../../third_party/skia/docs/examples/Region_intersects.cpp +FILE: ../../../third_party/skia/docs/examples/Region_intersects_2.cpp +FILE: ../../../third_party/skia/docs/examples/Region_isComplex.cpp +FILE: ../../../third_party/skia/docs/examples/Region_isEmpty.cpp +FILE: ../../../third_party/skia/docs/examples/Region_isRect.cpp +FILE: ../../../third_party/skia/docs/examples/Region_notequal1_operator.cpp +FILE: ../../../third_party/skia/docs/examples/Region_op_1.cpp +FILE: ../../../third_party/skia/docs/examples/Region_op_2.cpp +FILE: ../../../third_party/skia/docs/examples/Region_op_3.cpp +FILE: ../../../third_party/skia/docs/examples/Region_op_4.cpp +FILE: ../../../third_party/skia/docs/examples/Region_op_5.cpp +FILE: ../../../third_party/skia/docs/examples/Region_op_6.cpp +FILE: ../../../third_party/skia/docs/examples/Region_quickContains.cpp +FILE: ../../../third_party/skia/docs/examples/Region_quickReject.cpp +FILE: ../../../third_party/skia/docs/examples/Region_quickReject_2.cpp +FILE: ../../../third_party/skia/docs/examples/Region_readFromMemory.cpp +FILE: ../../../third_party/skia/docs/examples/Region_set.cpp +FILE: ../../../third_party/skia/docs/examples/Region_setEmpty.cpp +FILE: ../../../third_party/skia/docs/examples/Region_setPath.cpp +FILE: ../../../third_party/skia/docs/examples/Region_setRect.cpp +FILE: ../../../third_party/skia/docs/examples/Region_setRects.cpp +FILE: ../../../third_party/skia/docs/examples/Region_setRegion.cpp +FILE: ../../../third_party/skia/docs/examples/Region_swap.cpp +FILE: ../../../third_party/skia/docs/examples/Region_translate.cpp +FILE: ../../../third_party/skia/docs/examples/Region_translate_2.cpp +FILE: ../../../third_party/skia/docs/examples/Region_writeToMemory.cpp +FILE: ../../../third_party/skia/docs/examples/Saturation.cpp +FILE: ../../../third_party/skia/docs/examples/Screen.cpp +FILE: ../../../third_party/skia/docs/examples/Shader_Methods_a.cpp +FILE: ../../../third_party/skia/docs/examples/Shader_Methods_b.cpp +FILE: ../../../third_party/skia/docs/examples/Soft_Light.cpp +FILE: ../../../third_party/skia/docs/examples/Src.cpp +FILE: ../../../third_party/skia/docs/examples/Src_Atop.cpp +FILE: ../../../third_party/skia/docs/examples/Src_In.cpp +FILE: ../../../third_party/skia/docs/examples/Src_Out.cpp +FILE: ../../../third_party/skia/docs/examples/Src_Over.cpp +FILE: ../../../third_party/skia/docs/examples/State_Stack_a.cpp +FILE: ../../../third_party/skia/docs/examples/State_Stack_b.cpp +FILE: ../../../third_party/skia/docs/examples/Stroke_Width.cpp +FILE: ../../../third_party/skia/docs/examples/Surface_MakeFromBackendTexture.cpp +FILE: ../../../third_party/skia/docs/examples/Surface_MakeNull.cpp +FILE: ../../../third_party/skia/docs/examples/Surface_MakeRaster.cpp +FILE: ../../../third_party/skia/docs/examples/Surface_MakeRasterDirect.cpp +FILE: ../../../third_party/skia/docs/examples/Surface_MakeRasterDirectReleaseProc.cpp +FILE: ../../../third_party/skia/docs/examples/Surface_MakeRasterN32Premul.cpp +FILE: ../../../third_party/skia/docs/examples/Surface_MakeRaster_2.cpp +FILE: ../../../third_party/skia/docs/examples/Surface_MakeRenderTarget.cpp +FILE: ../../../third_party/skia/docs/examples/Surface_MakeRenderTarget_2.cpp +FILE: ../../../third_party/skia/docs/examples/Surface_MakeRenderTarget_3.cpp +FILE: ../../../third_party/skia/docs/examples/Surface_characterize.cpp +FILE: ../../../third_party/skia/docs/examples/Surface_draw.cpp +FILE: ../../../third_party/skia/docs/examples/Surface_draw_2.cpp +FILE: ../../../third_party/skia/docs/examples/Surface_getCanvas.cpp +FILE: ../../../third_party/skia/docs/examples/Surface_height.cpp +FILE: ../../../third_party/skia/docs/examples/Surface_makeImageSnapshot.cpp +FILE: ../../../third_party/skia/docs/examples/Surface_makeImageSnapshot_2.cpp +FILE: ../../../third_party/skia/docs/examples/Surface_makeSurface.cpp +FILE: ../../../third_party/skia/docs/examples/Surface_notifyContentWillChange.cpp +FILE: ../../../third_party/skia/docs/examples/Surface_peekPixels.cpp +FILE: ../../../third_party/skia/docs/examples/Surface_props.cpp +FILE: ../../../third_party/skia/docs/examples/Surface_readPixels.cpp +FILE: ../../../third_party/skia/docs/examples/Surface_readPixels_2.cpp +FILE: ../../../third_party/skia/docs/examples/Surface_readPixels_3.cpp +FILE: ../../../third_party/skia/docs/examples/Surface_width.cpp +FILE: ../../../third_party/skia/docs/examples/Surface_writePixels.cpp +FILE: ../../../third_party/skia/docs/examples/Surface_writePixels_2.cpp +FILE: ../../../third_party/skia/docs/examples/TextBlobBuilder_allocRun.cpp +FILE: ../../../third_party/skia/docs/examples/TextBlobBuilder_allocRunPos.cpp +FILE: ../../../third_party/skia/docs/examples/TextBlobBuilder_allocRunPosH.cpp +FILE: ../../../third_party/skia/docs/examples/TextBlobBuilder_empty_constructor.cpp +FILE: ../../../third_party/skia/docs/examples/TextBlobBuilder_make.cpp +FILE: ../../../third_party/skia/docs/examples/TextBlob_Deserialize.cpp +FILE: ../../../third_party/skia/docs/examples/TextBlob_MakeFromString.cpp +FILE: ../../../third_party/skia/docs/examples/TextBlob_MakeFromText.cpp +FILE: ../../../third_party/skia/docs/examples/TextBlob_bounds.cpp +FILE: ../../../third_party/skia/docs/examples/TextBlob_getIntercepts.cpp +FILE: ../../../third_party/skia/docs/examples/TextBlob_serialize.cpp +FILE: ../../../third_party/skia/docs/examples/TextBlob_serialize_2.cpp +FILE: ../../../third_party/skia/docs/examples/TextBlob_uniqueID.cpp +FILE: ../../../third_party/skia/docs/examples/Text_Encoding.cpp +FILE: ../../../third_party/skia/docs/examples/Text_Scale_X.cpp +FILE: ../../../third_party/skia/docs/examples/Text_Size.cpp +FILE: ../../../third_party/skia/docs/examples/Text_Skew_X.cpp +FILE: ../../../third_party/skia/docs/examples/Typeface_Methods.cpp +FILE: ../../../third_party/skia/docs/examples/Xor.cpp +FILE: ../../../third_party/skia/docs/examples/incomplete.cpp +FILE: ../../../third_party/skia/experimental/minimal_ios_mtl_skia_app/main.mm +FILE: ../../../third_party/skia/experimental/sktext/editor/App.cpp +FILE: ../../../third_party/skia/gm/crbug_918512.cpp +FILE: ../../../third_party/skia/gm/fp_sample_chaining.cpp +FILE: ../../../third_party/skia/gm/fpcoordinateoverride.cpp +FILE: ../../../third_party/skia/gm/inverseclip.cpp +FILE: ../../../third_party/skia/gm/labyrinth.cpp +FILE: ../../../third_party/skia/gm/manypathatlases.cpp +FILE: ../../../third_party/skia/gm/preservefillrule.cpp +FILE: ../../../third_party/skia/gm/swizzle.cpp +FILE: ../../../third_party/skia/gm/tilemodes_alpha.cpp +FILE: ../../../third_party/skia/include/core/SkPathTypes.h +FILE: ../../../third_party/skia/modules/skparagraph/bench/ParagraphBench.cpp +FILE: ../../../third_party/skia/modules/skplaintexteditor/app/editor_application.cpp +FILE: ../../../third_party/skia/modules/skplaintexteditor/include/editor.h +FILE: ../../../third_party/skia/modules/skplaintexteditor/include/stringslice.h +FILE: ../../../third_party/skia/modules/skplaintexteditor/include/stringview.h +FILE: ../../../third_party/skia/modules/skplaintexteditor/src/editor.cpp +FILE: ../../../third_party/skia/modules/skplaintexteditor/src/shape.cpp +FILE: ../../../third_party/skia/modules/skplaintexteditor/src/shape.h +FILE: ../../../third_party/skia/modules/skplaintexteditor/src/stringslice.cpp +FILE: ../../../third_party/skia/modules/skplaintexteditor/src/word_boundaries.cpp +FILE: ../../../third_party/skia/modules/skplaintexteditor/src/word_boundaries.h +FILE: ../../../third_party/skia/samplecode/SamplePathTessellators.cpp +FILE: ../../../third_party/skia/src/core/SkContainers.cpp +FILE: ../../../third_party/skia/src/core/SkMalloc.cpp +FILE: ../../../third_party/skia/src/core/SkPixelRefPriv.h +FILE: ../../../third_party/skia/src/core/SkTextBlobTrace.cpp +FILE: ../../../third_party/skia/src/core/SkTextBlobTrace.h +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/AtlasPathRenderer.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/AtlasPathRenderer.h +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/PathInnerTriangulateOp.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/PathInnerTriangulateOp.h +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/TessellationPathRenderer.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/TessellationPathRenderer.h +FILE: ../../../third_party/skia/src/gpu/ganesh/tessellate/GrPathTessellationShader.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/tessellate/GrPathTessellationShader.h +FILE: ../../../third_party/skia/src/pdf/SkPDFGraphicStackState.cpp +FILE: ../../../third_party/skia/src/pdf/SkPDFGraphicStackState.h +FILE: ../../../third_party/skia/src/pdf/SkPDFType1Font.cpp +FILE: ../../../third_party/skia/src/pdf/SkPDFType1Font.h ---------------------------------------------------------------------------------------------------- -Copyright 2022 Google LLC. +Copyright 2019 Google LLC. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are @@ -7154,11 +6276,15 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ==================================================================================================== LIBRARY: skia -ORIGIN: ../../../third_party/skia/include/utils/SkEventTracer.h + ../../../third_party/skia/LICENSE +ORIGIN: ../../../third_party/skia/fuzz/oss_fuzz/FuzzSKSL2GLSL.cpp + ../../../third_party/skia/LICENSE TYPE: LicenseType.bsd -FILE: ../../../third_party/skia/include/utils/SkEventTracer.h +FILE: ../../../third_party/skia/fuzz/oss_fuzz/FuzzSKSL2GLSL.cpp +FILE: ../../../third_party/skia/fuzz/oss_fuzz/FuzzSKSL2Metal.cpp +FILE: ../../../third_party/skia/fuzz/oss_fuzz/FuzzSKSL2Pipeline.cpp +FILE: ../../../third_party/skia/fuzz/oss_fuzz/FuzzSKSL2SPIRV.cpp +FILE: ../../../third_party/skia/fuzz/oss_fuzz/FuzzSkDescriptorDeserialize.cpp ---------------------------------------------------------------------------------------------------- -Copyright (C) 2014 Google Inc. All rights reserved. +Copyright 2019 Google, LLC Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are @@ -7191,77 +6317,27 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ==================================================================================================== LIBRARY: skia -ORIGIN: ../../../third_party/skia/infra/bots/gen_tasks_logic/compile_cas.go + ../../../LICENSE +ORIGIN: ../../../third_party/skia/src/core/SkStrikeSpec.cpp + ../../../third_party/skia/LICENSE TYPE: LicenseType.bsd -FILE: ../../../third_party/skia/infra/bots/gen_tasks_logic/compile_cas.go -FILE: ../../../third_party/skia/infra/bots/gen_tasks_logic/dm_flags.go -FILE: ../../../third_party/skia/infra/bots/gen_tasks_logic/job_builder.go -FILE: ../../../third_party/skia/infra/bots/gen_tasks_logic/nano_flags.go -FILE: ../../../third_party/skia/infra/bots/gen_tasks_logic/schema.go -FILE: ../../../third_party/skia/infra/bots/gen_tasks_logic/task_builder.go -FILE: ../../../third_party/skia/infra/bots/task_drivers/compile_wasm_gm_tests/compile_wasm_gm_tests.go -FILE: ../../../third_party/skia/infra/bots/task_drivers/fm_driver/fm_driver.go -FILE: ../../../third_party/skia/infra/bots/task_drivers/g3_canary/g3_canary.go -FILE: ../../../third_party/skia/infra/bots/task_drivers/perf_puppeteer_canvas/perf_puppeteer_canvas.go -FILE: ../../../third_party/skia/infra/bots/task_drivers/perf_puppeteer_canvas/perf_puppeteer_canvas_test.go -FILE: ../../../third_party/skia/infra/bots/task_drivers/perf_puppeteer_render_skps/perf_puppeteer_render_skps.go -FILE: ../../../third_party/skia/infra/bots/task_drivers/perf_puppeteer_render_skps/perf_puppeteer_render_skps_test.go -FILE: ../../../third_party/skia/infra/bots/task_drivers/perf_puppeteer_skottie_frames/perf_puppeteer_skottie_frames.go -FILE: ../../../third_party/skia/infra/bots/task_drivers/perf_puppeteer_skottie_frames/perf_puppeteer_skottie_frames_test.go -FILE: ../../../third_party/skia/infra/bots/task_drivers/run_gn_to_bp/run_gn_to_bp.go -FILE: ../../../third_party/skia/infra/bots/task_drivers/run_wasm_gm_tests/run_wasm_gm_tests.go +FILE: ../../../third_party/skia/src/core/SkStrikeSpec.cpp ---------------------------------------------------------------------------------------------------- -Copyright 2020 The Chromium Authors. All rights reserved. +Copyright 2019 The Android Open Source Project Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: skia -ORIGIN: ../../../third_party/skia/infra/bots/gen_tasks_logic/gen_tasks_logic.go + ../../../LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/skia/infra/bots/gen_tasks.go -FILE: ../../../third_party/skia/infra/bots/gen_tasks_logic/gen_tasks_logic.go ----------------------------------------------------------------------------------------------------- -Copyright 2016 The Chromium Authors. All rights reserved. + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT @@ -7313,132 +6389,154 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ==================================================================================================== LIBRARY: skia -ORIGIN: ../../../third_party/skia/infra/bots/task_drivers/codesize/codesize.go + ../../../LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/skia/infra/bots/task_drivers/codesize/codesize.go -FILE: ../../../third_party/skia/infra/bots/task_drivers/codesize/codesize_test.go -FILE: ../../../third_party/skia/modules/canvaskit/go/gold_test_env/gold_test_env.go ----------------------------------------------------------------------------------------------------- -Copyright 2022 The Chromium Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: skia -ORIGIN: ../../../third_party/skia/samplecode/SampleTextureUpload.cpp + ../../../third_party/skia/LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/skia/samplecode/SampleTextureUpload.cpp ----------------------------------------------------------------------------------------------------- -Copyright 2019 Google Inc. and Adobe Inc. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - - * Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: skia -ORIGIN: ../../../third_party/skia/src/codec/SkCodecPriv.h + ../../../third_party/skia/LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/skia/src/codec/SkCodecPriv.h -FILE: ../../../third_party/skia/src/core/SkLocalMatrixImageFilter.h -FILE: ../../../third_party/skia/src/ports/SkImageGenerator_none.cpp -FILE: ../../../third_party/skia/src/ports/SkImageGenerator_skia.cpp ----------------------------------------------------------------------------------------------------- -Copyright 2015 The Android Open Source Project - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - - * Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: skia -ORIGIN: ../../../third_party/skia/src/codec/SkColorTable.cpp + ../../../third_party/skia/LICENSE +ORIGIN: ../../../third_party/skia/bench/FindCubicConvex180ChopsBench.cpp + ../../../third_party/skia/LICENSE TYPE: LicenseType.bsd -FILE: ../../../third_party/skia/src/codec/SkColorTable.cpp -FILE: ../../../third_party/skia/src/core/SkCubicClipper.cpp -FILE: ../../../third_party/skia/src/core/SkCubicClipper.h -FILE: ../../../third_party/skia/src/core/SkEdgeClipper.cpp -FILE: ../../../third_party/skia/src/core/SkEdgeClipper.h -FILE: ../../../third_party/skia/src/core/SkQuadClipper.cpp -FILE: ../../../third_party/skia/src/core/SkQuadClipper.h -FILE: ../../../third_party/skia/src/images/SkImageEncoder.cpp +FILE: ../../../third_party/skia/bench/FindCubicConvex180ChopsBench.cpp +FILE: ../../../third_party/skia/bench/GlyphQuadFillBench.cpp +FILE: ../../../third_party/skia/bench/TessellateBench.cpp +FILE: ../../../third_party/skia/fuzz/FuzzSkParagraph.cpp +FILE: ../../../third_party/skia/gm/3d.cpp +FILE: ../../../third_party/skia/gm/bc1_transparency.cpp +FILE: ../../../third_party/skia/gm/bicubic.cpp +FILE: ../../../third_party/skia/gm/compressed_textures.cpp +FILE: ../../../third_party/skia/gm/crbug_1073670.cpp +FILE: ../../../third_party/skia/gm/crbug_1086705.cpp +FILE: ../../../third_party/skia/gm/crbug_1113794.cpp +FILE: ../../../third_party/skia/gm/exoticformats.cpp +FILE: ../../../third_party/skia/gm/rsxtext.cpp +FILE: ../../../third_party/skia/gm/skbug_9819.cpp +FILE: ../../../third_party/skia/gm/strokerect_anisotropic.cpp +FILE: ../../../third_party/skia/gm/verifiers/gmverifier.cpp +FILE: ../../../third_party/skia/gm/verifiers/gmverifier.h +FILE: ../../../third_party/skia/gm/widebuttcaps.cpp +FILE: ../../../third_party/skia/include/core/SkM44.h +FILE: ../../../third_party/skia/include/core/SkSamplingOptions.h +FILE: ../../../third_party/skia/include/effects/SkStrokeAndFillPathEffect.h +FILE: ../../../third_party/skia/include/gpu/GrDirectContext.h +FILE: ../../../third_party/skia/include/gpu/mtl/GrMtlBackendContext.h +FILE: ../../../third_party/skia/include/private/SkOpts_spi.h +FILE: ../../../third_party/skia/include/private/SkTPin.h +FILE: ../../../third_party/skia/modules/audioplayer/SkAudioPlayer.cpp +FILE: ../../../third_party/skia/modules/audioplayer/SkAudioPlayer.h +FILE: ../../../third_party/skia/modules/audioplayer/SkAudioPlayer_mac.mm +FILE: ../../../third_party/skia/modules/audioplayer/SkAudioPlayer_none.cpp +FILE: ../../../third_party/skia/modules/audioplayer/SkAudioPlayer_oboe.cpp +FILE: ../../../third_party/skia/modules/audioplayer/SkAudioPlayer_sfml.cpp +FILE: ../../../third_party/skia/modules/skottie/include/ExternalLayer.h +FILE: ../../../third_party/skia/modules/skottie/src/Adapter.h +FILE: ../../../third_party/skia/modules/skottie/src/Camera.cpp +FILE: ../../../third_party/skia/modules/skottie/src/Camera.h +FILE: ../../../third_party/skia/modules/skottie/src/Path.cpp +FILE: ../../../third_party/skia/modules/skottie/src/Transform.cpp +FILE: ../../../third_party/skia/modules/skottie/src/Transform.h +FILE: ../../../third_party/skia/modules/skottie/src/animator/Animator.cpp +FILE: ../../../third_party/skia/modules/skottie/src/animator/Animator.h +FILE: ../../../third_party/skia/modules/skottie/src/animator/KeyframeAnimator.cpp +FILE: ../../../third_party/skia/modules/skottie/src/animator/KeyframeAnimator.h +FILE: ../../../third_party/skia/modules/skottie/src/animator/ScalarKeyframeAnimator.cpp +FILE: ../../../third_party/skia/modules/skottie/src/animator/ShapeKeyframeAnimator.cpp +FILE: ../../../third_party/skia/modules/skottie/src/animator/TextKeyframeAnimator.cpp +FILE: ../../../third_party/skia/modules/skottie/src/animator/Vec2KeyframeAnimator.cpp +FILE: ../../../third_party/skia/modules/skottie/src/animator/VectorKeyframeAnimator.cpp +FILE: ../../../third_party/skia/modules/skottie/src/animator/VectorKeyframeAnimator.h +FILE: ../../../third_party/skia/modules/skottie/src/effects/BlackAndWhiteEffect.cpp +FILE: ../../../third_party/skia/modules/skottie/src/effects/BrightnessContrastEffect.cpp +FILE: ../../../third_party/skia/modules/skottie/src/effects/CornerPinEffect.cpp +FILE: ../../../third_party/skia/modules/skottie/src/effects/DisplacementMapEffect.cpp +FILE: ../../../third_party/skia/modules/skottie/src/effects/GlowStyles.cpp +FILE: ../../../third_party/skia/modules/skottie/src/effects/ShadowStyles.cpp +FILE: ../../../third_party/skia/modules/skottie/src/layers/AudioLayer.cpp +FILE: ../../../third_party/skia/modules/skottie/src/layers/shapelayer/Ellipse.cpp +FILE: ../../../third_party/skia/modules/skottie/src/layers/shapelayer/FillStroke.cpp +FILE: ../../../third_party/skia/modules/skottie/src/layers/shapelayer/Gradient.cpp +FILE: ../../../third_party/skia/modules/skottie/src/layers/shapelayer/MergePaths.cpp +FILE: ../../../third_party/skia/modules/skottie/src/layers/shapelayer/OffsetPaths.cpp +FILE: ../../../third_party/skia/modules/skottie/src/layers/shapelayer/Polystar.cpp +FILE: ../../../third_party/skia/modules/skottie/src/layers/shapelayer/PuckerBloat.cpp +FILE: ../../../third_party/skia/modules/skottie/src/layers/shapelayer/Rectangle.cpp +FILE: ../../../third_party/skia/modules/skottie/src/layers/shapelayer/Repeater.cpp +FILE: ../../../third_party/skia/modules/skottie/src/layers/shapelayer/RoundCorners.cpp +FILE: ../../../third_party/skia/modules/skottie/src/layers/shapelayer/ShapeLayer.h +FILE: ../../../third_party/skia/modules/skottie/src/layers/shapelayer/TrimPaths.cpp +FILE: ../../../third_party/skia/modules/skparagraph/gm/simple_gm.cpp +FILE: ../../../third_party/skia/modules/sksg/include/SkSGGeometryEffect.h +FILE: ../../../third_party/skia/modules/sksg/src/SkSGGeometryEffect.cpp +FILE: ../../../third_party/skia/modules/skshaper/src/SkShaper_coretext.cpp +FILE: ../../../third_party/skia/modules/skunicode/src/SkUnicode_icu.cpp +FILE: ../../../third_party/skia/modules/svg/include/SkSVGFe.h +FILE: ../../../third_party/skia/modules/svg/include/SkSVGFeBlend.h +FILE: ../../../third_party/skia/modules/svg/include/SkSVGFeColorMatrix.h +FILE: ../../../third_party/skia/modules/svg/include/SkSVGFeComposite.h +FILE: ../../../third_party/skia/modules/svg/include/SkSVGFeDisplacementMap.h +FILE: ../../../third_party/skia/modules/svg/include/SkSVGFeFlood.h +FILE: ../../../third_party/skia/modules/svg/include/SkSVGFeGaussianBlur.h +FILE: ../../../third_party/skia/modules/svg/include/SkSVGFeLighting.h +FILE: ../../../third_party/skia/modules/svg/include/SkSVGFeMorphology.h +FILE: ../../../third_party/skia/modules/svg/include/SkSVGFeOffset.h +FILE: ../../../third_party/skia/modules/svg/include/SkSVGFeTurbulence.h +FILE: ../../../third_party/skia/modules/svg/include/SkSVGFilter.h +FILE: ../../../third_party/skia/modules/svg/include/SkSVGFilterContext.h +FILE: ../../../third_party/skia/modules/svg/src/SkSVGFe.cpp +FILE: ../../../third_party/skia/modules/svg/src/SkSVGFeBlend.cpp +FILE: ../../../third_party/skia/modules/svg/src/SkSVGFeColorMatrix.cpp +FILE: ../../../third_party/skia/modules/svg/src/SkSVGFeComposite.cpp +FILE: ../../../third_party/skia/modules/svg/src/SkSVGFeDisplacementMap.cpp +FILE: ../../../third_party/skia/modules/svg/src/SkSVGFeFlood.cpp +FILE: ../../../third_party/skia/modules/svg/src/SkSVGFeGaussianBlur.cpp +FILE: ../../../third_party/skia/modules/svg/src/SkSVGFeLighting.cpp +FILE: ../../../third_party/skia/modules/svg/src/SkSVGFeMorphology.cpp +FILE: ../../../third_party/skia/modules/svg/src/SkSVGFeOffset.cpp +FILE: ../../../third_party/skia/modules/svg/src/SkSVGFeTurbulence.cpp +FILE: ../../../third_party/skia/modules/svg/src/SkSVGFilter.cpp +FILE: ../../../third_party/skia/modules/svg/src/SkSVGFilterContext.cpp +FILE: ../../../third_party/skia/modules/svg/src/SkSVGTextPriv.h +FILE: ../../../third_party/skia/modules/svg/utils/SvgTool.cpp +FILE: ../../../third_party/skia/samplecode/Sample3D.cpp +FILE: ../../../third_party/skia/samplecode/SampleAudio.cpp +FILE: ../../../third_party/skia/samplecode/SampleFitCubicToCircle.cpp +FILE: ../../../third_party/skia/samplecode/SampleSimpleStroker.cpp +FILE: ../../../third_party/skia/samplecode/SampleTiming.cpp +FILE: ../../../third_party/skia/samplecode/SampleVariableWidthStroker.cpp +FILE: ../../../third_party/skia/src/core/SkColorFilterPriv.h +FILE: ../../../third_party/skia/src/core/SkCompressedDataUtils.cpp +FILE: ../../../third_party/skia/src/core/SkCompressedDataUtils.h +FILE: ../../../third_party/skia/src/core/SkM44.cpp +FILE: ../../../third_party/skia/src/core/SkMipmapBuilder.h +FILE: ../../../third_party/skia/src/core/SkOpts_erms.cpp +FILE: ../../../third_party/skia/src/core/SkSamplingPriv.h +FILE: ../../../third_party/skia/src/core/SkVerticesPriv.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrDynamicAtlas.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrDynamicAtlas.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrEagerVertexAllocator.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrHashMapWithCache.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrRecordingContextPriv.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrThreadSafeCache.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrThreadSafeCache.h +FILE: ../../../third_party/skia/src/gpu/ganesh/geometry/GrAATriangulator.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/geometry/GrAATriangulator.h +FILE: ../../../third_party/skia/src/gpu/ganesh/mock/GrMockOpTarget.h +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/DrawAtlasPathOp.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/DrawAtlasPathOp.h +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/GrSimpleMeshDrawOpHelperWithStencil.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/GrSimpleMeshDrawOpHelperWithStencil.h +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/SmallPathAtlasMgr.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/SmallPathAtlasMgr.h +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/SmallPathShapeData.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/SmallPathShapeData.h +FILE: ../../../third_party/skia/src/gpu/tessellate/MiddleOutPolygonTriangulator.h +FILE: ../../../third_party/skia/src/gpu/tessellate/StrokeIterator.h +FILE: ../../../third_party/skia/src/gpu/tessellate/WangsFormula.h +FILE: ../../../third_party/skia/src/opts/SkOpts_skx.cpp +FILE: ../../../third_party/skia/src/ports/SkScalerContext_mac_ct.h +FILE: ../../../third_party/skia/src/ports/SkTypeface_mac_ct.h +FILE: ../../../third_party/skia/src/text/gpu/SDFTControl.cpp +FILE: ../../../third_party/skia/src/text/gpu/SDFTControl.h +FILE: ../../../third_party/skia/src/utils/mac/SkCGBase.h +FILE: ../../../third_party/skia/src/utils/mac/SkCGGeometry.h +FILE: ../../../third_party/skia/src/utils/mac/SkCTFont.cpp +FILE: ../../../third_party/skia/src/utils/mac/SkCTFont.h ---------------------------------------------------------------------------------------------------- -Copyright 2009 The Android Open Source Project +Copyright 2020 Google Inc. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are @@ -7471,12 +6569,162 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ==================================================================================================== LIBRARY: skia -ORIGIN: ../../../third_party/skia/src/core/SkBitmapProcState_matrixProcs.cpp + ../../../third_party/skia/LICENSE +ORIGIN: ../../../third_party/skia/bench/CreateBackendTextureBench.cpp + ../../../third_party/skia/LICENSE TYPE: LicenseType.bsd -FILE: ../../../third_party/skia/src/core/SkBitmapProcState_matrixProcs.cpp -FILE: ../../../third_party/skia/src/ports/SkFontMgr_FontConfigInterface_factory.cpp +FILE: ../../../third_party/skia/bench/CreateBackendTextureBench.cpp +FILE: ../../../third_party/skia/bench/GrQuadBench.cpp +FILE: ../../../third_party/skia/bench/SkSLBench.h +FILE: ../../../third_party/skia/gm/animated_image_orientation.cpp +FILE: ../../../third_party/skia/gm/crbug_1041204.cpp +FILE: ../../../third_party/skia/gm/crbug_1139750.cpp +FILE: ../../../third_party/skia/gm/crbug_1156804.cpp +FILE: ../../../third_party/skia/gm/crbug_1162942.cpp +FILE: ../../../third_party/skia/gm/crbug_224618.cpp +FILE: ../../../third_party/skia/gm/encode_color_types.cpp +FILE: ../../../third_party/skia/gm/kawase_blur_rt.cpp +FILE: ../../../third_party/skia/gm/userfont.cpp +FILE: ../../../third_party/skia/gm/ycbcrimage.cpp +FILE: ../../../third_party/skia/include/core/SkYUVAInfo.h +FILE: ../../../third_party/skia/include/core/SkYUVAPixmaps.h +FILE: ../../../third_party/skia/include/gpu/GrBackendSurfaceMutableState.h +FILE: ../../../third_party/skia/include/gpu/GrYUVABackendTextures.h +FILE: ../../../third_party/skia/include/gpu/d3d/GrD3DBackendContext.h +FILE: ../../../third_party/skia/include/gpu/d3d/GrD3DTypes.h +FILE: ../../../third_party/skia/include/ports/SkImageGeneratorNDK.h +FILE: ../../../third_party/skia/include/private/SkIDChangeListener.h +FILE: ../../../third_party/skia/include/private/SkSLSampleUsage.h +FILE: ../../../third_party/skia/include/private/gpu/ganesh/GrD3DTypesMinimal.h +FILE: ../../../third_party/skia/include/sksl/DSL.h +FILE: ../../../third_party/skia/include/sksl/DSLCore.h +FILE: ../../../third_party/skia/include/sksl/DSLExpression.h +FILE: ../../../third_party/skia/include/sksl/DSLModifiers.h +FILE: ../../../third_party/skia/include/sksl/DSLType.h +FILE: ../../../third_party/skia/include/sksl/DSLVar.h +FILE: ../../../third_party/skia/include/utils/SkCustomTypeface.h +FILE: ../../../third_party/skia/modules/canvaskit/gm_bindings.cpp +FILE: ../../../third_party/skia/modules/canvaskit/viewer_bindings.cpp +FILE: ../../../third_party/skia/modules/canvaskit/wasm_tools/SIMD/simd_float_capabilities.cpp +FILE: ../../../third_party/skia/modules/canvaskit/wasm_tools/SIMD/simd_int_capabilities.cpp +FILE: ../../../third_party/skia/modules/skunicode/include/SkUnicode.h +FILE: ../../../third_party/skia/samplecode/SampleMaterialShadows.cpp +FILE: ../../../third_party/skia/src/core/SkASAN.h +FILE: ../../../third_party/skia/src/core/SkBlockAllocator.cpp +FILE: ../../../third_party/skia/src/core/SkBlockAllocator.h +FILE: ../../../third_party/skia/src/core/SkIDChangeListener.cpp +FILE: ../../../third_party/skia/src/core/SkMatrixProvider.h +FILE: ../../../third_party/skia/src/core/SkRuntimeEffectPriv.h +FILE: ../../../third_party/skia/src/core/SkVM_fwd.h +FILE: ../../../third_party/skia/src/core/SkYUVAInfo.cpp +FILE: ../../../third_party/skia/src/core/SkYUVAPixmaps.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/ClipStack.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/ClipStack.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrBackendSemaphore.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrBackendUtils.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrBackendUtils.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrDDLTask.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrDDLTask.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrManagedResource.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrPixmap.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrRefCnt.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrRenderTargetContext.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrRingBuffer.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrRingBuffer.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrStagingBufferManager.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrStagingBufferManager.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrUniformDataManager.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrUniformDataManager.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrUtil.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrYUVABackendTextures.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/StencilMaskHelper.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/StencilMaskHelper.h +FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DAMDMemoryAllocator.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DAMDMemoryAllocator.h +FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DAttachment.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DAttachment.h +FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DBuffer.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DBuffer.h +FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DCaps.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DCaps.h +FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DCommandList.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DCommandList.h +FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DCommandSignature.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DCommandSignature.h +FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DCpuDescriptorManager.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DCpuDescriptorManager.h +FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DDescriptorHeap.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DDescriptorHeap.h +FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DDescriptorTableManager.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DDescriptorTableManager.h +FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DGpu.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DGpu.h +FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DOpsRenderPass.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DOpsRenderPass.h +FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DPipeline.h +FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DPipelineState.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DPipelineState.h +FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DPipelineStateBuilder.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DPipelineStateBuilder.h +FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DPipelineStateDataManager.h +FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DRenderTarget.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DRenderTarget.h +FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DResourceProvider.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DResourceProvider.h +FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DResourceState.h +FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DRootSignature.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DRootSignature.h +FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DSemaphore.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DSemaphore.h +FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DTexture.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DTexture.h +FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DTextureRenderTarget.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DTextureRenderTarget.h +FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DTextureResource.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DTextureResource.h +FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DTypesMinimal.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DTypesPriv.h +FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DUtil.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DUtil.h +FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrMatrixEffect.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrMatrixEffect.h +FILE: ../../../third_party/skia/src/gpu/ganesh/geometry/GrShape.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/geometry/GrShape.h +FILE: ../../../third_party/skia/src/gpu/ganesh/gl/webgl/GrGLMakeNativeInterface_webgl.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/glsl/GrGLSLUniformHandler.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkMSAALoadManager.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkMSAALoadManager.h +FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkManagedResource.h +FILE: ../../../third_party/skia/src/image/SkRescaleAndReadPixels.cpp +FILE: ../../../third_party/skia/src/image/SkRescaleAndReadPixels.h +FILE: ../../../third_party/skia/src/ports/SkImageEncoder_NDK.cpp +FILE: ../../../third_party/skia/src/ports/SkImageGeneratorNDK.cpp +FILE: ../../../third_party/skia/src/ports/SkNDKConversions.cpp +FILE: ../../../third_party/skia/src/ports/SkNDKConversions.h +FILE: ../../../third_party/skia/src/sksl/SkSLAnalysis.h +FILE: ../../../third_party/skia/src/sksl/SkSLConstantFolder.cpp +FILE: ../../../third_party/skia/src/sksl/SkSLConstantFolder.h +FILE: ../../../third_party/skia/src/sksl/SkSLInliner.cpp +FILE: ../../../third_party/skia/src/sksl/SkSLInliner.h +FILE: ../../../third_party/skia/src/sksl/SkSLMemoryPool.h +FILE: ../../../third_party/skia/src/sksl/SkSLPool.cpp +FILE: ../../../third_party/skia/src/sksl/SkSLPool.h +FILE: ../../../third_party/skia/src/sksl/SkSLSampleUsage.cpp +FILE: ../../../third_party/skia/src/sksl/SkSLThreadContext.cpp +FILE: ../../../third_party/skia/src/sksl/codegen/SkSLSPIRVtoHLSL.cpp +FILE: ../../../third_party/skia/src/sksl/codegen/SkSLSPIRVtoHLSL.h +FILE: ../../../third_party/skia/src/sksl/codegen/SkSLVMCodeGenerator.cpp +FILE: ../../../third_party/skia/src/sksl/codegen/SkSLVMCodeGenerator.h +FILE: ../../../third_party/skia/src/sksl/dsl/DSLCore.cpp +FILE: ../../../third_party/skia/src/sksl/dsl/DSLExpression.cpp +FILE: ../../../third_party/skia/src/sksl/dsl/DSLType.cpp +FILE: ../../../third_party/skia/src/sksl/dsl/DSLVar.cpp +FILE: ../../../third_party/skia/src/sksl/dsl/priv/DSLWriter.cpp +FILE: ../../../third_party/skia/src/sksl/dsl/priv/DSLWriter.h +FILE: ../../../third_party/skia/src/sksl/ir/SkSLFunctionPrototype.h +FILE: ../../../third_party/skia/src/sksl/ir/SkSLPrefixExpression.cpp +FILE: ../../../third_party/skia/src/sksl/ir/SkSLStructDefinition.h +FILE: ../../../third_party/skia/src/utils/SkCustomTypeface.cpp ---------------------------------------------------------------------------------------------------- -Copyright 2008 Google Inc. +Copyright 2020 Google LLC Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are @@ -7509,22 +6757,192 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ==================================================================================================== LIBRARY: skia -ORIGIN: ../../../third_party/skia/src/core/SkDevice.h + ../../../third_party/skia/LICENSE +ORIGIN: ../../../third_party/skia/docs/examples/50_percent_gray.cpp + ../../../third_party/skia/LICENSE TYPE: LicenseType.bsd -FILE: ../../../third_party/skia/src/core/SkDevice.h -FILE: ../../../third_party/skia/src/core/SkScalar.cpp -FILE: ../../../third_party/skia/src/core/SkTextFormatParams.h -FILE: ../../../third_party/skia/src/images/SkJPEGWriteUtility.cpp -FILE: ../../../third_party/skia/src/images/SkJPEGWriteUtility.h -FILE: ../../../third_party/skia/src/images/SkWebpEncoder.cpp -FILE: ../../../third_party/skia/src/pdf/SkDeflate.cpp -FILE: ../../../third_party/skia/src/pdf/SkDeflate.h -FILE: ../../../third_party/skia/src/pdf/SkPDFFormXObject.cpp -FILE: ../../../third_party/skia/src/pdf/SkPDFFormXObject.h -FILE: ../../../third_party/skia/src/pdf/SkPDFGraphicState.h -FILE: ../../../third_party/skia/src/pdf/SkPDFTypes.h +FILE: ../../../third_party/skia/docs/examples/50_percent_gray.cpp +FILE: ../../../third_party/skia/docs/examples/50_percent_srgb.cpp +FILE: ../../../third_party/skia/docs/examples/BlendModes.cpp +FILE: ../../../third_party/skia/docs/examples/Canvas_saveLayer_4.cpp +FILE: ../../../third_party/skia/docs/examples/ChromeMDRefreshTab.cpp +FILE: ../../../third_party/skia/docs/examples/ChromeMDRefreshTabs.cpp +FILE: ../../../third_party/skia/docs/examples/Color_Wheel.cpp +FILE: ../../../third_party/skia/docs/examples/DCIToXYZD50.cpp +FILE: ../../../third_party/skia/docs/examples/GradientShader_MakeLinear.cpp +FILE: ../../../third_party/skia/docs/examples/Octopus_Generator.cpp +FILE: ../../../third_party/skia/docs/examples/Octopus_Generator_Animated.cpp +FILE: ../../../third_party/skia/docs/examples/PaintDump.cpp +FILE: ../../../third_party/skia/docs/examples/SKIA_LOGO.cpp +FILE: ../../../third_party/skia/docs/examples/SKIA_LOGO_ANIMATE.cpp +FILE: ../../../third_party/skia/docs/examples/SKIA_LOGO_svg.cpp +FILE: ../../../third_party/skia/docs/examples/SkFontMgr_example.cpp +FILE: ../../../third_party/skia/docs/examples/SkFontMgr_example2.cpp +FILE: ../../../third_party/skia/docs/examples/SkImage_to_PPM_ascii.cpp +FILE: ../../../third_party/skia/docs/examples/SkImage_to_PPM_binary.cpp +FILE: ../../../third_party/skia/docs/examples/SkParsePath_FromSVGString.cpp +FILE: ../../../third_party/skia/docs/examples/SkParsePath_ToSVGString.cpp +FILE: ../../../third_party/skia/docs/examples/SkPath_arcTo_example.cpp +FILE: ../../../third_party/skia/docs/examples/SkPath_arcto_conic_parametric.cpp +FILE: ../../../third_party/skia/docs/examples/SkPath_arcto_conic_parametric2.cpp +FILE: ../../../third_party/skia/docs/examples/SkPath_cubicTo_example.cpp +FILE: ../../../third_party/skia/docs/examples/SkPath_cubicTo_example_parametric.cpp +FILE: ../../../third_party/skia/docs/examples/SkPath_cubicTo_example_parametric_animated.cpp +FILE: ../../../third_party/skia/docs/examples/SkPath_quadTo_example.cpp +FILE: ../../../third_party/skia/docs/examples/SkPath_quadTo_example_parametric.cpp +FILE: ../../../third_party/skia/docs/examples/SkPath_quadTo_example_parametric_animated.cpp +FILE: ../../../third_party/skia/docs/examples/SmoothBezierSplineInterpolation.cpp +FILE: ../../../third_party/skia/docs/examples/Turtle.cpp +FILE: ../../../third_party/skia/docs/examples/UnicornPoop.cpp +FILE: ../../../third_party/skia/docs/examples/UnpremulBugs.cpp +FILE: ../../../third_party/skia/docs/examples/UnpremulGPU.cpp +FILE: ../../../third_party/skia/docs/examples/alpha_bitmap_color_filter_mask_filter.cpp +FILE: ../../../third_party/skia/docs/examples/alphaimage_shader_colorfilter.cpp +FILE: ../../../third_party/skia/docs/examples/backdrop_blur_with_rrect_clip.cpp +FILE: ../../../third_party/skia/docs/examples/bezier_curves.cpp +FILE: ../../../third_party/skia/docs/examples/blur4444.cpp +FILE: ../../../third_party/skia/docs/examples/blur_alpha_img.cpp +FILE: ../../../third_party/skia/docs/examples/blurbug.cpp +FILE: ../../../third_party/skia/docs/examples/bug5252.cpp +FILE: ../../../third_party/skia/docs/examples/bug583299.cpp +FILE: ../../../third_party/skia/docs/examples/bug6495.cpp +FILE: ../../../third_party/skia/docs/examples/bug7573.cpp +FILE: ../../../third_party/skia/docs/examples/bug7573_1.cpp +FILE: ../../../third_party/skia/docs/examples/bug767834.cpp +FILE: ../../../third_party/skia/docs/examples/bugoftheday.cpp +FILE: ../../../third_party/skia/docs/examples/checker_board.cpp +FILE: ../../../third_party/skia/docs/examples/color_filter_vs_colorFilterImageFilter_saveLayer.cpp +FILE: ../../../third_party/skia/docs/examples/compose_path.cpp +FILE: ../../../third_party/skia/docs/examples/convex_overstroke_linear_approx_curve.cpp +FILE: ../../../third_party/skia/docs/examples/convex_overstroke_quad.cpp +FILE: ../../../third_party/skia/docs/examples/count_verbs.cpp +FILE: ../../../third_party/skia/docs/examples/crbug_663246.cpp +FILE: ../../../third_party/skia/docs/examples/crbug_918512.cpp +FILE: ../../../third_party/skia/docs/examples/cubics_are_horrible.cpp +FILE: ../../../third_party/skia/docs/examples/default.cpp +FILE: ../../../third_party/skia/docs/examples/default2.cpp +FILE: ../../../third_party/skia/docs/examples/default3.cpp +FILE: ../../../third_party/skia/docs/examples/discrete_path.cpp +FILE: ../../../third_party/skia/docs/examples/dither1.cpp +FILE: ../../../third_party/skia/docs/examples/draw_a8_bitmap.cpp +FILE: ../../../third_party/skia/docs/examples/draw_image_nine_blur_mask.cpp +FILE: ../../../third_party/skia/docs/examples/draw_patch.cpp +FILE: ../../../third_party/skia/docs/examples/draw_pixel_array.cpp +FILE: ../../../third_party/skia/docs/examples/draw_pixel_array_nocopy.cpp +FILE: ../../../third_party/skia/docs/examples/draw_pixel_array_with_copy.cpp +FILE: ../../../third_party/skia/docs/examples/draw_text_fails.cpp +FILE: ../../../third_party/skia/docs/examples/draw_vertices.cpp +FILE: ../../../third_party/skia/docs/examples/drawarcs.cpp +FILE: ../../../third_party/skia/docs/examples/example3ps.cpp +FILE: ../../../third_party/skia/docs/examples/f16.cpp +FILE: ../../../third_party/skia/docs/examples/f16to8888busted.cpp +FILE: ../../../third_party/skia/docs/examples/f16to8888drawImageBug.cpp +FILE: ../../../third_party/skia/docs/examples/failing_example.cpp +FILE: ../../../third_party/skia/docs/examples/fivearcs.cpp +FILE: ../../../third_party/skia/docs/examples/flag_us_1792.cpp +FILE: ../../../third_party/skia/docs/examples/flag_us_1960.cpp +FILE: ../../../third_party/skia/docs/examples/fluttershadow.cpp +FILE: ../../../third_party/skia/docs/examples/gamma_mask_filter.cpp +FILE: ../../../third_party/skia/docs/examples/getLocalBounds_broken.cpp +FILE: ../../../third_party/skia/docs/examples/getLocalBounds_working.cpp +FILE: ../../../third_party/skia/docs/examples/gpu4444diff.cpp +FILE: ../../../third_party/skia/docs/examples/gpu8888diff.cpp +FILE: ../../../third_party/skia/docs/examples/gpuconicbug.cpp +FILE: ../../../third_party/skia/docs/examples/homogeneous.cpp +FILE: ../../../third_party/skia/docs/examples/image_subsets_get_different_uids.cpp +FILE: ../../../third_party/skia/docs/examples/image_to_bitmap_does_not_preserve_genid.cpp +FILE: ../../../third_party/skia/docs/examples/inlinepixmapconstructor.cpp +FILE: ../../../third_party/skia/docs/examples/issue640176.cpp +FILE: ../../../third_party/skia/docs/examples/l_system_plant.cpp +FILE: ../../../third_party/skia/docs/examples/maddash.cpp +FILE: ../../../third_party/skia/docs/examples/makeRasterImage_fail.cpp +FILE: ../../../third_party/skia/docs/examples/mapradius.cpp +FILE: ../../../third_party/skia/docs/examples/massive_coordinates_svg.cpp +FILE: ../../../third_party/skia/docs/examples/measure_text_bounds.cpp +FILE: ../../../third_party/skia/docs/examples/no_gpu_blur.cpp +FILE: ../../../third_party/skia/docs/examples/not_path_gradient.cpp +FILE: ../../../third_party/skia/docs/examples/pathmeasure.cpp +FILE: ../../../third_party/skia/docs/examples/pathops.cpp +FILE: ../../../third_party/skia/docs/examples/persp_text_2.cpp +FILE: ../../../third_party/skia/docs/examples/picture_shader.cpp +FILE: ../../../third_party/skia/docs/examples/pong.cpp +FILE: ../../../third_party/skia/docs/examples/pong2.cpp +FILE: ../../../third_party/skia/docs/examples/purplestamp.cpp +FILE: ../../../third_party/skia/docs/examples/radial_gradient_shader_with_animated_color.cpp +FILE: ../../../third_party/skia/docs/examples/radial_gradient_test.cpp +FILE: ../../../third_party/skia/docs/examples/redwhiteonblue.cpp +FILE: ../../../third_party/skia/docs/examples/rotations.cpp +FILE: ../../../third_party/skia/docs/examples/setimagefilter.cpp +FILE: ../../../third_party/skia/docs/examples/shader.cpp +FILE: ../../../third_party/skia/docs/examples/shader_alphaimage.cpp +FILE: ../../../third_party/skia/docs/examples/shapes.cpp +FILE: ../../../third_party/skia/docs/examples/shapes_with_motion.cpp +FILE: ../../../third_party/skia/docs/examples/skbug6031.cpp +FILE: ../../../third_party/skia/docs/examples/skbug_237_drawImageRect.cpp +FILE: ../../../third_party/skia/docs/examples/skbug_237_drawImage_with_blur.cpp +FILE: ../../../third_party/skia/docs/examples/skbug_5648.cpp +FILE: ../../../third_party/skia/docs/examples/skbug_633528.cpp +FILE: ../../../third_party/skia/docs/examples/skcanvas_paint.cpp +FILE: ../../../third_party/skia/docs/examples/skcanvas_square.cpp +FILE: ../../../third_party/skia/docs/examples/skcanvas_star.cpp +FILE: ../../../third_party/skia/docs/examples/skew_x_animated.cpp +FILE: ../../../third_party/skia/docs/examples/skpaint_2pt.cpp +FILE: ../../../third_party/skia/docs/examples/skpaint_bitmap_shader.cpp +FILE: ../../../third_party/skia/docs/examples/skpaint_blur_mask_filter.cpp +FILE: ../../../third_party/skia/docs/examples/skpaint_blur_mask_filter_2.cpp +FILE: ../../../third_party/skia/docs/examples/skpaint_color_table_filter.cpp +FILE: ../../../third_party/skia/docs/examples/skpaint_compose.cpp +FILE: ../../../third_party/skia/docs/examples/skpaint_compose_path_effect.cpp +FILE: ../../../third_party/skia/docs/examples/skpaint_compose_shader.cpp +FILE: ../../../third_party/skia/docs/examples/skpaint_corner_path_effects.cpp +FILE: ../../../third_party/skia/docs/examples/skpaint_dash_path_effect.cpp +FILE: ../../../third_party/skia/docs/examples/skpaint_discrete_path_effect.cpp +FILE: ../../../third_party/skia/docs/examples/skpaint_line_2d_path_effect.cpp +FILE: ../../../third_party/skia/docs/examples/skpaint_matrix_color_filter.cpp +FILE: ../../../third_party/skia/docs/examples/skpaint_mix.cpp +FILE: ../../../third_party/skia/docs/examples/skpaint_path_1d_path_effect.cpp +FILE: ../../../third_party/skia/docs/examples/skpaint_path_2d_path_effect.cpp +FILE: ../../../third_party/skia/docs/examples/skpaint_perlin.cpp +FILE: ../../../third_party/skia/docs/examples/skpaint_radial.cpp +FILE: ../../../third_party/skia/docs/examples/skpaint_shader.cpp +FILE: ../../../third_party/skia/docs/examples/skpaint_skia.cpp +FILE: ../../../third_party/skia/docs/examples/skpaint_sum_path_effect.cpp +FILE: ../../../third_party/skia/docs/examples/skpaint_sweep.cpp +FILE: ../../../third_party/skia/docs/examples/skpaint_turb.cpp +FILE: ../../../third_party/skia/docs/examples/skpaint_xfer.cpp +FILE: ../../../third_party/skia/docs/examples/software_bitmap_w_perspective.cpp +FILE: ../../../third_party/skia/docs/examples/star.cpp +FILE: ../../../third_party/skia/docs/examples/star2.cpp +FILE: ../../../third_party/skia/docs/examples/stroke_closed_degenerate_path.cpp +FILE: ../../../third_party/skia/docs/examples/strokerect_gm.cpp +FILE: ../../../third_party/skia/docs/examples/subset_example.cpp +FILE: ../../../third_party/skia/docs/examples/sum_path_effect.cpp +FILE: ../../../third_party/skia/docs/examples/sweep_gradient_talk_1.cpp +FILE: ../../../third_party/skia/docs/examples/sweep_gradient_talk_2.cpp +FILE: ../../../third_party/skia/docs/examples/sweep_gradient_talk_4.cpp +FILE: ../../../third_party/skia/docs/examples/sweep_gradient_talk_lots.cpp +FILE: ../../../third_party/skia/docs/examples/text_only.cpp +FILE: ../../../third_party/skia/docs/examples/text_rendering.cpp +FILE: ../../../third_party/skia/docs/examples/text_shadow.cpp +FILE: ../../../third_party/skia/docs/examples/unexpected_setAlphaType.cpp +FILE: ../../../third_party/skia/docs/examples/upscale_checkerboard.cpp +FILE: ../../../third_party/skia/docs/examples/weird_RRect_bug.cpp +FILE: ../../../third_party/skia/docs/examples/zero_off_dashing.cpp +FILE: ../../../third_party/skia/experimental/bazel_test/bazel_test.cpp +FILE: ../../../third_party/skia/gm/clear_swizzle.cpp +FILE: ../../../third_party/skia/gm/gpu_blur_utils.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrFinishCallbacks.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrFinishCallbacks.h +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/AtlasInstancedHelper.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/StrokeTessellateOp.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/StrokeTessellateOp.h +FILE: ../../../third_party/skia/src/gpu/ganesh/tessellate/GrStrokeTessellationShader.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/tessellate/GrStrokeTessellationShader.h +FILE: ../../../third_party/skia/src/gpu/ganesh/tessellate/GrTessellationShader.h +FILE: ../../../third_party/skia/src/opts/SkVM_opts.h +FILE: ../../../third_party/skia/src/sksl/SkSLAnalysis.cpp +FILE: ../../../third_party/skia/src/sksl/SkSLModifiersPool.h +FILE: ../../../third_party/skia/src/sksl/ir/SkSLConstructor.cpp ---------------------------------------------------------------------------------------------------- -Copyright 2010 The Android Open Source Project +Copyright 2020 Google LLC. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are @@ -7557,14 +6975,18 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ==================================================================================================== LIBRARY: skia -ORIGIN: ../../../third_party/skia/src/core/SkGlyphRunPainter.cpp + ../../../third_party/skia/LICENSE +ORIGIN: ../../../third_party/skia/fuzz/oss_fuzz/FuzzAPICreateDDL.cpp + ../../../third_party/skia/LICENSE TYPE: LicenseType.bsd -FILE: ../../../third_party/skia/src/core/SkGlyphRunPainter.cpp -FILE: ../../../third_party/skia/src/core/SkGlyphRunPainter.h -FILE: ../../../third_party/skia/src/text/GlyphRun.cpp -FILE: ../../../third_party/skia/src/text/GlyphRun.h +FILE: ../../../third_party/skia/fuzz/FuzzCreateDDL.cpp +FILE: ../../../third_party/skia/fuzz/FuzzPath.cpp +FILE: ../../../third_party/skia/fuzz/FuzzRRect.cpp +FILE: ../../../third_party/skia/fuzz/oss_fuzz/FuzzAPICreateDDL.cpp +FILE: ../../../third_party/skia/fuzz/oss_fuzz/FuzzAPISVGCanvas.cpp +FILE: ../../../third_party/skia/fuzz/oss_fuzz/FuzzSKP.cpp +FILE: ../../../third_party/skia/fuzz/oss_fuzz/FuzzSVG.cpp +FILE: ../../../third_party/skia/fuzz/oss_fuzz/FuzzSkRuntimeEffect.cpp ---------------------------------------------------------------------------------------------------- -Copyright 2018 The Android Open Source Project +Copyright 2020 Google, LLC Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are @@ -7597,27 +7019,41 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ==================================================================================================== LIBRARY: skia -ORIGIN: ../../../third_party/skia/src/core/SkScan_AAAPath.cpp + ../../../third_party/skia/LICENSE +ORIGIN: ../../../third_party/skia/infra/bots/gen_tasks_logic/compile_cas.go + ../../../LICENSE TYPE: LicenseType.bsd -FILE: ../../../third_party/skia/src/core/SkScan_AAAPath.cpp +FILE: ../../../third_party/skia/infra/bots/gen_tasks_logic/compile_cas.go +FILE: ../../../third_party/skia/infra/bots/gen_tasks_logic/dm_flags.go +FILE: ../../../third_party/skia/infra/bots/gen_tasks_logic/job_builder.go +FILE: ../../../third_party/skia/infra/bots/gen_tasks_logic/nano_flags.go +FILE: ../../../third_party/skia/infra/bots/gen_tasks_logic/schema.go +FILE: ../../../third_party/skia/infra/bots/gen_tasks_logic/task_builder.go +FILE: ../../../third_party/skia/infra/bots/task_drivers/compile_wasm_gm_tests/compile_wasm_gm_tests.go +FILE: ../../../third_party/skia/infra/bots/task_drivers/fm_driver/fm_driver.go +FILE: ../../../third_party/skia/infra/bots/task_drivers/g3_canary/g3_canary.go +FILE: ../../../third_party/skia/infra/bots/task_drivers/perf_puppeteer_canvas/perf_puppeteer_canvas.go +FILE: ../../../third_party/skia/infra/bots/task_drivers/perf_puppeteer_canvas/perf_puppeteer_canvas_test.go +FILE: ../../../third_party/skia/infra/bots/task_drivers/perf_puppeteer_render_skps/perf_puppeteer_render_skps.go +FILE: ../../../third_party/skia/infra/bots/task_drivers/perf_puppeteer_render_skps/perf_puppeteer_render_skps_test.go +FILE: ../../../third_party/skia/infra/bots/task_drivers/perf_puppeteer_skottie_frames/perf_puppeteer_skottie_frames.go +FILE: ../../../third_party/skia/infra/bots/task_drivers/perf_puppeteer_skottie_frames/perf_puppeteer_skottie_frames_test.go +FILE: ../../../third_party/skia/infra/bots/task_drivers/run_gn_to_bp/run_gn_to_bp.go +FILE: ../../../third_party/skia/infra/bots/task_drivers/run_wasm_gm_tests/run_wasm_gm_tests.go ---------------------------------------------------------------------------------------------------- -Copyright 2016 The Android Open Source Project +Copyright 2020 The Chromium Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - - * Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT @@ -7633,28 +7069,26 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ==================================================================================================== ==================================================================================================== -LIBRARY: skia -ORIGIN: ../../../third_party/skia/src/core/SkStrikeSpec.cpp + ../../../third_party/skia/LICENSE +LIBRARY: expat +ORIGIN: ../../../third_party/skia/third_party/expat/include/expat_config/expat_config.h + ../../../third_party/skia/third_party/expat/include/expat_config/LICENSE TYPE: LicenseType.bsd -FILE: ../../../third_party/skia/src/core/SkStrikeSpec.cpp +FILE: ../../../third_party/skia/third_party/expat/include/expat_config/expat_config.h ---------------------------------------------------------------------------------------------------- -Copyright 2019 The Android Open Source Project +Copyright 2021 Google Inc. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - - * Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT @@ -7671,11 +7105,103 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ==================================================================================================== LIBRARY: skia -ORIGIN: ../../../third_party/skia/src/core/SkTraceEvent.h + ../../../third_party/skia/LICENSE +ORIGIN: ../../../third_party/skia/bench/graphite/IntersectionTreeBench.cpp + ../../../third_party/skia/LICENSE TYPE: LicenseType.bsd -FILE: ../../../third_party/skia/src/core/SkTraceEvent.h +FILE: ../../../third_party/skia/bench/MSKPBench.cpp +FILE: ../../../third_party/skia/bench/MSKPBench.h +FILE: ../../../third_party/skia/bench/graphite/IntersectionTreeBench.cpp +FILE: ../../../third_party/skia/fuzz/FuzzDDLThreading.cpp +FILE: ../../../third_party/skia/gm/aarecteffect.cpp +FILE: ../../../third_party/skia/gm/colorspace.cpp +FILE: ../../../third_party/skia/gm/colrv1.cpp +FILE: ../../../third_party/skia/gm/drawglyphs.cpp +FILE: ../../../third_party/skia/gm/largeclippedpath.cpp +FILE: ../../../third_party/skia/gm/skbug_12212.cpp +FILE: ../../../third_party/skia/gm/slug.cpp +FILE: ../../../third_party/skia/include/private/gpu/ganesh/GrMtlTypesPriv.h +FILE: ../../../third_party/skia/include/private/gpu/graphite/MtlTypesPriv.h +FILE: ../../../third_party/skia/include/utils/SkOrderedFontMgr.h +FILE: ../../../third_party/skia/infra/bots/task_drivers/push_apps_from_skia_image/push_apps_from_skia_image.go +FILE: ../../../third_party/skia/infra/bots/task_drivers/push_bazel_apps_from_wasm_image/push_bazel_apps_from_wasm_image.go +FILE: ../../../third_party/skia/infra/bots/task_drivers/recreate_skps/recreate_skps.go +FILE: ../../../third_party/skia/modules/androidkit/src/AndroidKit.cpp +FILE: ../../../third_party/skia/modules/androidkit/src/Canvas.cpp +FILE: ../../../third_party/skia/modules/androidkit/src/ColorFilters.cpp +FILE: ../../../third_party/skia/modules/androidkit/src/Font.cpp +FILE: ../../../third_party/skia/modules/androidkit/src/FontChainAdapter.cpp +FILE: ../../../third_party/skia/modules/androidkit/src/Gradients.cpp +FILE: ../../../third_party/skia/modules/androidkit/src/Image.cpp +FILE: ../../../third_party/skia/modules/androidkit/src/ImageFilter.cpp +FILE: ../../../third_party/skia/modules/androidkit/src/Matrix.cpp +FILE: ../../../third_party/skia/modules/androidkit/src/Paint.cpp +FILE: ../../../third_party/skia/modules/androidkit/src/Path.cpp +FILE: ../../../third_party/skia/modules/androidkit/src/PathBuilder.cpp +FILE: ../../../third_party/skia/modules/androidkit/src/RuntimeShaderBuilder.cpp +FILE: ../../../third_party/skia/modules/androidkit/src/Shader.cpp +FILE: ../../../third_party/skia/modules/androidkit/src/SkottieAnimation.cpp +FILE: ../../../third_party/skia/modules/androidkit/src/Surface.cpp +FILE: ../../../third_party/skia/modules/androidkit/src/Surface.h +FILE: ../../../third_party/skia/modules/androidkit/src/SurfaceThread.cpp +FILE: ../../../third_party/skia/modules/androidkit/src/SurfaceThread.h +FILE: ../../../third_party/skia/modules/androidkit/src/Text.cpp +FILE: ../../../third_party/skia/modules/androidkit/src/Utils.cpp +FILE: ../../../third_party/skia/modules/androidkit/src/Utils.h +FILE: ../../../third_party/skia/modules/skottie/src/effects/BulgeEffect.cpp +FILE: ../../../third_party/skia/modules/skottie/src/effects/CCTonerEffect.cpp +FILE: ../../../third_party/skia/modules/skottie/src/effects/DirectionalBlur.cpp +FILE: ../../../third_party/skia/modules/skottie/src/effects/FractalNoiseEffect.cpp +FILE: ../../../third_party/skia/modules/skottie/src/effects/SharpenEffect.cpp +FILE: ../../../third_party/skia/modules/skottie/src/effects/SkSLEffect.cpp +FILE: ../../../third_party/skia/modules/skottie/src/effects/SphereEffect.cpp +FILE: ../../../third_party/skia/modules/skottie/src/effects/ThresholdEffect.cpp +FILE: ../../../third_party/skia/modules/skunicode/src/SkUnicode_icu.h +FILE: ../../../third_party/skia/modules/skunicode/src/SkUnicode_icu_builtin.cpp +FILE: ../../../third_party/skia/modules/skunicode/src/SkUnicode_icu_runtime.cpp +FILE: ../../../third_party/skia/modules/svg/include/SkSVGFeImage.h +FILE: ../../../third_party/skia/modules/svg/include/SkSVGFeLightSource.h +FILE: ../../../third_party/skia/modules/svg/include/SkSVGImage.h +FILE: ../../../third_party/skia/modules/svg/include/SkSVGMask.h +FILE: ../../../third_party/skia/modules/svg/src/SkSVGFeImage.cpp +FILE: ../../../third_party/skia/modules/svg/src/SkSVGFeLightSource.cpp +FILE: ../../../third_party/skia/modules/svg/src/SkSVGImage.cpp +FILE: ../../../third_party/skia/modules/svg/src/SkSVGMask.cpp +FILE: ../../../third_party/skia/src/codec/SkJpegxlCodec.cpp +FILE: ../../../third_party/skia/src/codec/SkJpegxlCodec.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrDrawIndirectCommand.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrRenderTaskCluster.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrRenderTaskCluster.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrThreadSafePipelineBuilder.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrThreadSafePipelineBuilder.h +FILE: ../../../third_party/skia/src/gpu/ganesh/mock/GrMockRenderTask.h +FILE: ../../../third_party/skia/src/gpu/ganesh/mock/GrMockSurfaceProxy.h +FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlFramebuffer.h +FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlFramebuffer.mm +FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlPipeline.h +FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlRenderCommandEncoder.h +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/AtlasRenderTask.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/AtlasRenderTask.h +FILE: ../../../third_party/skia/src/gpu/graphite/Buffer.cpp +FILE: ../../../third_party/skia/src/gpu/graphite/Buffer.h +FILE: ../../../third_party/skia/src/gpu/graphite/DrawBufferManager.cpp +FILE: ../../../third_party/skia/src/gpu/graphite/DrawBufferManager.h +FILE: ../../../third_party/skia/src/gpu/graphite/mtl/MtlBlitCommandEncoder.h +FILE: ../../../third_party/skia/src/gpu/graphite/mtl/MtlBuffer.h +FILE: ../../../third_party/skia/src/gpu/graphite/mtl/MtlBuffer.mm +FILE: ../../../third_party/skia/src/gpu/graphite/mtl/MtlRenderCommandEncoder.h +FILE: ../../../third_party/skia/src/gpu/graphite/mtl/MtlTrampoline.h +FILE: ../../../third_party/skia/src/gpu/graphite/mtl/MtlTrampoline.mm +FILE: ../../../third_party/skia/src/gpu/graphite/mtl/MtlUtils.mm +FILE: ../../../third_party/skia/src/gpu/tessellate/CullTest.h +FILE: ../../../third_party/skia/src/gpu/tessellate/Tessellation.h +FILE: ../../../third_party/skia/src/shaders/SkTransformShader.cpp +FILE: ../../../third_party/skia/src/shaders/SkTransformShader.h +FILE: ../../../third_party/skia/src/sksl/SkSLGLSL.h +FILE: ../../../third_party/skia/src/sksl/ir/SkSLExpression.cpp +FILE: ../../../third_party/skia/src/sksl/lex/TransitionTable.cpp +FILE: ../../../third_party/skia/src/sksl/lex/TransitionTable.h +FILE: ../../../third_party/skia/src/utils/SkOrderedFontMgr.cpp ---------------------------------------------------------------------------------------------------- -Copyright (c) 2014 Google Inc. +Copyright 2021 Google Inc. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are @@ -7708,12 +7234,247 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ==================================================================================================== LIBRARY: skia -ORIGIN: ../../../third_party/skia/src/effects/imagefilters/SkBlendImageFilter.cpp + ../../../third_party/skia/LICENSE +ORIGIN: ../../../third_party/skia/bench/BigPath.cpp + ../../../third_party/skia/LICENSE TYPE: LicenseType.bsd -FILE: ../../../third_party/skia/src/effects/imagefilters/SkBlendImageFilter.cpp -FILE: ../../../third_party/skia/src/effects/imagefilters/SkPictureImageFilter.cpp +FILE: ../../../third_party/skia/bench/BigPath.cpp +FILE: ../../../third_party/skia/bench/BigPath.h +FILE: ../../../third_party/skia/bench/CanvasSaveRestoreBench.cpp +FILE: ../../../third_party/skia/bench/TriangulatorBench.cpp +FILE: ../../../third_party/skia/experimental/bazel_test/hello_world.go +FILE: ../../../third_party/skia/experimental/lowp-basic/QMath.h +FILE: ../../../third_party/skia/experimental/lowp-basic/bilerp-study.cpp +FILE: ../../../third_party/skia/experimental/lowp-basic/lerp-study.cpp +FILE: ../../../third_party/skia/experimental/lowp-basic/lowp_experiments.cpp +FILE: ../../../third_party/skia/experimental/tskit/bindings/bindings.h +FILE: ../../../third_party/skia/experimental/tskit/bindings/core.cpp +FILE: ../../../third_party/skia/experimental/tskit/bindings/extension.cpp +FILE: ../../../third_party/skia/experimental/webgpu-bazel/src/bindings.cpp +FILE: ../../../third_party/skia/gm/attributes.cpp +FILE: ../../../third_party/skia/gm/composecolorfilter.cpp +FILE: ../../../third_party/skia/gm/crbug_1167277.cpp +FILE: ../../../third_party/skia/gm/crbug_1174186.cpp +FILE: ../../../third_party/skia/gm/crbug_1174354.cpp +FILE: ../../../third_party/skia/gm/crbug_1177833.cpp +FILE: ../../../third_party/skia/gm/crbug_1257515.cpp +FILE: ../../../third_party/skia/gm/crop_imagefilter.cpp +FILE: ../../../third_party/skia/gm/fillrect_gradient.cpp +FILE: ../../../third_party/skia/gm/graphitestart.cpp +FILE: ../../../third_party/skia/gm/hardstop_gradients_many.cpp +FILE: ../../../third_party/skia/gm/lazytiling.cpp +FILE: ../../../third_party/skia/gm/mesh.cpp +FILE: ../../../third_party/skia/gm/particles.cpp +FILE: ../../../third_party/skia/include/core/SkBlender.h +FILE: ../../../third_party/skia/include/core/SkMesh.h +FILE: ../../../third_party/skia/include/effects/SkBlenders.h +FILE: ../../../third_party/skia/include/gpu/GrSurfaceInfo.h +FILE: ../../../third_party/skia/include/gpu/ShaderErrorHandler.h +FILE: ../../../third_party/skia/include/gpu/gl/egl/GrGLMakeEGLInterface.h +FILE: ../../../third_party/skia/include/gpu/gl/glx/GrGLMakeGLXInterface.h +FILE: ../../../third_party/skia/include/gpu/graphite/BackendTexture.h +FILE: ../../../third_party/skia/include/gpu/graphite/Context.h +FILE: ../../../third_party/skia/include/gpu/graphite/GraphiteTypes.h +FILE: ../../../third_party/skia/include/gpu/graphite/Recorder.h +FILE: ../../../third_party/skia/include/gpu/graphite/Recording.h +FILE: ../../../third_party/skia/include/gpu/graphite/TextureInfo.h +FILE: ../../../third_party/skia/include/gpu/graphite/mtl/MtlBackendContext.h +FILE: ../../../third_party/skia/include/gpu/graphite/mtl/MtlTypes.h +FILE: ../../../third_party/skia/include/private/chromium/GrSlug.h +FILE: ../../../third_party/skia/include/private/chromium/Slug.h +FILE: ../../../third_party/skia/include/private/gpu/ganesh/GrDawnTypesPriv.h +FILE: ../../../third_party/skia/include/private/gpu/ganesh/GrMockTypesPriv.h +FILE: ../../../third_party/skia/include/sksl/SkSLOperator.h +FILE: ../../../third_party/skia/modules/canvaskit/paragraph_bindings_gen.cpp +FILE: ../../../third_party/skia/src/core/SkBlendModeBlender.cpp +FILE: ../../../third_party/skia/src/core/SkBlendModeBlender.h +FILE: ../../../third_party/skia/src/core/SkBlenderBase.h +FILE: ../../../third_party/skia/src/core/SkEnumBitMask.h +FILE: ../../../third_party/skia/src/core/SkMatrixInvert.cpp +FILE: ../../../third_party/skia/src/core/SkMatrixInvert.h +FILE: ../../../third_party/skia/src/core/SkMesh.cpp +FILE: ../../../third_party/skia/src/core/SkMeshPriv.h +FILE: ../../../third_party/skia/src/core/SkUniform.h +FILE: ../../../third_party/skia/src/core/SkVMBlitter.h +FILE: ../../../third_party/skia/src/core/SkYUVAInfoLocation.h +FILE: ../../../third_party/skia/src/effects/SkBlenders.cpp +FILE: ../../../third_party/skia/src/effects/imagefilters/SkCropImageFilter.cpp +FILE: ../../../third_party/skia/src/effects/imagefilters/SkCropImageFilter.h +FILE: ../../../third_party/skia/src/effects/imagefilters/SkRuntimeImageFilter.cpp +FILE: ../../../third_party/skia/src/effects/imagefilters/SkRuntimeImageFilter.h +FILE: ../../../third_party/skia/src/gpu/KeyBuilder.h +FILE: ../../../third_party/skia/src/gpu/ResourceKey.cpp +FILE: ../../../third_party/skia/src/gpu/ShaderErrorHandler.cpp +FILE: ../../../third_party/skia/src/gpu/SkRenderEngineAbortf.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrDstProxyView.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrEagerVertexAllocator.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrMeshDrawTarget.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrMeshDrawTarget.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrOpsTypes.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrPersistentCacheUtils.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrSurfaceInfo.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrWritePixelsRenderTask.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrWritePixelsRenderTask.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrYUVATextureProxies.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrYUVATextureProxies.h +FILE: ../../../third_party/skia/src/gpu/ganesh/SurfaceFillContext.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/SurfaceFillContext.h +FILE: ../../../third_party/skia/src/gpu/ganesh/d3d/GrD3DTypesPriv.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/dawn/GrDawnTypesPriv.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/geometry/GrInnerFanTriangulator.h +FILE: ../../../third_party/skia/src/gpu/ganesh/gl/egl/GrGLMakeNativeInterface_egl.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/gl/glx/GrGLMakeNativeInterface_glx.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/mtl/GrMtlTypesPriv.mm +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/DrawMeshOp.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/DrawMeshOp.h +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/FillPathFlags.h +FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkBuffer.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/vk/GrVkBuffer.h +FILE: ../../../third_party/skia/src/gpu/graphite/Attribute.h +FILE: ../../../third_party/skia/src/gpu/graphite/BackendTexture.cpp +FILE: ../../../third_party/skia/src/gpu/graphite/Caps.cpp +FILE: ../../../third_party/skia/src/gpu/graphite/Caps.h +FILE: ../../../third_party/skia/src/gpu/graphite/CommandBuffer.cpp +FILE: ../../../third_party/skia/src/gpu/graphite/CommandBuffer.h +FILE: ../../../third_party/skia/src/gpu/graphite/Context.cpp +FILE: ../../../third_party/skia/src/gpu/graphite/ContextPriv.h +FILE: ../../../third_party/skia/src/gpu/graphite/ContextUtils.cpp +FILE: ../../../third_party/skia/src/gpu/graphite/ContextUtils.h +FILE: ../../../third_party/skia/src/gpu/graphite/CopyTask.cpp +FILE: ../../../third_party/skia/src/gpu/graphite/CopyTask.h +FILE: ../../../third_party/skia/src/gpu/graphite/Device.cpp +FILE: ../../../third_party/skia/src/gpu/graphite/Device.h +FILE: ../../../third_party/skia/src/gpu/graphite/DrawContext.cpp +FILE: ../../../third_party/skia/src/gpu/graphite/DrawContext.h +FILE: ../../../third_party/skia/src/gpu/graphite/DrawList.cpp +FILE: ../../../third_party/skia/src/gpu/graphite/DrawList.h +FILE: ../../../third_party/skia/src/gpu/graphite/DrawOrder.h +FILE: ../../../third_party/skia/src/gpu/graphite/DrawPass.cpp +FILE: ../../../third_party/skia/src/gpu/graphite/DrawPass.h +FILE: ../../../third_party/skia/src/gpu/graphite/DrawTypes.h +FILE: ../../../third_party/skia/src/gpu/graphite/DrawWriter.cpp +FILE: ../../../third_party/skia/src/gpu/graphite/DrawWriter.h +FILE: ../../../third_party/skia/src/gpu/graphite/GpuWorkSubmission.h +FILE: ../../../third_party/skia/src/gpu/graphite/GraphicsPipeline.cpp +FILE: ../../../third_party/skia/src/gpu/graphite/GraphicsPipeline.h +FILE: ../../../third_party/skia/src/gpu/graphite/GraphicsPipelineDesc.h +FILE: ../../../third_party/skia/src/gpu/graphite/Image_Graphite.cpp +FILE: ../../../third_party/skia/src/gpu/graphite/Image_Graphite.h +FILE: ../../../third_party/skia/src/gpu/graphite/PipelineDataCache.h +FILE: ../../../third_party/skia/src/gpu/graphite/Recorder.cpp +FILE: ../../../third_party/skia/src/gpu/graphite/Recording.cpp +FILE: ../../../third_party/skia/src/gpu/graphite/RenderPassTask.cpp +FILE: ../../../third_party/skia/src/gpu/graphite/RenderPassTask.h +FILE: ../../../third_party/skia/src/gpu/graphite/Renderer.h +FILE: ../../../third_party/skia/src/gpu/graphite/ResourceProvider.cpp +FILE: ../../../third_party/skia/src/gpu/graphite/ResourceProvider.h +FILE: ../../../third_party/skia/src/gpu/graphite/ResourceTypes.h +FILE: ../../../third_party/skia/src/gpu/graphite/SharedContext.cpp +FILE: ../../../third_party/skia/src/gpu/graphite/SharedContext.h +FILE: ../../../third_party/skia/src/gpu/graphite/Surface_Graphite.cpp +FILE: ../../../third_party/skia/src/gpu/graphite/Surface_Graphite.h +FILE: ../../../third_party/skia/src/gpu/graphite/Task.cpp +FILE: ../../../third_party/skia/src/gpu/graphite/Task.h +FILE: ../../../third_party/skia/src/gpu/graphite/TaskGraph.cpp +FILE: ../../../third_party/skia/src/gpu/graphite/TaskGraph.h +FILE: ../../../third_party/skia/src/gpu/graphite/Texture.cpp +FILE: ../../../third_party/skia/src/gpu/graphite/Texture.h +FILE: ../../../third_party/skia/src/gpu/graphite/TextureInfo.cpp +FILE: ../../../third_party/skia/src/gpu/graphite/TextureProxy.cpp +FILE: ../../../third_party/skia/src/gpu/graphite/TextureProxy.h +FILE: ../../../third_party/skia/src/gpu/graphite/UniformManager.cpp +FILE: ../../../third_party/skia/src/gpu/graphite/UniformManager.h +FILE: ../../../third_party/skia/src/gpu/graphite/geom/BoundsManager.h +FILE: ../../../third_party/skia/src/gpu/graphite/geom/IntersectionTree.cpp +FILE: ../../../third_party/skia/src/gpu/graphite/geom/IntersectionTree.h +FILE: ../../../third_party/skia/src/gpu/graphite/geom/Rect.h +FILE: ../../../third_party/skia/src/gpu/graphite/geom/Shape.cpp +FILE: ../../../third_party/skia/src/gpu/graphite/geom/Shape.h +FILE: ../../../third_party/skia/src/gpu/graphite/geom/Transform.cpp +FILE: ../../../third_party/skia/src/gpu/graphite/geom/Transform_graphite.h +FILE: ../../../third_party/skia/src/gpu/graphite/mtl/MtlCaps.h +FILE: ../../../third_party/skia/src/gpu/graphite/mtl/MtlCaps.mm +FILE: ../../../third_party/skia/src/gpu/graphite/mtl/MtlCommandBuffer.h +FILE: ../../../third_party/skia/src/gpu/graphite/mtl/MtlCommandBuffer.mm +FILE: ../../../third_party/skia/src/gpu/graphite/mtl/MtlGraphicsPipeline.h +FILE: ../../../third_party/skia/src/gpu/graphite/mtl/MtlGraphicsPipeline.mm +FILE: ../../../third_party/skia/src/gpu/graphite/mtl/MtlResourceProvider.h +FILE: ../../../third_party/skia/src/gpu/graphite/mtl/MtlResourceProvider.mm +FILE: ../../../third_party/skia/src/gpu/graphite/mtl/MtlSharedContext.h +FILE: ../../../third_party/skia/src/gpu/graphite/mtl/MtlSharedContext.mm +FILE: ../../../third_party/skia/src/gpu/graphite/mtl/MtlTexture.h +FILE: ../../../third_party/skia/src/gpu/graphite/mtl/MtlTexture.mm +FILE: ../../../third_party/skia/src/gpu/graphite/mtl/MtlTypesPriv.mm +FILE: ../../../third_party/skia/src/gpu/graphite/mtl/MtlUtils.h +FILE: ../../../third_party/skia/src/gpu/mtl/MtlMemoryAllocatorImpl.h +FILE: ../../../third_party/skia/src/gpu/mtl/MtlMemoryAllocatorImpl.mm +FILE: ../../../third_party/skia/src/sksl/SkSLBuiltinTypes.cpp +FILE: ../../../third_party/skia/src/sksl/SkSLBuiltinTypes.h +FILE: ../../../third_party/skia/src/sksl/SkSLContext.cpp +FILE: ../../../third_party/skia/src/sksl/SkSLIntrinsicList.h +FILE: ../../../third_party/skia/src/sksl/SkSLMangler.h +FILE: ../../../third_party/skia/src/sksl/SkSLOperator.cpp +FILE: ../../../third_party/skia/src/sksl/SkSLThreadContext.h +FILE: ../../../third_party/skia/src/sksl/analysis/SkSLCanExitWithoutReturningValue.cpp +FILE: ../../../third_party/skia/src/sksl/analysis/SkSLCheckProgramStructure.cpp +FILE: ../../../third_party/skia/src/sksl/analysis/SkSLGetLoopUnrollInfo.cpp +FILE: ../../../third_party/skia/src/sksl/analysis/SkSLIsConstantExpression.cpp +FILE: ../../../third_party/skia/src/sksl/analysis/SkSLProgramUsage.cpp +FILE: ../../../third_party/skia/src/sksl/analysis/SkSLProgramVisitor.h +FILE: ../../../third_party/skia/src/sksl/analysis/SkSLSwitchCaseContainsExit.cpp +FILE: ../../../third_party/skia/src/sksl/analysis/SkSLSymbolTableStackBuilder.cpp +FILE: ../../../third_party/skia/src/sksl/ir/SkSLBinaryExpression.cpp +FILE: ../../../third_party/skia/src/sksl/ir/SkSLBlock.cpp +FILE: ../../../third_party/skia/src/sksl/ir/SkSLChildCall.cpp +FILE: ../../../third_party/skia/src/sksl/ir/SkSLChildCall.h +FILE: ../../../third_party/skia/src/sksl/ir/SkSLConstructorArray.cpp +FILE: ../../../third_party/skia/src/sksl/ir/SkSLConstructorArray.h +FILE: ../../../third_party/skia/src/sksl/ir/SkSLConstructorArrayCast.cpp +FILE: ../../../third_party/skia/src/sksl/ir/SkSLConstructorArrayCast.h +FILE: ../../../third_party/skia/src/sksl/ir/SkSLConstructorCompound.cpp +FILE: ../../../third_party/skia/src/sksl/ir/SkSLConstructorCompound.h +FILE: ../../../third_party/skia/src/sksl/ir/SkSLConstructorCompoundCast.cpp +FILE: ../../../third_party/skia/src/sksl/ir/SkSLConstructorCompoundCast.h +FILE: ../../../third_party/skia/src/sksl/ir/SkSLConstructorDiagonalMatrix.cpp +FILE: ../../../third_party/skia/src/sksl/ir/SkSLConstructorDiagonalMatrix.h +FILE: ../../../third_party/skia/src/sksl/ir/SkSLConstructorMatrixResize.cpp +FILE: ../../../third_party/skia/src/sksl/ir/SkSLConstructorMatrixResize.h +FILE: ../../../third_party/skia/src/sksl/ir/SkSLConstructorScalarCast.cpp +FILE: ../../../third_party/skia/src/sksl/ir/SkSLConstructorScalarCast.h +FILE: ../../../third_party/skia/src/sksl/ir/SkSLConstructorSplat.cpp +FILE: ../../../third_party/skia/src/sksl/ir/SkSLConstructorSplat.h +FILE: ../../../third_party/skia/src/sksl/ir/SkSLConstructorStruct.cpp +FILE: ../../../third_party/skia/src/sksl/ir/SkSLConstructorStruct.h +FILE: ../../../third_party/skia/src/sksl/ir/SkSLDoStatement.cpp +FILE: ../../../third_party/skia/src/sksl/ir/SkSLExpressionStatement.cpp +FILE: ../../../third_party/skia/src/sksl/ir/SkSLFieldAccess.cpp +FILE: ../../../third_party/skia/src/sksl/ir/SkSLForStatement.cpp +FILE: ../../../third_party/skia/src/sksl/ir/SkSLFunctionCall.cpp +FILE: ../../../third_party/skia/src/sksl/ir/SkSLFunctionDefinition.cpp +FILE: ../../../third_party/skia/src/sksl/ir/SkSLIfStatement.cpp +FILE: ../../../third_party/skia/src/sksl/ir/SkSLIndexExpression.cpp +FILE: ../../../third_party/skia/src/sksl/ir/SkSLMethodReference.h +FILE: ../../../third_party/skia/src/sksl/ir/SkSLPostfixExpression.cpp +FILE: ../../../third_party/skia/src/sksl/ir/SkSLSwitchStatement.cpp +FILE: ../../../third_party/skia/src/sksl/ir/SkSLSwizzle.cpp +FILE: ../../../third_party/skia/src/sksl/ir/SkSLTernaryExpression.cpp +FILE: ../../../third_party/skia/src/sksl/ir/SkSLTypeReference.cpp +FILE: ../../../third_party/skia/src/sksl/ir/SkSLVarDeclarations.cpp +FILE: ../../../third_party/skia/src/sksl/tracing/SkVMDebugTrace.cpp +FILE: ../../../third_party/skia/src/sksl/tracing/SkVMDebugTrace.h +FILE: ../../../third_party/skia/src/sksl/tracing/SkVMDebugTracePlayer.cpp +FILE: ../../../third_party/skia/src/sksl/tracing/SkVMDebugTracePlayer.h +FILE: ../../../third_party/skia/src/sksl/transform/SkSLEliminateDeadFunctions.cpp +FILE: ../../../third_party/skia/src/sksl/transform/SkSLEliminateDeadGlobalVariables.cpp +FILE: ../../../third_party/skia/src/sksl/transform/SkSLEliminateDeadLocalVariables.cpp +FILE: ../../../third_party/skia/src/sksl/transform/SkSLEliminateUnreachableCode.cpp +FILE: ../../../third_party/skia/src/sksl/transform/SkSLProgramWriter.h +FILE: ../../../third_party/skia/src/sksl/transform/SkSLReplaceConstVarsWithLiterals.cpp +FILE: ../../../third_party/skia/src/text/gpu/Slug.cpp +FILE: ../../../third_party/skia/src/text/gpu/SubRunAllocator.cpp +FILE: ../../../third_party/skia/src/text/gpu/SubRunAllocator.h +FILE: ../../../third_party/skia/src/utils/SkVMVisualizer.cpp +FILE: ../../../third_party/skia/src/utils/SkVMVisualizer.h ---------------------------------------------------------------------------------------------------- -Copyright 2013 The Android Open Source Project +Copyright 2021 Google LLC Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are @@ -7746,11 +7507,60 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ==================================================================================================== LIBRARY: skia -ORIGIN: ../../../third_party/skia/src/effects/imagefilters/SkMatrixTransformImageFilter.cpp + ../../../third_party/skia/LICENSE +ORIGIN: ../../../third_party/skia/experimental/sorttoy/Cmds.cpp + ../../../third_party/skia/LICENSE TYPE: LicenseType.bsd -FILE: ../../../third_party/skia/src/effects/imagefilters/SkMatrixTransformImageFilter.cpp +FILE: ../../../third_party/skia/experimental/sorttoy/Cmds.cpp +FILE: ../../../third_party/skia/experimental/sorttoy/Cmds.h +FILE: ../../../third_party/skia/experimental/sorttoy/Fake.cpp +FILE: ../../../third_party/skia/experimental/sorttoy/Fake.h +FILE: ../../../third_party/skia/experimental/sorttoy/SortKey.h +FILE: ../../../third_party/skia/experimental/sorttoy/sorttoy.cpp +FILE: ../../../third_party/skia/experimental/sorttoy/sorttypes.h +FILE: ../../../third_party/skia/gm/batchedconvexpaths.cpp +FILE: ../../../third_party/skia/gm/destcolor.cpp +FILE: ../../../third_party/skia/include/private/SkSLProgramKind.h +FILE: ../../../third_party/skia/include/private/SkStringView.h +FILE: ../../../third_party/skia/include/private/chromium/SkChromeRemoteGlyphCache.h +FILE: ../../../third_party/skia/include/sksl/DSLBlock.h +FILE: ../../../third_party/skia/include/sksl/DSLCase.h +FILE: ../../../third_party/skia/include/sksl/DSLFunction.h +FILE: ../../../third_party/skia/include/sksl/DSLLayout.h +FILE: ../../../third_party/skia/include/sksl/DSLStatement.h +FILE: ../../../third_party/skia/include/sksl/SkSLDebugTrace.h +FILE: ../../../third_party/skia/include/sksl/SkSLErrorReporter.h +FILE: ../../../third_party/skia/include/sksl/SkSLPosition.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrVertexChunkArray.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrVertexChunkArray.h +FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrModulateAtlasCoverageEffect.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/effects/GrModulateAtlasCoverageEffect.h +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/AtlasInstancedHelper.h +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/PathStencilCoverOp.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/PathStencilCoverOp.h +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/PathTessellateOp.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/ops/PathTessellateOp.h +FILE: ../../../third_party/skia/src/gpu/ganesh/tessellate/GrTessellationShader.cpp +FILE: ../../../third_party/skia/src/gpu/tessellate/AffineMatrix.h +FILE: ../../../third_party/skia/src/gpu/tessellate/PatchWriter.h +FILE: ../../../third_party/skia/src/gpu/tessellate/Tessellation.cpp +FILE: ../../../third_party/skia/src/sksl/SkSLErrorReporter.cpp +FILE: ../../../third_party/skia/src/sksl/SkSLIntrinsicList.cpp +FILE: ../../../third_party/skia/src/sksl/SkSLMangler.cpp +FILE: ../../../third_party/skia/src/sksl/SkSLParser.cpp +FILE: ../../../third_party/skia/src/sksl/SkSLParser.h +FILE: ../../../third_party/skia/src/sksl/dsl/DSLBlock.cpp +FILE: ../../../third_party/skia/src/sksl/dsl/DSLCase.cpp +FILE: ../../../third_party/skia/src/sksl/dsl/DSLFunction.cpp +FILE: ../../../third_party/skia/src/sksl/dsl/DSLLayout.cpp +FILE: ../../../third_party/skia/src/sksl/dsl/DSLStatement.cpp +FILE: ../../../third_party/skia/src/sksl/dsl/priv/DSL_priv.h +FILE: ../../../third_party/skia/src/sksl/ir/SkSLFunctionDeclaration.cpp +FILE: ../../../third_party/skia/src/sksl/ir/SkSLModifiers.cpp +FILE: ../../../third_party/skia/src/sksl/ir/SkSLPoison.h +FILE: ../../../third_party/skia/src/sksl/ir/SkSLVariable.cpp +FILE: ../../../third_party/skia/src/sksl/transform/SkSLFindAndDeclareBuiltinVariables.cpp +FILE: ../../../third_party/skia/src/sksl/transform/SkSLTransform.h ---------------------------------------------------------------------------------------------------- -Copyright 2014 The Android Open Source Project +Copyright 2021 Google LLC. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are @@ -7783,12 +7593,15 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ==================================================================================================== LIBRARY: skia -ORIGIN: ../../../third_party/skia/src/gpu/ganesh/GrDistanceFieldGenFromVector.cpp + ../../../third_party/skia/LICENSE +ORIGIN: ../../../third_party/skia/fuzz/oss_fuzz/FuzzDDLThreading.cpp + ../../../third_party/skia/LICENSE TYPE: LicenseType.bsd -FILE: ../../../third_party/skia/src/gpu/ganesh/GrDistanceFieldGenFromVector.cpp -FILE: ../../../third_party/skia/src/gpu/ganesh/GrDistanceFieldGenFromVector.h +FILE: ../../../third_party/skia/fuzz/FuzzTriangulation.cpp +FILE: ../../../third_party/skia/fuzz/oss_fuzz/FuzzDDLThreading.cpp +FILE: ../../../third_party/skia/fuzz/oss_fuzz/FuzzRegionOp.cpp +FILE: ../../../third_party/skia/fuzz/oss_fuzz/FuzzSkParagraph.cpp +FILE: ../../../third_party/skia/fuzz/oss_fuzz/FuzzTriangulation.cpp ---------------------------------------------------------------------------------------------------- -Copyright 2017 ARM Ltd. +Copyright 2021 Google, LLC Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are @@ -7820,29 +7633,31 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ==================================================================================================== ==================================================================================================== +LIBRARY: libjxl LIBRARY: skia -ORIGIN: ../../../third_party/skia/src/gpu/ganesh/ops/SmallPathRenderer.cpp + ../../../third_party/skia/LICENSE +ORIGIN: ../../../third_party/skia/experimental/tskit/go/gen_types/gen_types.go + ../../../LICENSE TYPE: LicenseType.bsd -FILE: ../../../third_party/skia/src/gpu/ganesh/ops/SmallPathRenderer.cpp +FILE: ../../../third_party/skia/experimental/tskit/go/gen_types/gen_types.go +FILE: ../../../third_party/skia/experimental/tskit/go/gen_types/gen_types_test.go +FILE: ../../../third_party/skia/infra/bots/gen_tasks_logic/skpbench_flags.go +FILE: ../../../third_party/skia/infra/bots/task_drivers/perf_puppeteer_skottie_frames/make_lotties_with_assets/make_lotties_with_assets.go +FILE: ../../../third_party/skia/third_party/libjxl/jxl/jxl_export.h ---------------------------------------------------------------------------------------------------- -Copyright 2014 Google Inc. -Copyright 2017 ARM Ltd. +Copyright 2021 The Chromium Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - - * Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT @@ -7859,13 +7674,36 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ==================================================================================================== LIBRARY: skia -ORIGIN: ../../../third_party/skia/src/ports/SkFontConfigInterface_direct.cpp + ../../../third_party/skia/LICENSE +ORIGIN: ../../../third_party/skia/gm/drawlines_with_local_matrix.cpp + ../../../third_party/skia/LICENSE TYPE: LicenseType.bsd -FILE: ../../../third_party/skia/src/ports/SkFontConfigInterface_direct.cpp -FILE: ../../../third_party/skia/src/ports/SkFontConfigInterface_direct.h -FILE: ../../../third_party/skia/src/ports/SkFontConfigInterface_direct_factory.cpp +FILE: ../../../third_party/skia/gm/drawlines_with_local_matrix.cpp +FILE: ../../../third_party/skia/gm/nearesthalfpixelimage.cpp +FILE: ../../../third_party/skia/gm/palette.cpp +FILE: ../../../third_party/skia/include/core/SkOpenTypeSVGDecoder.h +FILE: ../../../third_party/skia/include/gpu/mtl/MtlMemoryAllocator.h +FILE: ../../../third_party/skia/modules/skottie/src/BlendModes.cpp +FILE: ../../../third_party/skia/modules/skottie/src/text/Font.cpp +FILE: ../../../third_party/skia/modules/skottie/src/text/Font.h +FILE: ../../../third_party/skia/modules/skunicode/src/SkUnicode_client.cpp +FILE: ../../../third_party/skia/modules/svg/include/SkSVGOpenTypeSVGDecoder.h +FILE: ../../../third_party/skia/modules/svg/src/SkSVGOpenTypeSVGDecoder.cpp +FILE: ../../../third_party/skia/samplecode/SampleSBIX.cpp +FILE: ../../../third_party/skia/src/codec/SkAvifCodec.cpp +FILE: ../../../third_party/skia/src/codec/SkAvifCodec.h +FILE: ../../../third_party/skia/src/gpu/graphite/mtl/MtlComputeCommandEncoder.h +FILE: ../../../third_party/skia/src/sfnt/SkOTTable_hmtx.h +FILE: ../../../third_party/skia/src/sksl/codegen/SkSLWGSLCodeGenerator.cpp +FILE: ../../../third_party/skia/src/sksl/codegen/SkSLWGSLCodeGenerator.h +FILE: ../../../third_party/skia/src/sksl/ir/SkSLDiscardStatement.cpp +FILE: ../../../third_party/skia/src/sksl/ir/SkSLInterfaceBlock.cpp +FILE: ../../../third_party/skia/src/sksl/ir/SkSLLayout.cpp +FILE: ../../../third_party/skia/src/sksl/ir/SkSLLiteral.cpp +FILE: ../../../third_party/skia/src/text/gpu/SDFMaskFilter.h +FILE: ../../../third_party/skia/src/utils/SkBlitterTrace.h +FILE: ../../../third_party/skia/src/utils/SkBlitterTraceCommon.h +FILE: ../../../third_party/skia/src/utils/SkCycles.h ---------------------------------------------------------------------------------------------------- -Copyright 2009-2015 Google Inc. +Copyright 2022 Google Inc. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are @@ -7898,13 +7736,191 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ==================================================================================================== LIBRARY: skia -ORIGIN: ../../../third_party/skia/src/ports/SkFontHost_FreeType_common.cpp + ../../../third_party/skia/LICENSE +ORIGIN: ../../../third_party/skia/bench/graphite/BoundsManagerBench.cpp + ../../../third_party/skia/LICENSE TYPE: LicenseType.bsd -FILE: ../../../third_party/skia/src/ports/SkFontHost_FreeType_common.cpp -FILE: ../../../third_party/skia/src/ports/SkFontHost_FreeType_common.h +FILE: ../../../third_party/skia/bench/graphite/BoundsManagerBench.cpp +FILE: ../../../third_party/skia/example/VulkanBasic.cpp +FILE: ../../../third_party/skia/gm/bug12866.cpp +FILE: ../../../third_party/skia/gm/crbug_1313579.cpp +FILE: ../../../third_party/skia/include/core/SkAlphaType.h +FILE: ../../../third_party/skia/include/core/SkCapabilities.h +FILE: ../../../third_party/skia/include/core/SkColorType.h +FILE: ../../../third_party/skia/include/gpu/GpuTypes.h +FILE: ../../../third_party/skia/include/gpu/graphite/CombinationBuilder.h +FILE: ../../../third_party/skia/include/gpu/graphite/ContextOptions.h +FILE: ../../../third_party/skia/include/gpu/graphite/ImageProvider.h +FILE: ../../../third_party/skia/include/gpu/graphite/dawn/DawnBackendContext.h +FILE: ../../../third_party/skia/include/gpu/vk/VulkanBackendContext.h +FILE: ../../../third_party/skia/include/private/SkUniquePaintParamsID.h +FILE: ../../../third_party/skia/include/sksl/SkSLVersion.h +FILE: ../../../third_party/skia/infra/bots/task_drivers/bazel_build/bazel_build.go +FILE: ../../../third_party/skia/infra/bots/task_drivers/canvaskit_gold/canvaskit_gold.go +FILE: ../../../third_party/skia/infra/bots/task_drivers/cpu_tests/cpu_tests.go +FILE: ../../../third_party/skia/modules/skunicode/src/SkUnicode.cpp +FILE: ../../../third_party/skia/samplecode/SampleGraphitePrimitives.cpp +FILE: ../../../third_party/skia/src/core/SkBuiltInCodeSnippetID.h +FILE: ../../../third_party/skia/src/core/SkCapabilities.cpp +FILE: ../../../third_party/skia/src/core/SkDebugUtils.h +FILE: ../../../third_party/skia/src/core/SkKeyContext.cpp +FILE: ../../../third_party/skia/src/core/SkKeyContext.h +FILE: ../../../third_party/skia/src/core/SkKeyHelpers.cpp +FILE: ../../../third_party/skia/src/core/SkKeyHelpers.h +FILE: ../../../third_party/skia/src/core/SkPaintParamsKey.cpp +FILE: ../../../third_party/skia/src/core/SkPaintParamsKey.h +FILE: ../../../third_party/skia/src/core/SkPipelineData.cpp +FILE: ../../../third_party/skia/src/core/SkPipelineData.h +FILE: ../../../third_party/skia/src/core/SkRuntimeEffectDictionary.h +FILE: ../../../third_party/skia/src/core/SkSLTypeShared.cpp +FILE: ../../../third_party/skia/src/core/SkSLTypeShared.h +FILE: ../../../third_party/skia/src/core/SkShaderCodeDictionary.cpp +FILE: ../../../third_party/skia/src/core/SkShaderCodeDictionary.h +FILE: ../../../third_party/skia/src/gpu/AtlasTypes.cpp +FILE: ../../../third_party/skia/src/gpu/AtlasTypes.h +FILE: ../../../third_party/skia/src/gpu/RefCntedCallback.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrBufferTransferRenderTask.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrBufferTransferRenderTask.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrBufferUpdateRenderTask.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/GrBufferUpdateRenderTask.h +FILE: ../../../third_party/skia/src/gpu/ganesh/GrImageInfo.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/tessellate/PathTessellator.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/tessellate/PathTessellator.h +FILE: ../../../third_party/skia/src/gpu/ganesh/tessellate/StrokeTessellator.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/tessellate/StrokeTessellator.h +FILE: ../../../third_party/skia/src/gpu/ganesh/tessellate/VertexChunkPatchAllocator.h +FILE: ../../../third_party/skia/src/gpu/graphite/AttachmentTypes.h +FILE: ../../../third_party/skia/src/gpu/graphite/ClientMappedBufferManager.cpp +FILE: ../../../third_party/skia/src/gpu/graphite/ClientMappedBufferManager.h +FILE: ../../../third_party/skia/src/gpu/graphite/ClipStack.cpp +FILE: ../../../third_party/skia/src/gpu/graphite/ClipStack_graphite.h +FILE: ../../../third_party/skia/src/gpu/graphite/CombinationBuilder.cpp +FILE: ../../../third_party/skia/src/gpu/graphite/CommandTypes.h +FILE: ../../../third_party/skia/src/gpu/graphite/ComputePassTask.cpp +FILE: ../../../third_party/skia/src/gpu/graphite/ComputePassTask.h +FILE: ../../../third_party/skia/src/gpu/graphite/ComputePipeline.cpp +FILE: ../../../third_party/skia/src/gpu/graphite/ComputePipeline.h +FILE: ../../../third_party/skia/src/gpu/graphite/ComputePipelineDesc.h +FILE: ../../../third_party/skia/src/gpu/graphite/ComputeTypes.h +FILE: ../../../third_party/skia/src/gpu/graphite/DrawAtlas.cpp +FILE: ../../../third_party/skia/src/gpu/graphite/DrawAtlas.h +FILE: ../../../third_party/skia/src/gpu/graphite/DrawCommands.h +FILE: ../../../third_party/skia/src/gpu/graphite/DrawParams.h +FILE: ../../../third_party/skia/src/gpu/graphite/FactoryFunctions.cpp +FILE: ../../../third_party/skia/src/gpu/graphite/FactoryFunctions.h +FILE: ../../../third_party/skia/src/gpu/graphite/GlobalCache.cpp +FILE: ../../../third_party/skia/src/gpu/graphite/GlobalCache.h +FILE: ../../../third_party/skia/src/gpu/graphite/GpuWorkSubmission.cpp +FILE: ../../../third_party/skia/src/gpu/graphite/GraphiteResourceKey.cpp +FILE: ../../../third_party/skia/src/gpu/graphite/GraphiteResourceKey.h +FILE: ../../../third_party/skia/src/gpu/graphite/ImageUtils.cpp +FILE: ../../../third_party/skia/src/gpu/graphite/ImageUtils.h +FILE: ../../../third_party/skia/src/gpu/graphite/Log.h +FILE: ../../../third_party/skia/src/gpu/graphite/PaintParams.cpp +FILE: ../../../third_party/skia/src/gpu/graphite/PaintParams.h +FILE: ../../../third_party/skia/src/gpu/graphite/PietRenderTask.cpp +FILE: ../../../third_party/skia/src/gpu/graphite/PietRenderTask.h +FILE: ../../../third_party/skia/src/gpu/graphite/Precompile.h +FILE: ../../../third_party/skia/src/gpu/graphite/QueueManager.cpp +FILE: ../../../third_party/skia/src/gpu/graphite/QueueManager.h +FILE: ../../../third_party/skia/src/gpu/graphite/RecorderPriv.h +FILE: ../../../third_party/skia/src/gpu/graphite/RecordingPriv.h +FILE: ../../../third_party/skia/src/gpu/graphite/Renderer.cpp +FILE: ../../../third_party/skia/src/gpu/graphite/RendererProvider.cpp +FILE: ../../../third_party/skia/src/gpu/graphite/RendererProvider.h +FILE: ../../../third_party/skia/src/gpu/graphite/Resource.cpp +FILE: ../../../third_party/skia/src/gpu/graphite/Resource.h +FILE: ../../../third_party/skia/src/gpu/graphite/ResourceCache.cpp +FILE: ../../../third_party/skia/src/gpu/graphite/ResourceCache.h +FILE: ../../../third_party/skia/src/gpu/graphite/Sampler.cpp +FILE: ../../../third_party/skia/src/gpu/graphite/Sampler.h +FILE: ../../../third_party/skia/src/gpu/graphite/SpecialImage_Graphite.cpp +FILE: ../../../third_party/skia/src/gpu/graphite/SynchronizeToCpuTask.cpp +FILE: ../../../third_party/skia/src/gpu/graphite/SynchronizeToCpuTask.h +FILE: ../../../third_party/skia/src/gpu/graphite/TextureProxyView.h +FILE: ../../../third_party/skia/src/gpu/graphite/TextureUtils.cpp +FILE: ../../../third_party/skia/src/gpu/graphite/TextureUtils.h +FILE: ../../../third_party/skia/src/gpu/graphite/UploadBufferManager.cpp +FILE: ../../../third_party/skia/src/gpu/graphite/UploadBufferManager.h +FILE: ../../../third_party/skia/src/gpu/graphite/UploadTask.cpp +FILE: ../../../third_party/skia/src/gpu/graphite/UploadTask.h +FILE: ../../../third_party/skia/src/gpu/graphite/dawn/DawnCaps.cpp +FILE: ../../../third_party/skia/src/gpu/graphite/dawn/DawnCaps.h +FILE: ../../../third_party/skia/src/gpu/graphite/dawn/DawnCommandBuffer.cpp +FILE: ../../../third_party/skia/src/gpu/graphite/dawn/DawnCommandBuffer.h +FILE: ../../../third_party/skia/src/gpu/graphite/dawn/DawnQueueManager.cpp +FILE: ../../../third_party/skia/src/gpu/graphite/dawn/DawnQueueManager.h +FILE: ../../../third_party/skia/src/gpu/graphite/dawn/DawnResourceProvider.cpp +FILE: ../../../third_party/skia/src/gpu/graphite/dawn/DawnResourceProvider.h +FILE: ../../../third_party/skia/src/gpu/graphite/dawn/DawnSharedContext.cpp +FILE: ../../../third_party/skia/src/gpu/graphite/dawn/DawnSharedContext.h +FILE: ../../../third_party/skia/src/gpu/graphite/dawn/DawnTypesPriv.cpp +FILE: ../../../third_party/skia/src/gpu/graphite/geom/Geometry.h +FILE: ../../../third_party/skia/src/gpu/graphite/geom/SubRunData.h +FILE: ../../../third_party/skia/src/gpu/graphite/mtl/MtlComputePipeline.h +FILE: ../../../third_party/skia/src/gpu/graphite/mtl/MtlComputePipeline.mm +FILE: ../../../third_party/skia/src/gpu/graphite/mtl/MtlQueueManager.h +FILE: ../../../third_party/skia/src/gpu/graphite/mtl/MtlQueueManager.mm +FILE: ../../../third_party/skia/src/gpu/graphite/mtl/MtlSampler.h +FILE: ../../../third_party/skia/src/gpu/graphite/mtl/MtlSampler.mm +FILE: ../../../third_party/skia/src/gpu/graphite/render/AnalyticRRectRenderStep.cpp +FILE: ../../../third_party/skia/src/gpu/graphite/render/AnalyticRRectRenderStep.h +FILE: ../../../third_party/skia/src/gpu/graphite/render/BitmapTextRenderStep.cpp +FILE: ../../../third_party/skia/src/gpu/graphite/render/BitmapTextRenderStep.h +FILE: ../../../third_party/skia/src/gpu/graphite/render/CommonDepthStencilSettings.h +FILE: ../../../third_party/skia/src/gpu/graphite/render/CoverBoundsRenderStep.cpp +FILE: ../../../third_party/skia/src/gpu/graphite/render/CoverBoundsRenderStep.h +FILE: ../../../third_party/skia/src/gpu/graphite/render/DynamicInstancesPatchAllocator.h +FILE: ../../../third_party/skia/src/gpu/graphite/render/MiddleOutFanRenderStep.cpp +FILE: ../../../third_party/skia/src/gpu/graphite/render/MiddleOutFanRenderStep.h +FILE: ../../../third_party/skia/src/gpu/graphite/render/SDFTextRenderStep.cpp +FILE: ../../../third_party/skia/src/gpu/graphite/render/SDFTextRenderStep.h +FILE: ../../../third_party/skia/src/gpu/graphite/render/TessellateCurvesRenderStep.cpp +FILE: ../../../third_party/skia/src/gpu/graphite/render/TessellateCurvesRenderStep.h +FILE: ../../../third_party/skia/src/gpu/graphite/render/TessellateStrokesRenderStep.cpp +FILE: ../../../third_party/skia/src/gpu/graphite/render/TessellateStrokesRenderStep.h +FILE: ../../../third_party/skia/src/gpu/graphite/render/TessellateWedgesRenderStep.cpp +FILE: ../../../third_party/skia/src/gpu/graphite/render/TessellateWedgesRenderStep.h +FILE: ../../../third_party/skia/src/gpu/graphite/render/VerticesRenderStep.cpp +FILE: ../../../third_party/skia/src/gpu/graphite/render/VerticesRenderStep.h +FILE: ../../../third_party/skia/src/gpu/graphite/text/AtlasManager.cpp +FILE: ../../../third_party/skia/src/gpu/graphite/text/AtlasManager.h +FILE: ../../../third_party/skia/src/gpu/graphite/vk/VulkanCaps.cpp +FILE: ../../../third_party/skia/src/gpu/graphite/vk/VulkanCaps.h +FILE: ../../../third_party/skia/src/gpu/graphite/vk/VulkanCommandBuffer.cpp +FILE: ../../../third_party/skia/src/gpu/graphite/vk/VulkanCommandBuffer.h +FILE: ../../../third_party/skia/src/gpu/graphite/vk/VulkanGraphiteUtils.h +FILE: ../../../third_party/skia/src/gpu/graphite/vk/VulkanQueueManager.cpp +FILE: ../../../third_party/skia/src/gpu/graphite/vk/VulkanQueueManager.h +FILE: ../../../third_party/skia/src/gpu/graphite/vk/VulkanResourceProvider.cpp +FILE: ../../../third_party/skia/src/gpu/graphite/vk/VulkanResourceProvider.h +FILE: ../../../third_party/skia/src/gpu/graphite/vk/VulkanSharedContext.cpp +FILE: ../../../third_party/skia/src/gpu/graphite/vk/VulkanSharedContext.h +FILE: ../../../third_party/skia/src/gpu/tessellate/FixedCountBufferUtils.cpp +FILE: ../../../third_party/skia/src/gpu/tessellate/FixedCountBufferUtils.h +FILE: ../../../third_party/skia/src/gpu/tessellate/LinearTolerances.h +FILE: ../../../third_party/skia/src/gpu/vk/VulkanUtils.h +FILE: ../../../third_party/skia/src/shaders/SkEmptyShader.cpp +FILE: ../../../third_party/skia/src/shaders/gradients/SkGradientShaderBase.cpp +FILE: ../../../third_party/skia/src/sksl/SkSLModuleLoader.cpp +FILE: ../../../third_party/skia/src/sksl/SkSLModuleLoader.h +FILE: ../../../third_party/skia/src/sksl/analysis/SkSLFinalizationChecks.cpp +FILE: ../../../third_party/skia/src/sksl/analysis/SkSLHasSideEffects.cpp +FILE: ../../../third_party/skia/src/sksl/analysis/SkSLIsSameExpressionTree.cpp +FILE: ../../../third_party/skia/src/sksl/analysis/SkSLIsTrivialExpression.cpp +FILE: ../../../third_party/skia/src/sksl/analysis/SkSLNoOpErrorReporter.h +FILE: ../../../third_party/skia/src/sksl/analysis/SkSLProgramUsage.h +FILE: ../../../third_party/skia/src/sksl/transform/SkSLAddConstToVarModifiers.cpp +FILE: ../../../third_party/skia/src/sksl/transform/SkSLEliminateEmptyStatements.cpp +FILE: ../../../third_party/skia/src/sksl/transform/SkSLFindAndDeclareBuiltinFunctions.cpp +FILE: ../../../third_party/skia/src/sksl/transform/SkSLRenamePrivateSymbols.cpp +FILE: ../../../third_party/skia/src/text/StrikeForGPU.cpp +FILE: ../../../third_party/skia/src/text/gpu/GlyphVector.cpp +FILE: ../../../third_party/skia/src/text/gpu/GlyphVector.h +FILE: ../../../third_party/skia/src/text/gpu/SubRunContainer.cpp +FILE: ../../../third_party/skia/src/text/gpu/SubRunContainer.h +FILE: ../../../third_party/skia/src/utils/SkGaussianColorFilter.cpp +FILE: ../../../third_party/skia/src/utils/SkTestCanvas.h ---------------------------------------------------------------------------------------------------- -Copyright 2006-2012 The Android Open Source Project -Copyright 2012 Mozilla Foundation +Copyright 2022 Google LLC Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are @@ -7937,12 +7953,31 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ==================================================================================================== LIBRARY: skia -ORIGIN: ../../../third_party/skia/src/ports/SkMemory_mozalloc.cpp + ../../../third_party/skia/LICENSE +ORIGIN: ../../../third_party/skia/include/gpu/graphite/dawn/DawnTypes.h + ../../../third_party/skia/LICENSE TYPE: LicenseType.bsd -FILE: ../../../third_party/skia/src/ports/SkMemory_mozalloc.cpp +FILE: ../../../third_party/skia/include/gpu/MutableTextureState.h +FILE: ../../../third_party/skia/include/gpu/graphite/dawn/DawnTypes.h +FILE: ../../../third_party/skia/include/gpu/graphite/vk/VulkanGraphiteTypes.h +FILE: ../../../third_party/skia/include/gpu/vk/VulkanExtensions.h +FILE: ../../../third_party/skia/include/gpu/vk/VulkanMemoryAllocator.h +FILE: ../../../third_party/skia/include/gpu/vk/VulkanTypes.h +FILE: ../../../third_party/skia/include/private/SkContainers.h +FILE: ../../../third_party/skia/include/private/gpu/graphite/DawnTypesPriv.h +FILE: ../../../third_party/skia/include/private/gpu/graphite/VulkanGraphiteTypesPriv.h +FILE: ../../../third_party/skia/include/private/gpu/vk/VulkanTypesPriv.h +FILE: ../../../third_party/skia/src/gpu/MutableTextureStateRef.h +FILE: ../../../third_party/skia/src/gpu/ganesh/dawn/GrDawnAsyncWait.cpp +FILE: ../../../third_party/skia/src/gpu/ganesh/dawn/GrDawnAsyncWait.h +FILE: ../../../third_party/skia/src/gpu/graphite/vk/VulkanGraphiteTypes.cpp +FILE: ../../../third_party/skia/src/gpu/piet/PietTypes.h +FILE: ../../../third_party/skia/src/gpu/piet/Render.cpp +FILE: ../../../third_party/skia/src/gpu/piet/Render.h +FILE: ../../../third_party/skia/src/gpu/piet/Scene.cpp +FILE: ../../../third_party/skia/src/gpu/piet/Scene.h +FILE: ../../../third_party/skia/src/gpu/tessellate/MidpointContourParser.h +FILE: ../../../third_party/skia/src/sksl/SkSLPosition.cpp ---------------------------------------------------------------------------------------------------- -Copyright 2011 Google Inc. -Copyright 2012 Mozilla Foundation +Copyright 2022 Google LLC. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are @@ -7975,45 +8010,28 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ==================================================================================================== LIBRARY: skia -ORIGIN: ../../../third_party/skia/src/sksl/GLSL.std.450.h -TYPE: LicenseType.unknown -FILE: ../../../third_party/skia/src/sksl/GLSL.std.450.h -FILE: ../../../third_party/skia/src/sksl/spirv.h ----------------------------------------------------------------------------------------------------- -Copyright (c) 2014-2016 The Khronos Group Inc. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and/or associated documentation files (the "Materials"), -to deal in the Materials without restriction, including without limitation -the rights to use, copy, modify, merge, publish, distribute, sublicense, -and/or sell copies of the Materials, and to permit persons to whom the -Materials are furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Materials. -==================================================================================================== - -==================================================================================================== -LIBRARY: vulkan -ORIGIN: ../../../third_party/skia/include/third_party/vulkan/LICENSE +ORIGIN: ../../../third_party/skia/fuzz/oss_fuzz/FuzzCOLRv1.cpp + ../../../third_party/skia/LICENSE TYPE: LicenseType.bsd -FILE: ../../../third_party/skia/include/third_party/vulkan/BUILD.bazel +FILE: ../../../third_party/skia/fuzz/oss_fuzz/FuzzCOLRv1.cpp +FILE: ../../../third_party/skia/fuzz/oss_fuzz/FuzzSkMeshSpecification.cpp ---------------------------------------------------------------------------------------------------- -Copyright (c) 2018 Google Inc. All rights reserved. +Copyright 2022 Google, LLC Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT @@ -8029,13 +8047,14 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ==================================================================================================== ==================================================================================================== -LIBRARY: vulkanmemoryallocator -ORIGIN: ../../../third_party/skia/third_party/vulkanmemoryallocator/GrVulkanMemoryAllocator.cpp + ../../../third_party/skia/modules/canvaskit/npm_build/LICENSE +LIBRARY: skia +ORIGIN: ../../../third_party/skia/infra/bots/task_drivers/codesize/codesize.go + ../../../LICENSE TYPE: LicenseType.bsd -FILE: ../../../third_party/skia/third_party/vulkanmemoryallocator/GrVulkanMemoryAllocator.cpp -FILE: ../../../third_party/skia/third_party/vulkanmemoryallocator/GrVulkanMemoryAllocator.h +FILE: ../../../third_party/skia/infra/bots/task_drivers/codesize/codesize.go +FILE: ../../../third_party/skia/infra/bots/task_drivers/codesize/codesize_test.go +FILE: ../../../third_party/skia/modules/canvaskit/go/gold_test_env/gold_test_env.go ---------------------------------------------------------------------------------------------------- -Copyright 2018 Google Inc. +Copyright 2022 The Chromium Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are diff --git a/ci/licenses_golden/licenses_third_party b/ci/licenses_golden/licenses_third_party index c9101d9dac379..d33e321288774 100644 --- a/ci/licenses_golden/licenses_third_party +++ b/ci/licenses_golden/licenses_third_party @@ -1,35 +1,40 @@ -Signature: 8f41f1108deb09e08ffeea247e19672f +Signature: afa9d750e0b943386b629a8d453cef12 UNUSED LICENSES: ==================================================================================================== -ORIGIN: ../../../third_party/angle/src/common/third_party/xxhash/LICENSE +ORIGIN: ../../../third_party/angle/util/windows/third_party/StackWalker/LICENSE TYPE: LicenseType.bsd ---------------------------------------------------------------------------------------------------- -xxHash Library -Copyright (c) 2012-2014, Yann Collet +BSD 3-Clause License + +Copyright (c) 2005 - 2017, Jochen Kalmbach All rights reserved. -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or - other materials provided with the distribution. +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ==================================================================================================== ==================================================================================================== @@ -57,41 +62,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ==================================================================================================== -==================================================================================================== -ORIGIN: ../../../third_party/angle/util/windows/third_party/StackWalker/LICENSE -TYPE: LicenseType.bsd ----------------------------------------------------------------------------------------------------- -BSD 3-Clause License - -Copyright (c) 2005 - 2017, Jochen Kalmbach -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -* Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -* Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - ==================================================================================================== ORIGIN: ../../../third_party/dart/runtime/third_party/double-conversion/LICENSE TYPE: LicenseType.bsd @@ -151,22707 +121,2313 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE ==================================================================================================== -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -USED LICENSES: ==================================================================================================== -LIBRARY: StackWalker -ORIGIN: ../../../third_party/angle/util/windows/third_party/StackWalker/src/StackWalker.cpp +ORIGIN: ../../../third_party/angle/src/common/third_party/xxhash/LICENSE TYPE: LicenseType.bsd -FILE: ../../../third_party/angle/util/windows/third_party/StackWalker/src/StackWalker.cpp ---------------------------------------------------------------------------------------------------- -Copyright (c) 2005-2013, Jochen Kalmbach +xxHash Library +Copyright (c) 2012-2014, Yann Collet All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: -Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. -Redistributions in binary form must reproduce the above copyright notice, -this list of conditions and the following disclaimer in the documentation -and/or other materials provided with the distribution. -Neither the name of Jochen Kalmbach nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: StackWalker -ORIGIN: ../../../third_party/angle/util/windows/third_party/StackWalker/src/StackWalker.h -TYPE: LicenseType.bsd -FILE: ../../../third_party/angle/util/windows/third_party/StackWalker/src/StackWalker.h ----------------------------------------------------------------------------------------------------- -Copyright (c) 2005-2009, Jochen Kalmbach -All rights reserved. +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: +* Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or + other materials provided with the distribution. -Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. -Redistributions in binary form must reproduce the above copyright notice, -this list of conditions and the following disclaimer in the documentation -and/or other materials provided with the distribution. -Neither the name of Jochen Kalmbach nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ==================================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +USED LICENSES: ==================================================================================================== -LIBRARY: abseil-cpp -LIBRARY: angle LIBRARY: boringssl -LIBRARY: expat -LIBRARY: flatbuffers -LIBRARY: fuchsia-vulkan -LIBRARY: khronos -LIBRARY: libwebp -LIBRARY: pkg -LIBRARY: vulkan-deps -LIBRARY: wuffs -ORIGIN: ../../../flutter/third_party/txt/LICENSE -TYPE: LicenseType.apache -FILE: ../../../third_party/abseil-cpp/BUILD.bazel -FILE: ../../../third_party/abseil-cpp/CMake/install_test_project/simple.cc -FILE: ../../../third_party/abseil-cpp/WORKSPACE -FILE: ../../../third_party/abseil-cpp/absl/BUILD.bazel -FILE: ../../../third_party/abseil-cpp/absl/algorithm/BUILD.bazel -FILE: ../../../third_party/abseil-cpp/absl/algorithm/algorithm.h -FILE: ../../../third_party/abseil-cpp/absl/algorithm/algorithm_test.cc -FILE: ../../../third_party/abseil-cpp/absl/algorithm/container.h -FILE: ../../../third_party/abseil-cpp/absl/algorithm/container_test.cc -FILE: ../../../third_party/abseil-cpp/absl/algorithm/equal_benchmark.cc -FILE: ../../../third_party/abseil-cpp/absl/base/BUILD.bazel -FILE: ../../../third_party/abseil-cpp/absl/base/attributes.h -FILE: ../../../third_party/abseil-cpp/absl/base/bit_cast_test.cc -FILE: ../../../third_party/abseil-cpp/absl/base/call_once.h -FILE: ../../../third_party/abseil-cpp/absl/base/call_once_test.cc -FILE: ../../../third_party/abseil-cpp/absl/base/casts.h -FILE: ../../../third_party/abseil-cpp/absl/base/config.h -FILE: ../../../third_party/abseil-cpp/absl/base/config_test.cc -FILE: ../../../third_party/abseil-cpp/absl/base/const_init.h -FILE: ../../../third_party/abseil-cpp/absl/base/dynamic_annotations.h -FILE: ../../../third_party/abseil-cpp/absl/base/exception_safety_testing_test.cc -FILE: ../../../third_party/abseil-cpp/absl/base/inline_variable_test.cc -FILE: ../../../third_party/abseil-cpp/absl/base/inline_variable_test_a.cc -FILE: ../../../third_party/abseil-cpp/absl/base/inline_variable_test_b.cc -FILE: ../../../third_party/abseil-cpp/absl/base/internal/atomic_hook.h -FILE: ../../../third_party/abseil-cpp/absl/base/internal/atomic_hook_test.cc -FILE: ../../../third_party/abseil-cpp/absl/base/internal/atomic_hook_test_helper.cc -FILE: ../../../third_party/abseil-cpp/absl/base/internal/atomic_hook_test_helper.h -FILE: ../../../third_party/abseil-cpp/absl/base/internal/cmake_thread_test.cc -FILE: ../../../third_party/abseil-cpp/absl/base/internal/cycleclock.cc -FILE: ../../../third_party/abseil-cpp/absl/base/internal/cycleclock.h -FILE: ../../../third_party/abseil-cpp/absl/base/internal/direct_mmap.h -FILE: ../../../third_party/abseil-cpp/absl/base/internal/endian.h -FILE: ../../../third_party/abseil-cpp/absl/base/internal/endian_test.cc -FILE: ../../../third_party/abseil-cpp/absl/base/internal/errno_saver.h -FILE: ../../../third_party/abseil-cpp/absl/base/internal/errno_saver_test.cc -FILE: ../../../third_party/abseil-cpp/absl/base/internal/exception_safety_testing.cc -FILE: ../../../third_party/abseil-cpp/absl/base/internal/exception_safety_testing.h -FILE: ../../../third_party/abseil-cpp/absl/base/internal/exception_testing.h -FILE: ../../../third_party/abseil-cpp/absl/base/internal/fast_type_id.h -FILE: ../../../third_party/abseil-cpp/absl/base/internal/fast_type_id_test.cc -FILE: ../../../third_party/abseil-cpp/absl/base/internal/hide_ptr.h -FILE: ../../../third_party/abseil-cpp/absl/base/internal/identity.h -FILE: ../../../third_party/abseil-cpp/absl/base/internal/inline_variable.h -FILE: ../../../third_party/abseil-cpp/absl/base/internal/inline_variable_testing.h -FILE: ../../../third_party/abseil-cpp/absl/base/internal/invoke.h -FILE: ../../../third_party/abseil-cpp/absl/base/internal/low_level_alloc.cc -FILE: ../../../third_party/abseil-cpp/absl/base/internal/low_level_alloc.h -FILE: ../../../third_party/abseil-cpp/absl/base/internal/low_level_alloc_test.cc -FILE: ../../../third_party/abseil-cpp/absl/base/internal/low_level_scheduling.h -FILE: ../../../third_party/abseil-cpp/absl/base/internal/per_thread_tls.h -FILE: ../../../third_party/abseil-cpp/absl/base/internal/prefetch.h -FILE: ../../../third_party/abseil-cpp/absl/base/internal/prefetch_test.cc -FILE: ../../../third_party/abseil-cpp/absl/base/internal/pretty_function.h -FILE: ../../../third_party/abseil-cpp/absl/base/internal/raw_logging.cc -FILE: ../../../third_party/abseil-cpp/absl/base/internal/raw_logging.h -FILE: ../../../third_party/abseil-cpp/absl/base/internal/scheduling_mode.h -FILE: ../../../third_party/abseil-cpp/absl/base/internal/scoped_set_env.cc -FILE: ../../../third_party/abseil-cpp/absl/base/internal/scoped_set_env.h -FILE: ../../../third_party/abseil-cpp/absl/base/internal/scoped_set_env_test.cc -FILE: ../../../third_party/abseil-cpp/absl/base/internal/spinlock.cc -FILE: ../../../third_party/abseil-cpp/absl/base/internal/spinlock.h -FILE: ../../../third_party/abseil-cpp/absl/base/internal/spinlock_akaros.inc -FILE: ../../../third_party/abseil-cpp/absl/base/internal/spinlock_benchmark.cc -FILE: ../../../third_party/abseil-cpp/absl/base/internal/spinlock_linux.inc -FILE: ../../../third_party/abseil-cpp/absl/base/internal/spinlock_posix.inc -FILE: ../../../third_party/abseil-cpp/absl/base/internal/spinlock_wait.cc -FILE: ../../../third_party/abseil-cpp/absl/base/internal/spinlock_wait.h -FILE: ../../../third_party/abseil-cpp/absl/base/internal/spinlock_win32.inc -FILE: ../../../third_party/abseil-cpp/absl/base/internal/strerror.cc -FILE: ../../../third_party/abseil-cpp/absl/base/internal/strerror.h -FILE: ../../../third_party/abseil-cpp/absl/base/internal/strerror_benchmark.cc -FILE: ../../../third_party/abseil-cpp/absl/base/internal/strerror_test.cc -FILE: ../../../third_party/abseil-cpp/absl/base/internal/sysinfo.cc -FILE: ../../../third_party/abseil-cpp/absl/base/internal/sysinfo.h -FILE: ../../../third_party/abseil-cpp/absl/base/internal/sysinfo_test.cc -FILE: ../../../third_party/abseil-cpp/absl/base/internal/thread_identity.cc -FILE: ../../../third_party/abseil-cpp/absl/base/internal/thread_identity.h -FILE: ../../../third_party/abseil-cpp/absl/base/internal/thread_identity_benchmark.cc -FILE: ../../../third_party/abseil-cpp/absl/base/internal/thread_identity_test.cc -FILE: ../../../third_party/abseil-cpp/absl/base/internal/throw_delegate.cc -FILE: ../../../third_party/abseil-cpp/absl/base/internal/throw_delegate.h -FILE: ../../../third_party/abseil-cpp/absl/base/internal/tsan_mutex_interface.h -FILE: ../../../third_party/abseil-cpp/absl/base/internal/unaligned_access.h -FILE: ../../../third_party/abseil-cpp/absl/base/internal/unique_small_name_test.cc -FILE: ../../../third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc -FILE: ../../../third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h -FILE: ../../../third_party/abseil-cpp/absl/base/invoke_test.cc -FILE: ../../../third_party/abseil-cpp/absl/base/log_severity.cc -FILE: ../../../third_party/abseil-cpp/absl/base/log_severity.h -FILE: ../../../third_party/abseil-cpp/absl/base/log_severity_test.cc -FILE: ../../../third_party/abseil-cpp/absl/base/macros.h -FILE: ../../../third_party/abseil-cpp/absl/base/optimization.h -FILE: ../../../third_party/abseil-cpp/absl/base/optimization_test.cc -FILE: ../../../third_party/abseil-cpp/absl/base/options.h -FILE: ../../../third_party/abseil-cpp/absl/base/policy_checks.h -FILE: ../../../third_party/abseil-cpp/absl/base/port.h -FILE: ../../../third_party/abseil-cpp/absl/base/raw_logging_test.cc -FILE: ../../../third_party/abseil-cpp/absl/base/spinlock_test_common.cc -FILE: ../../../third_party/abseil-cpp/absl/base/thread_annotations.h -FILE: ../../../third_party/abseil-cpp/absl/base/throw_delegate_test.cc -FILE: ../../../third_party/abseil-cpp/absl/cleanup/BUILD.bazel -FILE: ../../../third_party/abseil-cpp/absl/cleanup/cleanup.h -FILE: ../../../third_party/abseil-cpp/absl/cleanup/cleanup_test.cc -FILE: ../../../third_party/abseil-cpp/absl/cleanup/internal/cleanup.h -FILE: ../../../third_party/abseil-cpp/absl/container/BUILD.bazel -FILE: ../../../third_party/abseil-cpp/absl/container/btree_benchmark.cc -FILE: ../../../third_party/abseil-cpp/absl/container/btree_map.h -FILE: ../../../third_party/abseil-cpp/absl/container/btree_set.h -FILE: ../../../third_party/abseil-cpp/absl/container/btree_test.cc -FILE: ../../../third_party/abseil-cpp/absl/container/btree_test.h -FILE: ../../../third_party/abseil-cpp/absl/container/fixed_array.h -FILE: ../../../third_party/abseil-cpp/absl/container/fixed_array_benchmark.cc -FILE: ../../../third_party/abseil-cpp/absl/container/fixed_array_exception_safety_test.cc -FILE: ../../../third_party/abseil-cpp/absl/container/fixed_array_test.cc -FILE: ../../../third_party/abseil-cpp/absl/container/flat_hash_map.h -FILE: ../../../third_party/abseil-cpp/absl/container/flat_hash_map_test.cc -FILE: ../../../third_party/abseil-cpp/absl/container/flat_hash_set.h -FILE: ../../../third_party/abseil-cpp/absl/container/flat_hash_set_test.cc -FILE: ../../../third_party/abseil-cpp/absl/container/inlined_vector.h -FILE: ../../../third_party/abseil-cpp/absl/container/inlined_vector_benchmark.cc -FILE: ../../../third_party/abseil-cpp/absl/container/inlined_vector_exception_safety_test.cc -FILE: ../../../third_party/abseil-cpp/absl/container/inlined_vector_test.cc -FILE: ../../../third_party/abseil-cpp/absl/container/internal/btree.h -FILE: ../../../third_party/abseil-cpp/absl/container/internal/btree_container.h -FILE: ../../../third_party/abseil-cpp/absl/container/internal/common.h -FILE: ../../../third_party/abseil-cpp/absl/container/internal/compressed_tuple.h -FILE: ../../../third_party/abseil-cpp/absl/container/internal/compressed_tuple_test.cc -FILE: ../../../third_party/abseil-cpp/absl/container/internal/container_memory.h -FILE: ../../../third_party/abseil-cpp/absl/container/internal/container_memory_test.cc -FILE: ../../../third_party/abseil-cpp/absl/container/internal/counting_allocator.h -FILE: ../../../third_party/abseil-cpp/absl/container/internal/hash_function_defaults.h -FILE: ../../../third_party/abseil-cpp/absl/container/internal/hash_function_defaults_test.cc -FILE: ../../../third_party/abseil-cpp/absl/container/internal/hash_generator_testing.cc -FILE: ../../../third_party/abseil-cpp/absl/container/internal/hash_generator_testing.h -FILE: ../../../third_party/abseil-cpp/absl/container/internal/hash_policy_testing.h -FILE: ../../../third_party/abseil-cpp/absl/container/internal/hash_policy_testing_test.cc -FILE: ../../../third_party/abseil-cpp/absl/container/internal/hash_policy_traits.h -FILE: ../../../third_party/abseil-cpp/absl/container/internal/hash_policy_traits_test.cc -FILE: ../../../third_party/abseil-cpp/absl/container/internal/hashtable_debug.h -FILE: ../../../third_party/abseil-cpp/absl/container/internal/hashtable_debug_hooks.h -FILE: ../../../third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc -FILE: ../../../third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h -FILE: ../../../third_party/abseil-cpp/absl/container/internal/hashtablez_sampler_force_weak_definition.cc -FILE: ../../../third_party/abseil-cpp/absl/container/internal/hashtablez_sampler_test.cc -FILE: ../../../third_party/abseil-cpp/absl/container/internal/inlined_vector.h -FILE: ../../../third_party/abseil-cpp/absl/container/internal/layout.h -FILE: ../../../third_party/abseil-cpp/absl/container/internal/layout_benchmark.cc -FILE: ../../../third_party/abseil-cpp/absl/container/internal/layout_test.cc -FILE: ../../../third_party/abseil-cpp/absl/container/internal/node_slot_policy.h -FILE: ../../../third_party/abseil-cpp/absl/container/internal/node_slot_policy_test.cc -FILE: ../../../third_party/abseil-cpp/absl/container/internal/raw_hash_map.h -FILE: ../../../third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc -FILE: ../../../third_party/abseil-cpp/absl/container/internal/raw_hash_set.h -FILE: ../../../third_party/abseil-cpp/absl/container/internal/raw_hash_set_allocator_test.cc -FILE: ../../../third_party/abseil-cpp/absl/container/internal/raw_hash_set_benchmark.cc -FILE: ../../../third_party/abseil-cpp/absl/container/internal/raw_hash_set_probe_benchmark.cc -FILE: ../../../third_party/abseil-cpp/absl/container/internal/raw_hash_set_test.cc -FILE: ../../../third_party/abseil-cpp/absl/container/internal/test_instance_tracker.cc -FILE: ../../../third_party/abseil-cpp/absl/container/internal/test_instance_tracker.h -FILE: ../../../third_party/abseil-cpp/absl/container/internal/test_instance_tracker_test.cc -FILE: ../../../third_party/abseil-cpp/absl/container/internal/tracked.h -FILE: ../../../third_party/abseil-cpp/absl/container/internal/unordered_map_constructor_test.h -FILE: ../../../third_party/abseil-cpp/absl/container/internal/unordered_map_lookup_test.h -FILE: ../../../third_party/abseil-cpp/absl/container/internal/unordered_map_members_test.h -FILE: ../../../third_party/abseil-cpp/absl/container/internal/unordered_map_modifiers_test.h -FILE: ../../../third_party/abseil-cpp/absl/container/internal/unordered_map_test.cc -FILE: ../../../third_party/abseil-cpp/absl/container/internal/unordered_set_constructor_test.h -FILE: ../../../third_party/abseil-cpp/absl/container/internal/unordered_set_lookup_test.h -FILE: ../../../third_party/abseil-cpp/absl/container/internal/unordered_set_members_test.h -FILE: ../../../third_party/abseil-cpp/absl/container/internal/unordered_set_modifiers_test.h -FILE: ../../../third_party/abseil-cpp/absl/container/internal/unordered_set_test.cc -FILE: ../../../third_party/abseil-cpp/absl/container/node_hash_map.h -FILE: ../../../third_party/abseil-cpp/absl/container/node_hash_map_test.cc -FILE: ../../../third_party/abseil-cpp/absl/container/node_hash_set.h -FILE: ../../../third_party/abseil-cpp/absl/container/node_hash_set_test.cc -FILE: ../../../third_party/abseil-cpp/absl/container/sample_element_size_test.cc -FILE: ../../../third_party/abseil-cpp/absl/debugging/BUILD.bazel -FILE: ../../../third_party/abseil-cpp/absl/debugging/failure_signal_handler.cc -FILE: ../../../third_party/abseil-cpp/absl/debugging/failure_signal_handler.h -FILE: ../../../third_party/abseil-cpp/absl/debugging/failure_signal_handler_test.cc -FILE: ../../../third_party/abseil-cpp/absl/debugging/internal/address_is_readable.cc -FILE: ../../../third_party/abseil-cpp/absl/debugging/internal/address_is_readable.h -FILE: ../../../third_party/abseil-cpp/absl/debugging/internal/demangle.cc -FILE: ../../../third_party/abseil-cpp/absl/debugging/internal/demangle.h -FILE: ../../../third_party/abseil-cpp/absl/debugging/internal/demangle_test.cc -FILE: ../../../third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.cc -FILE: ../../../third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h -FILE: ../../../third_party/abseil-cpp/absl/debugging/internal/examine_stack.cc -FILE: ../../../third_party/abseil-cpp/absl/debugging/internal/examine_stack.h -FILE: ../../../third_party/abseil-cpp/absl/debugging/internal/stack_consumption.cc -FILE: ../../../third_party/abseil-cpp/absl/debugging/internal/stack_consumption.h -FILE: ../../../third_party/abseil-cpp/absl/debugging/internal/stack_consumption_test.cc -FILE: ../../../third_party/abseil-cpp/absl/debugging/internal/stacktrace_arm-inl.inc -FILE: ../../../third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h -FILE: ../../../third_party/abseil-cpp/absl/debugging/internal/stacktrace_emscripten-inl.inc -FILE: ../../../third_party/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc -FILE: ../../../third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc -FILE: ../../../third_party/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc -FILE: ../../../third_party/abseil-cpp/absl/debugging/internal/stacktrace_win32-inl.inc -FILE: ../../../third_party/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc -FILE: ../../../third_party/abseil-cpp/absl/debugging/internal/symbolize.h -FILE: ../../../third_party/abseil-cpp/absl/debugging/internal/vdso_support.cc -FILE: ../../../third_party/abseil-cpp/absl/debugging/internal/vdso_support.h -FILE: ../../../third_party/abseil-cpp/absl/debugging/leak_check.cc -FILE: ../../../third_party/abseil-cpp/absl/debugging/leak_check.h -FILE: ../../../third_party/abseil-cpp/absl/debugging/leak_check_fail_test.cc -FILE: ../../../third_party/abseil-cpp/absl/debugging/leak_check_test.cc -FILE: ../../../third_party/abseil-cpp/absl/debugging/stacktrace.cc -FILE: ../../../third_party/abseil-cpp/absl/debugging/stacktrace.h -FILE: ../../../third_party/abseil-cpp/absl/debugging/stacktrace_benchmark.cc -FILE: ../../../third_party/abseil-cpp/absl/debugging/symbolize.cc -FILE: ../../../third_party/abseil-cpp/absl/debugging/symbolize.h -FILE: ../../../third_party/abseil-cpp/absl/debugging/symbolize_darwin.inc -FILE: ../../../third_party/abseil-cpp/absl/debugging/symbolize_elf.inc -FILE: ../../../third_party/abseil-cpp/absl/debugging/symbolize_emscripten.inc -FILE: ../../../third_party/abseil-cpp/absl/debugging/symbolize_test.cc -FILE: ../../../third_party/abseil-cpp/absl/debugging/symbolize_unimplemented.inc -FILE: ../../../third_party/abseil-cpp/absl/debugging/symbolize_win32.inc -FILE: ../../../third_party/abseil-cpp/absl/flags/BUILD.bazel -FILE: ../../../third_party/abseil-cpp/absl/flags/commandlineflag.cc -FILE: ../../../third_party/abseil-cpp/absl/flags/commandlineflag.h -FILE: ../../../third_party/abseil-cpp/absl/flags/commandlineflag_test.cc -FILE: ../../../third_party/abseil-cpp/absl/flags/config.h -FILE: ../../../third_party/abseil-cpp/absl/flags/config_test.cc -FILE: ../../../third_party/abseil-cpp/absl/flags/declare.h -FILE: ../../../third_party/abseil-cpp/absl/flags/flag.cc -FILE: ../../../third_party/abseil-cpp/absl/flags/flag.h -FILE: ../../../third_party/abseil-cpp/absl/flags/flag_benchmark.cc -FILE: ../../../third_party/abseil-cpp/absl/flags/flag_test.cc -FILE: ../../../third_party/abseil-cpp/absl/flags/flag_test_defs.cc -FILE: ../../../third_party/abseil-cpp/absl/flags/internal/commandlineflag.cc -FILE: ../../../third_party/abseil-cpp/absl/flags/internal/commandlineflag.h -FILE: ../../../third_party/abseil-cpp/absl/flags/internal/flag.cc -FILE: ../../../third_party/abseil-cpp/absl/flags/internal/flag.h -FILE: ../../../third_party/abseil-cpp/absl/flags/internal/flag_msvc.inc -FILE: ../../../third_party/abseil-cpp/absl/flags/internal/parse.h -FILE: ../../../third_party/abseil-cpp/absl/flags/internal/path_util.h -FILE: ../../../third_party/abseil-cpp/absl/flags/internal/path_util_test.cc -FILE: ../../../third_party/abseil-cpp/absl/flags/internal/private_handle_accessor.cc -FILE: ../../../third_party/abseil-cpp/absl/flags/internal/private_handle_accessor.h -FILE: ../../../third_party/abseil-cpp/absl/flags/internal/program_name.cc -FILE: ../../../third_party/abseil-cpp/absl/flags/internal/program_name.h -FILE: ../../../third_party/abseil-cpp/absl/flags/internal/program_name_test.cc -FILE: ../../../third_party/abseil-cpp/absl/flags/internal/registry.h -FILE: ../../../third_party/abseil-cpp/absl/flags/internal/sequence_lock.h -FILE: ../../../third_party/abseil-cpp/absl/flags/internal/sequence_lock_test.cc -FILE: ../../../third_party/abseil-cpp/absl/flags/internal/usage.cc -FILE: ../../../third_party/abseil-cpp/absl/flags/internal/usage.h -FILE: ../../../third_party/abseil-cpp/absl/flags/internal/usage_test.cc -FILE: ../../../third_party/abseil-cpp/absl/flags/marshalling.cc -FILE: ../../../third_party/abseil-cpp/absl/flags/marshalling.h -FILE: ../../../third_party/abseil-cpp/absl/flags/marshalling_test.cc -FILE: ../../../third_party/abseil-cpp/absl/flags/parse.cc -FILE: ../../../third_party/abseil-cpp/absl/flags/parse.h -FILE: ../../../third_party/abseil-cpp/absl/flags/parse_test.cc -FILE: ../../../third_party/abseil-cpp/absl/flags/reflection.cc -FILE: ../../../third_party/abseil-cpp/absl/flags/reflection.h -FILE: ../../../third_party/abseil-cpp/absl/flags/reflection_test.cc -FILE: ../../../third_party/abseil-cpp/absl/flags/usage.cc -FILE: ../../../third_party/abseil-cpp/absl/flags/usage.h -FILE: ../../../third_party/abseil-cpp/absl/flags/usage_config.cc -FILE: ../../../third_party/abseil-cpp/absl/flags/usage_config.h -FILE: ../../../third_party/abseil-cpp/absl/flags/usage_config_test.cc -FILE: ../../../third_party/abseil-cpp/absl/functional/BUILD.bazel -FILE: ../../../third_party/abseil-cpp/absl/functional/any_invocable.h -FILE: ../../../third_party/abseil-cpp/absl/functional/any_invocable_test.cc -FILE: ../../../third_party/abseil-cpp/absl/functional/bind_front.h -FILE: ../../../third_party/abseil-cpp/absl/functional/bind_front_test.cc -FILE: ../../../third_party/abseil-cpp/absl/functional/function_ref.h -FILE: ../../../third_party/abseil-cpp/absl/functional/function_ref_test.cc -FILE: ../../../third_party/abseil-cpp/absl/functional/function_type_benchmark.cc -FILE: ../../../third_party/abseil-cpp/absl/functional/internal/any_invocable.h -FILE: ../../../third_party/abseil-cpp/absl/functional/internal/front_binder.h -FILE: ../../../third_party/abseil-cpp/absl/functional/internal/function_ref.h -FILE: ../../../third_party/abseil-cpp/absl/hash/BUILD.bazel -FILE: ../../../third_party/abseil-cpp/absl/hash/hash.h -FILE: ../../../third_party/abseil-cpp/absl/hash/hash_benchmark.cc -FILE: ../../../third_party/abseil-cpp/absl/hash/hash_test.cc -FILE: ../../../third_party/abseil-cpp/absl/hash/hash_testing.h -FILE: ../../../third_party/abseil-cpp/absl/hash/internal/city.cc -FILE: ../../../third_party/abseil-cpp/absl/hash/internal/city.h -FILE: ../../../third_party/abseil-cpp/absl/hash/internal/city_test.cc -FILE: ../../../third_party/abseil-cpp/absl/hash/internal/hash.cc -FILE: ../../../third_party/abseil-cpp/absl/hash/internal/hash.h -FILE: ../../../third_party/abseil-cpp/absl/hash/internal/low_level_hash.cc -FILE: ../../../third_party/abseil-cpp/absl/hash/internal/low_level_hash.h -FILE: ../../../third_party/abseil-cpp/absl/hash/internal/low_level_hash_test.cc -FILE: ../../../third_party/abseil-cpp/absl/hash/internal/print_hash_of.cc -FILE: ../../../third_party/abseil-cpp/absl/hash/internal/spy_hash_state.h -FILE: ../../../third_party/abseil-cpp/absl/memory/BUILD.bazel -FILE: ../../../third_party/abseil-cpp/absl/memory/memory.h -FILE: ../../../third_party/abseil-cpp/absl/memory/memory_exception_safety_test.cc -FILE: ../../../third_party/abseil-cpp/absl/memory/memory_test.cc -FILE: ../../../third_party/abseil-cpp/absl/meta/BUILD.bazel -FILE: ../../../third_party/abseil-cpp/absl/meta/type_traits.h -FILE: ../../../third_party/abseil-cpp/absl/meta/type_traits_test.cc -FILE: ../../../third_party/abseil-cpp/absl/numeric/BUILD.bazel -FILE: ../../../third_party/abseil-cpp/absl/numeric/bits.h -FILE: ../../../third_party/abseil-cpp/absl/numeric/bits_benchmark.cc -FILE: ../../../third_party/abseil-cpp/absl/numeric/bits_test.cc -FILE: ../../../third_party/abseil-cpp/absl/numeric/int128.cc -FILE: ../../../third_party/abseil-cpp/absl/numeric/int128.h -FILE: ../../../third_party/abseil-cpp/absl/numeric/int128_benchmark.cc -FILE: ../../../third_party/abseil-cpp/absl/numeric/int128_have_intrinsic.inc -FILE: ../../../third_party/abseil-cpp/absl/numeric/int128_no_intrinsic.inc -FILE: ../../../third_party/abseil-cpp/absl/numeric/int128_stream_test.cc -FILE: ../../../third_party/abseil-cpp/absl/numeric/int128_test.cc -FILE: ../../../third_party/abseil-cpp/absl/numeric/internal/bits.h -FILE: ../../../third_party/abseil-cpp/absl/numeric/internal/representation.h -FILE: ../../../third_party/abseil-cpp/absl/profiling/BUILD.bazel -FILE: ../../../third_party/abseil-cpp/absl/profiling/internal/exponential_biased.cc -FILE: ../../../third_party/abseil-cpp/absl/profiling/internal/exponential_biased.h -FILE: ../../../third_party/abseil-cpp/absl/profiling/internal/exponential_biased_test.cc -FILE: ../../../third_party/abseil-cpp/absl/profiling/internal/periodic_sampler.cc -FILE: ../../../third_party/abseil-cpp/absl/profiling/internal/periodic_sampler.h -FILE: ../../../third_party/abseil-cpp/absl/profiling/internal/periodic_sampler_benchmark.cc -FILE: ../../../third_party/abseil-cpp/absl/profiling/internal/periodic_sampler_test.cc -FILE: ../../../third_party/abseil-cpp/absl/profiling/internal/sample_recorder.h -FILE: ../../../third_party/abseil-cpp/absl/profiling/internal/sample_recorder_test.cc -FILE: ../../../third_party/abseil-cpp/absl/random/BUILD.bazel -FILE: ../../../third_party/abseil-cpp/absl/random/benchmarks.cc -FILE: ../../../third_party/abseil-cpp/absl/random/bernoulli_distribution.h -FILE: ../../../third_party/abseil-cpp/absl/random/bernoulli_distribution_test.cc -FILE: ../../../third_party/abseil-cpp/absl/random/beta_distribution.h -FILE: ../../../third_party/abseil-cpp/absl/random/beta_distribution_test.cc -FILE: ../../../third_party/abseil-cpp/absl/random/bit_gen_ref.h -FILE: ../../../third_party/abseil-cpp/absl/random/bit_gen_ref_test.cc -FILE: ../../../third_party/abseil-cpp/absl/random/discrete_distribution.cc -FILE: ../../../third_party/abseil-cpp/absl/random/discrete_distribution.h -FILE: ../../../third_party/abseil-cpp/absl/random/discrete_distribution_test.cc -FILE: ../../../third_party/abseil-cpp/absl/random/distributions.h -FILE: ../../../third_party/abseil-cpp/absl/random/distributions_test.cc -FILE: ../../../third_party/abseil-cpp/absl/random/examples_test.cc -FILE: ../../../third_party/abseil-cpp/absl/random/exponential_distribution.h -FILE: ../../../third_party/abseil-cpp/absl/random/exponential_distribution_test.cc -FILE: ../../../third_party/abseil-cpp/absl/random/gaussian_distribution.h -FILE: ../../../third_party/abseil-cpp/absl/random/gaussian_distribution_test.cc -FILE: ../../../third_party/abseil-cpp/absl/random/generators_test.cc -FILE: ../../../third_party/abseil-cpp/absl/random/internal/BUILD.bazel -FILE: ../../../third_party/abseil-cpp/absl/random/internal/chi_square.cc -FILE: ../../../third_party/abseil-cpp/absl/random/internal/chi_square.h -FILE: ../../../third_party/abseil-cpp/absl/random/internal/chi_square_test.cc -FILE: ../../../third_party/abseil-cpp/absl/random/internal/distribution_caller.h -FILE: ../../../third_party/abseil-cpp/absl/random/internal/distribution_test_util.cc -FILE: ../../../third_party/abseil-cpp/absl/random/internal/distribution_test_util.h -FILE: ../../../third_party/abseil-cpp/absl/random/internal/distribution_test_util_test.cc -FILE: ../../../third_party/abseil-cpp/absl/random/internal/explicit_seed_seq.h -FILE: ../../../third_party/abseil-cpp/absl/random/internal/explicit_seed_seq_test.cc -FILE: ../../../third_party/abseil-cpp/absl/random/internal/fast_uniform_bits.h -FILE: ../../../third_party/abseil-cpp/absl/random/internal/fast_uniform_bits_test.cc -FILE: ../../../third_party/abseil-cpp/absl/random/internal/fastmath.h -FILE: ../../../third_party/abseil-cpp/absl/random/internal/fastmath_test.cc -FILE: ../../../third_party/abseil-cpp/absl/random/internal/gaussian_distribution_gentables.cc -FILE: ../../../third_party/abseil-cpp/absl/random/internal/generate_real.h -FILE: ../../../third_party/abseil-cpp/absl/random/internal/generate_real_test.cc -FILE: ../../../third_party/abseil-cpp/absl/random/internal/iostream_state_saver.h -FILE: ../../../third_party/abseil-cpp/absl/random/internal/iostream_state_saver_test.cc -FILE: ../../../third_party/abseil-cpp/absl/random/internal/mock_helpers.h -FILE: ../../../third_party/abseil-cpp/absl/random/internal/mock_overload_set.h -FILE: ../../../third_party/abseil-cpp/absl/random/internal/nanobenchmark.cc -FILE: ../../../third_party/abseil-cpp/absl/random/internal/nanobenchmark.h -FILE: ../../../third_party/abseil-cpp/absl/random/internal/nanobenchmark_test.cc -FILE: ../../../third_party/abseil-cpp/absl/random/internal/nonsecure_base.h -FILE: ../../../third_party/abseil-cpp/absl/random/internal/nonsecure_base_test.cc -FILE: ../../../third_party/abseil-cpp/absl/random/internal/pcg_engine.h -FILE: ../../../third_party/abseil-cpp/absl/random/internal/pcg_engine_test.cc -FILE: ../../../third_party/abseil-cpp/absl/random/internal/platform.h -FILE: ../../../third_party/abseil-cpp/absl/random/internal/pool_urbg.cc -FILE: ../../../third_party/abseil-cpp/absl/random/internal/pool_urbg.h -FILE: ../../../third_party/abseil-cpp/absl/random/internal/pool_urbg_test.cc -FILE: ../../../third_party/abseil-cpp/absl/random/internal/randen.cc -FILE: ../../../third_party/abseil-cpp/absl/random/internal/randen.h -FILE: ../../../third_party/abseil-cpp/absl/random/internal/randen_benchmarks.cc -FILE: ../../../third_party/abseil-cpp/absl/random/internal/randen_detect.cc -FILE: ../../../third_party/abseil-cpp/absl/random/internal/randen_detect.h -FILE: ../../../third_party/abseil-cpp/absl/random/internal/randen_engine.h -FILE: ../../../third_party/abseil-cpp/absl/random/internal/randen_engine_test.cc -FILE: ../../../third_party/abseil-cpp/absl/random/internal/randen_hwaes.cc -FILE: ../../../third_party/abseil-cpp/absl/random/internal/randen_hwaes.h -FILE: ../../../third_party/abseil-cpp/absl/random/internal/randen_hwaes_test.cc -FILE: ../../../third_party/abseil-cpp/absl/random/internal/randen_round_keys.cc -FILE: ../../../third_party/abseil-cpp/absl/random/internal/randen_slow.cc -FILE: ../../../third_party/abseil-cpp/absl/random/internal/randen_slow.h -FILE: ../../../third_party/abseil-cpp/absl/random/internal/randen_slow_test.cc -FILE: ../../../third_party/abseil-cpp/absl/random/internal/randen_test.cc -FILE: ../../../third_party/abseil-cpp/absl/random/internal/randen_traits.h -FILE: ../../../third_party/abseil-cpp/absl/random/internal/salted_seed_seq.h -FILE: ../../../third_party/abseil-cpp/absl/random/internal/salted_seed_seq_test.cc -FILE: ../../../third_party/abseil-cpp/absl/random/internal/seed_material.cc -FILE: ../../../third_party/abseil-cpp/absl/random/internal/seed_material.h -FILE: ../../../third_party/abseil-cpp/absl/random/internal/seed_material_test.cc -FILE: ../../../third_party/abseil-cpp/absl/random/internal/sequence_urbg.h -FILE: ../../../third_party/abseil-cpp/absl/random/internal/traits.h -FILE: ../../../third_party/abseil-cpp/absl/random/internal/traits_test.cc -FILE: ../../../third_party/abseil-cpp/absl/random/internal/uniform_helper.h -FILE: ../../../third_party/abseil-cpp/absl/random/internal/uniform_helper_test.cc -FILE: ../../../third_party/abseil-cpp/absl/random/internal/wide_multiply.h -FILE: ../../../third_party/abseil-cpp/absl/random/internal/wide_multiply_test.cc -FILE: ../../../third_party/abseil-cpp/absl/random/log_uniform_int_distribution.h -FILE: ../../../third_party/abseil-cpp/absl/random/log_uniform_int_distribution_test.cc -FILE: ../../../third_party/abseil-cpp/absl/random/mock_distributions.h -FILE: ../../../third_party/abseil-cpp/absl/random/mock_distributions_test.cc -FILE: ../../../third_party/abseil-cpp/absl/random/mocking_bit_gen.h -FILE: ../../../third_party/abseil-cpp/absl/random/mocking_bit_gen_test.cc -FILE: ../../../third_party/abseil-cpp/absl/random/poisson_distribution.h -FILE: ../../../third_party/abseil-cpp/absl/random/poisson_distribution_test.cc -FILE: ../../../third_party/abseil-cpp/absl/random/random.h -FILE: ../../../third_party/abseil-cpp/absl/random/seed_gen_exception.cc -FILE: ../../../third_party/abseil-cpp/absl/random/seed_gen_exception.h -FILE: ../../../third_party/abseil-cpp/absl/random/seed_sequences.cc -FILE: ../../../third_party/abseil-cpp/absl/random/seed_sequences.h -FILE: ../../../third_party/abseil-cpp/absl/random/seed_sequences_test.cc -FILE: ../../../third_party/abseil-cpp/absl/random/uniform_int_distribution.h -FILE: ../../../third_party/abseil-cpp/absl/random/uniform_int_distribution_test.cc -FILE: ../../../third_party/abseil-cpp/absl/random/uniform_real_distribution.h -FILE: ../../../third_party/abseil-cpp/absl/random/uniform_real_distribution_test.cc -FILE: ../../../third_party/abseil-cpp/absl/random/zipf_distribution.h -FILE: ../../../third_party/abseil-cpp/absl/random/zipf_distribution_test.cc -FILE: ../../../third_party/abseil-cpp/absl/status/BUILD.bazel -FILE: ../../../third_party/abseil-cpp/absl/status/internal/status_internal.h -FILE: ../../../third_party/abseil-cpp/absl/status/internal/statusor_internal.h -FILE: ../../../third_party/abseil-cpp/absl/status/status.cc -FILE: ../../../third_party/abseil-cpp/absl/status/status.h -FILE: ../../../third_party/abseil-cpp/absl/status/status_payload_printer.cc -FILE: ../../../third_party/abseil-cpp/absl/status/status_payload_printer.h -FILE: ../../../third_party/abseil-cpp/absl/status/status_test.cc -FILE: ../../../third_party/abseil-cpp/absl/status/statusor.cc -FILE: ../../../third_party/abseil-cpp/absl/status/statusor.h -FILE: ../../../third_party/abseil-cpp/absl/status/statusor_test.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/BUILD.bazel -FILE: ../../../third_party/abseil-cpp/absl/strings/ascii.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/ascii.h -FILE: ../../../third_party/abseil-cpp/absl/strings/ascii_benchmark.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/ascii_test.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/charconv.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/charconv.h -FILE: ../../../third_party/abseil-cpp/absl/strings/charconv_benchmark.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/charconv_test.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/cord.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/cord.h -FILE: ../../../third_party/abseil-cpp/absl/strings/cord_analysis.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/cord_analysis.h -FILE: ../../../third_party/abseil-cpp/absl/strings/cord_buffer.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/cord_buffer.h -FILE: ../../../third_party/abseil-cpp/absl/strings/cord_buffer_test.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/cord_ring_reader_test.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/cord_ring_test.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/cord_test.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/cord_test_helpers.h -FILE: ../../../third_party/abseil-cpp/absl/strings/cordz_test.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/cordz_test_helpers.h -FILE: ../../../third_party/abseil-cpp/absl/strings/escaping.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/escaping.h -FILE: ../../../third_party/abseil-cpp/absl/strings/escaping_benchmark.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/escaping_test.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/char_map.h -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/char_map_benchmark.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/char_map_test.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/charconv_bigint.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/charconv_bigint.h -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/charconv_bigint_test.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/charconv_parse.h -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/charconv_parse_test.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cord_data_edge.h -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cord_data_edge_test.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cord_internal.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cord_internal.h -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.h -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.h -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator_test.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.h -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_reader_test.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_test.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cord_rep_consume.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cord_rep_consume.h -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cord_rep_crc.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cord_rep_crc.h -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cord_rep_crc_test.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cord_rep_flat.h -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.h -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cord_rep_ring_reader.h -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cord_rep_test_util.h -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cordz_functions.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cordz_functions.h -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cordz_functions_test.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cordz_handle.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cordz_handle.h -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cordz_handle_test.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cordz_info.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cordz_info.h -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cordz_info_statistics_test.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cordz_info_test.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cordz_sample_token.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cordz_sample_token.h -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cordz_sample_token_test.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cordz_statistics.h -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cordz_update_scope.h -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cordz_update_scope_test.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cordz_update_tracker.h -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cordz_update_tracker_test.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/escaping.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/escaping.h -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/escaping_test_common.h -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/memutil.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/memutil.h -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/memutil_benchmark.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/memutil_test.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/numbers_test_common.h -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/ostringstream.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/ostringstream.h -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/ostringstream_benchmark.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/ostringstream_test.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/pow10_helper.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/pow10_helper.h -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/pow10_helper_test.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/resize_uninitialized.h -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/resize_uninitialized_test.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/stl_type_traits.h -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/str_format/arg.h -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/str_format/arg_test.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/str_format/bind.h -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/str_format/bind_test.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/str_format/checker.h -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/str_format/checker_test.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/str_format/convert_test.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/str_format/extension.h -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/str_format/extension_test.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.h -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/str_format/output.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/str_format/output.h -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/str_format/output_test.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/str_format/parser.h -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/str_format/parser_test.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/str_join_internal.h -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/str_split_internal.h -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/string_constant.h -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/string_constant_test.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/utf8.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/utf8.h -FILE: ../../../third_party/abseil-cpp/absl/strings/internal/utf8_test.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/match.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/match.h -FILE: ../../../third_party/abseil-cpp/absl/strings/match_test.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/numbers.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/numbers.h -FILE: ../../../third_party/abseil-cpp/absl/strings/numbers_benchmark.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/numbers_test.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/str_cat.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/str_cat.h -FILE: ../../../third_party/abseil-cpp/absl/strings/str_cat_benchmark.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/str_cat_test.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/str_format.h -FILE: ../../../third_party/abseil-cpp/absl/strings/str_format_test.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/str_join.h -FILE: ../../../third_party/abseil-cpp/absl/strings/str_join_benchmark.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/str_join_test.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/str_replace.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/str_replace.h -FILE: ../../../third_party/abseil-cpp/absl/strings/str_replace_benchmark.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/str_replace_test.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/str_split.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/str_split.h -FILE: ../../../third_party/abseil-cpp/absl/strings/str_split_benchmark.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/str_split_test.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/string_view.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/string_view.h -FILE: ../../../third_party/abseil-cpp/absl/strings/string_view_benchmark.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/string_view_test.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/strip.h -FILE: ../../../third_party/abseil-cpp/absl/strings/strip_test.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/substitute.cc -FILE: ../../../third_party/abseil-cpp/absl/strings/substitute.h -FILE: ../../../third_party/abseil-cpp/absl/strings/substitute_test.cc -FILE: ../../../third_party/abseil-cpp/absl/synchronization/BUILD.bazel -FILE: ../../../third_party/abseil-cpp/absl/synchronization/barrier.cc -FILE: ../../../third_party/abseil-cpp/absl/synchronization/barrier.h -FILE: ../../../third_party/abseil-cpp/absl/synchronization/barrier_test.cc -FILE: ../../../third_party/abseil-cpp/absl/synchronization/blocking_counter.cc -FILE: ../../../third_party/abseil-cpp/absl/synchronization/blocking_counter.h -FILE: ../../../third_party/abseil-cpp/absl/synchronization/blocking_counter_benchmark.cc -FILE: ../../../third_party/abseil-cpp/absl/synchronization/blocking_counter_test.cc -FILE: ../../../third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc -FILE: ../../../third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.h -FILE: ../../../third_party/abseil-cpp/absl/synchronization/internal/futex.h -FILE: ../../../third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc -FILE: ../../../third_party/abseil-cpp/absl/synchronization/internal/graphcycles.h -FILE: ../../../third_party/abseil-cpp/absl/synchronization/internal/graphcycles_benchmark.cc -FILE: ../../../third_party/abseil-cpp/absl/synchronization/internal/graphcycles_test.cc -FILE: ../../../third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h -FILE: ../../../third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc -FILE: ../../../third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h -FILE: ../../../third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem_test.cc -FILE: ../../../third_party/abseil-cpp/absl/synchronization/internal/thread_pool.h -FILE: ../../../third_party/abseil-cpp/absl/synchronization/internal/waiter.cc -FILE: ../../../third_party/abseil-cpp/absl/synchronization/internal/waiter.h -FILE: ../../../third_party/abseil-cpp/absl/synchronization/lifetime_test.cc -FILE: ../../../third_party/abseil-cpp/absl/synchronization/mutex.cc -FILE: ../../../third_party/abseil-cpp/absl/synchronization/mutex.h -FILE: ../../../third_party/abseil-cpp/absl/synchronization/mutex_benchmark.cc -FILE: ../../../third_party/abseil-cpp/absl/synchronization/mutex_test.cc -FILE: ../../../third_party/abseil-cpp/absl/synchronization/notification.cc -FILE: ../../../third_party/abseil-cpp/absl/synchronization/notification.h -FILE: ../../../third_party/abseil-cpp/absl/synchronization/notification_test.cc -FILE: ../../../third_party/abseil-cpp/absl/time/BUILD.bazel -FILE: ../../../third_party/abseil-cpp/absl/time/civil_time.cc -FILE: ../../../third_party/abseil-cpp/absl/time/civil_time.h -FILE: ../../../third_party/abseil-cpp/absl/time/civil_time_benchmark.cc -FILE: ../../../third_party/abseil-cpp/absl/time/civil_time_test.cc -FILE: ../../../third_party/abseil-cpp/absl/time/clock.cc -FILE: ../../../third_party/abseil-cpp/absl/time/clock.h -FILE: ../../../third_party/abseil-cpp/absl/time/clock_benchmark.cc -FILE: ../../../third_party/abseil-cpp/absl/time/clock_test.cc -FILE: ../../../third_party/abseil-cpp/absl/time/duration.cc -FILE: ../../../third_party/abseil-cpp/absl/time/duration_benchmark.cc -FILE: ../../../third_party/abseil-cpp/absl/time/duration_test.cc -FILE: ../../../third_party/abseil-cpp/absl/time/format.cc -FILE: ../../../third_party/abseil-cpp/absl/time/format_benchmark.cc -FILE: ../../../third_party/abseil-cpp/absl/time/format_test.cc -FILE: ../../../third_party/abseil-cpp/absl/time/internal/cctz/BUILD.bazel -FILE: ../../../third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time.h -FILE: ../../../third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h -FILE: ../../../third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h -FILE: ../../../third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/zone_info_source.h -FILE: ../../../third_party/abseil-cpp/absl/time/internal/cctz/src/cctz_benchmark.cc -FILE: ../../../third_party/abseil-cpp/absl/time/internal/cctz/src/civil_time_detail.cc -FILE: ../../../third_party/abseil-cpp/absl/time/internal/cctz/src/civil_time_test.cc -FILE: ../../../third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.cc -FILE: ../../../third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.h -FILE: ../../../third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc -FILE: ../../../third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format_test.cc -FILE: ../../../third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.cc -FILE: ../../../third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.h -FILE: ../../../third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.cc -FILE: ../../../third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.h -FILE: ../../../third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc -FILE: ../../../third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.h -FILE: ../../../third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc -FILE: ../../../third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.h -FILE: ../../../third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc -FILE: ../../../third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup_test.cc -FILE: ../../../third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_posix.cc -FILE: ../../../third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_posix.h -FILE: ../../../third_party/abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc -FILE: ../../../third_party/abseil-cpp/absl/time/internal/get_current_time_chrono.inc -FILE: ../../../third_party/abseil-cpp/absl/time/internal/test_util.cc -FILE: ../../../third_party/abseil-cpp/absl/time/internal/test_util.h -FILE: ../../../third_party/abseil-cpp/absl/time/time.cc -FILE: ../../../third_party/abseil-cpp/absl/time/time.h -FILE: ../../../third_party/abseil-cpp/absl/time/time_benchmark.cc -FILE: ../../../third_party/abseil-cpp/absl/time/time_test.cc -FILE: ../../../third_party/abseil-cpp/absl/time/time_zone_test.cc -FILE: ../../../third_party/abseil-cpp/absl/types/BUILD.bazel -FILE: ../../../third_party/abseil-cpp/absl/types/any.h -FILE: ../../../third_party/abseil-cpp/absl/types/any_exception_safety_test.cc -FILE: ../../../third_party/abseil-cpp/absl/types/any_test.cc -FILE: ../../../third_party/abseil-cpp/absl/types/bad_any_cast.cc -FILE: ../../../third_party/abseil-cpp/absl/types/bad_any_cast.h -FILE: ../../../third_party/abseil-cpp/absl/types/bad_optional_access.cc -FILE: ../../../third_party/abseil-cpp/absl/types/bad_optional_access.h -FILE: ../../../third_party/abseil-cpp/absl/types/bad_variant_access.cc -FILE: ../../../third_party/abseil-cpp/absl/types/bad_variant_access.h -FILE: ../../../third_party/abseil-cpp/absl/types/compare.h -FILE: ../../../third_party/abseil-cpp/absl/types/compare_test.cc -FILE: ../../../third_party/abseil-cpp/absl/types/internal/conformance_aliases.h -FILE: ../../../third_party/abseil-cpp/absl/types/internal/conformance_archetype.h -FILE: ../../../third_party/abseil-cpp/absl/types/internal/conformance_profile.h -FILE: ../../../third_party/abseil-cpp/absl/types/internal/conformance_testing.h -FILE: ../../../third_party/abseil-cpp/absl/types/internal/conformance_testing_helpers.h -FILE: ../../../third_party/abseil-cpp/absl/types/internal/conformance_testing_test.cc -FILE: ../../../third_party/abseil-cpp/absl/types/internal/optional.h -FILE: ../../../third_party/abseil-cpp/absl/types/internal/parentheses.h -FILE: ../../../third_party/abseil-cpp/absl/types/internal/span.h -FILE: ../../../third_party/abseil-cpp/absl/types/internal/transform_args.h -FILE: ../../../third_party/abseil-cpp/absl/types/internal/variant.h -FILE: ../../../third_party/abseil-cpp/absl/types/optional.h -FILE: ../../../third_party/abseil-cpp/absl/types/optional_exception_safety_test.cc -FILE: ../../../third_party/abseil-cpp/absl/types/optional_test.cc -FILE: ../../../third_party/abseil-cpp/absl/types/span.h -FILE: ../../../third_party/abseil-cpp/absl/types/span_test.cc -FILE: ../../../third_party/abseil-cpp/absl/types/variant.h -FILE: ../../../third_party/abseil-cpp/absl/types/variant_benchmark.cc -FILE: ../../../third_party/abseil-cpp/absl/types/variant_exception_safety_test.cc -FILE: ../../../third_party/abseil-cpp/absl/types/variant_test.cc -FILE: ../../../third_party/abseil-cpp/absl/utility/BUILD.bazel -FILE: ../../../third_party/abseil-cpp/absl/utility/utility.h -FILE: ../../../third_party/abseil-cpp/absl/utility/utility_test.cc -FILE: ../../../third_party/abseil-cpp/ci/absl_alternate_options.h -FILE: ../../../third_party/angle/include/CL/cl.h -FILE: ../../../third_party/angle/include/CL/cl_d3d10.h -FILE: ../../../third_party/angle/include/CL/cl_d3d11.h -FILE: ../../../third_party/angle/include/CL/cl_dx9_media_sharing.h -FILE: ../../../third_party/angle/include/CL/cl_dx9_media_sharing_intel.h -FILE: ../../../third_party/angle/include/CL/cl_egl.h -FILE: ../../../third_party/angle/include/CL/cl_ext.h -FILE: ../../../third_party/angle/include/CL/cl_ext_intel.h -FILE: ../../../third_party/angle/include/CL/cl_gl.h -FILE: ../../../third_party/angle/include/CL/cl_gl_ext.h -FILE: ../../../third_party/angle/include/CL/cl_half.h -FILE: ../../../third_party/angle/include/CL/cl_icd.h -FILE: ../../../third_party/angle/include/CL/cl_layer.h -FILE: ../../../third_party/angle/include/CL/cl_platform.h -FILE: ../../../third_party/angle/include/CL/cl_va_api_media_sharing_intel.h -FILE: ../../../third_party/angle/include/CL/cl_version.h -FILE: ../../../third_party/angle/include/CL/opencl.h -FILE: ../../../third_party/angle/include/EGL/egl.h -FILE: ../../../third_party/angle/include/EGL/eglext.h -FILE: ../../../third_party/angle/include/EGL/eglplatform.h -FILE: ../../../third_party/angle/include/GLES/egl.h -FILE: ../../../third_party/angle/include/GLES/glplatform.h -FILE: ../../../third_party/angle/include/GLES2/gl2platform.h -FILE: ../../../third_party/angle/include/GLES3/gl3platform.h -FILE: ../../../third_party/angle/scripts/cl.xml -FILE: ../../../third_party/angle/scripts/egl.xml -FILE: ../../../third_party/angle/scripts/gl.xml -FILE: ../../../third_party/angle/scripts/wgl.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/layout/fragment.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-af/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-am/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-ar/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-as/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-az/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-b+sr+Latn/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-be/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-bg/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-bn/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-bs/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-ca/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-cs/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-da/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-de/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-el/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-en-rAU/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-en-rCA/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-en-rGB/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-en-rIN/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-en-rXC/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-es-rUS/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-es/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-et/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-eu/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-fa/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-fi/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-fr-rCA/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-fr/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-gl/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-gu/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-hi/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-hr/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-hu/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-hy/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-in/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-is/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-it/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-iw/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-ja/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-ka/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-kk/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-km/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-kn/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-ko/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-ky/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-lo/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-lt/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-lv/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-mk/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-ml/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-mn/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-mr/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-ms/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-my/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-nb/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-ne/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-nl/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-or/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-pa/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-pl/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-pt-rPT/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-pt/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-ro/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-ru/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-si/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-sk/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-sl/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-sq/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-sr/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-sv/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-sw/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-ta/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-te/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-th/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-tl/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-tr/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-uk/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-ur/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-uz/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-vi/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-zh-rCN/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-zh-rHK/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-zh-rTW/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values-zu/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values/dimens.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values/drivers.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values/global_settings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values/intents.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values/preference_keys.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/values/strings.xml -FILE: ../../../third_party/angle/src/android_system_settings/res/xml/main.xml -FILE: ../../../third_party/angle/src/android_system_settings/src/com/android/angle/AndroidManifest.xml -FILE: ../../../third_party/angle/src/android_system_settings/src/com/android/angle/EmptyMainActivity.java -FILE: ../../../third_party/angle/src/android_system_settings/src/com/android/angle/MainActivity.java -FILE: ../../../third_party/angle/src/android_system_settings/src/com/android/angle/common/GlobalSettings.java -FILE: ../../../third_party/angle/src/android_system_settings/src/com/android/angle/common/MainFragment.java -FILE: ../../../third_party/angle/src/android_system_settings/src/com/android/angle/common/Receiver.java -FILE: ../../../third_party/angle/src/android_system_settings/src/com/android/angle/common/SearchProvider.java -FILE: ../../../third_party/angle/src/common/vulkan/vk_google_filtering_precision.h -FILE: ../../../third_party/angle/util/android/third_party/android_native_app_glue.c -FILE: ../../../third_party/angle/util/android/third_party/android_native_app_glue.h -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/METADATA -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/aead_aes_siv_cmac_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/aegis128L_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/aegis128_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/aegis256_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/aes_cbc_pkcs5_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/aes_ccm_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/aes_cmac_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/aes_eax_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/aes_gcm_siv_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/aes_gcm_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/aes_siv_cmac_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/chacha20_poly1305_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/dsa_2048_224_sha224_p1363_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/dsa_2048_224_sha224_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/dsa_2048_224_sha256_p1363_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/dsa_2048_224_sha256_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/dsa_2048_256_sha256_p1363_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/dsa_2048_256_sha256_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/dsa_3072_256_sha256_p1363_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/dsa_3072_256_sha256_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/dsa_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdh_brainpoolP224r1_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdh_brainpoolP256r1_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdh_brainpoolP320r1_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdh_brainpoolP384r1_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdh_brainpoolP512r1_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdh_secp224r1_ecpoint_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdh_secp224r1_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdh_secp256k1_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdh_secp256r1_ecpoint_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdh_secp256r1_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdh_secp384r1_ecpoint_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdh_secp384r1_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdh_secp521r1_ecpoint_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdh_secp521r1_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdh_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdh_webcrypto_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_brainpoolP224r1_sha224_p1363_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_brainpoolP224r1_sha224_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_brainpoolP256r1_sha256_p1363_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_brainpoolP256r1_sha256_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_brainpoolP320r1_sha384_p1363_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_brainpoolP320r1_sha384_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_brainpoolP384r1_sha384_p1363_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_brainpoolP384r1_sha384_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_brainpoolP512r1_sha512_p1363_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_brainpoolP512r1_sha512_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_secp224r1_sha224_p1363_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_secp224r1_sha224_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_secp224r1_sha256_p1363_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_secp224r1_sha256_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_secp224r1_sha3_224_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_secp224r1_sha3_256_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_secp224r1_sha3_512_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_secp224r1_sha512_p1363_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_secp224r1_sha512_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_secp256k1_sha256_p1363_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_secp256k1_sha256_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_secp256k1_sha3_256_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_secp256k1_sha3_512_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_secp256k1_sha512_p1363_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_secp256k1_sha512_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_secp256r1_sha256_p1363_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_secp256r1_sha256_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_secp256r1_sha3_256_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_secp256r1_sha3_512_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_secp256r1_sha512_p1363_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_secp256r1_sha512_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_secp384r1_sha384_p1363_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_secp384r1_sha384_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_secp384r1_sha3_384_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_secp384r1_sha3_512_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_secp384r1_sha512_p1363_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_secp384r1_sha512_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_secp521r1_sha3_512_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_secp521r1_sha512_p1363_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_secp521r1_sha512_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_webcrypto_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ed448_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/eddsa_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/gmac_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/hkdf_sha1_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/hkdf_sha256_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/hkdf_sha384_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/hkdf_sha512_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/hmac_sha1_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/hmac_sha224_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/hmac_sha256_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/hmac_sha384_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/hmac_sha3_224_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/hmac_sha3_256_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/hmac_sha3_384_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/hmac_sha3_512_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/hmac_sha512_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/kw_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/kwp_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/primality_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_oaep_2048_sha1_mgf1sha1_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_oaep_2048_sha224_mgf1sha1_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_oaep_2048_sha224_mgf1sha224_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_oaep_2048_sha256_mgf1sha1_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_oaep_2048_sha256_mgf1sha256_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_oaep_2048_sha384_mgf1sha1_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_oaep_2048_sha384_mgf1sha384_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_oaep_2048_sha512_mgf1sha1_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_oaep_2048_sha512_mgf1sha512_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_oaep_3072_sha256_mgf1sha1_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_oaep_3072_sha256_mgf1sha256_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_oaep_3072_sha512_mgf1sha1_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_oaep_3072_sha512_mgf1sha512_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_oaep_4096_sha256_mgf1sha1_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_oaep_4096_sha256_mgf1sha256_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_oaep_4096_sha512_mgf1sha1_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_oaep_4096_sha512_mgf1sha512_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_oaep_misc_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_pkcs1_2048_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_pkcs1_3072_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_pkcs1_4096_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_pss_2048_sha1_mgf1_20_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_pss_2048_sha256_mgf1_0_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_pss_2048_sha256_mgf1_32_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_pss_2048_sha512_256_mgf1_28_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_pss_2048_sha512_256_mgf1_32_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_pss_3072_sha256_mgf1_32_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_pss_4096_sha256_mgf1_32_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_pss_4096_sha512_mgf1_32_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_pss_misc_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_sig_gen_misc_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_signature_2048_sha224_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_signature_2048_sha256_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_signature_2048_sha384_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_signature_2048_sha3_224_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_signature_2048_sha3_256_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_signature_2048_sha3_384_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_signature_2048_sha3_512_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_signature_2048_sha512_224_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_signature_2048_sha512_256_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_signature_2048_sha512_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_signature_3072_sha256_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_signature_3072_sha384_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_signature_3072_sha3_256_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_signature_3072_sha3_384_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_signature_3072_sha3_512_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_signature_3072_sha512_256_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_signature_3072_sha512_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_signature_4096_sha384_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_signature_4096_sha512_256_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_signature_4096_sha512_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_signature_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/vmac_128_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/vmac_64_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/x25519_asn_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/x25519_jwk_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/x25519_pem_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/x25519_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/x448_asn_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/x448_jwk_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/x448_pem_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/x448_test.json -FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/xchacha20_poly1305_test.json -FILE: ../../../third_party/expat/expat/fuzz/xml_parse_fuzzer.c -FILE: ../../../third_party/expat/expat/fuzz/xml_parsebuffer_fuzzer.c -FILE: ../../../third_party/flatbuffers/.bazelci/presubmit.yml -FILE: ../../../third_party/flatbuffers/.editorconfig -FILE: ../../../third_party/flatbuffers/.eslintrc.js -FILE: ../../../third_party/flatbuffers/BUILD.bazel -FILE: ../../../third_party/flatbuffers/CMake/CMakeLists_legacy.cmake.in -FILE: ../../../third_party/flatbuffers/CMake/FlatbuffersConfigVersion.cmake.in -FILE: ../../../third_party/flatbuffers/CMake/flatbuffers.pc.in -FILE: ../../../third_party/flatbuffers/WORKSPACE -FILE: ../../../third_party/flatbuffers/android/AndroidManifest.xml -FILE: ../../../third_party/flatbuffers/android/app/proguard-rules.pro -FILE: ../../../third_party/flatbuffers/android/app/src/main/AndroidManifest.xml -FILE: ../../../third_party/flatbuffers/android/app/src/main/cpp/animals.cpp -FILE: ../../../third_party/flatbuffers/android/app/src/main/cpp/generated/animal_generated.h -FILE: ../../../third_party/flatbuffers/android/app/src/main/fbs/animal.fbs -FILE: ../../../third_party/flatbuffers/android/app/src/main/java/com/flatbuffers/app/MainActivity.kt -FILE: ../../../third_party/flatbuffers/android/app/src/main/java/generated/com/fbs/app/Animal.kt -FILE: ../../../third_party/flatbuffers/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml -FILE: ../../../third_party/flatbuffers/android/app/src/main/res/drawable/ic_launcher_background.xml -FILE: ../../../third_party/flatbuffers/android/app/src/main/res/layout/activity_main.xml -FILE: ../../../third_party/flatbuffers/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml -FILE: ../../../third_party/flatbuffers/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml -FILE: ../../../third_party/flatbuffers/android/app/src/main/res/mipmap-hdpi/ic_launcher.png -FILE: ../../../third_party/flatbuffers/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png -FILE: ../../../third_party/flatbuffers/android/app/src/main/res/mipmap-mdpi/ic_launcher.png -FILE: ../../../third_party/flatbuffers/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png -FILE: ../../../third_party/flatbuffers/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png -FILE: ../../../third_party/flatbuffers/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png -FILE: ../../../third_party/flatbuffers/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -FILE: ../../../third_party/flatbuffers/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -FILE: ../../../third_party/flatbuffers/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -FILE: ../../../third_party/flatbuffers/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -FILE: ../../../third_party/flatbuffers/android/app/src/main/res/values/colors.xml -FILE: ../../../third_party/flatbuffers/android/app/src/main/res/values/strings.xml -FILE: ../../../third_party/flatbuffers/android/app/src/main/res/values/styles.xml -FILE: ../../../third_party/flatbuffers/android/gradle.properties -FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/META-INF/MANIFEST.MF -FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/gradle-wrapper-classpath.properties -FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/AbstractCommandLineConverter.class -FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/AbstractPropertiesCommandLineConverter.class -FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineArgumentException.class -FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineConverter.class -FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineOption.class -FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineParser$1.class -FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineParser$AfterFirstSubCommand.class -FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineParser$AfterOptions.class -FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineParser$BeforeFirstSubCommand.class -FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineParser$CaseInsensitiveStringComparator.class -FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineParser$KnownOptionParserState.class -FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineParser$MissingOptionArgState.class -FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineParser$OptionAwareParserState.class -FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineParser$OptionComparator.class -FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineParser$OptionParserState.class -FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineParser$OptionString.class -FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineParser$OptionStringComparator.class -FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineParser$ParserState.class -FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineParser$UnknownOptionParserState.class -FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineParser.class -FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/ParsedCommandLine.class -FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/ParsedCommandLineOption.class -FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/ProjectPropertiesCommandLineConverter.class -FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/SystemPropertiesCommandLineConverter.class -FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/BootstrapMainStarter$1.class -FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/BootstrapMainStarter.class -FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/Download$1.class -FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/Download$DefaultDownloadProgressListener.class -FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/Download$ProxyAuthenticator.class -FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/Download.class -FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/DownloadProgressListener.class -FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/ExclusiveFileAccessManager.class -FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/GradleUserHomeLookup.class -FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/GradleWrapperMain.class -FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/IDownload.class -FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/Install$1.class -FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/Install$InstallCheck.class -FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/Install.class -FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/Logger.class -FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/PathAssembler$LocalDistribution.class -FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/PathAssembler.class -FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/SystemPropertiesHandler.class -FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/WrapperConfiguration.class -FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/WrapperExecutor.class -FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.properties -FILE: ../../../third_party/flatbuffers/android/gradlew -FILE: ../../../third_party/flatbuffers/benchmarks/cpp/bench.h -FILE: ../../../third_party/flatbuffers/benchmarks/cpp/benchmark_main.cpp -FILE: ../../../third_party/flatbuffers/benchmarks/cpp/flatbuffers/bench.fbs -FILE: ../../../third_party/flatbuffers/benchmarks/cpp/flatbuffers/bench_generated.h -FILE: ../../../third_party/flatbuffers/benchmarks/cpp/flatbuffers/fb_bench.cpp -FILE: ../../../third_party/flatbuffers/benchmarks/cpp/flatbuffers/fb_bench.h -FILE: ../../../third_party/flatbuffers/benchmarks/cpp/raw/raw_bench.cpp -FILE: ../../../third_party/flatbuffers/benchmarks/cpp/raw/raw_bench.h -FILE: ../../../third_party/flatbuffers/build_defs.bzl -FILE: ../../../third_party/flatbuffers/composer.json -FILE: ../../../third_party/flatbuffers/conan/test_package/test_package.cpp -FILE: ../../../third_party/flatbuffers/dart/example/example.dart -FILE: ../../../third_party/flatbuffers/docs/footer.html -FILE: ../../../third_party/flatbuffers/docs/header.html -FILE: ../../../third_party/flatbuffers/docs/images/fpl_logo_small.png -FILE: ../../../third_party/flatbuffers/docs/images/ftv2mnode.png -FILE: ../../../third_party/flatbuffers/docs/images/ftv2pnode.png -FILE: ../../../third_party/flatbuffers/docs/source/doxygen_layout.xml -FILE: ../../../third_party/flatbuffers/docs/source/groups -FILE: ../../../third_party/flatbuffers/go/BUILD.bazel -FILE: ../../../third_party/flatbuffers/go/builder.go -FILE: ../../../third_party/flatbuffers/go/doc.go -FILE: ../../../third_party/flatbuffers/go/encode.go -FILE: ../../../third_party/flatbuffers/go/grpc.go -FILE: ../../../third_party/flatbuffers/go/lib.go -FILE: ../../../third_party/flatbuffers/go/sizes.go -FILE: ../../../third_party/flatbuffers/go/struct.go -FILE: ../../../third_party/flatbuffers/go/table.go -FILE: ../../../third_party/flatbuffers/grpc/boringssl.patch -FILE: ../../../third_party/flatbuffers/grpc/examples/go/greeter/client/go.mod -FILE: ../../../third_party/flatbuffers/grpc/examples/go/greeter/client/main.go -FILE: ../../../third_party/flatbuffers/grpc/examples/go/greeter/models/Greeter_grpc.go -FILE: ../../../third_party/flatbuffers/grpc/examples/go/greeter/models/HelloReply.go -FILE: ../../../third_party/flatbuffers/grpc/examples/go/greeter/models/HelloRequest.go -FILE: ../../../third_party/flatbuffers/grpc/examples/go/greeter/models/go.mod -FILE: ../../../third_party/flatbuffers/grpc/examples/go/greeter/server/go.mod -FILE: ../../../third_party/flatbuffers/grpc/examples/go/greeter/server/main.go -FILE: ../../../third_party/flatbuffers/grpc/examples/greeter.fbs -FILE: ../../../third_party/flatbuffers/grpc/examples/swift/Greeter/Package.swift -FILE: ../../../third_party/flatbuffers/grpc/examples/swift/Greeter/Sources/Model/greeter.grpc.swift -FILE: ../../../third_party/flatbuffers/grpc/examples/swift/Greeter/Sources/Model/greeter_generated.swift -FILE: ../../../third_party/flatbuffers/grpc/examples/swift/Greeter/Sources/client/main.swift -FILE: ../../../third_party/flatbuffers/grpc/examples/swift/Greeter/Sources/server/main.swift -FILE: ../../../third_party/flatbuffers/grpc/examples/ts/greeter/package.json -FILE: ../../../third_party/flatbuffers/grpc/examples/ts/greeter/src/client.ts -FILE: ../../../third_party/flatbuffers/grpc/examples/ts/greeter/src/greeter.ts -FILE: ../../../third_party/flatbuffers/grpc/examples/ts/greeter/src/greeter_grpc.d.ts -FILE: ../../../third_party/flatbuffers/grpc/examples/ts/greeter/src/greeter_grpc.js -FILE: ../../../third_party/flatbuffers/grpc/examples/ts/greeter/src/models/hello-reply.ts -FILE: ../../../third_party/flatbuffers/grpc/examples/ts/greeter/src/models/hello-request.ts -FILE: ../../../third_party/flatbuffers/grpc/examples/ts/greeter/src/server.ts -FILE: ../../../third_party/flatbuffers/grpc/examples/ts/greeter/tsconfig.json -FILE: ../../../third_party/flatbuffers/grpc/flatbuffers-java-grpc/src/main/java/com/google/flatbuffers/grpc/FlatbuffersUtils.java -FILE: ../../../third_party/flatbuffers/grpc/samples/greeter/client.cpp -FILE: ../../../third_party/flatbuffers/grpc/samples/greeter/greeter.fbs -FILE: ../../../third_party/flatbuffers/grpc/samples/greeter/server.cpp -FILE: ../../../third_party/flatbuffers/grpc/src/compiler/BUILD.bazel -FILE: ../../../third_party/flatbuffers/grpc/src/compiler/cpp_generator.cc -FILE: ../../../third_party/flatbuffers/grpc/src/compiler/cpp_generator.h -FILE: ../../../third_party/flatbuffers/grpc/src/compiler/go_generator.cc -FILE: ../../../third_party/flatbuffers/grpc/src/compiler/go_generator.h -FILE: ../../../third_party/flatbuffers/grpc/src/compiler/java_generator.cc -FILE: ../../../third_party/flatbuffers/grpc/src/compiler/java_generator.h -FILE: ../../../third_party/flatbuffers/grpc/src/compiler/python_generator.cc -FILE: ../../../third_party/flatbuffers/grpc/src/compiler/python_generator.h -FILE: ../../../third_party/flatbuffers/grpc/src/compiler/schema_interface.h -FILE: ../../../third_party/flatbuffers/grpc/src/compiler/swift_generator.cc -FILE: ../../../third_party/flatbuffers/grpc/src/compiler/swift_generator.h -FILE: ../../../third_party/flatbuffers/grpc/src/compiler/ts_generator.cc -FILE: ../../../third_party/flatbuffers/grpc/src/compiler/ts_generator.h -FILE: ../../../third_party/flatbuffers/include/flatbuffers/allocator.h -FILE: ../../../third_party/flatbuffers/include/flatbuffers/array.h -FILE: ../../../third_party/flatbuffers/include/flatbuffers/base.h -FILE: ../../../third_party/flatbuffers/include/flatbuffers/bfbs_generator.h -FILE: ../../../third_party/flatbuffers/include/flatbuffers/buffer.h -FILE: ../../../third_party/flatbuffers/include/flatbuffers/buffer_ref.h -FILE: ../../../third_party/flatbuffers/include/flatbuffers/code_generators.h -FILE: ../../../third_party/flatbuffers/include/flatbuffers/default_allocator.h -FILE: ../../../third_party/flatbuffers/include/flatbuffers/detached_buffer.h -FILE: ../../../third_party/flatbuffers/include/flatbuffers/flatbuffer_builder.h -FILE: ../../../third_party/flatbuffers/include/flatbuffers/flatbuffers.h -FILE: ../../../third_party/flatbuffers/include/flatbuffers/flatc.h -FILE: ../../../third_party/flatbuffers/include/flatbuffers/flex_flat_util.h -FILE: ../../../third_party/flatbuffers/include/flatbuffers/flexbuffers.h -FILE: ../../../third_party/flatbuffers/include/flatbuffers/grpc.h -FILE: ../../../third_party/flatbuffers/include/flatbuffers/hash.h -FILE: ../../../third_party/flatbuffers/include/flatbuffers/idl.h -FILE: ../../../third_party/flatbuffers/include/flatbuffers/minireflect.h -FILE: ../../../third_party/flatbuffers/include/flatbuffers/pch/flatc_pch.h -FILE: ../../../third_party/flatbuffers/include/flatbuffers/pch/pch.h -FILE: ../../../third_party/flatbuffers/include/flatbuffers/reflection.h -FILE: ../../../third_party/flatbuffers/include/flatbuffers/reflection_generated.h -FILE: ../../../third_party/flatbuffers/include/flatbuffers/registry.h -FILE: ../../../third_party/flatbuffers/include/flatbuffers/stl_emulation.h -FILE: ../../../third_party/flatbuffers/include/flatbuffers/string.h -FILE: ../../../third_party/flatbuffers/include/flatbuffers/struct.h -FILE: ../../../third_party/flatbuffers/include/flatbuffers/table.h -FILE: ../../../third_party/flatbuffers/include/flatbuffers/util.h -FILE: ../../../third_party/flatbuffers/include/flatbuffers/vector.h -FILE: ../../../third_party/flatbuffers/include/flatbuffers/vector_downward.h -FILE: ../../../third_party/flatbuffers/include/flatbuffers/verifier.h -FILE: ../../../third_party/flatbuffers/java/com/google/flatbuffers/ArrayReadWriteBuf.java -FILE: ../../../third_party/flatbuffers/java/com/google/flatbuffers/BaseVector.java -FILE: ../../../third_party/flatbuffers/java/com/google/flatbuffers/BooleanVector.java -FILE: ../../../third_party/flatbuffers/java/com/google/flatbuffers/ByteBufferReadWriteBuf.java -FILE: ../../../third_party/flatbuffers/java/com/google/flatbuffers/ByteBufferUtil.java -FILE: ../../../third_party/flatbuffers/java/com/google/flatbuffers/ByteVector.java -FILE: ../../../third_party/flatbuffers/java/com/google/flatbuffers/Constants.java -FILE: ../../../third_party/flatbuffers/java/com/google/flatbuffers/DoubleVector.java -FILE: ../../../third_party/flatbuffers/java/com/google/flatbuffers/FlatBufferBuilder.java -FILE: ../../../third_party/flatbuffers/java/com/google/flatbuffers/FlexBuffers.java -FILE: ../../../third_party/flatbuffers/java/com/google/flatbuffers/FlexBuffersBuilder.java -FILE: ../../../third_party/flatbuffers/java/com/google/flatbuffers/FloatVector.java -FILE: ../../../third_party/flatbuffers/java/com/google/flatbuffers/IntVector.java -FILE: ../../../third_party/flatbuffers/java/com/google/flatbuffers/LongVector.java -FILE: ../../../third_party/flatbuffers/java/com/google/flatbuffers/ReadBuf.java -FILE: ../../../third_party/flatbuffers/java/com/google/flatbuffers/ReadWriteBuf.java -FILE: ../../../third_party/flatbuffers/java/com/google/flatbuffers/ShortVector.java -FILE: ../../../third_party/flatbuffers/java/com/google/flatbuffers/StringVector.java -FILE: ../../../third_party/flatbuffers/java/com/google/flatbuffers/Struct.java -FILE: ../../../third_party/flatbuffers/java/com/google/flatbuffers/Table.java -FILE: ../../../third_party/flatbuffers/java/com/google/flatbuffers/UnionVector.java -FILE: ../../../third_party/flatbuffers/java/com/google/flatbuffers/Utf8.java -FILE: ../../../third_party/flatbuffers/java/com/google/flatbuffers/Utf8Old.java -FILE: ../../../third_party/flatbuffers/java/com/google/flatbuffers/Utf8Safe.java -FILE: ../../../third_party/flatbuffers/kotlin/benchmark/build.gradle.kts -FILE: ../../../third_party/flatbuffers/kotlin/benchmark/src/jvmMain/java/com/google/flatbuffers/ArrayReadWriteBuf.java -FILE: ../../../third_party/flatbuffers/kotlin/benchmark/src/jvmMain/java/com/google/flatbuffers/BaseVector.java -FILE: ../../../third_party/flatbuffers/kotlin/benchmark/src/jvmMain/java/com/google/flatbuffers/BooleanVector.java -FILE: ../../../third_party/flatbuffers/kotlin/benchmark/src/jvmMain/java/com/google/flatbuffers/ByteBufferReadWriteBuf.java -FILE: ../../../third_party/flatbuffers/kotlin/benchmark/src/jvmMain/java/com/google/flatbuffers/ByteBufferUtil.java -FILE: ../../../third_party/flatbuffers/kotlin/benchmark/src/jvmMain/java/com/google/flatbuffers/ByteVector.java -FILE: ../../../third_party/flatbuffers/kotlin/benchmark/src/jvmMain/java/com/google/flatbuffers/Constants.java -FILE: ../../../third_party/flatbuffers/kotlin/benchmark/src/jvmMain/java/com/google/flatbuffers/DoubleVector.java -FILE: ../../../third_party/flatbuffers/kotlin/benchmark/src/jvmMain/java/com/google/flatbuffers/FlatBufferBuilder.java -FILE: ../../../third_party/flatbuffers/kotlin/benchmark/src/jvmMain/java/com/google/flatbuffers/FlexBuffers.java -FILE: ../../../third_party/flatbuffers/kotlin/benchmark/src/jvmMain/java/com/google/flatbuffers/FlexBuffersBuilder.java -FILE: ../../../third_party/flatbuffers/kotlin/benchmark/src/jvmMain/java/com/google/flatbuffers/FloatVector.java -FILE: ../../../third_party/flatbuffers/kotlin/benchmark/src/jvmMain/java/com/google/flatbuffers/IntVector.java -FILE: ../../../third_party/flatbuffers/kotlin/benchmark/src/jvmMain/java/com/google/flatbuffers/LongVector.java -FILE: ../../../third_party/flatbuffers/kotlin/benchmark/src/jvmMain/java/com/google/flatbuffers/ReadBuf.java -FILE: ../../../third_party/flatbuffers/kotlin/benchmark/src/jvmMain/java/com/google/flatbuffers/ReadWriteBuf.java -FILE: ../../../third_party/flatbuffers/kotlin/benchmark/src/jvmMain/java/com/google/flatbuffers/ShortVector.java -FILE: ../../../third_party/flatbuffers/kotlin/benchmark/src/jvmMain/java/com/google/flatbuffers/StringVector.java -FILE: ../../../third_party/flatbuffers/kotlin/benchmark/src/jvmMain/java/com/google/flatbuffers/Struct.java -FILE: ../../../third_party/flatbuffers/kotlin/benchmark/src/jvmMain/java/com/google/flatbuffers/Table.java -FILE: ../../../third_party/flatbuffers/kotlin/benchmark/src/jvmMain/java/com/google/flatbuffers/UnionVector.java -FILE: ../../../third_party/flatbuffers/kotlin/benchmark/src/jvmMain/java/com/google/flatbuffers/Utf8.java -FILE: ../../../third_party/flatbuffers/kotlin/benchmark/src/jvmMain/java/com/google/flatbuffers/Utf8Old.java -FILE: ../../../third_party/flatbuffers/kotlin/benchmark/src/jvmMain/java/com/google/flatbuffers/Utf8Safe.java -FILE: ../../../third_party/flatbuffers/kotlin/benchmark/src/jvmMain/kotlin/com/google/flatbuffers/kotlin/benchmark/FlexBuffersBenchmark.kt -FILE: ../../../third_party/flatbuffers/kotlin/benchmark/src/jvmMain/kotlin/com/google/flatbuffers/kotlin/benchmark/JsonBenchmark.kt -FILE: ../../../third_party/flatbuffers/kotlin/benchmark/src/jvmMain/kotlin/com/google/flatbuffers/kotlin/benchmark/UTF8Benchmark.kt -FILE: ../../../third_party/flatbuffers/kotlin/build.gradle.kts -FILE: ../../../third_party/flatbuffers/kotlin/flatbuffers-kotlin/build.gradle.kts -FILE: ../../../third_party/flatbuffers/kotlin/flatbuffers-kotlin/src/commonMain/kotlin/com/google/flatbuffers/kotlin/Buffers.kt -FILE: ../../../third_party/flatbuffers/kotlin/flatbuffers-kotlin/src/commonMain/kotlin/com/google/flatbuffers/kotlin/ByteArray.kt -FILE: ../../../third_party/flatbuffers/kotlin/flatbuffers-kotlin/src/commonMain/kotlin/com/google/flatbuffers/kotlin/FlexBuffers.kt -FILE: ../../../third_party/flatbuffers/kotlin/flatbuffers-kotlin/src/commonMain/kotlin/com/google/flatbuffers/kotlin/FlexBuffersBuilder.kt -FILE: ../../../third_party/flatbuffers/kotlin/flatbuffers-kotlin/src/commonMain/kotlin/com/google/flatbuffers/kotlin/FlexBuffersInternals.kt -FILE: ../../../third_party/flatbuffers/kotlin/flatbuffers-kotlin/src/commonMain/kotlin/com/google/flatbuffers/kotlin/JSON.kt -FILE: ../../../third_party/flatbuffers/kotlin/flatbuffers-kotlin/src/commonMain/kotlin/com/google/flatbuffers/kotlin/Utf8.kt -FILE: ../../../third_party/flatbuffers/kotlin/flatbuffers-kotlin/src/commonTest/kotlin/com/google/flatbuffers/kotlin/ByteArrayTest.kt -FILE: ../../../third_party/flatbuffers/kotlin/flatbuffers-kotlin/src/commonTest/kotlin/com/google/flatbuffers/kotlin/FlexBuffersTest.kt -FILE: ../../../third_party/flatbuffers/kotlin/flatbuffers-kotlin/src/commonTest/kotlin/com/google/flatbuffers/kotlin/JSONTest.kt -FILE: ../../../third_party/flatbuffers/kotlin/flatbuffers-kotlin/src/jsMain/kotlin/com/google/flatbuffers/kotlin/ByteArray.kt -FILE: ../../../third_party/flatbuffers/kotlin/flatbuffers-kotlin/src/jvmMain/kotlin/com/google/flatbuffers/kotlin/ByteArray.kt -FILE: ../../../third_party/flatbuffers/kotlin/flatbuffers-kotlin/src/jvmTest/kotlin/com/google/flatbuffers/kotlin/Utf8Test.kt -FILE: ../../../third_party/flatbuffers/kotlin/flatbuffers-kotlin/src/nativeMain/kotlin/com/google/flatbuffers/kotlin/ByteArray.kt -FILE: ../../../third_party/flatbuffers/kotlin/gradle.properties -FILE: ../../../third_party/flatbuffers/kotlin/gradle/libs.versions.toml -FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/META-INF/MANIFEST.MF -FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/gradle-wrapper-classpath.properties -FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/AbstractCommandLineConverter.class -FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/AbstractPropertiesCommandLineConverter.class -FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineArgumentException.class -FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineConverter.class -FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineOption.class -FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineParser$1.class -FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineParser$AfterFirstSubCommand.class -FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineParser$AfterOptions.class -FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineParser$BeforeFirstSubCommand.class -FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineParser$CaseInsensitiveStringComparator.class -FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineParser$KnownOptionParserState.class -FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineParser$MissingOptionArgState.class -FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineParser$OptionAwareParserState.class -FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineParser$OptionComparator.class -FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineParser$OptionParserState.class -FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineParser$OptionString.class -FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineParser$OptionStringComparator.class -FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineParser$ParserState.class -FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineParser$UnknownOptionParserState.class -FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineParser.class -FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/ParsedCommandLine.class -FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/ParsedCommandLineOption.class -FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/ProjectPropertiesCommandLineConverter.class -FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/SystemPropertiesCommandLineConverter.class -FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/BootstrapMainStarter$1.class -FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/BootstrapMainStarter.class -FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/Download$1.class -FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/Download$DefaultDownloadProgressListener.class -FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/Download$ProxyAuthenticator.class -FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/Download.class -FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/DownloadProgressListener.class -FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/ExclusiveFileAccessManager.class -FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/GradleUserHomeLookup.class -FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/GradleWrapperMain.class -FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/IDownload.class -FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/Install$1.class -FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/Install$InstallCheck.class -FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/Install.class -FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/Logger.class -FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/PathAssembler$LocalDistribution.class -FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/PathAssembler.class -FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/SystemPropertiesHandler.class -FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/WrapperConfiguration.class -FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/WrapperExecutor.class -FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.properties -FILE: ../../../third_party/flatbuffers/kotlin/settings.gradle.kts -FILE: ../../../third_party/flatbuffers/kotlin/spotless/spotless.kt -FILE: ../../../third_party/flatbuffers/lobster/flatbuffers.lobster -FILE: ../../../third_party/flatbuffers/lua/flatbuffers.lua -FILE: ../../../third_party/flatbuffers/lua/flatbuffers/binaryarray.lua -FILE: ../../../third_party/flatbuffers/lua/flatbuffers/builder.lua -FILE: ../../../third_party/flatbuffers/lua/flatbuffers/compat.lua -FILE: ../../../third_party/flatbuffers/lua/flatbuffers/compat_5_1.lua -FILE: ../../../third_party/flatbuffers/lua/flatbuffers/compat_5_3.lua -FILE: ../../../third_party/flatbuffers/lua/flatbuffers/compat_luajit.lua -FILE: ../../../third_party/flatbuffers/lua/flatbuffers/numTypes.lua -FILE: ../../../third_party/flatbuffers/lua/flatbuffers/view.lua -FILE: ../../../third_party/flatbuffers/net/FlatBuffers/ByteBuffer.cs -FILE: ../../../third_party/flatbuffers/net/FlatBuffers/ByteBufferUtil.cs -FILE: ../../../third_party/flatbuffers/net/FlatBuffers/FlatBufferBuilder.cs -FILE: ../../../third_party/flatbuffers/net/FlatBuffers/FlatBufferConstants.cs -FILE: ../../../third_party/flatbuffers/net/FlatBuffers/FlatBuffers.csproj -FILE: ../../../third_party/flatbuffers/net/FlatBuffers/FlatBuffers.net35.csproj -FILE: ../../../third_party/flatbuffers/net/FlatBuffers/IFlatbufferObject.cs -FILE: ../../../third_party/flatbuffers/net/FlatBuffers/Offset.cs -FILE: ../../../third_party/flatbuffers/net/FlatBuffers/Properties/AssemblyInfo.cs -FILE: ../../../third_party/flatbuffers/net/FlatBuffers/Struct.cs -FILE: ../../../third_party/flatbuffers/net/FlatBuffers/Table.cs -FILE: ../../../third_party/flatbuffers/package.json -FILE: ../../../third_party/flatbuffers/php/ByteBuffer.php -FILE: ../../../third_party/flatbuffers/php/Constants.php -FILE: ../../../third_party/flatbuffers/php/FlatbufferBuilder.php -FILE: ../../../third_party/flatbuffers/php/Struct.php -FILE: ../../../third_party/flatbuffers/php/Table.php -FILE: ../../../third_party/flatbuffers/python/setup.cfg -FILE: ../../../third_party/flatbuffers/reflection/BUILD.bazel -FILE: ../../../third_party/flatbuffers/reflection/reflection.fbs -FILE: ../../../third_party/flatbuffers/rust/flatbuffers/Cargo.toml -FILE: ../../../third_party/flatbuffers/rust/flatbuffers/src/array.rs -FILE: ../../../third_party/flatbuffers/rust/flatbuffers/src/builder.rs -FILE: ../../../third_party/flatbuffers/rust/flatbuffers/src/endian_scalar.rs -FILE: ../../../third_party/flatbuffers/rust/flatbuffers/src/follow.rs -FILE: ../../../third_party/flatbuffers/rust/flatbuffers/src/get_root.rs -FILE: ../../../third_party/flatbuffers/rust/flatbuffers/src/lib.rs -FILE: ../../../third_party/flatbuffers/rust/flatbuffers/src/primitives.rs -FILE: ../../../third_party/flatbuffers/rust/flatbuffers/src/push.rs -FILE: ../../../third_party/flatbuffers/rust/flatbuffers/src/table.rs -FILE: ../../../third_party/flatbuffers/rust/flatbuffers/src/vector.rs -FILE: ../../../third_party/flatbuffers/rust/flatbuffers/src/verifier.rs -FILE: ../../../third_party/flatbuffers/rust/flatbuffers/src/vtable.rs -FILE: ../../../third_party/flatbuffers/rust/flatbuffers/src/vtable_writer.rs -FILE: ../../../third_party/flatbuffers/rust/flexbuffers/Cargo.toml -FILE: ../../../third_party/flatbuffers/rust/flexbuffers/src/bitwidth.rs -FILE: ../../../third_party/flatbuffers/rust/flexbuffers/src/buffer.rs -FILE: ../../../third_party/flatbuffers/rust/flexbuffers/src/builder/map.rs -FILE: ../../../third_party/flatbuffers/rust/flexbuffers/src/builder/mod.rs -FILE: ../../../third_party/flatbuffers/rust/flexbuffers/src/builder/push.rs -FILE: ../../../third_party/flatbuffers/rust/flexbuffers/src/builder/ser.rs -FILE: ../../../third_party/flatbuffers/rust/flexbuffers/src/builder/value.rs -FILE: ../../../third_party/flatbuffers/rust/flexbuffers/src/builder/vector.rs -FILE: ../../../third_party/flatbuffers/rust/flexbuffers/src/flexbuffer_type.rs -FILE: ../../../third_party/flatbuffers/rust/flexbuffers/src/lib.rs -FILE: ../../../third_party/flatbuffers/rust/flexbuffers/src/reader/de.rs -FILE: ../../../third_party/flatbuffers/rust/flexbuffers/src/reader/iter.rs -FILE: ../../../third_party/flatbuffers/rust/flexbuffers/src/reader/map.rs -FILE: ../../../third_party/flatbuffers/rust/flexbuffers/src/reader/mod.rs -FILE: ../../../third_party/flatbuffers/rust/flexbuffers/src/reader/serialize.rs -FILE: ../../../third_party/flatbuffers/rust/flexbuffers/src/reader/vector.rs -FILE: ../../../third_party/flatbuffers/samples/SampleBinary.cs -FILE: ../../../third_party/flatbuffers/samples/SampleBinary.java -FILE: ../../../third_party/flatbuffers/samples/SampleBinary.kt -FILE: ../../../third_party/flatbuffers/samples/SampleBinary.php -FILE: ../../../third_party/flatbuffers/samples/lua/MyGame/Sample/Color.lua -FILE: ../../../third_party/flatbuffers/samples/lua/MyGame/Sample/Equipment.lua -FILE: ../../../third_party/flatbuffers/samples/lua/MyGame/Sample/Monster.lua -FILE: ../../../third_party/flatbuffers/samples/lua/MyGame/Sample/Vec3.lua -FILE: ../../../third_party/flatbuffers/samples/lua/MyGame/Sample/Weapon.lua -FILE: ../../../third_party/flatbuffers/samples/monster.bfbs -FILE: ../../../third_party/flatbuffers/samples/monster.fbs -FILE: ../../../third_party/flatbuffers/samples/monster_generated.h -FILE: ../../../third_party/flatbuffers/samples/monster_generated.lobster -FILE: ../../../third_party/flatbuffers/samples/monster_generated.swift -FILE: ../../../third_party/flatbuffers/samples/monsterdata.json -FILE: ../../../third_party/flatbuffers/samples/rust_generated/mod.rs -FILE: ../../../third_party/flatbuffers/samples/rust_generated/my_game/sample/color_generated.rs -FILE: ../../../third_party/flatbuffers/samples/rust_generated/my_game/sample/equipment_generated.rs -FILE: ../../../third_party/flatbuffers/samples/rust_generated/my_game/sample/monster_generated.rs -FILE: ../../../third_party/flatbuffers/samples/rust_generated/my_game/sample/vec_3_generated.rs -FILE: ../../../third_party/flatbuffers/samples/rust_generated/my_game/sample/weapon_generated.rs -FILE: ../../../third_party/flatbuffers/samples/sample_bfbs.cpp -FILE: ../../../third_party/flatbuffers/samples/sample_binary.cpp -FILE: ../../../third_party/flatbuffers/samples/sample_binary.go -FILE: ../../../third_party/flatbuffers/samples/sample_binary.lobster -FILE: ../../../third_party/flatbuffers/samples/sample_binary.lua -FILE: ../../../third_party/flatbuffers/samples/sample_binary.rs -FILE: ../../../third_party/flatbuffers/samples/sample_binary.swift -FILE: ../../../third_party/flatbuffers/samples/sample_flexbuffers.rs -FILE: ../../../third_party/flatbuffers/samples/sample_flexbuffers_serde.rs -FILE: ../../../third_party/flatbuffers/samples/sample_text.cpp -FILE: ../../../third_party/flatbuffers/samples/sample_text.lobster -FILE: ../../../third_party/flatbuffers/src/BUILD.bazel -FILE: ../../../third_party/flatbuffers/src/annotated_binary_text_gen.cpp -FILE: ../../../third_party/flatbuffers/src/annotated_binary_text_gen.h -FILE: ../../../third_party/flatbuffers/src/bfbs_gen.h -FILE: ../../../third_party/flatbuffers/src/bfbs_gen_lua.cpp -FILE: ../../../third_party/flatbuffers/src/bfbs_gen_lua.h -FILE: ../../../third_party/flatbuffers/src/bfbs_namer.h -FILE: ../../../third_party/flatbuffers/src/binary_annotator.cpp -FILE: ../../../third_party/flatbuffers/src/binary_annotator.h -FILE: ../../../third_party/flatbuffers/src/code_generators.cpp -FILE: ../../../third_party/flatbuffers/src/flatc.cpp -FILE: ../../../third_party/flatbuffers/src/flatc_main.cpp -FILE: ../../../third_party/flatbuffers/src/flathash.cpp -FILE: ../../../third_party/flatbuffers/src/idl_gen_cpp.cpp -FILE: ../../../third_party/flatbuffers/src/idl_gen_csharp.cpp -FILE: ../../../third_party/flatbuffers/src/idl_gen_dart.cpp -FILE: ../../../third_party/flatbuffers/src/idl_gen_fbs.cpp -FILE: ../../../third_party/flatbuffers/src/idl_gen_go.cpp -FILE: ../../../third_party/flatbuffers/src/idl_gen_grpc.cpp -FILE: ../../../third_party/flatbuffers/src/idl_gen_java.cpp -FILE: ../../../third_party/flatbuffers/src/idl_gen_json_schema.cpp -FILE: ../../../third_party/flatbuffers/src/idl_gen_kotlin.cpp -FILE: ../../../third_party/flatbuffers/src/idl_gen_lobster.cpp -FILE: ../../../third_party/flatbuffers/src/idl_gen_lua.cpp -FILE: ../../../third_party/flatbuffers/src/idl_gen_php.cpp -FILE: ../../../third_party/flatbuffers/src/idl_gen_python.cpp -FILE: ../../../third_party/flatbuffers/src/idl_gen_rust.cpp -FILE: ../../../third_party/flatbuffers/src/idl_gen_swift.cpp -FILE: ../../../third_party/flatbuffers/src/idl_gen_text.cpp -FILE: ../../../third_party/flatbuffers/src/idl_gen_ts.cpp -FILE: ../../../third_party/flatbuffers/src/idl_namer.h -FILE: ../../../third_party/flatbuffers/src/idl_parser.cpp -FILE: ../../../third_party/flatbuffers/src/namer.h -FILE: ../../../third_party/flatbuffers/src/reflection.cpp -FILE: ../../../third_party/flatbuffers/src/util.cpp -FILE: ../../../third_party/flatbuffers/swift/BUILD.bazel -FILE: ../../../third_party/flatbuffers/swift/FlatBuffers.podspec -FILE: ../../../third_party/flatbuffers/swift/Package.swift -FILE: ../../../third_party/flatbuffers/swift/Package@swift-5.5.swift -FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/ByteBuffer.swift -FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/Constants.swift -FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/Documentation.docc/Resources/code/fbs/monster_step_1.fbs -FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/Documentation.docc/Resources/code/fbs/monster_step_2.fbs -FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/Documentation.docc/Resources/code/fbs/monster_step_3.fbs -FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/Documentation.docc/Resources/code/fbs/monster_step_4.fbs -FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/Documentation.docc/Resources/code/fbs/monster_step_5.fbs -FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/Documentation.docc/Resources/code/fbs/monster_step_6.fbs -FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/Documentation.docc/Resources/code/fbs/monster_step_7.fbs -FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/Documentation.docc/Resources/code/swift/swift_code_1.swift -FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/Documentation.docc/Resources/code/swift/swift_code_10.swift -FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/Documentation.docc/Resources/code/swift/swift_code_11.swift -FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/Documentation.docc/Resources/code/swift/swift_code_12.swift -FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/Documentation.docc/Resources/code/swift/swift_code_13.swift -FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/Documentation.docc/Resources/code/swift/swift_code_2.swift -FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/Documentation.docc/Resources/code/swift/swift_code_3.swift -FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/Documentation.docc/Resources/code/swift/swift_code_4.swift -FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/Documentation.docc/Resources/code/swift/swift_code_5.swift -FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/Documentation.docc/Resources/code/swift/swift_code_6.swift -FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/Documentation.docc/Resources/code/swift/swift_code_7.swift -FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/Documentation.docc/Resources/code/swift/swift_code_8.swift -FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/Documentation.docc/Resources/code/swift/swift_code_9.swift -FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/Documentation.docc/Resources/images/tutorial_cover_image_1.png -FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/Documentation.docc/Tutorials/Tutorial_Table_of_Contents.tutorial -FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/Documentation.docc/Tutorials/create_your_first_buffer.tutorial -FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/Documentation.docc/Tutorials/creating_flatbuffer_schema.tutorial -FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/Documentation.docc/Tutorials/reading_bytebuffer.tutorial -FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/Enum.swift -FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/FlatBufferBuilder.swift -FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/FlatBufferObject.swift -FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/FlatBuffersUtils.swift -FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/FlatbuffersErrors.swift -FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/Int+extension.swift -FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/Message.swift -FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/Mutable.swift -FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/NativeObject.swift -FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/Offset.swift -FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/Root.swift -FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/String+extension.swift -FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/Struct.swift -FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/Table.swift -FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/TableVerifier.swift -FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/VeriferOptions.swift -FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/Verifiable.swift -FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/Verifier.swift -FILE: ../../../third_party/flatbuffers/ts/BUILD.bazel -FILE: ../../../third_party/flatbuffers/ts/builder.ts -FILE: ../../../third_party/flatbuffers/ts/byte-buffer.ts -FILE: ../../../third_party/flatbuffers/ts/constants.ts -FILE: ../../../third_party/flatbuffers/ts/encoding.ts -FILE: ../../../third_party/flatbuffers/ts/flexbuffers.ts -FILE: ../../../third_party/flatbuffers/ts/flexbuffers/bit-width-util.ts -FILE: ../../../third_party/flatbuffers/ts/flexbuffers/bit-width.ts -FILE: ../../../third_party/flatbuffers/ts/flexbuffers/builder.ts -FILE: ../../../third_party/flatbuffers/ts/flexbuffers/flexbuffers-util.ts -FILE: ../../../third_party/flatbuffers/ts/flexbuffers/reference-util.ts -FILE: ../../../third_party/flatbuffers/ts/flexbuffers/reference.ts -FILE: ../../../third_party/flatbuffers/ts/flexbuffers/stack-value.ts -FILE: ../../../third_party/flatbuffers/ts/flexbuffers/value-type-util.ts -FILE: ../../../third_party/flatbuffers/ts/flexbuffers/value-type.ts -FILE: ../../../third_party/flatbuffers/ts/index.ts -FILE: ../../../third_party/flatbuffers/ts/types.ts -FILE: ../../../third_party/flatbuffers/ts/utils.ts -FILE: ../../../third_party/flatbuffers/tsconfig.json -FILE: ../../../third_party/flatbuffers/tsconfig.mjs.json -FILE: ../../../third_party/flatbuffers/typescript.bzl -FILE: ../../../third_party/flatbuffers/yarn.lock -FILE: ../../../third_party/fuchsia-vulkan/cmake/cmake_uninstall.cmake.in -FILE: ../../../third_party/fuchsia-vulkan/include/vk_video/vulkan_video_codec_h264std.h -FILE: ../../../third_party/fuchsia-vulkan/include/vk_video/vulkan_video_codec_h264std_decode.h -FILE: ../../../third_party/fuchsia-vulkan/include/vk_video/vulkan_video_codec_h264std_encode.h -FILE: ../../../third_party/fuchsia-vulkan/include/vk_video/vulkan_video_codec_h265std.h -FILE: ../../../third_party/fuchsia-vulkan/include/vk_video/vulkan_video_codec_h265std_decode.h -FILE: ../../../third_party/fuchsia-vulkan/include/vk_video/vulkan_video_codec_h265std_encode.h -FILE: ../../../third_party/fuchsia-vulkan/include/vk_video/vulkan_video_codecs_common.h -FILE: ../../../third_party/fuchsia-vulkan/include/vulkan/vk_icd.h -FILE: ../../../third_party/fuchsia-vulkan/include/vulkan/vk_layer.h -FILE: ../../../third_party/fuchsia-vulkan/include/vulkan/vk_platform.h -FILE: ../../../third_party/fuchsia-vulkan/include/vulkan/vk_sdk_platform.h -FILE: ../../../third_party/fuchsia-vulkan/include/vulkan/vulkan.h -FILE: ../../../third_party/fuchsia-vulkan/include/vulkan/vulkan.hpp -FILE: ../../../third_party/fuchsia-vulkan/include/vulkan/vulkan_android.h -FILE: ../../../third_party/fuchsia-vulkan/include/vulkan/vulkan_beta.h -FILE: ../../../third_party/fuchsia-vulkan/include/vulkan/vulkan_core.h -FILE: ../../../third_party/fuchsia-vulkan/include/vulkan/vulkan_directfb.h -FILE: ../../../third_party/fuchsia-vulkan/include/vulkan/vulkan_enums.hpp -FILE: ../../../third_party/fuchsia-vulkan/include/vulkan/vulkan_fuchsia.h -FILE: ../../../third_party/fuchsia-vulkan/include/vulkan/vulkan_funcs.hpp -FILE: ../../../third_party/fuchsia-vulkan/include/vulkan/vulkan_ggp.h -FILE: ../../../third_party/fuchsia-vulkan/include/vulkan/vulkan_handles.hpp -FILE: ../../../third_party/fuchsia-vulkan/include/vulkan/vulkan_ios.h -FILE: ../../../third_party/fuchsia-vulkan/include/vulkan/vulkan_macos.h -FILE: ../../../third_party/fuchsia-vulkan/include/vulkan/vulkan_metal.h -FILE: ../../../third_party/fuchsia-vulkan/include/vulkan/vulkan_raii.hpp -FILE: ../../../third_party/fuchsia-vulkan/include/vulkan/vulkan_screen.h -FILE: ../../../third_party/fuchsia-vulkan/include/vulkan/vulkan_structs.hpp -FILE: ../../../third_party/fuchsia-vulkan/include/vulkan/vulkan_vi.h -FILE: ../../../third_party/fuchsia-vulkan/include/vulkan/vulkan_wayland.h -FILE: ../../../third_party/fuchsia-vulkan/include/vulkan/vulkan_win32.h -FILE: ../../../third_party/fuchsia-vulkan/include/vulkan/vulkan_xcb.h -FILE: ../../../third_party/fuchsia-vulkan/include/vulkan/vulkan_xlib.h -FILE: ../../../third_party/fuchsia-vulkan/include/vulkan/vulkan_xlib_xrandr.h -FILE: ../../../third_party/fuchsia-vulkan/registry/validusage.json -FILE: ../../../third_party/fuchsia-vulkan/registry/vk.xml -FILE: ../../../third_party/khronos/EGL/egl.h -FILE: ../../../third_party/khronos/EGL/eglext.h -FILE: ../../../third_party/khronos/EGL/eglplatform.h -FILE: ../../../third_party/khronos/GLES2/gl2platform.h -FILE: ../../../third_party/khronos/GLES3/gl3platform.h -FILE: ../../../third_party/libwebp/gradlew -FILE: ../../../third_party/pkg/quiver/lib/async.dart -FILE: ../../../third_party/pkg/quiver/lib/cache.dart -FILE: ../../../third_party/pkg/quiver/lib/check.dart -FILE: ../../../third_party/pkg/quiver/lib/collection.dart -FILE: ../../../third_party/pkg/quiver/lib/core.dart -FILE: ../../../third_party/pkg/quiver/lib/io.dart -FILE: ../../../third_party/pkg/quiver/lib/iterables.dart -FILE: ../../../third_party/pkg/quiver/lib/mirrors.dart -FILE: ../../../third_party/pkg/quiver/lib/pattern.dart -FILE: ../../../third_party/pkg/quiver/lib/src/async/collect.dart -FILE: ../../../third_party/pkg/quiver/lib/src/async/concat.dart -FILE: ../../../third_party/pkg/quiver/lib/src/async/countdown_timer.dart -FILE: ../../../third_party/pkg/quiver/lib/src/async/enumerate.dart -FILE: ../../../third_party/pkg/quiver/lib/src/async/future_stream.dart -FILE: ../../../third_party/pkg/quiver/lib/src/async/iteration.dart -FILE: ../../../third_party/pkg/quiver/lib/src/async/metronome.dart -FILE: ../../../third_party/pkg/quiver/lib/src/async/stream_buffer.dart -FILE: ../../../third_party/pkg/quiver/lib/src/async/stream_router.dart -FILE: ../../../third_party/pkg/quiver/lib/src/async/string.dart -FILE: ../../../third_party/pkg/quiver/lib/src/cache/cache.dart -FILE: ../../../third_party/pkg/quiver/lib/src/cache/map_cache.dart -FILE: ../../../third_party/pkg/quiver/lib/src/collection/bimap.dart -FILE: ../../../third_party/pkg/quiver/lib/src/collection/delegates/iterable.dart -FILE: ../../../third_party/pkg/quiver/lib/src/collection/delegates/list.dart -FILE: ../../../third_party/pkg/quiver/lib/src/collection/delegates/map.dart -FILE: ../../../third_party/pkg/quiver/lib/src/collection/delegates/queue.dart -FILE: ../../../third_party/pkg/quiver/lib/src/collection/delegates/set.dart -FILE: ../../../third_party/pkg/quiver/lib/src/collection/lru_map.dart -FILE: ../../../third_party/pkg/quiver/lib/src/collection/multimap.dart -FILE: ../../../third_party/pkg/quiver/lib/src/collection/treeset.dart -FILE: ../../../third_party/pkg/quiver/lib/src/core/hash.dart -FILE: ../../../third_party/pkg/quiver/lib/src/core/optional.dart -FILE: ../../../third_party/pkg/quiver/lib/src/iterables/concat.dart -FILE: ../../../third_party/pkg/quiver/lib/src/iterables/count.dart -FILE: ../../../third_party/pkg/quiver/lib/src/iterables/cycle.dart -FILE: ../../../third_party/pkg/quiver/lib/src/iterables/enumerate.dart -FILE: ../../../third_party/pkg/quiver/lib/src/iterables/generating_iterable.dart -FILE: ../../../third_party/pkg/quiver/lib/src/iterables/infinite_iterable.dart -FILE: ../../../third_party/pkg/quiver/lib/src/iterables/merge.dart -FILE: ../../../third_party/pkg/quiver/lib/src/iterables/min_max.dart -FILE: ../../../third_party/pkg/quiver/lib/src/iterables/partition.dart -FILE: ../../../third_party/pkg/quiver/lib/src/iterables/range.dart -FILE: ../../../third_party/pkg/quiver/lib/src/iterables/zip.dart -FILE: ../../../third_party/pkg/quiver/lib/src/time/clock.dart -FILE: ../../../third_party/pkg/quiver/lib/src/time/duration_unit_constants.dart -FILE: ../../../third_party/pkg/quiver/lib/src/time/util.dart -FILE: ../../../third_party/pkg/quiver/lib/strings.dart -FILE: ../../../third_party/pkg/quiver/lib/time.dart -FILE: ../../../third_party/vulkan-deps/vulkan-headers/src/include/vk_video/vulkan_video_codec_h264std.h -FILE: ../../../third_party/vulkan-deps/vulkan-headers/src/include/vk_video/vulkan_video_codec_h264std_decode.h -FILE: ../../../third_party/vulkan-deps/vulkan-headers/src/include/vk_video/vulkan_video_codec_h264std_encode.h -FILE: ../../../third_party/vulkan-deps/vulkan-headers/src/include/vk_video/vulkan_video_codec_h265std.h -FILE: ../../../third_party/vulkan-deps/vulkan-headers/src/include/vk_video/vulkan_video_codec_h265std_decode.h -FILE: ../../../third_party/vulkan-deps/vulkan-headers/src/include/vk_video/vulkan_video_codec_h265std_encode.h -FILE: ../../../third_party/vulkan-deps/vulkan-headers/src/include/vk_video/vulkan_video_codecs_common.h -FILE: ../../../third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vk_icd.h -FILE: ../../../third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vk_layer.h -FILE: ../../../third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vk_platform.h -FILE: ../../../third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vk_sdk_platform.h -FILE: ../../../third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan.h -FILE: ../../../third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan.hpp -FILE: ../../../third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_android.h -FILE: ../../../third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_beta.h -FILE: ../../../third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_core.h -FILE: ../../../third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_directfb.h -FILE: ../../../third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_enums.hpp -FILE: ../../../third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_format_traits.hpp -FILE: ../../../third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_fuchsia.h -FILE: ../../../third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_funcs.hpp -FILE: ../../../third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_ggp.h -FILE: ../../../third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_handles.hpp -FILE: ../../../third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_hash.hpp -FILE: ../../../third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_ios.h -FILE: ../../../third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_macos.h -FILE: ../../../third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_metal.h -FILE: ../../../third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_raii.hpp -FILE: ../../../third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_screen.h -FILE: ../../../third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_structs.hpp -FILE: ../../../third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_vi.h -FILE: ../../../third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_wayland.h -FILE: ../../../third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_win32.h -FILE: ../../../third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_xcb.h -FILE: ../../../third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_xlib.h -FILE: ../../../third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_xlib_xrandr.h -FILE: ../../../third_party/wuffs/release/c/wuffs-v0.2.c -FILE: ../../../third_party/wuffs/release/c/wuffs-v0.3.c ----------------------------------------------------------------------------------------------------- -Apache License -Version 2.0, January 2004 -http://www.apache.org/licenses - -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - -1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - -2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - -3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - -4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - -5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - -6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - -7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - -8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - -9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - -END OF TERMS AND CONDITIONS - -APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - -Copyright [yyyy] [name of copyright owner] - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -==================================================================================================== - -==================================================================================================== -LIBRARY: abseil-cpp -ORIGIN: ../../../third_party/abseil-cpp/LICENSE -TYPE: LicenseType.apache -FILE: ../../../third_party/abseil-cpp/CMake/Googletest/CMakeLists.txt.in -FILE: ../../../third_party/abseil-cpp/CMake/abslConfig.cmake.in -FILE: ../../../third_party/abseil-cpp/DIR_METADATA -FILE: ../../../third_party/abseil-cpp/absl/copts/GENERATED_copts.bzl -FILE: ../../../third_party/abseil-cpp/absl/copts/configure_copts.bzl -FILE: ../../../third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc -FILE: ../../../third_party/abseil-cpp/absl/debugging/internal/stacktrace_unimplemented-inl.inc -FILE: ../../../third_party/abseil-cpp/absl/flags/flag_benchmark.lds -FILE: ../../../third_party/abseil-cpp/absl/random/gaussian_distribution.cc -FILE: ../../../third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h -FILE: ../../../third_party/abseil-cpp/absl/time/internal/get_current_time_posix.inc -FILE: ../../../third_party/abseil-cpp/absl/time/internal/zoneinfo.inc -FILE: ../../../third_party/abseil-cpp/patches/0001-Turn-on-hardened-mode.patch -FILE: ../../../third_party/abseil-cpp/patches/0002-delete-unprefixed-annotations.patch -FILE: ../../../third_party/abseil-cpp/patches/0003-delete-static-initializer-in-stacktrace.patch -FILE: ../../../third_party/abseil-cpp/symbols_arm64_dbg.def -FILE: ../../../third_party/abseil-cpp/symbols_arm64_rel.def -FILE: ../../../third_party/abseil-cpp/symbols_x64_dbg.def -FILE: ../../../third_party/abseil-cpp/symbols_x64_rel.def -FILE: ../../../third_party/abseil-cpp/symbols_x64_rel_asan.def -FILE: ../../../third_party/abseil-cpp/symbols_x86_dbg.def -FILE: ../../../third_party/abseil-cpp/symbols_x86_rel.def ----------------------------------------------------------------------------------------------------- -Apache License -Version 2.0, January 2004 -https://www.apache.org/licenses - -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - -1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - -2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - -3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - -4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - -5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - -6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - -7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - -8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - -9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - -END OF TERMS AND CONDITIONS - -APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - -Copyright [yyyy] [name of copyright owner] - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - https://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -==================================================================================================== - -==================================================================================================== -LIBRARY: abseil-cpp -ORIGIN: ../../../third_party/abseil-cpp/absl_hardening_test.cc + ../../../LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/abseil-cpp/absl_hardening_test.cc ----------------------------------------------------------------------------------------------------- -Copyright 2020 The Chromium Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: angle -LIBRARY: base -ORIGIN: ../../../third_party/angle/include/EGL/eglext_angle.h + ../../../third_party/angle/LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/angle/include/EGL/eglext_angle.h -FILE: ../../../third_party/angle/include/GLES2/gl2ext_angle.h -FILE: ../../../third_party/angle/samples/multiview/Multiview.cpp -FILE: ../../../third_party/angle/src/common/PackedCLEnums_autogen.cpp -FILE: ../../../third_party/angle/src/common/PackedCLEnums_autogen.h -FILE: ../../../third_party/angle/src/common/PackedEGLEnums_autogen.cpp -FILE: ../../../third_party/angle/src/common/PackedEGLEnums_autogen.h -FILE: ../../../third_party/angle/src/common/PackedEnums.h -FILE: ../../../third_party/angle/src/common/PackedGLEnums_autogen.cpp -FILE: ../../../third_party/angle/src/common/PackedGLEnums_autogen.h -FILE: ../../../third_party/angle/src/common/aligned_memory.cpp -FILE: ../../../third_party/angle/src/common/aligned_memory.h -FILE: ../../../third_party/angle/src/common/aligned_memory_unittest.cpp -FILE: ../../../third_party/angle/src/common/angleutils_unittest.cpp -FILE: ../../../third_party/angle/src/common/third_party/base/anglebase/base_export.h -FILE: ../../../third_party/angle/src/common/third_party/base/anglebase/macros.h -FILE: ../../../third_party/angle/src/common/third_party/base/anglebase/sys_byteorder.h -FILE: ../../../third_party/angle/src/common/uniform_type_info_autogen.cpp -FILE: ../../../third_party/angle/src/compiler/translator/Declarator.cpp -FILE: ../../../third_party/angle/src/compiler/translator/Declarator.h -FILE: ../../../third_party/angle/src/compiler/translator/ExtensionBehavior.cpp -FILE: ../../../third_party/angle/src/compiler/translator/HashNames.cpp -FILE: ../../../third_party/angle/src/compiler/translator/ImageFunctionHLSL.cpp -FILE: ../../../third_party/angle/src/compiler/translator/ImageFunctionHLSL.h -FILE: ../../../third_party/angle/src/compiler/translator/IsASTDepthBelowLimit.cpp -FILE: ../../../third_party/angle/src/compiler/translator/IsASTDepthBelowLimit.h -FILE: ../../../third_party/angle/src/compiler/translator/OutputTree.h -FILE: ../../../third_party/angle/src/compiler/translator/StaticType.h -FILE: ../../../third_party/angle/src/compiler/translator/Symbol.cpp -FILE: ../../../third_party/angle/src/compiler/translator/Symbol.h -FILE: ../../../third_party/angle/src/compiler/translator/SymbolUniqueId.cpp -FILE: ../../../third_party/angle/src/compiler/translator/SymbolUniqueId.h -FILE: ../../../third_party/angle/src/compiler/translator/emulated_builtin_functions_hlsl_autogen.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/ClampPointSize.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/ClampPointSize.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/DeclareAndInitBuiltinsForInstancedMultiview.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/DeclareAndInitBuiltinsForInstancedMultiview.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/RemoveArrayLengthMethod.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/RemoveArrayLengthMethod.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/RemoveUnreferencedVariables.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/RemoveUnreferencedVariables.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/d3d/WrapSwitchStatementsInBlocks.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/d3d/WrapSwitchStatementsInBlocks.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/gl/ClampFragDepth.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/gl/ClampFragDepth.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_util/FindMain.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_util/FindMain.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_util/IntermNode_util.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_util/IntermNode_util.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_util/IntermTraverse.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_util/RunAtTheEndOfShader.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_util/RunAtTheEndOfShader.h -FILE: ../../../third_party/angle/src/gpu_info_util/SystemInfo_macos.mm -FILE: ../../../third_party/angle/src/gpu_info_util/SystemInfo_unittest.cpp -FILE: ../../../third_party/angle/src/libANGLE/ErrorStrings.h -FILE: ../../../third_party/angle/src/libANGLE/LoggingAnnotator.cpp -FILE: ../../../third_party/angle/src/libANGLE/LoggingAnnotator.h -FILE: ../../../third_party/angle/src/libANGLE/MemoryProgramCache.cpp -FILE: ../../../third_party/angle/src/libANGLE/MemoryProgramCache.h -FILE: ../../../third_party/angle/src/libANGLE/ProgramLinkedResources.cpp -FILE: ../../../third_party/angle/src/libANGLE/ProgramLinkedResources.h -FILE: ../../../third_party/angle/src/libANGLE/ProgramPipeline.cpp -FILE: ../../../third_party/angle/src/libANGLE/ProgramPipeline.h -FILE: ../../../third_party/angle/src/libANGLE/ResourceMap.h -FILE: ../../../third_party/angle/src/libANGLE/SizedMRUCache.h -FILE: ../../../third_party/angle/src/libANGLE/SizedMRUCache_unittest.cpp -FILE: ../../../third_party/angle/src/libANGLE/VertexArray_unittest.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/ProgramPipelineImpl.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/ProgramPipeline11.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/ProgramPipeline11.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/ResourceManager11.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/ResourceManager11.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/Clear11.hlsl -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/ClearMultiviewGL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/ClearMultiviewGL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/DispatchTableGL_autogen.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/DispatchTableGL_autogen.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/ProgramPipelineGL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/ProgramPipelineGL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/cgl/IOSurfaceSurfaceCGL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/egl/egl_utils.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/egl/egl_utils.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/null_functions.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/null_functions.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/wgl/SurfaceWGL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/null/ProgramPipelineNULL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/null/ProgramPipelineNULL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/ProgramPipelineVk.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/ProgramPipelineVk.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/ResourceVk.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/ResourceVk.h -FILE: ../../../third_party/angle/src/libGL/proc_table_wgl.h -FILE: ../../../third_party/angle/src/libGLESv2/proc_table_egl.h ----------------------------------------------------------------------------------------------------- -Copyright 2017 The ANGLE Project Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - - Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. - Ltd., nor the names of their contributors may be used to endorse - or promote products derived from this software without specific - prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: angle -LIBRARY: base -ORIGIN: ../../../third_party/angle/src/common/third_party/base/anglebase/logging.h + ../../../third_party/angle/LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/angle/src/common/Color.h -FILE: ../../../third_party/angle/src/common/Color.inc -FILE: ../../../third_party/angle/src/common/third_party/base/anglebase/logging.h -FILE: ../../../third_party/angle/src/common/vector_utils.h -FILE: ../../../third_party/angle/src/common/vector_utils_unittest.cpp -FILE: ../../../third_party/angle/src/common/vulkan/vk_headers.h -FILE: ../../../third_party/angle/src/compiler/fuzz/translator_fuzzer.cpp -FILE: ../../../third_party/angle/src/compiler/translator/ConstantUnion.cpp -FILE: ../../../third_party/angle/src/compiler/translator/OutputVulkanGLSL.cpp -FILE: ../../../third_party/angle/src/compiler/translator/OutputVulkanGLSL.h -FILE: ../../../third_party/angle/src/compiler/translator/Severity.h -FILE: ../../../third_party/angle/src/compiler/translator/TextureFunctionHLSL.cpp -FILE: ../../../third_party/angle/src/compiler/translator/TextureFunctionHLSL.h -FILE: ../../../third_party/angle/src/compiler/translator/TranslatorVulkan.cpp -FILE: ../../../third_party/angle/src/compiler/translator/TranslatorVulkan.h -FILE: ../../../third_party/angle/src/compiler/translator/ValidateMaxParameters.cpp -FILE: ../../../third_party/angle/src/compiler/translator/ValidateMaxParameters.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/DeferGlobalInitializers.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/DeferGlobalInitializers.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/RemoveInvariantDeclaration.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/RemoveInvariantDeclaration.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/RewriteTexelFetchOffset.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/RewriteTexelFetchOffset.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/SimplifyLoopConditions.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/SimplifyLoopConditions.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/SplitSequenceOperator.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/SplitSequenceOperator.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/apple/AddAndTrueToLoopCondition.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/apple/AddAndTrueToLoopCondition.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/apple/RewriteUnaryMinusOperatorFloat.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/apple/RewriteUnaryMinusOperatorFloat.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/d3d/AddDefaultReturnStatements.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/d3d/AddDefaultReturnStatements.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/d3d/BreakVariableAliasingInInnerLoops.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/d3d/BreakVariableAliasingInInnerLoops.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/d3d/ExpandIntegerPowExpressions.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/d3d/ExpandIntegerPowExpressions.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/d3d/RewriteUnaryMinusOperatorInt.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/d3d/RewriteUnaryMinusOperatorInt.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/gl/UseInterfaceBlockFields.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/gl/UseInterfaceBlockFields.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_util/IntermNodePatternMatcher.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_util/IntermNodePatternMatcher.h -FILE: ../../../third_party/angle/src/image_util/imageformats.cpp -FILE: ../../../third_party/angle/src/libANGLE/Observer.h -FILE: ../../../third_party/angle/src/libANGLE/Observer_unittest.cpp -FILE: ../../../third_party/angle/src/libANGLE/Stream.cpp -FILE: ../../../third_party/angle/src/libANGLE/Stream.h -FILE: ../../../third_party/angle/src/libANGLE/Thread.cpp -FILE: ../../../third_party/angle/src/libANGLE/Thread.h -FILE: ../../../third_party/angle/src/libANGLE/VaryingPacking_unittest.cpp -FILE: ../../../third_party/angle/src/libANGLE/WorkerThread.cpp -FILE: ../../../third_party/angle/src/libANGLE/WorkerThread.h -FILE: ../../../third_party/angle/src/libANGLE/WorkerThread_unittest.cpp -FILE: ../../../third_party/angle/src/libANGLE/es3_copy_conversion_table_autogen.cpp -FILE: ../../../third_party/angle/src/libANGLE/format_map_autogen.cpp -FILE: ../../../third_party/angle/src/libANGLE/queryutils.cpp -FILE: ../../../third_party/angle/src/libANGLE/queryutils.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/ContextImpl.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/ContextImpl.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/EGLImplFactory.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/Format.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/FramebufferAttachmentObjectImpl.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/StreamProducerImpl.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/TextureImpl.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/HLSLCompiler.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/NativeWindowD3D.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/NativeWindowD3D.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/SwapChainD3D.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/Context11.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/Context11.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/NativeWindow11.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/StreamProducerD3DTexture.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/StreamProducerD3DTexture.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/VertexArray11.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/texture_format_table.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/texture_format_table_utils.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/win32/NativeWindow11Win32.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/win32/NativeWindow11Win32.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/winrt/NativeWindow11WinRT.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/winrt/NativeWindow11WinRT.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/Context9.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/Context9.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/NativeWindow9.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/NativeWindow9.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/driver_utils.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/driver_utils.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/ContextGL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/ContextGL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/egl/DisplayEGL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/egl/DisplayEGL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/egl/FunctionsEGL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/egl/FunctionsEGL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/egl/FunctionsEGLDL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/egl/FunctionsEGLDL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/egl/PbufferSurfaceEGL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/egl/PbufferSurfaceEGL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/egl/SurfaceEGL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/egl/SurfaceEGL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/egl/WindowSurfaceEGL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/egl/WindowSurfaceEGL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/egl/android/DisplayAndroid.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/egl/android/DisplayAndroid.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/egl/functionsegl_typedefs.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/egl/gbm/DisplayGbm.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/egl/gbm/DisplayGbm.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/egl/gbm/SurfaceGbm.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/egl/gbm/SurfaceGbm.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/glx/SurfaceGLX.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/null/BufferNULL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/null/BufferNULL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/null/CompilerNULL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/null/CompilerNULL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/null/ContextNULL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/null/ContextNULL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/null/DeviceNULL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/null/DeviceNULL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/null/DisplayNULL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/null/DisplayNULL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/null/FenceNVNULL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/null/FenceNVNULL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/null/FramebufferNULL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/null/FramebufferNULL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/null/ImageNULL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/null/ImageNULL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/null/ProgramNULL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/null/ProgramNULL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/null/QueryNULL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/null/QueryNULL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/null/RenderbufferNULL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/null/RenderbufferNULL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/null/SamplerNULL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/null/SamplerNULL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/null/ShaderNULL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/null/ShaderNULL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/null/SurfaceNULL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/null/SurfaceNULL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/null/SyncNULL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/null/SyncNULL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/null/TextureNULL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/null/TextureNULL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/null/TransformFeedbackNULL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/null/TransformFeedbackNULL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/null/VertexArrayNULL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/null/VertexArrayNULL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/renderer_utils.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/renderer_utils.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/BufferVk.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/BufferVk.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/CompilerVk.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/CompilerVk.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/ContextVk.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/ContextVk.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/DeviceVk.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/DeviceVk.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/DisplayVk.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/DisplayVk.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/FenceNVVk.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/FenceNVVk.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/FramebufferVk.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/FramebufferVk.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/GlslangWrapperVk.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/GlslangWrapperVk.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/ImageVk.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/ImageVk.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/ProgramVk.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/ProgramVk.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/QueryVk.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/QueryVk.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/RenderTargetVk.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/RenderTargetVk.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/RenderbufferVk.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/RenderbufferVk.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/RendererVk.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/RendererVk.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/SamplerVk.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/SamplerVk.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/ShaderVk.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/ShaderVk.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/SurfaceVk.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/SurfaceVk.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/SyncVk.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/SyncVk.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/TextureVk.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/TextureVk.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/TransformFeedbackVk.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/TransformFeedbackVk.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/VertexArrayVk.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/VertexArrayVk.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/linux/xcb/DisplayVkXcb.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/linux/xcb/DisplayVkXcb.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/linux/xcb/WindowSurfaceVkXcb.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/linux/xcb/WindowSurfaceVkXcb.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/vk_format_utils.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/vk_format_utils.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/vk_utils.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/vk_utils.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/win32/DisplayVkWin32.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/win32/DisplayVkWin32.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/win32/WindowSurfaceVkWin32.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/win32/WindowSurfaceVkWin32.h -FILE: ../../../third_party/angle/src/libANGLE/validationEGL.cpp -FILE: ../../../third_party/angle/src/libANGLE/validationES31.cpp -FILE: ../../../third_party/angle/util/android/AndroidPixmap.cpp -FILE: ../../../third_party/angle/util/android/AndroidWindow.cpp -FILE: ../../../third_party/angle/util/android/AndroidWindow.h -FILE: ../../../third_party/angle/util/ozone/OzonePixmap.cpp -FILE: ../../../third_party/angle/util/ozone/OzoneWindow.cpp -FILE: ../../../third_party/angle/util/ozone/OzoneWindow.h ----------------------------------------------------------------------------------------------------- -Copyright 2016 The ANGLE Project Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - - Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. - Ltd., nor the names of their contributors may be used to endorse - or promote products derived from this software without specific - prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: angle -LIBRARY: json -LIBRARY: rapidjson -ORIGIN: ../../../third_party/angle/include/GLES2/gl2.h -TYPE: LicenseType.mit -FILE: ../../../third_party/angle/include/GLES2/gl2.h -FILE: ../../../third_party/angle/include/GLES2/gl2ext.h -FILE: ../../../third_party/angle/include/GLES3/gl3.h -FILE: ../../../third_party/angle/include/GLES3/gl31.h -FILE: ../../../third_party/angle/include/GLES3/gl32.h -FILE: ../../../third_party/json/include/nlohmann/adl_serializer.hpp -FILE: ../../../third_party/json/include/nlohmann/byte_container_with_subtype.hpp -FILE: ../../../third_party/json/include/nlohmann/detail/abi_macros.hpp -FILE: ../../../third_party/json/include/nlohmann/detail/conversions/from_json.hpp -FILE: ../../../third_party/json/include/nlohmann/detail/conversions/to_chars.hpp -FILE: ../../../third_party/json/include/nlohmann/detail/conversions/to_json.hpp -FILE: ../../../third_party/json/include/nlohmann/detail/exceptions.hpp -FILE: ../../../third_party/json/include/nlohmann/detail/hash.hpp -FILE: ../../../third_party/json/include/nlohmann/detail/input/binary_reader.hpp -FILE: ../../../third_party/json/include/nlohmann/detail/input/input_adapters.hpp -FILE: ../../../third_party/json/include/nlohmann/detail/input/json_sax.hpp -FILE: ../../../third_party/json/include/nlohmann/detail/input/lexer.hpp -FILE: ../../../third_party/json/include/nlohmann/detail/input/parser.hpp -FILE: ../../../third_party/json/include/nlohmann/detail/input/position_t.hpp -FILE: ../../../third_party/json/include/nlohmann/detail/iterators/internal_iterator.hpp -FILE: ../../../third_party/json/include/nlohmann/detail/iterators/iter_impl.hpp -FILE: ../../../third_party/json/include/nlohmann/detail/iterators/iteration_proxy.hpp -FILE: ../../../third_party/json/include/nlohmann/detail/iterators/iterator_traits.hpp -FILE: ../../../third_party/json/include/nlohmann/detail/iterators/json_reverse_iterator.hpp -FILE: ../../../third_party/json/include/nlohmann/detail/iterators/primitive_iterator.hpp -FILE: ../../../third_party/json/include/nlohmann/detail/json_pointer.hpp -FILE: ../../../third_party/json/include/nlohmann/detail/json_ref.hpp -FILE: ../../../third_party/json/include/nlohmann/detail/macro_scope.hpp -FILE: ../../../third_party/json/include/nlohmann/detail/macro_unscope.hpp -FILE: ../../../third_party/json/include/nlohmann/detail/meta/call_std/begin.hpp -FILE: ../../../third_party/json/include/nlohmann/detail/meta/call_std/end.hpp -FILE: ../../../third_party/json/include/nlohmann/detail/meta/cpp_future.hpp -FILE: ../../../third_party/json/include/nlohmann/detail/meta/detected.hpp -FILE: ../../../third_party/json/include/nlohmann/detail/meta/identity_tag.hpp -FILE: ../../../third_party/json/include/nlohmann/detail/meta/is_sax.hpp -FILE: ../../../third_party/json/include/nlohmann/detail/meta/std_fs.hpp -FILE: ../../../third_party/json/include/nlohmann/detail/meta/type_traits.hpp -FILE: ../../../third_party/json/include/nlohmann/detail/meta/void_t.hpp -FILE: ../../../third_party/json/include/nlohmann/detail/output/binary_writer.hpp -FILE: ../../../third_party/json/include/nlohmann/detail/output/output_adapters.hpp -FILE: ../../../third_party/json/include/nlohmann/detail/output/serializer.hpp -FILE: ../../../third_party/json/include/nlohmann/detail/string_concat.hpp -FILE: ../../../third_party/json/include/nlohmann/detail/string_escape.hpp -FILE: ../../../third_party/json/include/nlohmann/detail/value_t.hpp -FILE: ../../../third_party/json/include/nlohmann/json.hpp -FILE: ../../../third_party/json/include/nlohmann/json_fwd.hpp -FILE: ../../../third_party/json/include/nlohmann/ordered_map.hpp -FILE: ../../../third_party/json/include/nlohmann/thirdparty/hedley/hedley.hpp -FILE: ../../../third_party/json/include/nlohmann/thirdparty/hedley/hedley_undef.hpp -FILE: ../../../third_party/json/single_include/nlohmann/json.hpp -FILE: ../../../third_party/json/single_include/nlohmann/json_fwd.hpp -FILE: ../../../third_party/rapidjson/include/rapidjson/allocators.h -FILE: ../../../third_party/rapidjson/include/rapidjson/cursorstreamwrapper.h -FILE: ../../../third_party/rapidjson/include/rapidjson/document.h -FILE: ../../../third_party/rapidjson/include/rapidjson/encodedstream.h -FILE: ../../../third_party/rapidjson/include/rapidjson/encodings.h -FILE: ../../../third_party/rapidjson/include/rapidjson/error/en.h -FILE: ../../../third_party/rapidjson/include/rapidjson/error/error.h -FILE: ../../../third_party/rapidjson/include/rapidjson/filereadstream.h -FILE: ../../../third_party/rapidjson/include/rapidjson/filewritestream.h -FILE: ../../../third_party/rapidjson/include/rapidjson/fwd.h -FILE: ../../../third_party/rapidjson/include/rapidjson/internal/biginteger.h -FILE: ../../../third_party/rapidjson/include/rapidjson/internal/diyfp.h -FILE: ../../../third_party/rapidjson/include/rapidjson/internal/dtoa.h -FILE: ../../../third_party/rapidjson/include/rapidjson/internal/ieee754.h -FILE: ../../../third_party/rapidjson/include/rapidjson/internal/itoa.h -FILE: ../../../third_party/rapidjson/include/rapidjson/internal/meta.h -FILE: ../../../third_party/rapidjson/include/rapidjson/internal/pow10.h -FILE: ../../../third_party/rapidjson/include/rapidjson/internal/regex.h -FILE: ../../../third_party/rapidjson/include/rapidjson/internal/stack.h -FILE: ../../../third_party/rapidjson/include/rapidjson/internal/strfunc.h -FILE: ../../../third_party/rapidjson/include/rapidjson/internal/strtod.h -FILE: ../../../third_party/rapidjson/include/rapidjson/internal/swap.h -FILE: ../../../third_party/rapidjson/include/rapidjson/istreamwrapper.h -FILE: ../../../third_party/rapidjson/include/rapidjson/memorybuffer.h -FILE: ../../../third_party/rapidjson/include/rapidjson/memorystream.h -FILE: ../../../third_party/rapidjson/include/rapidjson/ostreamwrapper.h -FILE: ../../../third_party/rapidjson/include/rapidjson/pointer.h -FILE: ../../../third_party/rapidjson/include/rapidjson/prettywriter.h -FILE: ../../../third_party/rapidjson/include/rapidjson/rapidjson.h -FILE: ../../../third_party/rapidjson/include/rapidjson/reader.h -FILE: ../../../third_party/rapidjson/include/rapidjson/schema.h -FILE: ../../../third_party/rapidjson/include/rapidjson/stream.h -FILE: ../../../third_party/rapidjson/include/rapidjson/stringbuffer.h -FILE: ../../../third_party/rapidjson/include/rapidjson/writer.h ----------------------------------------------------------------------------------------------------- -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -==================================================================================================== - -==================================================================================================== -LIBRARY: angle -LIBRARY: khronos -ORIGIN: ../../../third_party/angle/include/GLES/gl.h -TYPE: LicenseType.unknown -FILE: ../../../third_party/angle/include/GLES/gl.h -FILE: ../../../third_party/angle/include/WGL/wgl.h -FILE: ../../../third_party/khronos/GLES2/gl2.h -FILE: ../../../third_party/khronos/GLES2/gl2ext.h -FILE: ../../../third_party/khronos/GLES3/gl3.h ----------------------------------------------------------------------------------------------------- -Copyright (c) 2013-2018 The Khronos Group Inc. - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and/or associated documentation files (the -"Materials"), to deal in the Materials without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Materials, and to -permit persons to whom the Materials are furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Materials. - -THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. -==================================================================================================== - -==================================================================================================== -LIBRARY: angle -LIBRARY: khronos -ORIGIN: ../../../third_party/angle/src/third_party/khronos/GL/wglext.h -TYPE: LicenseType.unknown -FILE: ../../../third_party/angle/src/third_party/khronos/GL/wglext.h -FILE: ../../../third_party/khronos/noninclude/GL/glext.h -FILE: ../../../third_party/khronos/noninclude/GL/wglext.h ----------------------------------------------------------------------------------------------------- -Copyright (c) 2013-2014 The Khronos Group Inc. - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and/or associated documentation files (the -"Materials"), to deal in the Materials without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Materials, and to -permit persons to whom the Materials are furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Materials. - -THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. -==================================================================================================== - -==================================================================================================== -LIBRARY: angle -LIBRARY: xxhash -ORIGIN: ../../../third_party/angle/include/platform/Feature.h + ../../../third_party/angle/LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/angle/WATCHLISTS -FILE: ../../../third_party/angle/include/platform/Feature.h -FILE: ../../../third_party/angle/include/vulkan/vulkan_fuchsia_ext.h -FILE: ../../../third_party/angle/samples/capture_replay/CaptureReplay.cpp -FILE: ../../../third_party/angle/scripts/entry_point_packed_gl_enums.json -FILE: ../../../third_party/angle/src/common/PoolAlloc.cpp -FILE: ../../../third_party/angle/src/common/PoolAlloc.h -FILE: ../../../third_party/angle/src/common/PoolAlloc_unittest.cpp -FILE: ../../../third_party/angle/src/common/apple_platform_utils.h -FILE: ../../../third_party/angle/src/common/system_utils_unittest.cpp -FILE: ../../../third_party/angle/src/common/system_utils_win32.cpp -FILE: ../../../third_party/angle/src/common/system_utils_winuwp.cpp -FILE: ../../../third_party/angle/src/common/third_party/xxhash/xxhash_fuzzer.cpp -FILE: ../../../third_party/angle/src/compiler/preprocessor/preprocessor.l -FILE: ../../../third_party/angle/src/compiler/preprocessor/preprocessor.y -FILE: ../../../third_party/angle/src/compiler/preprocessor/preprocessor_lex_autogen.cpp -FILE: ../../../third_party/angle/src/compiler/preprocessor/preprocessor_tab_autogen.cpp -FILE: ../../../third_party/angle/src/compiler/translator/BuiltinsWorkaroundGLSL.cpp -FILE: ../../../third_party/angle/src/compiler/translator/BuiltinsWorkaroundGLSL.h -FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetal.cpp -FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetal.h -FILE: ../../../third_party/angle/src/compiler/translator/ValidateAST.cpp -FILE: ../../../third_party/angle/src/compiler/translator/ValidateAST.h -FILE: ../../../third_party/angle/src/compiler/translator/glslang.l -FILE: ../../../third_party/angle/src/compiler/translator/glslang.y -FILE: ../../../third_party/angle/src/compiler/translator/glslang_lex_autogen.cpp -FILE: ../../../third_party/angle/src/compiler/translator/glslang_tab_autogen.cpp -FILE: ../../../third_party/angle/src/compiler/translator/span_unittest.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/EmulateMultiDrawShaderBuiltins.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/EmulateMultiDrawShaderBuiltins.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/NameNamelessUniformBuffers.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/NameNamelessUniformBuffers.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/RemoveInactiveInterfaceVariables.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/RemoveInactiveInterfaceVariables.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/RewriteArrayOfArrayOfOpaqueUniforms.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/RewriteAtomicCounters.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/RewriteAtomicCounters.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/RewriteCubeMapSamplersAs2DArray.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/RewriteCubeMapSamplersAs2DArray.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/RewriteDfdy.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/RewriteDfdy.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/apple/RewriteRowMajorMatrices.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/apple/RewriteRowMajorMatrices.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_util/BuiltIn.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_util/FindFunction.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_util/FindFunction.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_util/ReplaceShadowingVariables.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_util/ReplaceShadowingVariables.h -FILE: ../../../third_party/angle/src/libANGLE/Context_gl.cpp -FILE: ../../../third_party/angle/src/libANGLE/EGLSync.h -FILE: ../../../third_party/angle/src/libANGLE/MemoryObject.cpp -FILE: ../../../third_party/angle/src/libANGLE/MemoryObject.h -FILE: ../../../third_party/angle/src/libANGLE/Overlay.cpp -FILE: ../../../third_party/angle/src/libANGLE/Overlay.h -FILE: ../../../third_party/angle/src/libANGLE/OverlayWidgets.cpp -FILE: ../../../third_party/angle/src/libANGLE/OverlayWidgets.h -FILE: ../../../third_party/angle/src/libANGLE/Overlay_autogen.cpp -FILE: ../../../third_party/angle/src/libANGLE/Overlay_autogen.h -FILE: ../../../third_party/angle/src/libANGLE/Semaphore.cpp -FILE: ../../../third_party/angle/src/libANGLE/Semaphore.h -FILE: ../../../third_party/angle/src/libANGLE/capture/FrameCapture.cpp -FILE: ../../../third_party/angle/src/libANGLE/capture/FrameCapture.h -FILE: ../../../third_party/angle/src/libANGLE/capture/FrameCapture_mock.cpp -FILE: ../../../third_party/angle/src/libANGLE/capture/capture_gles_1_0_params.cpp -FILE: ../../../third_party/angle/src/libANGLE/capture/capture_gles_2_0_params.cpp -FILE: ../../../third_party/angle/src/libANGLE/capture/capture_gles_3_0_params.cpp -FILE: ../../../third_party/angle/src/libANGLE/capture/capture_gles_3_1_params.cpp -FILE: ../../../third_party/angle/src/libANGLE/capture/capture_gles_3_2_params.cpp -FILE: ../../../third_party/angle/src/libANGLE/capture/capture_gles_ext_params.cpp -FILE: ../../../third_party/angle/src/libANGLE/capture/gl_enum_utils.cpp -FILE: ../../../third_party/angle/src/libANGLE/capture/gl_enum_utils.h -FILE: ../../../third_party/angle/src/libANGLE/capture/gl_enum_utils_autogen.cpp -FILE: ../../../third_party/angle/src/libANGLE/capture/gl_enum_utils_autogen.h -FILE: ../../../third_party/angle/src/libANGLE/format_map_desktop.cpp -FILE: ../../../third_party/angle/src/libANGLE/overlay_widgets.json -FILE: ../../../third_party/angle/src/libANGLE/renderer/EGLSyncImpl.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/MemoryObjectImpl.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/OverlayImpl.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/SemaphoreImpl.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/ShaderImpl.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/DynamicImage2DHLSL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/DynamicImage2DHLSL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/ExternalImageSiblingImpl11.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/ExternalImageSiblingImpl11.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/MappedSubresourceVerifier11.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/MappedSubresourceVerifier11.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/driver_utils_mac.mm -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/MemoryObjectGL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/MemoryObjectGL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/SemaphoreGL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/SemaphoreGL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/cgl/ContextCGL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/cgl/ContextCGL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/cgl/DeviceCGL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/cgl/DeviceCGL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/cgl/RendererCGL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/cgl/RendererCGL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/egl/SyncEGL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/egl/SyncEGL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/glx/RendererGLX.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/glx/RendererGLX.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/glslang_wrapper_utils.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/glslang_wrapper_utils.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/BufferMtl.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/BufferMtl.mm -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/CompilerMtl.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/CompilerMtl.mm -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/ContextMtl.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/ContextMtl.mm -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/DisplayMtl.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/DisplayMtl.mm -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/DisplayMtl_api.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/FrameBufferMtl.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/FrameBufferMtl.mm -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/IOSurfaceSurfaceMtl.mm -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/ProgramMtl.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/ProgramMtl.mm -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/RenderBufferMtl.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/RenderBufferMtl.mm -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/RenderTargetMtl.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/RenderTargetMtl.mm -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/ShaderMtl.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/ShaderMtl.mm -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/SurfaceMtl.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/SurfaceMtl.mm -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/TextureMtl.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/TextureMtl.mm -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/VertexArrayMtl.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/VertexArrayMtl.mm -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/mtl_buffer_pool.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/mtl_buffer_pool.mm -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/mtl_command_buffer.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/mtl_command_buffer.mm -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/mtl_common.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/mtl_common.mm -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/mtl_format_map.json -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/mtl_format_utils.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/mtl_format_utils.mm -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/mtl_glslang_mtl_utils.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/mtl_glslang_mtl_utils.mm -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/mtl_glslang_utils.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/mtl_glslang_utils.mm -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/mtl_render_utils.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/mtl_render_utils.mm -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/mtl_resources.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/mtl_resources.mm -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/mtl_state_cache.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/mtl_state_cache.mm -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/mtl_utils.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/mtl_utils.mm -FILE: ../../../third_party/angle/src/libANGLE/renderer/serial_utils.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/serial_utils_unittest.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/DisplayVk_api.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/MemoryObjectVk.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/MemoryObjectVk.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/OverlayVk.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/OverlayVk.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/PersistentCommandPool.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/PersistentCommandPool.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/SecondaryCommandBuffer.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/SecondaryCommandBuffer.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/SemaphoreVk.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/SemaphoreVk.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/android/HardwareBufferImageSiblingVkAndroid.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/android/HardwareBufferImageSiblingVkAndroid.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/fuchsia/DisplayVkFuchsia.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/fuchsia/DisplayVkFuchsia.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/fuchsia/WindowSurfaceVkFuchsia.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/fuchsia/WindowSurfaceVkFuchsia.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/ggp/DisplayVkGGP.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/ggp/DisplayVkGGP.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/ggp/WindowSurfaceVkGGP.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/ggp/WindowSurfaceVkGGP.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/mac/DisplayVkMac.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/mac/DisplayVkMac.mm -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/mac/WindowSurfaceVkMac.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/mac/WindowSurfaceVkMac.mm -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/src/BlitResolve.frag -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/src/BlitResolve.frag.json -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/src/BlitResolveStencilNoExport.comp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/src/BlitResolveStencilNoExport.comp.json -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/src/ConvertIndex.comp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/src/ConvertIndex.comp.json -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/src/ConvertIndexIndirectLineLoop.comp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/src/ConvertIndirectLineLoop.comp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/src/ConvertIndirectLineLoop.comp.json -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/src/ImageClear.frag -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/src/ImageClear.frag.json -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/vk_wrapper.h -FILE: ../../../third_party/angle/src/libANGLE/trace.h -FILE: ../../../third_party/angle/src/libANGLE/validationES32.cpp -FILE: ../../../third_party/angle/src/libANGLE/validationES32.h -FILE: ../../../third_party/angle/src/libANGLE/validationESEXT.cpp -FILE: ../../../third_party/angle/src/libANGLE/validationGL1.cpp -FILE: ../../../third_party/angle/src/libANGLE/validationGL2.cpp -FILE: ../../../third_party/angle/src/libANGLE/validationGL3.cpp -FILE: ../../../third_party/angle/src/libANGLE/validationGL4.cpp -FILE: ../../../third_party/angle/src/libGL/entry_points_wgl.cpp -FILE: ../../../third_party/angle/src/libGL/entry_points_wgl.h -FILE: ../../../third_party/angle/src/libGL/proc_table_wgl_autogen.cpp -FILE: ../../../third_party/angle/src/libGLESv2/proc_table_egl_autogen.cpp -FILE: ../../../third_party/angle/util/Timer.cpp -FILE: ../../../third_party/angle/util/Timer.h -FILE: ../../../third_party/angle/util/fuchsia/ScenicWindow.cpp -FILE: ../../../third_party/angle/util/fuchsia/ScenicWindow.h -FILE: ../../../third_party/angle/util/posix/crash_handler_posix.cpp -FILE: ../../../third_party/angle/util/test_utils.cpp -FILE: ../../../third_party/angle/util/test_utils_unittest.cpp -FILE: ../../../third_party/angle/util/test_utils_unittest_helper.cpp -FILE: ../../../third_party/angle/util/test_utils_unittest_helper.h -FILE: ../../../third_party/angle/util/windows/test_utils_winuwp.cpp ----------------------------------------------------------------------------------------------------- -Copyright 2019 The ANGLE Project Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - - Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. - Ltd., nor the names of their contributors may be used to endorse - or promote products derived from this software without specific - prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: angle -ORIGIN: ../../../third_party/angle/LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/angle/.style.yapf -FILE: ../../../third_party/angle/.vpython -FILE: ../../../third_party/angle/.vpython3 -FILE: ../../../third_party/angle/.yapfignore -FILE: ../../../third_party/angle/CONTRIBUTORS -FILE: ../../../third_party/angle/DEPS -FILE: ../../../third_party/angle/DIR_METADATA -FILE: ../../../third_party/angle/additional_readme_paths.json -FILE: ../../../third_party/angle/doc/img/JobUnit.png -FILE: ../../../third_party/angle/doc/img/RegressionTestingArchitecture.png -FILE: ../../../third_party/angle/doc/img/StateChangeNotificationFlow.svg -FILE: ../../../third_party/angle/doc/img/StateNotificationExample.svg -FILE: ../../../third_party/angle/doc/img/VangleDebugOverlay.png -FILE: ../../../third_party/angle/infra/config/generated/commit-queue.cfg -FILE: ../../../third_party/angle/infra/config/generated/cr-buildbucket.cfg -FILE: ../../../third_party/angle/infra/config/generated/luci-logdog.cfg -FILE: ../../../third_party/angle/infra/config/generated/luci-milo.cfg -FILE: ../../../third_party/angle/infra/config/generated/luci-scheduler.cfg -FILE: ../../../third_party/angle/infra/config/generated/project.cfg -FILE: ../../../third_party/angle/infra/config/generated/project.pyl -FILE: ../../../third_party/angle/infra/config/generated/realms.cfg -FILE: ../../../third_party/angle/infra/specs/angle.json -FILE: ../../../third_party/angle/infra/specs/trybot_analyze_config.json -FILE: ../../../third_party/angle/samples/multi_texture/basemap.tga -FILE: ../../../third_party/angle/samples/multi_texture/lightmap.tga -FILE: ../../../third_party/angle/samples/multiple_draw_buffers/multiple_draw_buffers_copy_fs.glsl -FILE: ../../../third_party/angle/samples/multiple_draw_buffers/multiple_draw_buffers_fs.glsl -FILE: ../../../third_party/angle/samples/multiple_draw_buffers/multiple_draw_buffers_vs.glsl -FILE: ../../../third_party/angle/samples/particle_system/smoke.tga -FILE: ../../../third_party/angle/scripts/code_generation_hashes/ANGLE_features.json -FILE: ../../../third_party/angle/scripts/code_generation_hashes/ANGLE_format.json -FILE: ../../../third_party/angle/scripts/code_generation_hashes/ANGLE_load_functions_table.json -FILE: ../../../third_party/angle/scripts/code_generation_hashes/ANGLE_shader_preprocessor.json -FILE: ../../../third_party/angle/scripts/code_generation_hashes/ANGLE_shader_translator.json -FILE: ../../../third_party/angle/scripts/code_generation_hashes/D3D11_blit_shader_selection.json -FILE: ../../../third_party/angle/scripts/code_generation_hashes/D3D11_format.json -FILE: ../../../third_party/angle/scripts/code_generation_hashes/DXGI_format.json -FILE: ../../../third_party/angle/scripts/code_generation_hashes/DXGI_format_support.json -FILE: ../../../third_party/angle/scripts/code_generation_hashes/Emulated_HLSL_functions.json -FILE: ../../../third_party/angle/scripts/code_generation_hashes/Extension_files.json -FILE: ../../../third_party/angle/scripts/code_generation_hashes/GL_CTS_(dEQP)_build_files.json -FILE: ../../../third_party/angle/scripts/code_generation_hashes/GL_EGL_WGL_loader.json -FILE: ../../../third_party/angle/scripts/code_generation_hashes/GL_EGL_entry_points.json -FILE: ../../../third_party/angle/scripts/code_generation_hashes/GL_copy_conversion_table.json -FILE: ../../../third_party/angle/scripts/code_generation_hashes/GL_format_map.json -FILE: ../../../third_party/angle/scripts/code_generation_hashes/GLenum_value_to_string_map.json -FILE: ../../../third_party/angle/scripts/code_generation_hashes/Metal_default_shaders.json -FILE: ../../../third_party/angle/scripts/code_generation_hashes/Metal_format_table.json -FILE: ../../../third_party/angle/scripts/code_generation_hashes/OpenGL_dispatch_table.json -FILE: ../../../third_party/angle/scripts/code_generation_hashes/SPIR-V_helpers.json -FILE: ../../../third_party/angle/scripts/code_generation_hashes/Static_builtins.json -FILE: ../../../third_party/angle/scripts/code_generation_hashes/Test_spec_JSON.json -FILE: ../../../third_party/angle/scripts/code_generation_hashes/Vulkan_format.json -FILE: ../../../third_party/angle/scripts/code_generation_hashes/Vulkan_internal_shader_programs.json -FILE: ../../../third_party/angle/scripts/code_generation_hashes/Vulkan_mandatory_format_support_table.json -FILE: ../../../third_party/angle/scripts/code_generation_hashes/overlay_fonts.json -FILE: ../../../third_party/angle/scripts/code_generation_hashes/overlay_widgets.json -FILE: ../../../third_party/angle/scripts/code_generation_hashes/packed_enum.json -FILE: ../../../third_party/angle/scripts/code_generation_hashes/proc_table.json -FILE: ../../../third_party/angle/scripts/code_generation_hashes/restricted_traces.json -FILE: ../../../third_party/angle/scripts/code_generation_hashes/uniform_type.json -FILE: ../../../third_party/angle/scripts/extension_data/intel_630_linux.json -FILE: ../../../third_party/angle/scripts/extension_data/intel_630_win10.json -FILE: ../../../third_party/angle/scripts/extension_data/nvidia_1660_linux.json -FILE: ../../../third_party/angle/scripts/extension_data/nvidia_1660_win10.json -FILE: ../../../third_party/angle/scripts/extension_data/pixel_4_android_11.json -FILE: ../../../third_party/angle/scripts/extension_data/pixel_6_android_13.json -FILE: ../../../third_party/angle/scripts/extension_data/swiftshader_linux.json -FILE: ../../../third_party/angle/scripts/extension_data/swiftshader_win10.json -FILE: ../../../third_party/angle/scripts/extension_data/swiftshader_win10_gles1.json -FILE: ../../../third_party/angle/src/android_system_settings/assets/a4a_rules.json -FILE: ../../../third_party/angle/src/android_system_settings/res/drawable/icon.png -FILE: ../../../third_party/angle/src/common/packed_cl_enums.json -FILE: ../../../third_party/angle/src/common/packed_egl_enums.json -FILE: ../../../third_party/angle/src/common/packed_gl_enums.json -FILE: ../../../third_party/angle/src/compiler/translator/emulated_builtin_function_data_hlsl.json -FILE: ../../../third_party/angle/src/feature_support_util/a4a_rules.json -FILE: ../../../third_party/angle/src/libANGLE/es3_copy_conversion_formats.json -FILE: ../../../third_party/angle/src/libANGLE/es3_format_type_combinations.json -FILE: ../../../third_party/angle/src/libANGLE/format_map_data.json -FILE: ../../../third_party/angle/src/libANGLE/overlay/DejaVuSansMono-Bold.ttf -FILE: ../../../third_party/angle/src/libANGLE/renderer/angle_format_data.json -FILE: ../../../third_party/angle/src/libANGLE/renderer/angle_format_map.json -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/BufferToTexture11.hlsl -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/Passthrough2D11.hlsl -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/ResolveColor.hlsl -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/ResolveDepthStencil.hlsl -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/Swizzle11.hlsl -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/buffertotexture11_gs.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/buffertotexture11_ps_4f.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/buffertotexture11_ps_4i.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/buffertotexture11_ps_4ui.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/buffertotexture11_vs.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/clear11_fl9vs.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/clear11multiviewgs.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/clear11multiviewvs.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/clear11vs.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/cleardepth11ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/clearfloat11_fl9ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/clearfloat11ps1.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/clearfloat11ps2.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/clearfloat11ps3.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/clearfloat11ps4.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/clearfloat11ps5.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/clearfloat11ps6.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/clearfloat11ps7.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/clearfloat11ps8.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/clearsint11ps1.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/clearsint11ps2.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/clearsint11ps3.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/clearsint11ps4.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/clearsint11ps5.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/clearsint11ps6.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/clearsint11ps7.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/clearsint11ps8.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/clearuint11ps1.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/clearuint11ps2.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/clearuint11ps3.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/clearuint11ps4.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/clearuint11ps5.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/clearuint11ps6.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/clearuint11ps7.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/clearuint11ps8.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_pm_luma_2d_ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_pm_luma_2darray_ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_pm_luma_3d_ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_pm_lumaalpha_2d_ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_pm_lumaalpha_2darray_ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_pm_lumaalpha_3d_ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_pm_rgb_2d_ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_pm_rgb_2darray_ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_pm_rgb_3d_ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_pm_rgb_565_2d_ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_pm_rgb_565_2darray_ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_pm_rgb_565_3d_ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_pm_rgba_2d_ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_pm_rgba_2darray_ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_pm_rgba_3d_ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_pm_rgba_4444_2d_ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_pm_rgba_4444_2darray_ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_pm_rgba_4444_3d_ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_pm_rgba_5551_2d_ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_pm_rgba_5551_2darray_ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_pm_rgba_5551_3d_ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_um_luma_2d_ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_um_luma_2darray_ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_um_luma_3d_ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_um_lumaalpha_2d_ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_um_lumaalpha_2darray_ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_um_lumaalpha_3d_ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_um_rgb_2d_ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_um_rgb_2darray_ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_um_rgb_3d_ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_um_rgb_565_2d_ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_um_rgb_565_2darray_ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_um_rgb_565_3d_ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_um_rgba_2d_ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_um_rgba_2darray_ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_um_rgba_3d_ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_um_rgba_4444_2d_ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_um_rgba_4444_2darray_ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_um_rgba_4444_3d_ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_um_rgba_4444_ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_um_rgba_5551_2d_ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_um_rgba_5551_2darray_ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_um_rgba_5551_3d_ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_um_rgba_5551_ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftoi_pm_rgb_2darray_ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftoi_pm_rgb_3d_ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftoi_pm_rgba_2darray_ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftoi_pm_rgba_3d_ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftoi_pt_rgb_2darray_ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftoi_pt_rgb_3d_ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftoi_pt_rgba_2darray_ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftoi_pt_rgba_3d_ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftoi_um_rgb_2darray_ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftoi_um_rgb_3d_ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftoi_um_rgba_2darray_ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftoi_um_rgba_3d_ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftou_pm_rgb_2d_ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftou_pm_rgb_2darray_ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftou_pm_rgb_3d_ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftou_pm_rgba_2d_ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftou_pm_rgba_2darray_ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftou_pm_rgba_3d_ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftou_pt_rgb_2d_ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftou_pt_rgb_2darray_ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftou_pt_rgb_3d_ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftou_pt_rgba_2d_ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftou_pt_rgba_2darray_ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftou_pt_rgba_3d_ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftou_um_rgb_2d_ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftou_um_rgb_2darray_ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftou_um_rgb_3d_ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftou_um_rgba_2d_ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftou_um_rgba_2darray_ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftou_um_rgba_3d_ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthrough2d11vs.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthrough3d11gs.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthrough3d11vs.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthrougha2d11ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughdepth2d11ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughlum2d11ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughlum2darray11ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughlum3d11ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughlumalpha2d11ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughlumalpha2darray11ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughlumalpha3d11ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughr2d11ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughr2darray11ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughr2darrayi11ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughr2darrayui11ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughr2di11ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughr2dui11ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughr3d11ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughr3di11ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughr3dui11ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrg2d11ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrg2darray11ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrg2darrayi11ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrg2darrayui11ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrg2di11ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrg2dui11ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrg3d11ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrg3di11ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrg3dui11ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgb2d11ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgb2d_565_11ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgb2darray11ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgb2darray_565_11ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgb2darrayi11ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgb2darrayui11ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgb2di11ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgb2dui11ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgb3d11ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgb3d_565_11ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgb3di11ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgb3dui11ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgba2d11ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgba2d_4444_11ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgba2d_5551_11ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgba2darray11ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgba2darray_4444_11ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgba2darray_5551_11ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgba2darrayi11ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgba2darrayui11ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgba2di11ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgba2dms11ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgba2dui11ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgba3d11ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgba3d_4444_11ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgba3d_5551_11ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgba3di11ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgba3dui11ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/resolvecolor2dps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/resolvedepth11_ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/resolvedepthstencil11_ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/resolvedepthstencil11_vs.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/resolvestencil11_ps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/swizzlef2darrayps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/swizzlef2dps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/swizzlef3dps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/swizzlei2darrayps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/swizzlei2dps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/swizzlei3dps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/swizzleui2darrayps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/swizzleui2dps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/swizzleui3dps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/texture_format_data.json -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/texture_format_map.json -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/shaders/compiled/componentmaskpremultps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/shaders/compiled/componentmaskps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/shaders/compiled/componentmaskunmultps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/shaders/compiled/luminancepremultps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/shaders/compiled/luminanceps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/shaders/compiled/luminanceunmultps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/shaders/compiled/passthroughps.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/shaders/compiled/standardvs.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/dxgi_format_data.json -FILE: ../../../third_party/angle/src/libANGLE/renderer/dxgi_support_data.json -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/gl_bindings_data.json -FILE: ../../../third_party/angle/src/libANGLE/renderer/load_functions_data.json -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/mtl_default_shaders_compiled.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/doc/img/LineRasterComparison.gif -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/doc/img/LineRasterHoles.jpg -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/doc/img/LineRasterPixelExample.png -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/doc/img/VulkanShaderTranslation.svg -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/src/OverlayDraw.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/vk_mandatory_format_support_data.json -FILE: ../../../third_party/angle/src/libEGL/libEGL.rc -FILE: ../../../third_party/angle/src/libEGL/resource.h -FILE: ../../../third_party/angle/src/libGL/libGL.rc -FILE: ../../../third_party/angle/src/libGL/resource.h -FILE: ../../../third_party/angle/src/libGLESv1_CM/libGLESv1_CM.def -FILE: ../../../third_party/angle/src/libGLESv1_CM/libGLESv1_CM.rc -FILE: ../../../third_party/angle/src/libGLESv1_CM/resource.h -FILE: ../../../third_party/angle/src/libGLESv2/libGLESv2.rc -FILE: ../../../third_party/angle/src/libGLESv2/resource.h -FILE: ../../../third_party/angle/util/ios/Info.plist -FILE: ../../../third_party/angle/util/osx/supports_automatic_graphics_switching.plist ----------------------------------------------------------------------------------------------------- -Copyright 2018 The ANGLE Project Authors. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - - Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. - Ltd., nor the names of their contributors may be used to endorse - or promote products derived from this software without specific - prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: angle -ORIGIN: ../../../third_party/angle/android/AndroidManifest.xml + ../../../third_party/angle/LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/angle/android/AndroidManifest.xml -FILE: ../../../third_party/angle/include/angle_cl.h -FILE: ../../../third_party/angle/infra/specs/angle_mb_config.pyl -FILE: ../../../third_party/angle/infra/specs/mixins.pyl -FILE: ../../../third_party/angle/infra/specs/test_suite_exceptions.pyl -FILE: ../../../third_party/angle/infra/specs/test_suites.pyl -FILE: ../../../third_party/angle/infra/specs/variants.pyl -FILE: ../../../third_party/angle/infra/specs/waterfalls.pyl -FILE: ../../../third_party/angle/samples/multiple_contexts/MultipleContexts.cpp -FILE: ../../../third_party/angle/samples/torus_lighting/TorusBufferStorage.cpp -FILE: ../../../third_party/angle/samples/torus_lighting/TorusLightingES1.cpp -FILE: ../../../third_party/angle/samples/torus_lighting/TorusLightingES2.cpp -FILE: ../../../third_party/angle/samples/torus_lighting/torus.h -FILE: ../../../third_party/angle/src/common/CircularBuffer.h -FILE: ../../../third_party/angle/src/common/CircularBuffer_unittest.cpp -FILE: ../../../third_party/angle/src/common/Spinlock.h -FILE: ../../../third_party/angle/src/common/SynchronizedValue.h -FILE: ../../../third_party/angle/src/common/angle_version_info.cpp -FILE: ../../../third_party/angle/src/common/angle_version_info.h -FILE: ../../../third_party/angle/src/common/apple/apple_platform.h -FILE: ../../../third_party/angle/src/common/linux/dma_buf_utils.cpp -FILE: ../../../third_party/angle/src/common/linux/dma_buf_utils.h -FILE: ../../../third_party/angle/src/common/serializer/JsonSerializer.cpp -FILE: ../../../third_party/angle/src/common/serializer/JsonSerializer.h -FILE: ../../../third_party/angle/src/common/serializer/JsonSerializer_unittest.cpp -FILE: ../../../third_party/angle/src/common/spirv/angle_spirv_utils.cpp -FILE: ../../../third_party/angle/src/common/spirv/spirv_instruction_builder_autogen.cpp -FILE: ../../../third_party/angle/src/common/spirv/spirv_instruction_builder_autogen.h -FILE: ../../../third_party/angle/src/common/spirv/spirv_instruction_parser_autogen.cpp -FILE: ../../../third_party/angle/src/common/spirv/spirv_instruction_parser_autogen.h -FILE: ../../../third_party/angle/src/common/spirv/spirv_types.h -FILE: ../../../third_party/angle/src/common/vulkan/libvulkan_loader.cpp -FILE: ../../../third_party/angle/src/common/vulkan/libvulkan_loader.h -FILE: ../../../third_party/angle/src/compiler/translator/BuildSPIRV.cpp -FILE: ../../../third_party/angle/src/compiler/translator/BuildSPIRV.h -FILE: ../../../third_party/angle/src/compiler/translator/Operator_autogen.h -FILE: ../../../third_party/angle/src/compiler/translator/OutputSPIRV.cpp -FILE: ../../../third_party/angle/src/compiler/translator/OutputSPIRV.h -FILE: ../../../third_party/angle/src/compiler/translator/ValidateTypeSizeLimitations.cpp -FILE: ../../../third_party/angle/src/compiler/translator/ValidateTypeSizeLimitations.h -FILE: ../../../third_party/angle/src/compiler/translator/glslang_wrapper.cpp -FILE: ../../../third_party/angle/src/compiler/translator/glslang_wrapper.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/ClampIndirectIndices.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/ClampIndirectIndices.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/MonomorphizeUnsupportedFunctions.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/MonomorphizeUnsupportedFunctions.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/RewriteArrayOfArrayOfOpaqueUniforms.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/vulkan/DeclarePerVertexBlocks.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/vulkan/DeclarePerVertexBlocks.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/vulkan/EmulateFragColorData.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/vulkan/EmulateFragColorData.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/vulkan/RewriteR32fImages.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/vulkan/RewriteR32fImages.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_util/FindPreciseNodes.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_util/FindPreciseNodes.h -FILE: ../../../third_party/angle/src/libANGLE/CLBitField.h -FILE: ../../../third_party/angle/src/libANGLE/CLBuffer.cpp -FILE: ../../../third_party/angle/src/libANGLE/CLBuffer.h -FILE: ../../../third_party/angle/src/libANGLE/CLCommandQueue.cpp -FILE: ../../../third_party/angle/src/libANGLE/CLCommandQueue.h -FILE: ../../../third_party/angle/src/libANGLE/CLContext.cpp -FILE: ../../../third_party/angle/src/libANGLE/CLContext.h -FILE: ../../../third_party/angle/src/libANGLE/CLDevice.cpp -FILE: ../../../third_party/angle/src/libANGLE/CLDevice.h -FILE: ../../../third_party/angle/src/libANGLE/CLEvent.cpp -FILE: ../../../third_party/angle/src/libANGLE/CLEvent.h -FILE: ../../../third_party/angle/src/libANGLE/CLImage.cpp -FILE: ../../../third_party/angle/src/libANGLE/CLImage.h -FILE: ../../../third_party/angle/src/libANGLE/CLKernel.cpp -FILE: ../../../third_party/angle/src/libANGLE/CLKernel.h -FILE: ../../../third_party/angle/src/libANGLE/CLMemory.cpp -FILE: ../../../third_party/angle/src/libANGLE/CLMemory.h -FILE: ../../../third_party/angle/src/libANGLE/CLObject.cpp -FILE: ../../../third_party/angle/src/libANGLE/CLObject.h -FILE: ../../../third_party/angle/src/libANGLE/CLPlatform.cpp -FILE: ../../../third_party/angle/src/libANGLE/CLPlatform.h -FILE: ../../../third_party/angle/src/libANGLE/CLProgram.cpp -FILE: ../../../third_party/angle/src/libANGLE/CLProgram.h -FILE: ../../../third_party/angle/src/libANGLE/CLRefPointer.h -FILE: ../../../third_party/angle/src/libANGLE/CLSampler.cpp -FILE: ../../../third_party/angle/src/libANGLE/CLSampler.h -FILE: ../../../third_party/angle/src/libANGLE/CLtypes.h -FILE: ../../../third_party/angle/src/libANGLE/capture/frame_capture_utils_mock.cpp -FILE: ../../../third_party/angle/src/libANGLE/capture/trace_fixture.cpp -FILE: ../../../third_party/angle/src/libANGLE/capture/trace_fixture.h -FILE: ../../../third_party/angle/src/libANGLE/cl_utils.cpp -FILE: ../../../third_party/angle/src/libANGLE/cl_utils.h -FILE: ../../../third_party/angle/src/libANGLE/gles_extensions_autogen.cpp -FILE: ../../../third_party/angle/src/libANGLE/gles_extensions_autogen.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/CLCommandQueueImpl.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/CLCommandQueueImpl.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/CLContextImpl.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/CLContextImpl.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/CLDeviceImpl.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/CLDeviceImpl.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/CLEventImpl.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/CLEventImpl.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/CLExtensions.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/CLExtensions.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/CLKernelImpl.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/CLKernelImpl.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/CLMemoryImpl.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/CLMemoryImpl.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/CLPlatformImpl.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/CLPlatformImpl.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/CLProgramImpl.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/CLProgramImpl.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/CLSamplerImpl.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/CLSamplerImpl.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/CLtypes.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/ImageImpl.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/ShaderInterfaceVariableInfoMap.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/ShaderInterfaceVariableInfoMap.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/cl/CLCommandQueueCL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/cl/CLCommandQueueCL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/cl/CLContextCL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/cl/CLContextCL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/cl/CLDeviceCL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/cl/CLDeviceCL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/cl/CLEventCL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/cl/CLEventCL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/cl/CLKernelCL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/cl/CLKernelCL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/cl/CLMemoryCL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/cl/CLMemoryCL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/cl/CLPlatformCL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/cl/CLPlatformCL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/cl/CLProgramCL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/cl/CLProgramCL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/cl/CLSamplerCL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/cl/CLSamplerCL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/cl/cl_types.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/cl/cl_util.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/cl/cl_util.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/driver_utils_ios.mm -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/DisplayGL_unittest.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/DeviceMtl.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/DeviceMtl.mm -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/ImageMtl.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/ImageMtl.mm -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/ProvokingVertexHelper.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/ProvokingVertexHelper.mm -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/mtl_context_device.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/mtl_context_device.mm -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/mtl_resource_spi.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/shaders/rewrite_indices.metal -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/CLCommandQueueVk.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/CLCommandQueueVk.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/CLContextVk.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/CLContextVk.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/CLDeviceVk.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/CLDeviceVk.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/CLEventVk.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/CLEventVk.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/CLKernelVk.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/CLKernelVk.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/CLMemoryVk.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/CLMemoryVk.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/CLPlatformVk.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/CLPlatformVk.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/CLProgramVk.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/CLProgramVk.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/CLSamplerVk.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/CLSamplerVk.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/VkImageImageSiblingVk.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/VkImageImageSiblingVk.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/VulkanSecondaryCommandBuffer.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/VulkanSecondaryCommandBuffer.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/android/AHBFunctions.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/android/AHBFunctions.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/cl_types.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/linux/DisplayVkLinux.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/linux/DisplayVkLinux.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/linux/DmaBufImageSiblingVkLinux.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/linux/DmaBufImageSiblingVkLinux.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/null/DisplayVkNull.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/null/DisplayVkNull.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/vk_command_buffer_utils.h -FILE: ../../../third_party/angle/src/libANGLE/validationCL.cpp -FILE: ../../../third_party/angle/src/libANGLE/validationCL.h -FILE: ../../../third_party/angle/src/libANGLE/validationCL_autogen.h -FILE: ../../../third_party/angle/src/libGLESv2/cl_dispatch_table.cpp -FILE: ../../../third_party/angle/src/libGLESv2/cl_dispatch_table.h -FILE: ../../../third_party/angle/src/libGLESv2/cl_stubs.cpp -FILE: ../../../third_party/angle/src/libGLESv2/cl_stubs_autogen.h -FILE: ../../../third_party/angle/src/libGLESv2/entry_points_cl_utils.cpp -FILE: ../../../third_party/angle/src/libGLESv2/entry_points_cl_utils.h -FILE: ../../../third_party/angle/src/libGLESv2/proc_table_cl.h -FILE: ../../../third_party/angle/src/libGLESv2/proc_table_cl_autogen.cpp -FILE: ../../../third_party/angle/src/libOpenCL/dispatch.cpp -FILE: ../../../third_party/angle/src/libOpenCL/dispatch.h -FILE: ../../../third_party/angle/src/libOpenCL/libOpenCL_autogen.map -FILE: ../../../third_party/angle/util/capture/frame_capture_test_utils.cpp -FILE: ../../../third_party/angle/util/capture/traces_export.h ----------------------------------------------------------------------------------------------------- -Copyright 2021 The ANGLE Project Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - - Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. - Ltd., nor the names of their contributors may be used to endorse - or promote products derived from this software without specific - prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: angle -ORIGIN: ../../../third_party/angle/android/AndroidManifest.xml.jinja2 + ../../../third_party/angle/LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/angle/android/AndroidManifest.xml.jinja2 -FILE: ../../../third_party/angle/samples/gles1/DrawTexture.cpp -FILE: ../../../third_party/angle/samples/gles1/FlatShading.cpp -FILE: ../../../third_party/angle/samples/gles1/HelloTriangle.cpp -FILE: ../../../third_party/angle/samples/gles1/SimpleLighting.cpp -FILE: ../../../third_party/angle/samples/gles1/SimpleTexture2D.cpp -FILE: ../../../third_party/angle/scripts/egl_angle_ext.xml -FILE: ../../../third_party/angle/scripts/gl_angle_ext.xml -FILE: ../../../third_party/angle/scripts/vk_mandatory_format_support_capture_to_json.js -FILE: ../../../third_party/angle/src/android_system_settings/res/values-v17/styles.xml -FILE: ../../../third_party/angle/src/common/FastVector.h -FILE: ../../../third_party/angle/src/common/FastVector_unittest.cpp -FILE: ../../../third_party/angle/src/common/FixedVector.h -FILE: ../../../third_party/angle/src/common/FixedVector_unittest.cpp -FILE: ../../../third_party/angle/src/common/PackedEnums.cpp -FILE: ../../../third_party/angle/src/common/android_util.cpp -FILE: ../../../third_party/angle/src/common/android_util.h -FILE: ../../../third_party/angle/src/common/hash_utils.h -FILE: ../../../third_party/angle/src/common/hash_utils_unittest.cpp -FILE: ../../../third_party/angle/src/common/matrix_utils.cpp -FILE: ../../../third_party/angle/src/common/system_utils.cpp -FILE: ../../../third_party/angle/src/common/system_utils_posix.cpp -FILE: ../../../third_party/angle/src/compiler/translator/AtomicCounterFunctionHLSL.cpp -FILE: ../../../third_party/angle/src/compiler/translator/AtomicCounterFunctionHLSL.h -FILE: ../../../third_party/angle/src/compiler/translator/FunctionLookup.cpp -FILE: ../../../third_party/angle/src/compiler/translator/FunctionLookup.h -FILE: ../../../third_party/angle/src/compiler/translator/ImmutableString.h -FILE: ../../../third_party/angle/src/compiler/translator/ImmutableStringBuilder.cpp -FILE: ../../../third_party/angle/src/compiler/translator/ImmutableStringBuilder.h -FILE: ../../../third_party/angle/src/compiler/translator/ShaderStorageBlockFunctionHLSL.cpp -FILE: ../../../third_party/angle/src/compiler/translator/ShaderStorageBlockFunctionHLSL.h -FILE: ../../../third_party/angle/src/compiler/translator/ShaderStorageBlockOutputHLSL.cpp -FILE: ../../../third_party/angle/src/compiler/translator/ShaderStorageBlockOutputHLSL.h -FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/NameEmbeddedUniformStructsMetal.cpp -FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/NameEmbeddedUniformStructsMetal.h -FILE: ../../../third_party/angle/src/compiler/translator/builtin_variables.json -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/FoldExpressions.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/FoldExpressions.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/PruneEmptyCases.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/PruneEmptyCases.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/RewriteStructSamplers.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/RewriteStructSamplers.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/SeparateStructFromUniformDeclarations.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/SeparateStructFromUniformDeclarations.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/d3d/RewriteAtomicFunctionExpressions.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/d3d/RewriteAtomicFunctionExpressions.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/d3d/RewriteExpressionsWithShaderStorageBlock.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/d3d/RewriteExpressionsWithShaderStorageBlock.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/d3d/SeparateArrayConstructorStatements.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/d3d/SeparateArrayConstructorStatements.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/gl/RewriteRepeatedAssignToSwizzled.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/gl/RewriteRepeatedAssignToSwizzled.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_util/ReplaceVariable.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_util/ReplaceVariable.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_util/Visit.h -FILE: ../../../third_party/angle/src/feature_support_util/feature_support_util.cpp -FILE: ../../../third_party/angle/src/feature_support_util/feature_support_util.h -FILE: ../../../third_party/angle/src/feature_support_util/feature_support_util_unittest.cpp -FILE: ../../../third_party/angle/src/gpu_info_util/SystemInfo_android.cpp -FILE: ../../../third_party/angle/src/libANGLE/BlobCache.cpp -FILE: ../../../third_party/angle/src/libANGLE/BlobCache.h -FILE: ../../../third_party/angle/src/libANGLE/BlobCache_unittest.cpp -FILE: ../../../third_party/angle/src/libANGLE/Context.inl.h -FILE: ../../../third_party/angle/src/libANGLE/Context_gles_1_0.cpp -FILE: ../../../third_party/angle/src/libANGLE/GLES1Renderer.cpp -FILE: ../../../third_party/angle/src/libANGLE/GLES1Renderer.h -FILE: ../../../third_party/angle/src/libANGLE/GLES1Shaders.inc -FILE: ../../../third_party/angle/src/libANGLE/GLES1State.cpp -FILE: ../../../third_party/angle/src/libANGLE/GLES1State.h -FILE: ../../../third_party/angle/src/libANGLE/Observer.cpp -FILE: ../../../third_party/angle/src/libANGLE/ResourceMap_unittest.cpp -FILE: ../../../third_party/angle/src/libANGLE/entry_points_utils.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/QueryImpl.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/RenderTargetCache.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/ContextD3D.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/Blit11Helper_autogen.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/Program11.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/Program11.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/converged/CompositorNativeWindow11.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/converged/CompositorNativeWindow11.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/MultiplyAlpha.hlsl -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/Passthrough2DArray11.hlsl -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/Passthrough3D11.hlsl -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/ImageGL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/ImageGL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/egl/ContextEGL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/egl/ContextEGL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/egl/ExternalImageSiblingEGL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/egl/ImageEGL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/egl/ImageEGL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/egl/RendererEGL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/egl/RendererEGL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/egl/android/NativeBufferImageSiblingAndroid.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/egl/android/NativeBufferImageSiblingAndroid.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/wgl/ContextWGL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/wgl/ContextWGL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/wgl/RendererWGL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/wgl/RendererWGL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/UtilsVk.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/UtilsVk.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/android/DisplayVkAndroid.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/android/DisplayVkAndroid.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/android/WindowSurfaceVkAndroid.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/android/WindowSurfaceVkAndroid.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000000.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000001.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000002.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000003.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000004.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000005.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000006.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000007.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000008.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000009.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.0000000A.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.0000000B.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.0000000C.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.0000000D.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.0000000E.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.0000000F.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000010.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000011.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000012.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000013.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000014.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000015.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000016.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000017.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/BlitResolveStencilNoExport.comp.00000000.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/BlitResolveStencilNoExport.comp.00000001.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/BlitResolveStencilNoExport.comp.00000002.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/BlitResolveStencilNoExport.comp.00000003.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ConvertIndex.comp.00000000.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ConvertIndex.comp.00000001.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ConvertIndex.comp.00000002.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ConvertIndex.comp.00000003.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ConvertIndexIndirectLineLoop.comp.00000000.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ConvertIndexIndirectLineLoop.comp.00000001.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ConvertIndexIndirectLineLoop.comp.00000002.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ConvertIndirectLineLoop.comp.00000000.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000000.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000001.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000002.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000003.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000004.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000005.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000006.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000007.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/FullScreenTri.vert.00000000.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/GenerateMipmap.comp.00000000.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/GenerateMipmap.comp.00000001.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/GenerateMipmap.comp.00000002.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/GenerateMipmap.comp.00000003.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/GenerateMipmap.comp.00000004.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/GenerateMipmap.comp.00000005.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/GenerateMipmap.comp.00000006.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/GenerateMipmap.comp.00000007.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/GenerateMipmap.comp.00000008.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/GenerateMipmap.comp.00000009.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000000.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000001.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000002.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000003.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000004.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000005.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000006.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000007.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000008.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000009.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.0000000A.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.0000000B.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.0000000C.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.0000000D.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.0000000E.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.0000000F.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000010.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000011.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000012.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000013.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000014.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000015.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000016.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000017.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000018.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000019.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.0000001A.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.0000001B.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.0000001C.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.0000001D.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.0000001E.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.0000001F.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000020.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000021.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000022.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000023.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000024.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000025.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000026.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000027.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000028.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000029.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.0000002A.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.0000002B.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.0000002C.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.0000002D.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.0000002E.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.0000002F.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000000.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000001.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000002.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000004.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000005.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000006.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000008.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000009.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.0000000A.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000010.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000011.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000012.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000014.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000015.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000016.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000018.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000019.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.0000001A.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000020.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000021.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000022.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000024.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000025.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000026.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000028.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000029.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.0000002A.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/OverlayDraw.frag.00000000.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/OverlayDraw.vert.00000000.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/src/ConvertVertex.comp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/src/ConvertVertex.comp.json -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/src/FullScreenTri.vert -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/src/ImageCopy.frag -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/src/ImageCopy.frag.json -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/vk_cache_utils.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/vk_cache_utils.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/vk_caps_utils.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/vk_caps_utils.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/vk_format_map.json -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/vk_helpers.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/vk_helpers.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/vk_internal_shaders_autogen.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/vk_internal_shaders_autogen.h -FILE: ../../../third_party/angle/src/libANGLE/validationES1.cpp -FILE: ../../../third_party/angle/src/libANGLE/validationES1.h -FILE: ../../../third_party/angle/src/libANGLE/validationES2.h -FILE: ../../../third_party/angle/src/libANGLE/validationES3.h -FILE: ../../../third_party/angle/src/libANGLE/validationES31.h -FILE: ../../../third_party/angle/src/libANGLE/validationESEXT.h -FILE: ../../../third_party/angle/src/libEGL/egl_loader_autogen.cpp -FILE: ../../../third_party/angle/src/libEGL/egl_loader_autogen.h -FILE: ../../../third_party/angle/src/libGLESv1_CM/libGLESv1_CM.cpp -FILE: ../../../third_party/angle/util/EGLPlatformParameters.h -FILE: ../../../third_party/angle/util/capture/trace_egl_loader_autogen.cpp -FILE: ../../../third_party/angle/util/capture/trace_egl_loader_autogen.h -FILE: ../../../third_party/angle/util/capture/trace_gles_loader_autogen.cpp -FILE: ../../../third_party/angle/util/capture/trace_gles_loader_autogen.h -FILE: ../../../third_party/angle/util/egl_loader_autogen.cpp -FILE: ../../../third_party/angle/util/egl_loader_autogen.h -FILE: ../../../third_party/angle/util/gles_loader_autogen.cpp -FILE: ../../../third_party/angle/util/gles_loader_autogen.h -FILE: ../../../third_party/angle/util/util_export.h -FILE: ../../../third_party/angle/util/util_gl.h -FILE: ../../../third_party/angle/util/windows/WGLWindow.cpp -FILE: ../../../third_party/angle/util/windows/WGLWindow.h -FILE: ../../../third_party/angle/util/windows/wgl_loader_autogen.cpp -FILE: ../../../third_party/angle/util/windows/wgl_loader_autogen.h ----------------------------------------------------------------------------------------------------- -Copyright 2018 The ANGLE Project Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - - Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. - Ltd., nor the names of their contributors may be used to endorse - or promote products derived from this software without specific - prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: angle -ORIGIN: ../../../third_party/angle/include/GLES/glext.h -TYPE: LicenseType.unknown -FILE: ../../../third_party/angle/include/GLES/glext.h ----------------------------------------------------------------------------------------------------- -Copyright (c) 2013-2017 The Khronos Group Inc. - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and/or associated documentation files (the -"Materials"), to deal in the Materials without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Materials, and to -permit persons to whom the Materials are furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Materials. - -THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. -==================================================================================================== - -==================================================================================================== -LIBRARY: angle -ORIGIN: ../../../third_party/angle/include/GLSLANG/ShaderLang.h + ../../../third_party/angle/LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/angle/include/GLSLANG/ShaderLang.h -FILE: ../../../third_party/angle/samples/shader_translator/shader_translator.cpp -FILE: ../../../third_party/angle/src/common/angleutils.h -FILE: ../../../third_party/angle/src/common/debug.cpp -FILE: ../../../third_party/angle/src/common/debug.h -FILE: ../../../third_party/angle/src/common/mathutil.h -FILE: ../../../third_party/angle/src/common/utilities.cpp -FILE: ../../../third_party/angle/src/common/utilities.h -FILE: ../../../third_party/angle/src/compiler/preprocessor/preprocessor.l -FILE: ../../../third_party/angle/src/compiler/translator/ASTMetadataHLSL.cpp -FILE: ../../../third_party/angle/src/compiler/translator/ASTMetadataHLSL.h -FILE: ../../../third_party/angle/src/compiler/translator/BaseTypes.h -FILE: ../../../third_party/angle/src/compiler/translator/BuiltInFunctionEmulator.cpp -FILE: ../../../third_party/angle/src/compiler/translator/BuiltInFunctionEmulatorGLSL.cpp -FILE: ../../../third_party/angle/src/compiler/translator/CallDAG.cpp -FILE: ../../../third_party/angle/src/compiler/translator/CallDAG.h -FILE: ../../../third_party/angle/src/compiler/translator/CollectVariables.cpp -FILE: ../../../third_party/angle/src/compiler/translator/CollectVariables.h -FILE: ../../../third_party/angle/src/compiler/translator/Common.h -FILE: ../../../third_party/angle/src/compiler/translator/Compiler.cpp -FILE: ../../../third_party/angle/src/compiler/translator/Compiler.h -FILE: ../../../third_party/angle/src/compiler/translator/ConstantUnion.h -FILE: ../../../third_party/angle/src/compiler/translator/ExtensionBehavior.h -FILE: ../../../third_party/angle/src/compiler/translator/HashNames.h -FILE: ../../../third_party/angle/src/compiler/translator/InfoSink.cpp -FILE: ../../../third_party/angle/src/compiler/translator/InfoSink.h -FILE: ../../../third_party/angle/src/compiler/translator/Initialize.cpp -FILE: ../../../third_party/angle/src/compiler/translator/Initialize.h -FILE: ../../../third_party/angle/src/compiler/translator/InitializeDll.cpp -FILE: ../../../third_party/angle/src/compiler/translator/InitializeDll.h -FILE: ../../../third_party/angle/src/compiler/translator/InitializeGlobals.h -FILE: ../../../third_party/angle/src/compiler/translator/IntermNode.cpp -FILE: ../../../third_party/angle/src/compiler/translator/IntermNode.h -FILE: ../../../third_party/angle/src/compiler/translator/Operator.cpp -FILE: ../../../third_party/angle/src/compiler/translator/OutputESSL.cpp -FILE: ../../../third_party/angle/src/compiler/translator/OutputESSL.h -FILE: ../../../third_party/angle/src/compiler/translator/OutputGLSL.cpp -FILE: ../../../third_party/angle/src/compiler/translator/OutputGLSL.h -FILE: ../../../third_party/angle/src/compiler/translator/OutputGLSLBase.cpp -FILE: ../../../third_party/angle/src/compiler/translator/OutputGLSLBase.h -FILE: ../../../third_party/angle/src/compiler/translator/OutputHLSL.cpp -FILE: ../../../third_party/angle/src/compiler/translator/OutputHLSL.h -FILE: ../../../third_party/angle/src/compiler/translator/OutputTree.cpp -FILE: ../../../third_party/angle/src/compiler/translator/ParseContext.cpp -FILE: ../../../third_party/angle/src/compiler/translator/ParseContext.h -FILE: ../../../third_party/angle/src/compiler/translator/PoolAlloc.cpp -FILE: ../../../third_party/angle/src/compiler/translator/PoolAlloc.h -FILE: ../../../third_party/angle/src/compiler/translator/QualifierTypes.cpp -FILE: ../../../third_party/angle/src/compiler/translator/QualifierTypes.h -FILE: ../../../third_party/angle/src/compiler/translator/ShaderLang.cpp -FILE: ../../../third_party/angle/src/compiler/translator/SymbolTable.cpp -FILE: ../../../third_party/angle/src/compiler/translator/SymbolTable.h -FILE: ../../../third_party/angle/src/compiler/translator/TranslatorESSL.cpp -FILE: ../../../third_party/angle/src/compiler/translator/TranslatorESSL.h -FILE: ../../../third_party/angle/src/compiler/translator/TranslatorGLSL.cpp -FILE: ../../../third_party/angle/src/compiler/translator/TranslatorGLSL.h -FILE: ../../../third_party/angle/src/compiler/translator/TranslatorHLSL.cpp -FILE: ../../../third_party/angle/src/compiler/translator/TranslatorHLSL.h -FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/TranslatorMetalUtils.cpp -FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/TranslatorMetalUtils.h -FILE: ../../../third_party/angle/src/compiler/translator/Types.cpp -FILE: ../../../third_party/angle/src/compiler/translator/Types.h -FILE: ../../../third_party/angle/src/compiler/translator/ValidateGlobalInitializer.cpp -FILE: ../../../third_party/angle/src/compiler/translator/ValidateGlobalInitializer.h -FILE: ../../../third_party/angle/src/compiler/translator/ValidateLimitations.cpp -FILE: ../../../third_party/angle/src/compiler/translator/ValidateSwitch.cpp -FILE: ../../../third_party/angle/src/compiler/translator/ValidateSwitch.h -FILE: ../../../third_party/angle/src/compiler/translator/ValidateVaryingLocations.cpp -FILE: ../../../third_party/angle/src/compiler/translator/ValidateVaryingLocations.h -FILE: ../../../third_party/angle/src/compiler/translator/VariablePacker.cpp -FILE: ../../../third_party/angle/src/compiler/translator/VariablePacker.h -FILE: ../../../third_party/angle/src/compiler/translator/VersionGLSL.cpp -FILE: ../../../third_party/angle/src/compiler/translator/VersionGLSL.h -FILE: ../../../third_party/angle/src/compiler/translator/glslang.l -FILE: ../../../third_party/angle/src/compiler/translator/glslang.y -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/EmulateGLFragColorBroadcast.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/EmulateGLFragColorBroadcast.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/InitializeVariables.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/InitializeVariables.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/PruneNoOps.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/PruneNoOps.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/RecordConstantPrecision.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/RecordConstantPrecision.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/RemoveDynamicIndexing.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/RemoveDynamicIndexing.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/ScalarizeVecAndMatConstructorArgs.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/ScalarizeVecAndMatConstructorArgs.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/SeparateDeclarations.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/SeparateDeclarations.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/apple/UnfoldShortCircuitAST.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/apple/UnfoldShortCircuitAST.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/d3d/ArrayReturnValueToOutParameter.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/d3d/ArrayReturnValueToOutParameter.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/d3d/RemoveSwitchFallThrough.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/d3d/RemoveSwitchFallThrough.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/d3d/SeparateArrayInitialization.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/d3d/SeparateArrayInitialization.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/d3d/SeparateExpressionsReturningArrays.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/d3d/SeparateExpressionsReturningArrays.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/d3d/UnfoldShortCircuitToIf.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/d3d/UnfoldShortCircuitToIf.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/gl/RegenerateStructNames.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/gl/RegenerateStructNames.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_util/IntermTraverse.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_util/NodeSearch.h -FILE: ../../../third_party/angle/src/compiler/translator/util.h -FILE: ../../../third_party/angle/src/image_util/generatemip.h -FILE: ../../../third_party/angle/src/libANGLE/Buffer.cpp -FILE: ../../../third_party/angle/src/libANGLE/Buffer.h -FILE: ../../../third_party/angle/src/libANGLE/Config.cpp -FILE: ../../../third_party/angle/src/libANGLE/Config.h -FILE: ../../../third_party/angle/src/libANGLE/Context.cpp -FILE: ../../../third_party/angle/src/libANGLE/Context.h -FILE: ../../../third_party/angle/src/libANGLE/Display.cpp -FILE: ../../../third_party/angle/src/libANGLE/Display.h -FILE: ../../../third_party/angle/src/libANGLE/EGLSync.cpp -FILE: ../../../third_party/angle/src/libANGLE/Fence.cpp -FILE: ../../../third_party/angle/src/libANGLE/Fence.h -FILE: ../../../third_party/angle/src/libANGLE/Framebuffer.cpp -FILE: ../../../third_party/angle/src/libANGLE/Framebuffer.h -FILE: ../../../third_party/angle/src/libANGLE/HandleAllocator.cpp -FILE: ../../../third_party/angle/src/libANGLE/HandleAllocator.h -FILE: ../../../third_party/angle/src/libANGLE/Program.cpp -FILE: ../../../third_party/angle/src/libANGLE/Program.h -FILE: ../../../third_party/angle/src/libANGLE/RefCountObject.h -FILE: ../../../third_party/angle/src/libANGLE/Renderbuffer.cpp -FILE: ../../../third_party/angle/src/libANGLE/Renderbuffer.h -FILE: ../../../third_party/angle/src/libANGLE/ResourceManager.cpp -FILE: ../../../third_party/angle/src/libANGLE/ResourceManager.h -FILE: ../../../third_party/angle/src/libANGLE/Shader.cpp -FILE: ../../../third_party/angle/src/libANGLE/Shader.h -FILE: ../../../third_party/angle/src/libANGLE/Surface.cpp -FILE: ../../../third_party/angle/src/libANGLE/Surface.h -FILE: ../../../third_party/angle/src/libANGLE/Texture.cpp -FILE: ../../../third_party/angle/src/libANGLE/Texture.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/SurfaceImpl.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/ImageD3D.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/ImageD3D.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/IndexBuffer.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/IndexBuffer.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/IndexDataManager.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/IndexDataManager.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/TextureStorage.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/VertexBuffer.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/VertexBuffer.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/VertexDataManager.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/VertexDataManager.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/Blit9.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/Blit9.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/Image9.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/Image9.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/IndexBuffer9.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/IndexBuffer9.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/VertexBuffer9.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/VertexBuffer9.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/renderer9_utils.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/renderer9_utils.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/vertexconversion.h ----------------------------------------------------------------------------------------------------- -Copyright 2002 The ANGLE Project Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - - Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. - Ltd., nor the names of their contributors may be used to endorse - or promote products derived from this software without specific - prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: angle -ORIGIN: ../../../third_party/angle/include/GLSLANG/ShaderVars.h + ../../../third_party/angle/LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/angle/include/GLSLANG/ShaderVars.h -FILE: ../../../third_party/angle/samples/sample_util/SampleApplication.cpp -FILE: ../../../third_party/angle/src/common/mathutil.cpp -FILE: ../../../third_party/angle/src/compiler/translator/CodeGen.cpp -FILE: ../../../third_party/angle/src/compiler/translator/FlagStd140Structs.cpp -FILE: ../../../third_party/angle/src/compiler/translator/FlagStd140Structs.h -FILE: ../../../third_party/angle/src/compiler/translator/ValidateOutputs.cpp -FILE: ../../../third_party/angle/src/compiler/translator/ValidateOutputs.h -FILE: ../../../third_party/angle/src/compiler/translator/blocklayout.cpp -FILE: ../../../third_party/angle/src/compiler/translator/blocklayout.h -FILE: ../../../third_party/angle/src/compiler/translator/blocklayoutHLSL.cpp -FILE: ../../../third_party/angle/src/compiler/translator/blocklayoutHLSL.h -FILE: ../../../third_party/angle/src/gpu_info_util/SystemInfo.cpp -FILE: ../../../third_party/angle/src/gpu_info_util/SystemInfo.h -FILE: ../../../third_party/angle/src/gpu_info_util/SystemInfo_internal.h -FILE: ../../../third_party/angle/src/gpu_info_util/SystemInfo_libpci.cpp -FILE: ../../../third_party/angle/src/gpu_info_util/SystemInfo_linux.cpp -FILE: ../../../third_party/angle/src/gpu_info_util/SystemInfo_win.cpp -FILE: ../../../third_party/angle/src/gpu_info_util/SystemInfo_x11.cpp -FILE: ../../../third_party/angle/src/image_util/copyimage.cpp -FILE: ../../../third_party/angle/src/image_util/copyimage.h -FILE: ../../../third_party/angle/src/image_util/imageformats.h -FILE: ../../../third_party/angle/src/image_util/loadimage.cpp -FILE: ../../../third_party/angle/src/image_util/loadimage.h -FILE: ../../../third_party/angle/src/image_util/loadimage_etc.cpp -FILE: ../../../third_party/angle/src/libANGLE/Constants.h -FILE: ../../../third_party/angle/src/libANGLE/IndexRangeCache.cpp -FILE: ../../../third_party/angle/src/libANGLE/IndexRangeCache.h -FILE: ../../../third_party/angle/src/libANGLE/Sampler.cpp -FILE: ../../../third_party/angle/src/libANGLE/Sampler.h -FILE: ../../../third_party/angle/src/libANGLE/VertexArray.cpp -FILE: ../../../third_party/angle/src/libANGLE/VertexArray.h -FILE: ../../../third_party/angle/src/libANGLE/VertexAttribute.h -FILE: ../../../third_party/angle/src/libANGLE/angletypes.cpp -FILE: ../../../third_party/angle/src/libANGLE/formatutils.cpp -FILE: ../../../third_party/angle/src/libANGLE/formatutils.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/QueryImpl.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/copyvertex.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/Blit11.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/Blit11.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/Clear11.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/Clear11.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/Fence11.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/Fence11.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/PixelTransfer11.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/PixelTransfer11.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/Query11.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/Query11.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/VertexBuffer11.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/formatutils11.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/formatutils11.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/Fence9.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/Fence9.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/Query9.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/Query9.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/formatutils9.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/formatutils9.h -FILE: ../../../third_party/angle/src/libANGLE/validationES.cpp -FILE: ../../../third_party/angle/src/libANGLE/validationES.h -FILE: ../../../third_party/angle/src/libANGLE/validationES2.cpp -FILE: ../../../third_party/angle/src/libANGLE/validationES3.cpp -FILE: ../../../third_party/angle/util/EGLWindow.cpp ----------------------------------------------------------------------------------------------------- -Copyright 2013 The ANGLE Project Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - - Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. - Ltd., nor the names of their contributors may be used to endorse - or promote products derived from this software without specific - prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: angle -ORIGIN: ../../../third_party/angle/include/KHR/khrplatform.h -TYPE: LicenseType.unknown -FILE: ../../../third_party/angle/include/KHR/khrplatform.h ----------------------------------------------------------------------------------------------------- -Copyright (c) 2008-2018 The Khronos Group Inc. - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and/or associated documentation files (the -"Materials"), to deal in the Materials without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Materials, and to -permit persons to whom the Materials are furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Materials. - -THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. -==================================================================================================== - -==================================================================================================== -LIBRARY: angle -ORIGIN: ../../../third_party/angle/include/angle_gl.h + ../../../third_party/angle/LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/angle/include/angle_gl.h -FILE: ../../../third_party/angle/include/angle_windowsstore.h -FILE: ../../../third_party/angle/include/export.h -FILE: ../../../third_party/angle/samples/hello_triangle/HelloTriangle.cpp -FILE: ../../../third_party/angle/samples/mip_map_2d/MipMap2D.cpp -FILE: ../../../third_party/angle/samples/multi_texture/MultiTexture.cpp -FILE: ../../../third_party/angle/samples/multiple_draw_buffers/MultipleDrawBuffers.cpp -FILE: ../../../third_party/angle/samples/particle_system/ParticleSystem.cpp -FILE: ../../../third_party/angle/samples/post_sub_buffer/PostSubBuffer.cpp -FILE: ../../../third_party/angle/samples/sample_util/SampleApplication.h -FILE: ../../../third_party/angle/samples/sample_util/texture_utils.cpp -FILE: ../../../third_party/angle/samples/sample_util/texture_utils.h -FILE: ../../../third_party/angle/samples/sample_util/tga_utils.cpp -FILE: ../../../third_party/angle/samples/sample_util/tga_utils.h -FILE: ../../../third_party/angle/samples/simple_instancing/SimpleInstancing.cpp -FILE: ../../../third_party/angle/samples/simple_texture_2d/SimpleTexture2D.cpp -FILE: ../../../third_party/angle/samples/simple_texture_cubemap/SimpleTextureCubemap.cpp -FILE: ../../../third_party/angle/samples/simple_vertex_shader/SimpleVertexShader.cpp -FILE: ../../../third_party/angle/samples/stencil_operations/StencilOperations.cpp -FILE: ../../../third_party/angle/samples/tex_redef_microbench/TexRedefMicroBench.cpp -FILE: ../../../third_party/angle/samples/texture_wrap/TextureWrap.cpp -FILE: ../../../third_party/angle/samples/tri_fan_microbench/TriFanMicroBench.cpp -FILE: ../../../third_party/angle/src/common/MemoryBuffer.cpp -FILE: ../../../third_party/angle/src/common/MemoryBuffer.h -FILE: ../../../third_party/angle/src/common/angle_version.h -FILE: ../../../third_party/angle/src/common/angleutils.cpp -FILE: ../../../third_party/angle/src/common/platform.h -FILE: ../../../third_party/angle/src/common/system_utils.h -FILE: ../../../third_party/angle/src/common/system_utils_win.cpp -FILE: ../../../third_party/angle/src/common/tls.cpp -FILE: ../../../third_party/angle/src/common/tls.h -FILE: ../../../third_party/angle/src/compiler/translator/BuiltInFunctionEmulatorHLSL.cpp -FILE: ../../../third_party/angle/src/compiler/translator/BuiltInFunctionEmulatorHLSL.h -FILE: ../../../third_party/angle/src/compiler/translator/ResourcesHLSL.cpp -FILE: ../../../third_party/angle/src/compiler/translator/ResourcesHLSL.h -FILE: ../../../third_party/angle/src/compiler/translator/ShaderVars.cpp -FILE: ../../../third_party/angle/src/compiler/translator/StructureHLSL.cpp -FILE: ../../../third_party/angle/src/compiler/translator/StructureHLSL.h -FILE: ../../../third_party/angle/src/compiler/translator/UtilsHLSL.cpp -FILE: ../../../third_party/angle/src/compiler/translator/UtilsHLSL.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/d3d/RewriteElseBlocks.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/d3d/RewriteElseBlocks.h -FILE: ../../../third_party/angle/src/image_util/copyimage.inc -FILE: ../../../third_party/angle/src/image_util/loadimage.inc -FILE: ../../../third_party/angle/src/libANGLE/AttributeMap.cpp -FILE: ../../../third_party/angle/src/libANGLE/AttributeMap.h -FILE: ../../../third_party/angle/src/libANGLE/Caps.cpp -FILE: ../../../third_party/angle/src/libANGLE/Caps.h -FILE: ../../../third_party/angle/src/libANGLE/Compiler.cpp -FILE: ../../../third_party/angle/src/libANGLE/Compiler.h -FILE: ../../../third_party/angle/src/libANGLE/Config_unittest.cpp -FILE: ../../../third_party/angle/src/libANGLE/Error.cpp -FILE: ../../../third_party/angle/src/libANGLE/Error.h -FILE: ../../../third_party/angle/src/libANGLE/Error.inc -FILE: ../../../third_party/angle/src/libANGLE/Fence_unittest.cpp -FILE: ../../../third_party/angle/src/libANGLE/FramebufferAttachment.cpp -FILE: ../../../third_party/angle/src/libANGLE/FramebufferAttachment.h -FILE: ../../../third_party/angle/src/libANGLE/ImageIndex.cpp -FILE: ../../../third_party/angle/src/libANGLE/ImageIndex.h -FILE: ../../../third_party/angle/src/libANGLE/ImageIndexIterator_unittest.cpp -FILE: ../../../third_party/angle/src/libANGLE/State.cpp -FILE: ../../../third_party/angle/src/libANGLE/State.h -FILE: ../../../third_party/angle/src/libANGLE/Surface_unittest.cpp -FILE: ../../../third_party/angle/src/libANGLE/TransformFeedback.cpp -FILE: ../../../third_party/angle/src/libANGLE/TransformFeedback.h -FILE: ../../../third_party/angle/src/libANGLE/TransformFeedback_unittest.cpp -FILE: ../../../third_party/angle/src/libANGLE/VertexAttribute.cpp -FILE: ../../../third_party/angle/src/libANGLE/features.h -FILE: ../../../third_party/angle/src/libANGLE/queryconversions.cpp -FILE: ../../../third_party/angle/src/libANGLE/queryconversions.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/BufferImpl.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/CompilerImpl.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/DisplayImpl.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/DisplayImpl.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/FramebufferImpl.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/ProgramImpl.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/RenderbufferImpl.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/SamplerImpl.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/ShaderImpl.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/SurfaceImpl.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/TextureImpl.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/TransformFeedbackImpl.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/VertexArrayImpl.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/copyvertex.inc.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/BufferD3D.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/BufferD3D.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/CompilerD3D.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/DisplayD3D.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/DisplayD3D.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/DynamicHLSL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/DynamicHLSL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/FramebufferD3D.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/FramebufferD3D.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/HLSLCompiler.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/ProgramD3D.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/ProgramD3D.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/RenderbufferD3D.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/RenderbufferD3D.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/RendererD3D.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/RendererD3D.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/SamplerD3D.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/ShaderD3D.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/ShaderD3D.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/SurfaceD3D.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/SurfaceD3D.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/TextureD3D.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/TextureD3D.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/Buffer11.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/Buffer11.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/Framebuffer11.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/Framebuffer11.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/TransformFeedback11.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/TransformFeedback11.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/Trim11.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/Trim11.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/VertexArray11.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow_unittest.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/winrt/InspectableNativeWindow.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/winrt/InspectableNativeWindow.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/winrt/SwapChainPanelNativeWindow.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/winrt/SwapChainPanelNativeWindow.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/winrt/SwapChainPanelNativeWindow_unittest.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/Buffer9.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/Buffer9.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/Framebuffer9.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/Framebuffer9.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/VertexArray9.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/SamplerGL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/SamplerGL.h -FILE: ../../../third_party/angle/src/libGLESv2/global_state.cpp -FILE: ../../../third_party/angle/src/libGLESv2/global_state.h -FILE: ../../../third_party/angle/util/EGLWindow.h -FILE: ../../../third_party/angle/util/Event.h -FILE: ../../../third_party/angle/util/Matrix.cpp -FILE: ../../../third_party/angle/util/Matrix.h -FILE: ../../../third_party/angle/util/OSWindow.cpp -FILE: ../../../third_party/angle/util/OSWindow.h -FILE: ../../../third_party/angle/util/com_utils.h -FILE: ../../../third_party/angle/util/geometry_utils.cpp -FILE: ../../../third_party/angle/util/geometry_utils.h -FILE: ../../../third_party/angle/util/keyboard.h -FILE: ../../../third_party/angle/util/mouse.h -FILE: ../../../third_party/angle/util/random_utils.cpp -FILE: ../../../third_party/angle/util/random_utils.h -FILE: ../../../third_party/angle/util/shader_utils.cpp -FILE: ../../../third_party/angle/util/shader_utils.h -FILE: ../../../third_party/angle/util/test_utils.h -FILE: ../../../third_party/angle/util/windows/test_utils_win.cpp -FILE: ../../../third_party/angle/util/windows/win32/Win32Window.cpp -FILE: ../../../third_party/angle/util/windows/win32/Win32Window.h -FILE: ../../../third_party/angle/util/windows/win32/test_utils_win32.cpp ----------------------------------------------------------------------------------------------------- -Copyright 2014 The ANGLE Project Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - - Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. - Ltd., nor the names of their contributors may be used to endorse - or promote products derived from this software without specific - prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: angle -ORIGIN: ../../../third_party/angle/include/platform/FeaturesD3D_autogen.h + ../../../third_party/angle/LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/angle/include/platform/FeaturesD3D_autogen.h -FILE: ../../../third_party/angle/include/platform/FeaturesGL_autogen.h -FILE: ../../../third_party/angle/include/platform/FeaturesMtl_autogen.h -FILE: ../../../third_party/angle/include/platform/FeaturesVk_autogen.h -FILE: ../../../third_party/angle/include/platform/FrontendFeatures_autogen.h -FILE: ../../../third_party/angle/include/platform/d3d_features.json -FILE: ../../../third_party/angle/include/platform/frontend_features.json -FILE: ../../../third_party/angle/include/platform/gl_features.json -FILE: ../../../third_party/angle/include/platform/mtl_features.json -FILE: ../../../third_party/angle/include/platform/vk_features.json -FILE: ../../../third_party/angle/src/compiler/translator/BaseTypes.cpp -FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalConstantNames.cpp -FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/GuardFragDepthWrite.cpp -FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/GuardFragDepthWrite.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/d3d/AggregateAssignArraysInSSBOs.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/d3d/AggregateAssignArraysInSSBOs.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/d3d/AggregateAssignStructsInSSBOs.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/d3d/AggregateAssignStructsInSSBOs.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/vulkan/EmulateAdvancedBlendEquations.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/vulkan/EmulateAdvancedBlendEquations.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/vulkan/EmulateDithering.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/vulkan/EmulateDithering.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/vulkan/EmulateYUVBuiltIns.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/vulkan/EmulateYUVBuiltIns.h -FILE: ../../../third_party/angle/src/libANGLE/Overlay_font_autogen.cpp -FILE: ../../../third_party/angle/src/libANGLE/Overlay_font_autogen.h -FILE: ../../../third_party/angle/src/libANGLE/capture/capture_egl.cpp -FILE: ../../../third_party/angle/src/libANGLE/capture/capture_egl.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/linux/gbm/DisplayVkGbm.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/linux/gbm/DisplayVkGbm.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/src/OverlayDraw.frag -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/src/OverlayDraw.vert -FILE: ../../../third_party/angle/util/angle_features_autogen.cpp -FILE: ../../../third_party/angle/util/angle_features_autogen.h -FILE: ../../../third_party/angle/util/linux/LinuxWindow.cpp -FILE: ../../../third_party/angle/util/linux/wayland/WaylandWindow.cpp -FILE: ../../../third_party/angle/util/linux/wayland/WaylandWindow.h ----------------------------------------------------------------------------------------------------- -Copyright 2022 The ANGLE Project Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - - Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. - Ltd., nor the names of their contributors may be used to endorse - or promote products derived from this software without specific - prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: angle -ORIGIN: ../../../third_party/angle/include/platform/Platform.h + ../../../third_party/angle/LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/angle/include/platform/Platform.h -FILE: ../../../third_party/angle/infra/specs/gn_isolate_map.pyl -FILE: ../../../third_party/angle/samples/capture_replay/angle_trace_gl.h -FILE: ../../../third_party/angle/scripts/entry_point_packed_egl_enums.json -FILE: ../../../third_party/angle/src/common/apple/SoftLinking.h -FILE: ../../../third_party/angle/src/common/entry_points_enum_autogen.cpp -FILE: ../../../third_party/angle/src/common/entry_points_enum_autogen.h -FILE: ../../../third_party/angle/src/common/gl/cgl/FunctionsCGL.cpp -FILE: ../../../third_party/angle/src/common/gl/cgl/FunctionsCGL.h -FILE: ../../../third_party/angle/src/common/system_utils_apple.cpp -FILE: ../../../third_party/angle/src/common/vulkan/vulkan_icd.cpp -FILE: ../../../third_party/angle/src/common/vulkan/vulkan_icd.h -FILE: ../../../third_party/angle/src/compiler/translator/DriverUniformMetal.cpp -FILE: ../../../third_party/angle/src/compiler/translator/DriverUniformMetal.h -FILE: ../../../third_party/angle/src/compiler/translator/ImmutableString_ESSL_autogen.cpp -FILE: ../../../third_party/angle/src/compiler/translator/ImmutableString_autogen.cpp -FILE: ../../../third_party/angle/src/compiler/translator/SymbolTable_ESSL_autogen.cpp -FILE: ../../../third_party/angle/src/compiler/translator/SymbolTable_autogen.cpp -FILE: ../../../third_party/angle/src/compiler/translator/SymbolTable_autogen.h -FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect.cpp -FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect.h -FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/AddExplicitTypeCasts.cpp -FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/AddExplicitTypeCasts.h -FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/AstHelpers.cpp -FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/AstHelpers.h -FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/DebugSink.h -FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/DiscoverDependentFunctions.cpp -FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/DiscoverDependentFunctions.h -FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/DiscoverEnclosingFunctionTraverser.cpp -FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/DiscoverEnclosingFunctionTraverser.h -FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/EmitMetal.cpp -FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/EmitMetal.h -FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/FixTypeConstructors.cpp -FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/FixTypeConstructors.h -FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/HoistConstants.cpp -FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/HoistConstants.h -FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/IdGen.cpp -FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/IdGen.h -FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/IntermRebuild.h -FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/IntroduceVertexIndexID.cpp -FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/IntroduceVertexIndexID.h -FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/Layout.cpp -FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/Layout.h -FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/MapFunctionsToDefinitions.cpp -FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/MapFunctionsToDefinitions.h -FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/MapSymbols.cpp -FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/MapSymbols.h -FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/ModifyStruct.cpp -FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/ModifyStruct.h -FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/Name.cpp -FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/Name.h -FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/Pipeline.cpp -FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/Pipeline.h -FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/ProgramPrelude.cpp -FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/ProgramPrelude.h -FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/ReduceInterfaceBlocks.cpp -FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/ReduceInterfaceBlocks.h -FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/Reference.h -FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/RewriteCaseDeclarations.cpp -FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/RewriteCaseDeclarations.h -FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/RewriteOutArgs.cpp -FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/RewriteOutArgs.h -FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/RewritePipelines.cpp -FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/RewritePipelines.h -FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/RewriteUnaddressableReferences.cpp -FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/RewriteUnaddressableReferences.h -FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/SeparateCompoundExpressions.cpp -FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/SeparateCompoundExpressions.h -FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/SeparateCompoundStructDeclarations.cpp -FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/SeparateCompoundStructDeclarations.h -FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/SkippingTraverser.h -FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/SymbolEnv.cpp -FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/SymbolEnv.h -FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/ToposortStructs.cpp -FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/ToposortStructs.h -FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/TransposeRowMajorMatrices.cpp -FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/TransposeRowMajorMatrices.h -FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/WrapMain.cpp -FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/WrapMain.h -FILE: ../../../third_party/angle/src/compiler/translator/ValidateBarrierFunctionCall.cpp -FILE: ../../../third_party/angle/src/compiler/translator/ValidateBarrierFunctionCall.h -FILE: ../../../third_party/angle/src/compiler/translator/ValidateClipCullDistance.cpp -FILE: ../../../third_party/angle/src/compiler/translator/ValidateClipCullDistance.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/ConvertUnsupportedConstructorsToFunctionCalls.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/ConvertUnsupportedConstructorsToFunctionCalls.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/ForcePrecisionQualifier.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/ForcePrecisionQualifier.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/RemoveAtomicCounterBuiltins.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/RemoveAtomicCounterBuiltins.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/d3d/RecordUniformBlocksWithLargeArrayMember.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/d3d/RecordUniformBlocksWithLargeArrayMember.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/vulkan/EarlyFragmentTestsOptimization.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/vulkan/EarlyFragmentTestsOptimization.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/vulkan/FlagSamplersWithTexelFetch.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/vulkan/FlagSamplersWithTexelFetch.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/vulkan/ReplaceForShaderFramebufferFetch.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/vulkan/ReplaceForShaderFramebufferFetch.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/vulkan/RewriteInterpolateAtOffset.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/vulkan/RewriteInterpolateAtOffset.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_util/AsNode.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_util/BuiltIn_ESSL_autogen.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_util/BuiltIn_complete_autogen.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_util/DriverUniform.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_util/DriverUniform.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_util/IntermRebuild.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_util/IntermRebuild.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_util/NodeType.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_util/ReplaceArrayOfMatrixVarying.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_util/ReplaceArrayOfMatrixVarying.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_util/ReplaceClipCullDistanceVariable.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_util/ReplaceClipCullDistanceVariable.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_util/RewriteSampleMaskVariable.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_util/RewriteSampleMaskVariable.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_util/RunAtTheBeginningOfShader.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_util/RunAtTheBeginningOfShader.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_util/SpecializationConstant.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_util/SpecializationConstant.h -FILE: ../../../third_party/angle/src/gpu_info_util/SystemInfo_apple.mm -FILE: ../../../third_party/angle/src/gpu_info_util/SystemInfo_fuchsia.cpp -FILE: ../../../third_party/angle/src/gpu_info_util/SystemInfo_ios.cpp -FILE: ../../../third_party/angle/src/gpu_info_util/SystemInfo_vulkan.cpp -FILE: ../../../third_party/angle/src/gpu_info_util/SystemInfo_vulkan.h -FILE: ../../../third_party/angle/src/libANGLE/Context_gl_1_autogen.h -FILE: ../../../third_party/angle/src/libANGLE/Context_gl_2_autogen.h -FILE: ../../../third_party/angle/src/libANGLE/Context_gl_3_autogen.h -FILE: ../../../third_party/angle/src/libANGLE/Context_gl_4_autogen.h -FILE: ../../../third_party/angle/src/libANGLE/Context_gles_1_0_autogen.h -FILE: ../../../third_party/angle/src/libANGLE/Context_gles_2_0_autogen.h -FILE: ../../../third_party/angle/src/libANGLE/Context_gles_3_0_autogen.h -FILE: ../../../third_party/angle/src/libANGLE/Context_gles_3_1_autogen.h -FILE: ../../../third_party/angle/src/libANGLE/Context_gles_3_2_autogen.h -FILE: ../../../third_party/angle/src/libANGLE/Context_gles_ext_autogen.h -FILE: ../../../third_party/angle/src/libANGLE/InfoLog.h -FILE: ../../../third_party/angle/src/libANGLE/ProgramExecutable.cpp -FILE: ../../../third_party/angle/src/libANGLE/ProgramExecutable.h -FILE: ../../../third_party/angle/src/libANGLE/angletypes_unittest.cpp -FILE: ../../../third_party/angle/src/libANGLE/capture/capture_gles_1_0_autogen.cpp -FILE: ../../../third_party/angle/src/libANGLE/capture/capture_gles_1_0_autogen.h -FILE: ../../../third_party/angle/src/libANGLE/capture/capture_gles_2_0_autogen.cpp -FILE: ../../../third_party/angle/src/libANGLE/capture/capture_gles_2_0_autogen.h -FILE: ../../../third_party/angle/src/libANGLE/capture/capture_gles_3_0_autogen.cpp -FILE: ../../../third_party/angle/src/libANGLE/capture/capture_gles_3_0_autogen.h -FILE: ../../../third_party/angle/src/libANGLE/capture/capture_gles_3_1_autogen.cpp -FILE: ../../../third_party/angle/src/libANGLE/capture/capture_gles_3_1_autogen.h -FILE: ../../../third_party/angle/src/libANGLE/capture/capture_gles_3_2_autogen.cpp -FILE: ../../../third_party/angle/src/libANGLE/capture/capture_gles_3_2_autogen.h -FILE: ../../../third_party/angle/src/libANGLE/capture/capture_gles_ext_autogen.cpp -FILE: ../../../third_party/angle/src/libANGLE/capture/capture_gles_ext_autogen.h -FILE: ../../../third_party/angle/src/libANGLE/capture/frame_capture_replay_autogen.cpp -FILE: ../../../third_party/angle/src/libANGLE/capture/frame_capture_utils.cpp -FILE: ../../../third_party/angle/src/libANGLE/capture/frame_capture_utils.h -FILE: ../../../third_party/angle/src/libANGLE/capture/frame_capture_utils_autogen.cpp -FILE: ../../../third_party/angle/src/libANGLE/capture/frame_capture_utils_autogen.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/BufferImpl.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/EGLReusableSync.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/EGLReusableSync.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/EGLSyncImpl.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/FormatID_autogen.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/Format_table_autogen.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/ProgramPipelineImpl.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/driver_utils_d3d.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/driver_utils_d3d.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d_format.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d_format.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/dxgi_format_map.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/dxgi_format_map_autogen.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/apple/DisplayApple_api.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/apple/DisplayApple_api.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/eagl/ContextEAGL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/eagl/ContextEAGL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/eagl/DeviceEAGL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/eagl/DeviceEAGL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/eagl/DisplayEAGL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/eagl/DisplayEAGL.mm -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/eagl/FunctionsEAGL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/eagl/FunctionsEAGL.mm -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/eagl/IOSurfaceSurfaceEAGL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/eagl/IOSurfaceSurfaceEAGL.mm -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/eagl/PbufferSurfaceEAGL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/eagl/PbufferSurfaceEAGL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/eagl/RendererEAGL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/eagl/RendererEAGL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/eagl/WindowSurfaceEAGL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/eagl/WindowSurfaceEAGL.mm -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/glx/PixmapSurfaceGLX.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/glx/PixmapSurfaceGLX.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/glx/glx_utils.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/glx/glx_utils.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/load_functions_table_autogen.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/IOSurfaceSurfaceMtl.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/SamplerMtl.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/SamplerMtl.mm -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/TransformFeedbackMtl.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/TransformFeedbackMtl.mm -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/file_hooking/shader_cache_file_hooking.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/mtl_format_table_autogen.mm -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/shaders/format_autogen.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/shaders/mtl_default_shaders_src_autogen.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/shaders/mtl_default_shaders_src_autogen.metal -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/CommandProcessor.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/CommandProcessor.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/DebugAnnotatorVk.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/DebugAnnotatorVk.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/ProgramExecutableVk.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/ProgramExecutableVk.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/android/vk_android_utils.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/android/vk_android_utils.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/linux/display/DisplayVkSimple.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/linux/display/DisplayVkSimple.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/linux/display/WindowSurfaceVkSimple.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/linux/display/WindowSurfaceVkSimple.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/linux/headless/DisplayVkHeadless.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/linux/headless/DisplayVkHeadless.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/linux/headless/WindowSurfaceVkHeadless.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/linux/headless/WindowSurfaceVkHeadless.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/mac/IOSurfaceSurfaceVkMac.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/mac/IOSurfaceSurfaceVkMac.mm -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/src/ConvertIndexIndirectLineLoop.comp.json -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/src/GenerateMipmap.comp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/src/GenerateMipmap.comp.json -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/vk_format_table_autogen.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/vk_mandatory_format_support_table_autogen.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/vk_mem_alloc_wrapper.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/vk_mem_alloc_wrapper.h -FILE: ../../../third_party/angle/src/libANGLE/validationEGL_autogen.h -FILE: ../../../third_party/angle/src/libANGLE/validationES1_autogen.h -FILE: ../../../third_party/angle/src/libANGLE/validationES2_autogen.h -FILE: ../../../third_party/angle/src/libANGLE/validationES31_autogen.h -FILE: ../../../third_party/angle/src/libANGLE/validationES32_autogen.h -FILE: ../../../third_party/angle/src/libANGLE/validationES3_autogen.h -FILE: ../../../third_party/angle/src/libANGLE/validationESEXT_autogen.h -FILE: ../../../third_party/angle/src/libANGLE/validationGL11_autogen.h -FILE: ../../../third_party/angle/src/libANGLE/validationGL12_autogen.h -FILE: ../../../third_party/angle/src/libANGLE/validationGL13_autogen.h -FILE: ../../../third_party/angle/src/libANGLE/validationGL14_autogen.h -FILE: ../../../third_party/angle/src/libANGLE/validationGL15_autogen.h -FILE: ../../../third_party/angle/src/libANGLE/validationGL1_autogen.h -FILE: ../../../third_party/angle/src/libANGLE/validationGL21_autogen.h -FILE: ../../../third_party/angle/src/libANGLE/validationGL2_autogen.h -FILE: ../../../third_party/angle/src/libANGLE/validationGL31_autogen.h -FILE: ../../../third_party/angle/src/libANGLE/validationGL32_autogen.h -FILE: ../../../third_party/angle/src/libANGLE/validationGL33_autogen.h -FILE: ../../../third_party/angle/src/libANGLE/validationGL3_autogen.h -FILE: ../../../third_party/angle/src/libANGLE/validationGL41_autogen.h -FILE: ../../../third_party/angle/src/libANGLE/validationGL42_autogen.h -FILE: ../../../third_party/angle/src/libANGLE/validationGL43_autogen.h -FILE: ../../../third_party/angle/src/libANGLE/validationGL44_autogen.h -FILE: ../../../third_party/angle/src/libANGLE/validationGL45_autogen.h -FILE: ../../../third_party/angle/src/libANGLE/validationGL46_autogen.h -FILE: ../../../third_party/angle/src/libANGLE/validationGL4_autogen.h -FILE: ../../../third_party/angle/src/libEGL/libEGL_autogen.cpp -FILE: ../../../third_party/angle/src/libEGL/libEGL_autogen.def -FILE: ../../../third_party/angle/src/libGL/entry_points_gl_1_autogen.cpp -FILE: ../../../third_party/angle/src/libGL/entry_points_gl_1_autogen.h -FILE: ../../../third_party/angle/src/libGL/entry_points_gl_2_autogen.cpp -FILE: ../../../third_party/angle/src/libGL/entry_points_gl_2_autogen.h -FILE: ../../../third_party/angle/src/libGL/entry_points_gl_3_autogen.cpp -FILE: ../../../third_party/angle/src/libGL/entry_points_gl_3_autogen.h -FILE: ../../../third_party/angle/src/libGL/entry_points_gl_4_autogen.cpp -FILE: ../../../third_party/angle/src/libGL/entry_points_gl_4_autogen.h -FILE: ../../../third_party/angle/src/libGL/libGL_autogen.cpp -FILE: ../../../third_party/angle/src/libGL/libGL_autogen.def -FILE: ../../../third_party/angle/src/libGLESv2/egl_ext_stubs.cpp -FILE: ../../../third_party/angle/src/libGLESv2/egl_ext_stubs_autogen.h -FILE: ../../../third_party/angle/src/libGLESv2/egl_get_labeled_object_data.json -FILE: ../../../third_party/angle/src/libGLESv2/egl_stubs.cpp -FILE: ../../../third_party/angle/src/libGLESv2/egl_stubs_autogen.h -FILE: ../../../third_party/angle/src/libGLESv2/entry_points_cl_autogen.cpp -FILE: ../../../third_party/angle/src/libGLESv2/entry_points_cl_autogen.h -FILE: ../../../third_party/angle/src/libGLESv2/entry_points_egl_autogen.cpp -FILE: ../../../third_party/angle/src/libGLESv2/entry_points_egl_autogen.h -FILE: ../../../third_party/angle/src/libGLESv2/entry_points_egl_ext_autogen.cpp -FILE: ../../../third_party/angle/src/libGLESv2/entry_points_egl_ext_autogen.h -FILE: ../../../third_party/angle/src/libGLESv2/entry_points_gles_1_0_autogen.cpp -FILE: ../../../third_party/angle/src/libGLESv2/entry_points_gles_1_0_autogen.h -FILE: ../../../third_party/angle/src/libGLESv2/entry_points_gles_2_0_autogen.cpp -FILE: ../../../third_party/angle/src/libGLESv2/entry_points_gles_2_0_autogen.h -FILE: ../../../third_party/angle/src/libGLESv2/entry_points_gles_3_0_autogen.cpp -FILE: ../../../third_party/angle/src/libGLESv2/entry_points_gles_3_0_autogen.h -FILE: ../../../third_party/angle/src/libGLESv2/entry_points_gles_3_1_autogen.cpp -FILE: ../../../third_party/angle/src/libGLESv2/entry_points_gles_3_1_autogen.h -FILE: ../../../third_party/angle/src/libGLESv2/entry_points_gles_3_2_autogen.cpp -FILE: ../../../third_party/angle/src/libGLESv2/entry_points_gles_3_2_autogen.h -FILE: ../../../third_party/angle/src/libGLESv2/entry_points_gles_ext_autogen.cpp -FILE: ../../../third_party/angle/src/libGLESv2/entry_points_gles_ext_autogen.h -FILE: ../../../third_party/angle/src/libGLESv2/libGLESv2_autogen.cpp -FILE: ../../../third_party/angle/src/libGLESv2/libGLESv2_autogen.def -FILE: ../../../third_party/angle/src/libGLESv2/libGLESv2_no_capture_autogen.def -FILE: ../../../third_party/angle/src/libGLESv2/libGLESv2_with_capture_autogen.def -FILE: ../../../third_party/angle/src/libOpenCL/libOpenCL_autogen.cpp -FILE: ../../../third_party/angle/util/capture/angle_trace_gl.h -FILE: ../../../third_party/angle/util/capture/frame_capture_test_utils.h -FILE: ../../../third_party/angle/util/display/DisplayPixmap.cpp -FILE: ../../../third_party/angle/util/display/DisplayWindow.cpp -FILE: ../../../third_party/angle/util/display/DisplayWindow.h -FILE: ../../../third_party/angle/util/ios/IOSPixmap.h -FILE: ../../../third_party/angle/util/ios/IOSPixmap.mm -FILE: ../../../third_party/angle/util/ios/IOSWindow.h -FILE: ../../../third_party/angle/util/ios/IOSWindow.mm -FILE: ../../../third_party/angle/util/ios/ios_main.mm -FILE: ../../../third_party/angle/util/png_utils.cpp -FILE: ../../../third_party/angle/util/png_utils.h ----------------------------------------------------------------------------------------------------- -Copyright 2020 The ANGLE Project Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - - Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. - Ltd., nor the names of their contributors may be used to endorse - or promote products derived from this software without specific - prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: angle -ORIGIN: ../../../third_party/angle/include/platform/PlatformMethods.h + ../../../third_party/angle/LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/angle/include/platform/PlatformMethods.h -FILE: ../../../third_party/angle/samples/WindowTest/WindowTest.cpp -FILE: ../../../third_party/angle/samples/multi_window/MultiWindow.cpp -FILE: ../../../third_party/angle/src/common/Optional.h -FILE: ../../../third_party/angle/src/common/Optional_unittest.cpp -FILE: ../../../third_party/angle/src/common/bitset_utils.h -FILE: ../../../third_party/angle/src/common/bitset_utils_unittest.cpp -FILE: ../../../third_party/angle/src/common/mathutil_unittest.cpp -FILE: ../../../third_party/angle/src/common/matrix_utils.h -FILE: ../../../third_party/angle/src/common/matrix_utils_unittest.cpp -FILE: ../../../third_party/angle/src/common/string_utils.cpp -FILE: ../../../third_party/angle/src/common/string_utils.h -FILE: ../../../third_party/angle/src/common/string_utils_unittest.cpp -FILE: ../../../third_party/angle/src/common/system_utils_ios.cpp -FILE: ../../../third_party/angle/src/common/system_utils_ios.mm -FILE: ../../../third_party/angle/src/common/system_utils_linux.cpp -FILE: ../../../third_party/angle/src/common/system_utils_mac.cpp -FILE: ../../../third_party/angle/src/common/utilities_unittest.cpp -FILE: ../../../third_party/angle/src/compiler/translator/ExtensionGLSL.cpp -FILE: ../../../third_party/angle/src/compiler/translator/ExtensionGLSL.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/apple/RewriteDoWhile.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/apple/RewriteDoWhile.h -FILE: ../../../third_party/angle/src/compiler/translator/tree_util/FindSymbolNode.cpp -FILE: ../../../third_party/angle/src/compiler/translator/tree_util/FindSymbolNode.h -FILE: ../../../third_party/angle/src/image_util/generatemip.inc -FILE: ../../../third_party/angle/src/libANGLE/BinaryStream_unittest.cpp -FILE: ../../../third_party/angle/src/libANGLE/Debug.cpp -FILE: ../../../third_party/angle/src/libANGLE/Debug.h -FILE: ../../../third_party/angle/src/libANGLE/Device.cpp -FILE: ../../../third_party/angle/src/libANGLE/Device.h -FILE: ../../../third_party/angle/src/libANGLE/HandleAllocator_unittest.cpp -FILE: ../../../third_party/angle/src/libANGLE/Image.cpp -FILE: ../../../third_party/angle/src/libANGLE/Image.h -FILE: ../../../third_party/angle/src/libANGLE/Image_unittest.cpp -FILE: ../../../third_party/angle/src/libANGLE/Platform.cpp -FILE: ../../../third_party/angle/src/libANGLE/Program_unittest.cpp -FILE: ../../../third_party/angle/src/libANGLE/ResourceManager_unittest.cpp -FILE: ../../../third_party/angle/src/libANGLE/VaryingPacking.cpp -FILE: ../../../third_party/angle/src/libANGLE/VaryingPacking.h -FILE: ../../../third_party/angle/src/libANGLE/Version.h -FILE: ../../../third_party/angle/src/libANGLE/Version.inc -FILE: ../../../third_party/angle/src/libANGLE/VertexAttribute.inc -FILE: ../../../third_party/angle/src/libANGLE/histogram_macros.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/BufferImpl_mock.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/DeviceImpl.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/DeviceImpl.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/FenceNVImpl.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/FramebufferImpl_mock.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/GLImplFactory.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/ImageImpl.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/ImageImpl_mock.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/ProgramImpl_mock.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/RenderbufferImpl_mock.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/SyncImpl.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/TextureImpl_mock.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/TransformFeedbackImpl_mock.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/CompilerD3D.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/DeviceD3D.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/DeviceD3D.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/EGLImageD3D.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/EGLImageD3D.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/DebugAnnotator11.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/DebugAnnotator11.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/StateManager11.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/StateManager11.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/texture_format_table.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/texture_format_table_autogen.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/DebugAnnotator9.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/DebugAnnotator9.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/StateManager9.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/StateManager9.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/formatutilsD3D.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/dxgi_support_table.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/dxgi_support_table_autogen.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/BlitGL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/BlitGL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/BufferGL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/BufferGL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/CompilerGL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/CompilerGL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/DisplayGL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/DisplayGL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/FenceNVGL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/FenceNVGL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/FramebufferGL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/FramebufferGL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/FunctionsGL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/FunctionsGL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/ProgramGL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/ProgramGL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/QueryGL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/QueryGL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/RenderbufferGL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/RenderbufferGL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/RendererGL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/RendererGL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/ShaderGL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/ShaderGL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/StateManagerGL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/StateManagerGL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/SurfaceGL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/SurfaceGL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/SyncGL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/SyncGL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/TextureGL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/TextureGL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/TransformFeedbackGL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/TransformFeedbackGL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/VertexArrayGL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/VertexArrayGL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/cgl/DisplayCGL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/cgl/DisplayCGL.mm -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/cgl/IOSurfaceSurfaceCGL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/cgl/PbufferSurfaceCGL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/cgl/PbufferSurfaceCGL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/cgl/WindowSurfaceCGL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/cgl/WindowSurfaceCGL.mm -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/formatutilsgl.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/formatutilsgl.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/functionsgl_enums.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/functionsgl_typedefs.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/glx/DisplayGLX.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/glx/DisplayGLX.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/glx/FunctionsGLX.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/glx/FunctionsGLX.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/glx/PbufferSurfaceGLX.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/glx/PbufferSurfaceGLX.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/glx/WindowSurfaceGLX.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/glx/WindowSurfaceGLX.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/glx/functionsglx_typedefs.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/glx/platform_glx.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/wgl/D3DTextureSurfaceWGL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/wgl/D3DTextureSurfaceWGL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/wgl/DXGISwapChainWindowSurfaceWGL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/wgl/DXGISwapChainWindowSurfaceWGL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/wgl/DisplayWGL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/wgl/DisplayWGL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/wgl/FunctionsWGL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/wgl/FunctionsWGL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/wgl/PbufferSurfaceWGL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/wgl/PbufferSurfaceWGL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/wgl/WindowSurfaceWGL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/wgl/WindowSurfaceWGL.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/wgl/functionswgl_typedefs.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/wgl/wgl_utils.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/wgl/wgl_utils.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/load_functions_table.h -FILE: ../../../third_party/angle/src/libANGLE/validationEGL.h -FILE: ../../../third_party/angle/util/OSPixmap.h -FILE: ../../../third_party/angle/util/linux/x11/X11Pixmap.cpp -FILE: ../../../third_party/angle/util/linux/x11/X11Pixmap.h -FILE: ../../../third_party/angle/util/linux/x11/X11Window.cpp -FILE: ../../../third_party/angle/util/linux/x11/X11Window.h -FILE: ../../../third_party/angle/util/osx/OSXPixmap.h -FILE: ../../../third_party/angle/util/osx/OSXPixmap.mm -FILE: ../../../third_party/angle/util/osx/OSXWindow.h -FILE: ../../../third_party/angle/util/osx/OSXWindow.mm -FILE: ../../../third_party/angle/util/posix/test_utils_posix.cpp -FILE: ../../../third_party/angle/util/windows/win32/Win32Pixmap.cpp -FILE: ../../../third_party/angle/util/windows/win32/Win32Pixmap.h ----------------------------------------------------------------------------------------------------- -Copyright 2015 The ANGLE Project Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - - Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. - Ltd., nor the names of their contributors may be used to endorse - or promote products derived from this software without specific - prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: angle -ORIGIN: ../../../third_party/angle/infra/config/main.star + ../../../LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/angle/infra/config/main.star ----------------------------------------------------------------------------------------------------- -Copyright 2021 The Chromium Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: angle -ORIGIN: ../../../third_party/angle/src/common/Float16ToFloat32.cpp + ../../../third_party/angle/LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/angle/src/common/Float16ToFloat32.cpp -FILE: ../../../third_party/angle/src/common/event_tracer.cpp -FILE: ../../../third_party/angle/src/common/event_tracer.h -FILE: ../../../third_party/angle/src/compiler/preprocessor/DiagnosticsBase.cpp -FILE: ../../../third_party/angle/src/compiler/preprocessor/DiagnosticsBase.h -FILE: ../../../third_party/angle/src/compiler/preprocessor/DirectiveHandlerBase.cpp -FILE: ../../../third_party/angle/src/compiler/preprocessor/DirectiveHandlerBase.h -FILE: ../../../third_party/angle/src/compiler/preprocessor/DirectiveParser.h -FILE: ../../../third_party/angle/src/compiler/preprocessor/ExpressionParser.h -FILE: ../../../third_party/angle/src/compiler/preprocessor/Lexer.cpp -FILE: ../../../third_party/angle/src/compiler/preprocessor/Lexer.h -FILE: ../../../third_party/angle/src/compiler/preprocessor/Macro.h -FILE: ../../../third_party/angle/src/compiler/preprocessor/MacroExpander.h -FILE: ../../../third_party/angle/src/compiler/preprocessor/SourceLocation.h -FILE: ../../../third_party/angle/src/compiler/preprocessor/Tokenizer.h -FILE: ../../../third_party/angle/src/compiler/preprocessor/numeric_lex.h -FILE: ../../../third_party/angle/src/compiler/preprocessor/preprocessor.y -FILE: ../../../third_party/angle/src/compiler/translator/Diagnostics.cpp -FILE: ../../../third_party/angle/src/compiler/translator/Diagnostics.h -FILE: ../../../third_party/angle/src/compiler/translator/DirectiveHandler.cpp -FILE: ../../../third_party/angle/src/compiler/translator/DirectiveHandler.h -FILE: ../../../third_party/angle/src/compiler/translator/Pragma.h -FILE: ../../../third_party/angle/src/libANGLE/BinaryStream.h -FILE: ../../../third_party/angle/src/libANGLE/Query.cpp -FILE: ../../../third_party/angle/src/libANGLE/Query.h -FILE: ../../../third_party/angle/src/libANGLE/angletypes.h -FILE: ../../../third_party/angle/src/libANGLE/angletypes.inc -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/RenderTargetD3D.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/RenderTargetD3D.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/ShaderExecutableD3D.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/ShaderExecutableD3D.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/SwapChainD3D.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/Image11.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/Image11.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/IndexBuffer11.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/IndexBuffer11.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/InputLayoutCache.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/InputLayoutCache.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/RenderStateCache.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/RenderStateCache.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/RenderTarget11.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/RenderTarget11.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/Renderer11.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/Renderer11.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/ShaderExecutable11.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/ShaderExecutable11.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/SwapChain11.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/SwapChain11.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/TextureStorage11.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/TextureStorage11.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/VertexBuffer11.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/renderer11_utils.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/renderer11_utils.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/RenderTarget9.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/RenderTarget9.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/Renderer9.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/Renderer9.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/ShaderCache.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/ShaderExecutable9.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/ShaderExecutable9.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/SwapChain9.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/SwapChain9.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/TextureStorage9.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/TextureStorage9.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/VertexDeclarationCache.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/VertexDeclarationCache.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/shaders/Blit.ps -FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/shaders/Blit.vs -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/renderergl_utils.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/renderergl_utils.h ----------------------------------------------------------------------------------------------------- -Copyright 2012 The ANGLE Project Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - - Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. - Ltd., nor the names of their contributors may be used to endorse - or promote products derived from this software without specific - prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: angle -ORIGIN: ../../../third_party/angle/src/common/fuchsia_egl/fuchsia_egl.c + ../../../fuchsia/sdk/linux/LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/angle/src/common/fuchsia_egl/fuchsia_egl.c -FILE: ../../../third_party/angle/src/common/fuchsia_egl/fuchsia_egl.h -FILE: ../../../third_party/angle/src/common/fuchsia_egl/fuchsia_egl_backend.h ----------------------------------------------------------------------------------------------------- -Copyright 2019 The Fuchsia Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: angle -ORIGIN: ../../../third_party/angle/src/compiler/preprocessor/DirectiveParser.cpp + ../../../third_party/angle/LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/angle/src/compiler/preprocessor/DirectiveParser.cpp -FILE: ../../../third_party/angle/src/compiler/preprocessor/Input.cpp -FILE: ../../../third_party/angle/src/compiler/preprocessor/Input.h -FILE: ../../../third_party/angle/src/compiler/preprocessor/Macro.cpp -FILE: ../../../third_party/angle/src/compiler/preprocessor/MacroExpander.cpp -FILE: ../../../third_party/angle/src/compiler/preprocessor/Preprocessor.cpp -FILE: ../../../third_party/angle/src/compiler/preprocessor/Preprocessor.h -FILE: ../../../third_party/angle/src/compiler/preprocessor/Token.cpp -FILE: ../../../third_party/angle/src/compiler/preprocessor/Token.h -FILE: ../../../third_party/angle/src/compiler/translator/BuiltInFunctionEmulator.h -FILE: ../../../third_party/angle/src/compiler/translator/BuiltInFunctionEmulatorGLSL.h -FILE: ../../../third_party/angle/src/compiler/translator/length_limits.h ----------------------------------------------------------------------------------------------------- -Copyright 2011 The ANGLE Project Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - - Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. - Ltd., nor the names of their contributors may be used to endorse - or promote products derived from this software without specific - prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: angle -ORIGIN: ../../../third_party/angle/src/compiler/preprocessor/preprocessor_tab_autogen.cpp -TYPE: LicenseType.bison -FILE: ../../../third_party/angle/src/compiler/preprocessor/preprocessor_tab_autogen.cpp -FILE: ../../../third_party/angle/src/compiler/translator/glslang_tab_autogen.cpp -FILE: ../../../third_party/angle/src/compiler/translator/glslang_tab_autogen.h ----------------------------------------------------------------------------------------------------- - -==================================================================================================== - -==================================================================================================== -LIBRARY: angle -ORIGIN: ../../../third_party/angle/src/compiler/translator/ValidateLimitations.h + ../../../third_party/angle/LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/angle/src/compiler/translator/ValidateLimitations.h -FILE: ../../../third_party/angle/src/compiler/translator/glslang.h -FILE: ../../../third_party/angle/src/compiler/translator/util.cpp -FILE: ../../../third_party/angle/src/libANGLE/Uniform.cpp -FILE: ../../../third_party/angle/src/libANGLE/Uniform.h ----------------------------------------------------------------------------------------------------- -Copyright 2010 The ANGLE Project Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - - Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. - Ltd., nor the names of their contributors may be used to endorse - or promote products derived from this software without specific - prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: angle -ORIGIN: ../../../third_party/angle/src/libANGLE/renderer/gl/egl/DmaBufImageSiblingEGL.cpp + ../../../third_party/angle/LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/egl/DmaBufImageSiblingEGL.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/egl/DmaBufImageSiblingEGL.h -FILE: ../../../third_party/angle/util/fuchsia/FuchsiaPixmap.cpp -FILE: ../../../third_party/angle/util/fuchsia/FuchsiaPixmap.h ----------------------------------------------------------------------------------------------------- -Copyright The ANGLE Project Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - - Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. - Ltd., nor the names of their contributors may be used to endorse - or promote products derived from this software without specific - prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: angle -ORIGIN: ../../../third_party/angle/src/libANGLE/renderer/metal/QueryMtl.h + ../../../third_party/angle/LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/QueryMtl.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/QueryMtl.mm -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/SyncMtl.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/SyncMtl.mm -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/mtl_occlusion_query_pool.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/mtl_occlusion_query_pool.mm ----------------------------------------------------------------------------------------------------- -Copyright (c) 2020 The ANGLE Project Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - - Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. - Ltd., nor the names of their contributors may be used to endorse - or promote products derived from this software without specific - prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: angle -ORIGIN: ../../../third_party/angle/src/libANGLE/renderer/metal/shaders/blit.metal + ../../../third_party/angle/LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/shaders/blit.metal -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/shaders/clear.metal -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/shaders/common.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/shaders/gen_indices.metal -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/shaders/visibility.metal ----------------------------------------------------------------------------------------------------- -Copyright 2019 The ANGLE Project. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - - Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. - Ltd., nor the names of their contributors may be used to endorse - or promote products derived from this software without specific - prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: angle -ORIGIN: ../../../third_party/angle/src/libANGLE/renderer/metal/shaders/constants.h + ../../../third_party/angle/LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/shaders/constants.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/shaders/copy_buffer.metal -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/shaders/gen_mipmap.metal ----------------------------------------------------------------------------------------------------- -Copyright 2020 The ANGLE Project. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - - Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. - Ltd., nor the names of their contributors may be used to endorse - or promote products derived from this software without specific - prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: angle -ORIGIN: ../../../third_party/angle/src/libANGLE/renderer/metal/shaders/rewrite_indices_shared.h + ../../../third_party/angle/LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/shaders/rewrite_indices_shared.h ----------------------------------------------------------------------------------------------------- -Copyright 2021 The ANGLE Project. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - - Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. - Ltd., nor the names of their contributors may be used to endorse - or promote products derived from this software without specific - prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: angle -ORIGIN: ../../../third_party/angle/src/libANGLE/renderer/vulkan/linux/wayland/DisplayVkWayland.cpp + ../../../third_party/angle/LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/linux/wayland/DisplayVkWayland.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/linux/wayland/DisplayVkWayland.h -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/linux/wayland/WindowSurfaceVkWayland.cpp -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/linux/wayland/WindowSurfaceVkWayland.h ----------------------------------------------------------------------------------------------------- -Copyright 2021-2022 The ANGLE Project Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - - Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. - Ltd., nor the names of their contributors may be used to endorse - or promote products derived from this software without specific - prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: angle -ORIGIN: ../../../third_party/angle/src/third_party/ceval/LICENSE -TYPE: LicenseType.mit -FILE: ../../../third_party/angle/src/third_party/ceval/ceval.h -FILE: ../../../third_party/angle/src/third_party/ceval/package.json -FILE: ../../../third_party/angle/src/third_party/ceval/patches/0001-remove-sprintf.patch ----------------------------------------------------------------------------------------------------- -MIT License - -Copyright (c) 2021 e_t - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. -==================================================================================================== - -==================================================================================================== -LIBRARY: angle -ORIGIN: ../../../third_party/angle/src/third_party/libXNVCtrl/LICENSE -TYPE: LicenseType.mit -FILE: ../../../third_party/angle/src/third_party/libXNVCtrl/NVCtrl.c -FILE: ../../../third_party/angle/src/third_party/libXNVCtrl/NVCtrlLib.h -FILE: ../../../third_party/angle/src/third_party/libXNVCtrl/nv_control.h ----------------------------------------------------------------------------------------------------- -Copyright (c) 2008 NVIDIA, Corporation - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice (including the next -paragraph) shall be included in all copies or substantial portions of the -Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. -==================================================================================================== - -==================================================================================================== -LIBRARY: angle -ORIGIN: ../../../third_party/angle/src/third_party/libXNVCtrl/NVCtrl.h -TYPE: LicenseType.mit -FILE: ../../../third_party/angle/src/third_party/libXNVCtrl/NVCtrl.h ----------------------------------------------------------------------------------------------------- -Copyright (c) 2010 NVIDIA, Corporation - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice (including the next -paragraph) shall be included in all copies or substantial portions of the -Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. -==================================================================================================== - -==================================================================================================== -LIBRARY: angle -ORIGIN: ../../../third_party/angle/src/third_party/systeminfo/SystemInfo.cpp -TYPE: LicenseType.bsd -FILE: ../../../third_party/angle/src/third_party/systeminfo/SystemInfo.cpp -FILE: ../../../third_party/angle/src/third_party/systeminfo/SystemInfo.h ----------------------------------------------------------------------------------------------------- -Copyright (C) 2009 Apple Inc. All Rights Reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY -EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR -CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY -OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: angle -ORIGIN: ../../../third_party/angle/src/third_party/trace_event/trace_event.h + ../../../LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/angle/src/third_party/trace_event/trace_event.h ----------------------------------------------------------------------------------------------------- -Copyright (c) 2013 The Chromium Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: base -LIBRARY: icu -LIBRARY: zlib -ORIGIN: ../../../LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/angle/src/common/third_party/base/anglebase/numerics/safe_conversions.h -FILE: ../../../third_party/angle/src/common/third_party/base/anglebase/numerics/safe_conversions_impl.h -FILE: ../../../third_party/icu/icu.isolate -FILE: ../../../third_party/zlib/google/compression_utils.cc -FILE: ../../../third_party/zlib/google/compression_utils.h -FILE: ../../../third_party/zlib/google/compression_utils_unittest.cc ----------------------------------------------------------------------------------------------------- -Copyright 2014 The Chromium Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: base -LIBRARY: zlib -ORIGIN: ../../../third_party/angle/src/common/third_party/base/anglebase/containers/mru_cache.h + ../../../LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/angle/src/common/third_party/base/anglebase/containers/mru_cache.h -FILE: ../../../third_party/angle/src/common/third_party/base/anglebase/sha1.cc -FILE: ../../../third_party/angle/src/common/third_party/base/anglebase/sha1.h -FILE: ../../../third_party/zlib/google/zip.h -FILE: ../../../third_party/zlib/google/zip_internal.cc -FILE: ../../../third_party/zlib/google/zip_internal.h -FILE: ../../../third_party/zlib/google/zip_reader.h -FILE: ../../../third_party/zlib/google/zip_reader_unittest.cc -FILE: ../../../third_party/zlib/google/zip_unittest.cc ----------------------------------------------------------------------------------------------------- -Copyright (c) 2011 The Chromium Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: base -LIBRARY: zlib -ORIGIN: ../../../third_party/angle/src/common/third_party/base/anglebase/no_destructor.h + ../../../LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/angle/src/common/third_party/base/anglebase/no_destructor.h -FILE: ../../../third_party/zlib/contrib/bench/zlib_bench.cc -FILE: ../../../third_party/zlib/cpu_features.c -FILE: ../../../third_party/zlib/cpu_features.h ----------------------------------------------------------------------------------------------------- -Copyright 2018 The Chromium Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: base -LIBRARY: zlib -ORIGIN: ../../../third_party/angle/src/common/third_party/base/anglebase/numerics/checked_math.h + ../../../LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/angle/src/common/third_party/base/anglebase/numerics/checked_math.h -FILE: ../../../third_party/angle/src/common/third_party/base/anglebase/numerics/checked_math_impl.h -FILE: ../../../third_party/angle/src/common/third_party/base/anglebase/numerics/clamped_math.h -FILE: ../../../third_party/angle/src/common/third_party/base/anglebase/numerics/clamped_math_impl.h -FILE: ../../../third_party/angle/src/common/third_party/base/anglebase/numerics/math_constants.h -FILE: ../../../third_party/angle/src/common/third_party/base/anglebase/numerics/ranges.h -FILE: ../../../third_party/angle/src/common/third_party/base/anglebase/numerics/safe_conversions_arm_impl.h -FILE: ../../../third_party/angle/src/common/third_party/base/anglebase/numerics/safe_math.h -FILE: ../../../third_party/angle/src/common/third_party/base/anglebase/numerics/safe_math_arm_impl.h -FILE: ../../../third_party/angle/src/common/third_party/base/anglebase/numerics/safe_math_clang_gcc_impl.h -FILE: ../../../third_party/angle/src/common/third_party/base/anglebase/numerics/safe_math_shared_impl.h -FILE: ../../../third_party/zlib/adler32_simd.c -FILE: ../../../third_party/zlib/adler32_simd.h -FILE: ../../../third_party/zlib/chromeconf.h -FILE: ../../../third_party/zlib/crc32_simd.c -FILE: ../../../third_party/zlib/crc32_simd.h -FILE: ../../../third_party/zlib/google/zip_writer.cc -FILE: ../../../third_party/zlib/google/zip_writer.h ----------------------------------------------------------------------------------------------------- -Copyright 2017 The Chromium Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: boringssl -ORIGIN: ../../../third_party/boringssl/ios-aarch64/crypto/fipsmodule/sha256-armv8.S + ../../../third_party/boringssl/src/LICENSE -TYPE: LicenseType.unknown -FILE: ../../../third_party/boringssl/ios-aarch64/crypto/fipsmodule/sha256-armv8.S -FILE: ../../../third_party/boringssl/ios-aarch64/crypto/fipsmodule/sha512-armv8.S -FILE: ../../../third_party/boringssl/linux-aarch64/crypto/fipsmodule/sha256-armv8.S -FILE: ../../../third_party/boringssl/linux-aarch64/crypto/fipsmodule/sha512-armv8.S -FILE: ../../../third_party/boringssl/win-aarch64/crypto/fipsmodule/sha256-armv8.S -FILE: ../../../third_party/boringssl/win-aarch64/crypto/fipsmodule/sha512-armv8.S ----------------------------------------------------------------------------------------------------- -Copyright 2014-2016 The OpenSSL Project Authors. All Rights Reserved. - -Licensed under the OpenSSL license (the "License"). You may not use -this file except in compliance with the License. You can obtain a copy -in the file LICENSE in the source distribution or at -https://www.openssl.org/source/license.html -==================================================================================================== - -==================================================================================================== -LIBRARY: boringssl -ORIGIN: ../../../third_party/boringssl/ios-arm/crypto/fipsmodule/bsaes-armv7.S + ../../../third_party/boringssl/src/LICENSE -TYPE: LicenseType.unknown -FILE: ../../../third_party/boringssl/ios-arm/crypto/fipsmodule/bsaes-armv7.S -FILE: ../../../third_party/boringssl/linux-arm/crypto/fipsmodule/bsaes-armv7.S ----------------------------------------------------------------------------------------------------- -Copyright 2012-2016 The OpenSSL Project Authors. All Rights Reserved. - -Licensed under the OpenSSL license (the "License"). You may not use -this file except in compliance with the License. You can obtain a copy -in the file LICENSE in the source distribution or at -https://www.openssl.org/source/license.html -==================================================================================================== - -==================================================================================================== -LIBRARY: boringssl -ORIGIN: ../../../third_party/boringssl/ios-arm/crypto/fipsmodule/sha256-armv4.S + ../../../third_party/boringssl/src/LICENSE -TYPE: LicenseType.unknown -FILE: ../../../third_party/boringssl/ios-arm/crypto/fipsmodule/sha256-armv4.S -FILE: ../../../third_party/boringssl/ios-arm/crypto/fipsmodule/sha512-armv4.S -FILE: ../../../third_party/boringssl/linux-arm/crypto/fipsmodule/sha256-armv4.S -FILE: ../../../third_party/boringssl/linux-arm/crypto/fipsmodule/sha512-armv4.S ----------------------------------------------------------------------------------------------------- -Copyright 2007-2016 The OpenSSL Project Authors. All Rights Reserved. - -Licensed under the OpenSSL license (the "License"). You may not use -this file except in compliance with the License. You can obtain a copy -in the file LICENSE in the source distribution or at -https://www.openssl.org/source/license.html -==================================================================================================== - -==================================================================================================== -LIBRARY: boringssl -ORIGIN: ../../../third_party/boringssl/src/LICENSE -TYPE: LicenseType.openssl -FILE: ../../../third_party/boringssl/ios-aarch64/crypto/fipsmodule/sha256-armv8.S -FILE: ../../../third_party/boringssl/ios-aarch64/crypto/fipsmodule/sha512-armv8.S -FILE: ../../../third_party/boringssl/ios-arm/crypto/fipsmodule/bsaes-armv7.S -FILE: ../../../third_party/boringssl/ios-arm/crypto/fipsmodule/sha256-armv4.S -FILE: ../../../third_party/boringssl/ios-arm/crypto/fipsmodule/sha512-armv4.S -FILE: ../../../third_party/boringssl/linux-aarch64/crypto/fipsmodule/sha256-armv8.S -FILE: ../../../third_party/boringssl/linux-aarch64/crypto/fipsmodule/sha512-armv8.S -FILE: ../../../third_party/boringssl/linux-arm/crypto/fipsmodule/bsaes-armv7.S -FILE: ../../../third_party/boringssl/linux-arm/crypto/fipsmodule/sha256-armv4.S -FILE: ../../../third_party/boringssl/linux-arm/crypto/fipsmodule/sha512-armv4.S -FILE: ../../../third_party/boringssl/src/crypto/asn1/charmap.h -FILE: ../../../third_party/boringssl/src/crypto/err/asn1.errordata -FILE: ../../../third_party/boringssl/src/crypto/err/bio.errordata -FILE: ../../../third_party/boringssl/src/crypto/err/bn.errordata -FILE: ../../../third_party/boringssl/src/crypto/err/cipher.errordata -FILE: ../../../third_party/boringssl/src/crypto/err/conf.errordata -FILE: ../../../third_party/boringssl/src/crypto/err/dh.errordata -FILE: ../../../third_party/boringssl/src/crypto/err/digest.errordata -FILE: ../../../third_party/boringssl/src/crypto/err/dsa.errordata -FILE: ../../../third_party/boringssl/src/crypto/err/ec.errordata -FILE: ../../../third_party/boringssl/src/crypto/err/ecdh.errordata -FILE: ../../../third_party/boringssl/src/crypto/err/ecdsa.errordata -FILE: ../../../third_party/boringssl/src/crypto/err/engine.errordata -FILE: ../../../third_party/boringssl/src/crypto/err/evp.errordata -FILE: ../../../third_party/boringssl/src/crypto/err/hkdf.errordata -FILE: ../../../third_party/boringssl/src/crypto/err/obj.errordata -FILE: ../../../third_party/boringssl/src/crypto/err/pem.errordata -FILE: ../../../third_party/boringssl/src/crypto/err/pkcs7.errordata -FILE: ../../../third_party/boringssl/src/crypto/err/pkcs8.errordata -FILE: ../../../third_party/boringssl/src/crypto/err/rsa.errordata -FILE: ../../../third_party/boringssl/src/crypto/err/ssl.errordata -FILE: ../../../third_party/boringssl/src/crypto/err/trust_token.errordata -FILE: ../../../third_party/boringssl/src/crypto/err/x509.errordata -FILE: ../../../third_party/boringssl/src/crypto/err/x509v3.errordata -FILE: ../../../third_party/boringssl/src/crypto/evp/scrypt.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-gcc.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/rsaz_exp.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/rsaz_exp.h -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/ec/make_tables.go -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/ec/p256-x86_64-table.h -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/ec/p256-x86_64.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/ec/p256-x86_64.h -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/fips_shared.lds -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/intcheck1.png -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/intcheck2.png -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/intcheck3.png -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Android-Security-Policy-20191020.docx!/[Content_Types].xml -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Android-Security-Policy-20191020.docx!/_rels/.rels -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Android-Security-Policy-20191020.docx!/customXml/_rels/item1.xml.rels -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Android-Security-Policy-20191020.docx!/customXml/item1.xml -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Android-Security-Policy-20191020.docx!/customXml/itemProps1.xml -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Android-Security-Policy-20191020.docx!/docProps/app.xml -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Android-Security-Policy-20191020.docx!/docProps/core.xml -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Android-Security-Policy-20191020.docx!/word/_rels/document.xml.rels -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Android-Security-Policy-20191020.docx!/word/document.xml -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Android-Security-Policy-20191020.docx!/word/endnotes.xml -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Android-Security-Policy-20191020.docx!/word/fontTable.xml -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Android-Security-Policy-20191020.docx!/word/footer1.xml -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Android-Security-Policy-20191020.docx!/word/footer2.xml -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Android-Security-Policy-20191020.docx!/word/footer3.xml -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Android-Security-Policy-20191020.docx!/word/footnotes.xml -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Android-Security-Policy-20191020.docx!/word/header1.xml -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Android-Security-Policy-20191020.docx!/word/header2.xml -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Android-Security-Policy-20191020.docx!/word/header3.xml -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Android-Security-Policy-20191020.docx!/word/media/image1.png -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Android-Security-Policy-20191020.docx!/word/media/image2.png -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Android-Security-Policy-20191020.docx!/word/numbering.xml -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Android-Security-Policy-20191020.docx!/word/settings.xml -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Android-Security-Policy-20191020.docx!/word/styles.xml -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Android-Security-Policy-20191020.docx!/word/theme/theme1.xml -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Android-Security-Policy-20191020.docx!/word/webSettings.xml -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20170615.docx!/[Content_Types].xml -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20170615.docx!/_rels/.rels -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20170615.docx!/customXml/_rels/item1.xml.rels -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20170615.docx!/customXml/item1.xml -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20170615.docx!/customXml/itemProps1.xml -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20170615.docx!/docProps/app.xml -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20170615.docx!/docProps/core.xml -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20170615.docx!/docProps/thumbnail.emf -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20170615.docx!/word/_rels/document.xml.rels -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20170615.docx!/word/document.xml -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20170615.docx!/word/endnotes.xml -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20170615.docx!/word/fontTable.xml -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20170615.docx!/word/footer1.xml -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20170615.docx!/word/footnotes.xml -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20170615.docx!/word/media/image1.jpeg -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20170615.docx!/word/media/image2.png -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20170615.docx!/word/numbering.xml -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20170615.docx!/word/settings.xml -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20170615.docx!/word/styles.xml -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20170615.docx!/word/theme/theme1.xml -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20170615.docx!/word/webSettings.xml -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20180730.docx!/[Content_Types].xml -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20180730.docx!/_rels/.rels -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20180730.docx!/customXml/_rels/item1.xml.rels -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20180730.docx!/customXml/item1.xml -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20180730.docx!/customXml/itemProps1.xml -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20180730.docx!/docProps/app.xml -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20180730.docx!/docProps/core.xml -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20180730.docx!/docProps/thumbnail.emf -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20180730.docx!/word/_rels/document.xml.rels -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20180730.docx!/word/document.xml -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20180730.docx!/word/endnotes.xml -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20180730.docx!/word/fontTable.xml -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20180730.docx!/word/footer1.xml -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20180730.docx!/word/footer2.xml -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20180730.docx!/word/footer3.xml -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20180730.docx!/word/footnotes.xml -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20180730.docx!/word/header1.xml -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20180730.docx!/word/header2.xml -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20180730.docx!/word/header3.xml -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20180730.docx!/word/media/image1.png -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20180730.docx!/word/media/image2.png -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20180730.docx!/word/numbering.xml -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20180730.docx!/word/settings.xml -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20180730.docx!/word/styles.xml -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20180730.docx!/word/theme/theme1.xml -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20180730.docx!/word/webSettings.xml -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20190808.docx!/[Content_Types].xml -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20190808.docx!/_rels/.rels -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20190808.docx!/customXml/_rels/item1.xml.rels -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20190808.docx!/customXml/item1.xml -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20190808.docx!/customXml/itemProps1.xml -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20190808.docx!/docProps/app.xml -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20190808.docx!/docProps/core.xml -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20190808.docx!/word/_rels/document.xml.rels -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20190808.docx!/word/document.xml -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20190808.docx!/word/endnotes.xml -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20190808.docx!/word/fontTable.xml -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20190808.docx!/word/footer1.xml -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20190808.docx!/word/footnotes.xml -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20190808.docx!/word/media/image1.png -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20190808.docx!/word/media/image2.png -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20190808.docx!/word/numbering.xml -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20190808.docx!/word/settings.xml -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20190808.docx!/word/styles.xml -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20190808.docx!/word/theme/theme1.xml -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20190808.docx!/word/webSettings.xml -FILE: ../../../third_party/boringssl/src/crypto/hpke/test-vectors.json -FILE: ../../../third_party/boringssl/src/crypto/obj/obj_mac.num -FILE: ../../../third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S -FILE: ../../../third_party/boringssl/src/crypto/rsa_extra/rsa_print.c -FILE: ../../../third_party/boringssl/src/crypto/x509/x509_time_test.cc -FILE: ../../../third_party/boringssl/src/crypto/x509v3/v3_ocsp.c -FILE: ../../../third_party/boringssl/src/go.mod -FILE: ../../../third_party/boringssl/src/go.sum -FILE: ../../../third_party/boringssl/src/ssl/bio_ssl.cc -FILE: ../../../third_party/boringssl/src/ssl/ssl_c_test.c -FILE: ../../../third_party/boringssl/src/util/all_tests.json -FILE: ../../../third_party/boringssl/src/util/bot/UPDATING -FILE: ../../../third_party/boringssl/src/util/bot/cmake-win32.zip.sha1 -FILE: ../../../third_party/boringssl/src/util/bot/nasm-win32.exe.sha1 -FILE: ../../../third_party/boringssl/src/util/bot/perl-win32.zip.sha1 -FILE: ../../../third_party/boringssl/src/util/bot/sde-linux64.tar.bz2.sha1 -FILE: ../../../third_party/boringssl/src/util/bot/sde-win32.tar.bz2.sha1 -FILE: ../../../third_party/boringssl/src/util/doc.config -FILE: ../../../third_party/boringssl/src/util/doc.go -FILE: ../../../third_party/boringssl/src/util/fipstools/acvp/acvptool/parser.peg.go -FILE: ../../../third_party/boringssl/src/util/fipstools/cavp/run_cavp.go -FILE: ../../../third_party/boringssl/src/util/fipstools/delocate/delocate.peg.go -FILE: ../../../third_party/boringssl/win-aarch64/crypto/fipsmodule/sha256-armv8.S -FILE: ../../../third_party/boringssl/win-aarch64/crypto/fipsmodule/sha512-armv8.S ----------------------------------------------------------------------------------------------------- -OpenSSL License - - ==================================================================== - Copyright (c) 1998-2011 The OpenSSL Project. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - - 3. All advertising materials mentioning features or use of this - software must display the following acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit. (http://www.openssl.org/)" - - 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - endorse or promote products derived from this software without - prior written permission. For written permission, please contact - openssl-core@openssl.org. - - 5. Products derived from this software may not be called "OpenSSL" - nor may "OpenSSL" appear in their names without prior written - permission of the OpenSSL Project. - - 6. Redistributions of any form whatsoever must retain the following - acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit (http://www.openssl.org/)" - - THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - OF THE POSSIBILITY OF SUCH DAMAGE. - ==================================================================== - - This product includes cryptographic software written by Eric Young - (eay@cryptsoft.com). This product includes software written by Tim - Hudson (tjh@cryptsoft.com). - -Original SSLeay License - -* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) -* All rights reserved. - -* This package is an SSL implementation written -* by Eric Young (eay@cryptsoft.com). -* The implementation was written so as to conform with Netscapes SSL. - -* This library is free for commercial and non-commercial use as long as -* the following conditions are aheared to. The following conditions -* apply to all code found in this distribution, be it the RC4, RSA, -* lhash, DES, etc., code; not just the SSL code. The SSL documentation -* included with this distribution is covered by the same copyright terms -* except that the holder is Tim Hudson (tjh@cryptsoft.com). - -* Copyright remains Eric Young's, and as such any Copyright notices in -* the code are not to be removed. -* If this package is used in a product, Eric Young should be given attribution -* as the author of the parts of the library used. -* This can be in the form of a textual message at program startup or -* in documentation (online or textual) provided with the package. - -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* 1. Redistributions of source code must retain the copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in the -* documentation and/or other materials provided with the distribution. -* 3. All advertising materials mentioning features or use of this software -* must display the following acknowledgement: -* "This product includes cryptographic software written by -* Eric Young (eay@cryptsoft.com)" -* The word 'cryptographic' can be left out if the rouines from the library -* being used are not cryptographic related :-). -* 4. If you include any Windows specific code (or a derivative thereof) from -* the apps directory (application code) you must include an acknowledgement: -* "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - -* THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND -* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -* SUCH DAMAGE. - -* The licence and distribution terms for any publically available version or -* derivative of this code cannot be changed. i.e. this code cannot simply be -* copied and put under another distribution licence -* [including the GNU Public Licence.] - -ISC license used for completely new code in BoringSSL: - -/* Copyright (c) 2015, Google Inc. - - * Permission to use, copy, modify, and/or distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION - * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - -The code in third_party/fiat carries the MIT license: - -Copyright (c) 2015-2016 the fiat-crypto authors (see -https://github.com/mit-plv/fiat-crypto/blob/master/AUTHORS). - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -Licenses for support code - -Parts of the TLS test suite are under the Go license. This code is not included -in BoringSSL (i.e. libcrypto and libssl) when compiled, however, so -distributing code linked against BoringSSL does not trigger this license: - -Copyright (c) 2009 The Go Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: boringssl -ORIGIN: ../../../third_party/boringssl/src/crypto/asn1/a_bitstr.c -TYPE: LicenseType.bsd -FILE: ../../../third_party/boringssl/src/crypto/asn1/a_bitstr.c -FILE: ../../../third_party/boringssl/src/crypto/asn1/a_bool.c -FILE: ../../../third_party/boringssl/src/crypto/asn1/a_d2i_fp.c -FILE: ../../../third_party/boringssl/src/crypto/asn1/a_dup.c -FILE: ../../../third_party/boringssl/src/crypto/asn1/a_enum.c -FILE: ../../../third_party/boringssl/src/crypto/asn1/a_gentm.c -FILE: ../../../third_party/boringssl/src/crypto/asn1/a_i2d_fp.c -FILE: ../../../third_party/boringssl/src/crypto/asn1/a_int.c -FILE: ../../../third_party/boringssl/src/crypto/asn1/a_mbstr.c -FILE: ../../../third_party/boringssl/src/crypto/asn1/a_object.c -FILE: ../../../third_party/boringssl/src/crypto/asn1/a_octet.c -FILE: ../../../third_party/boringssl/src/crypto/asn1/a_print.c -FILE: ../../../third_party/boringssl/src/crypto/asn1/a_strex.c -FILE: ../../../third_party/boringssl/src/crypto/asn1/a_strnid.c -FILE: ../../../third_party/boringssl/src/crypto/asn1/a_time.c -FILE: ../../../third_party/boringssl/src/crypto/asn1/a_type.c -FILE: ../../../third_party/boringssl/src/crypto/asn1/a_utctm.c -FILE: ../../../third_party/boringssl/src/crypto/asn1/a_utf8.c -FILE: ../../../third_party/boringssl/src/crypto/asn1/asn1_lib.c -FILE: ../../../third_party/boringssl/src/crypto/asn1/asn1_par.c -FILE: ../../../third_party/boringssl/src/crypto/asn1/asn_pack.c -FILE: ../../../third_party/boringssl/src/crypto/asn1/f_enum.c -FILE: ../../../third_party/boringssl/src/crypto/asn1/f_int.c -FILE: ../../../third_party/boringssl/src/crypto/asn1/f_string.c -FILE: ../../../third_party/boringssl/src/crypto/asn1/tasn_dec.c -FILE: ../../../third_party/boringssl/src/crypto/asn1/tasn_enc.c -FILE: ../../../third_party/boringssl/src/crypto/asn1/tasn_fre.c -FILE: ../../../third_party/boringssl/src/crypto/asn1/tasn_new.c -FILE: ../../../third_party/boringssl/src/crypto/asn1/tasn_typ.c -FILE: ../../../third_party/boringssl/src/crypto/asn1/tasn_utl.c -FILE: ../../../third_party/boringssl/src/crypto/base64/base64.c -FILE: ../../../third_party/boringssl/src/crypto/bio/bio.c -FILE: ../../../third_party/boringssl/src/crypto/bio/bio_mem.c -FILE: ../../../third_party/boringssl/src/crypto/bio/connect.c -FILE: ../../../third_party/boringssl/src/crypto/bio/fd.c -FILE: ../../../third_party/boringssl/src/crypto/bio/file.c -FILE: ../../../third_party/boringssl/src/crypto/bio/hexdump.c -FILE: ../../../third_party/boringssl/src/crypto/bio/internal.h -FILE: ../../../third_party/boringssl/src/crypto/bio/printf.c -FILE: ../../../third_party/boringssl/src/crypto/bio/socket.c -FILE: ../../../third_party/boringssl/src/crypto/bn_extra/convert.c -FILE: ../../../third_party/boringssl/src/crypto/buf/buf.c -FILE: ../../../third_party/boringssl/src/crypto/cipher_extra/cipher_extra.c -FILE: ../../../third_party/boringssl/src/crypto/cipher_extra/derive_key.c -FILE: ../../../third_party/boringssl/src/crypto/cipher_extra/e_null.c -FILE: ../../../third_party/boringssl/src/crypto/cipher_extra/e_rc2.c -FILE: ../../../third_party/boringssl/src/crypto/cipher_extra/e_rc4.c -FILE: ../../../third_party/boringssl/src/crypto/cipher_extra/internal.h -FILE: ../../../third_party/boringssl/src/crypto/conf/conf.c -FILE: ../../../third_party/boringssl/src/crypto/conf/conf_def.h -FILE: ../../../third_party/boringssl/src/crypto/cpu-intel.c -FILE: ../../../third_party/boringssl/src/crypto/dh_extra/dh_test.cc -FILE: ../../../third_party/boringssl/src/crypto/digest_extra/digest_extra.c -FILE: ../../../third_party/boringssl/src/crypto/dsa/dsa.c -FILE: ../../../third_party/boringssl/src/crypto/dsa/dsa_test.cc -FILE: ../../../third_party/boringssl/src/crypto/err/err.c -FILE: ../../../third_party/boringssl/src/crypto/evp/evp.c -FILE: ../../../third_party/boringssl/src/crypto/evp/evp_asn1.c -FILE: ../../../third_party/boringssl/src/crypto/evp/evp_ctx.c -FILE: ../../../third_party/boringssl/src/crypto/evp/internal.h -FILE: ../../../third_party/boringssl/src/crypto/evp/sign.c -FILE: ../../../third_party/boringssl/src/crypto/ex_data.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/add.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/bn.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/bn_test.cc -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/bytes.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/cmp.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/div.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/exponentiation.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/gcd.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/generic.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/montgomery.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/mul.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/prime.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/random.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/shift.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/cipher/cipher.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/cipher/e_des.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/cipher/internal.h -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/des/des.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/des/internal.h -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/dh/check.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/dh/dh.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/digest/digest.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/digest/digests.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/digest/internal.h -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/hmac/hmac.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/md4/md4.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/md5/md5.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/rsa/blinding.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/rsa/internal.h -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/rsa/rsa.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/rsa/rsa_impl.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/sha/sha1-altivec.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/sha/sha1.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/sha/sha256.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/sha/sha512.c -FILE: ../../../third_party/boringssl/src/crypto/hmac_extra/hmac_test.cc -FILE: ../../../third_party/boringssl/src/crypto/internal.h -FILE: ../../../third_party/boringssl/src/crypto/lhash/internal.h -FILE: ../../../third_party/boringssl/src/crypto/lhash/lhash.c -FILE: ../../../third_party/boringssl/src/crypto/mem.c -FILE: ../../../third_party/boringssl/src/crypto/obj/obj.c -FILE: ../../../third_party/boringssl/src/crypto/obj/obj_xref.c -FILE: ../../../third_party/boringssl/src/crypto/pem/pem_all.c -FILE: ../../../third_party/boringssl/src/crypto/pem/pem_info.c -FILE: ../../../third_party/boringssl/src/crypto/pem/pem_lib.c -FILE: ../../../third_party/boringssl/src/crypto/pem/pem_oth.c -FILE: ../../../third_party/boringssl/src/crypto/pem/pem_pk8.c -FILE: ../../../third_party/boringssl/src/crypto/pem/pem_pkey.c -FILE: ../../../third_party/boringssl/src/crypto/rc4/rc4.c -FILE: ../../../third_party/boringssl/src/crypto/rsa_extra/rsa_test.cc -FILE: ../../../third_party/boringssl/src/crypto/stack/stack.c -FILE: ../../../third_party/boringssl/src/crypto/thread.c -FILE: ../../../third_party/boringssl/src/crypto/x509/a_digest.c -FILE: ../../../third_party/boringssl/src/crypto/x509/a_sign.c -FILE: ../../../third_party/boringssl/src/crypto/x509/a_verify.c -FILE: ../../../third_party/boringssl/src/crypto/x509/algorithm.c -FILE: ../../../third_party/boringssl/src/crypto/x509/asn1_gen.c -FILE: ../../../third_party/boringssl/src/crypto/x509/by_dir.c -FILE: ../../../third_party/boringssl/src/crypto/x509/by_file.c -FILE: ../../../third_party/boringssl/src/crypto/x509/i2d_pr.c -FILE: ../../../third_party/boringssl/src/crypto/x509/name_print.c -FILE: ../../../third_party/boringssl/src/crypto/x509/t_crl.c -FILE: ../../../third_party/boringssl/src/crypto/x509/t_req.c -FILE: ../../../third_party/boringssl/src/crypto/x509/t_x509.c -FILE: ../../../third_party/boringssl/src/crypto/x509/t_x509a.c -FILE: ../../../third_party/boringssl/src/crypto/x509/x509.c -FILE: ../../../third_party/boringssl/src/crypto/x509/x509_att.c -FILE: ../../../third_party/boringssl/src/crypto/x509/x509_cmp.c -FILE: ../../../third_party/boringssl/src/crypto/x509/x509_d2.c -FILE: ../../../third_party/boringssl/src/crypto/x509/x509_def.c -FILE: ../../../third_party/boringssl/src/crypto/x509/x509_ext.c -FILE: ../../../third_party/boringssl/src/crypto/x509/x509_lu.c -FILE: ../../../third_party/boringssl/src/crypto/x509/x509_obj.c -FILE: ../../../third_party/boringssl/src/crypto/x509/x509_req.c -FILE: ../../../third_party/boringssl/src/crypto/x509/x509_set.c -FILE: ../../../third_party/boringssl/src/crypto/x509/x509_txt.c -FILE: ../../../third_party/boringssl/src/crypto/x509/x509_v3.c -FILE: ../../../third_party/boringssl/src/crypto/x509/x509_vfy.c -FILE: ../../../third_party/boringssl/src/crypto/x509/x509name.c -FILE: ../../../third_party/boringssl/src/crypto/x509/x509rset.c -FILE: ../../../third_party/boringssl/src/crypto/x509/x_all.c -FILE: ../../../third_party/boringssl/src/crypto/x509/x_attrib.c -FILE: ../../../third_party/boringssl/src/crypto/x509/x_crl.c -FILE: ../../../third_party/boringssl/src/crypto/x509/x_exten.c -FILE: ../../../third_party/boringssl/src/crypto/x509/x_info.c -FILE: ../../../third_party/boringssl/src/crypto/x509/x_name.c -FILE: ../../../third_party/boringssl/src/crypto/x509/x_pkey.c -FILE: ../../../third_party/boringssl/src/crypto/x509/x_pubkey.c -FILE: ../../../third_party/boringssl/src/crypto/x509/x_req.c -FILE: ../../../third_party/boringssl/src/crypto/x509/x_sig.c -FILE: ../../../third_party/boringssl/src/crypto/x509/x_spki.c -FILE: ../../../third_party/boringssl/src/crypto/x509/x_val.c -FILE: ../../../third_party/boringssl/src/crypto/x509/x_x509.c -FILE: ../../../third_party/boringssl/src/decrepit/bio/base64_bio.c -FILE: ../../../third_party/boringssl/src/decrepit/blowfish/blowfish.c -FILE: ../../../third_party/boringssl/src/decrepit/cast/cast.c -FILE: ../../../third_party/boringssl/src/decrepit/cast/cast_tables.c -FILE: ../../../third_party/boringssl/src/decrepit/cast/internal.h -FILE: ../../../third_party/boringssl/src/decrepit/des/cfb64ede.c -FILE: ../../../third_party/boringssl/src/decrepit/macros.h -FILE: ../../../third_party/boringssl/src/decrepit/rc4/rc4_decrepit.c -FILE: ../../../third_party/boringssl/src/decrepit/ripemd/ripemd.c -FILE: ../../../third_party/boringssl/src/decrepit/rsa/rsa_decrepit.c -FILE: ../../../third_party/boringssl/src/decrepit/ssl/ssl_decrepit.c -FILE: ../../../third_party/boringssl/src/include/openssl/asn1.h -FILE: ../../../third_party/boringssl/src/include/openssl/base64.h -FILE: ../../../third_party/boringssl/src/include/openssl/bio.h -FILE: ../../../third_party/boringssl/src/include/openssl/blowfish.h -FILE: ../../../third_party/boringssl/src/include/openssl/buf.h -FILE: ../../../third_party/boringssl/src/include/openssl/cast.h -FILE: ../../../third_party/boringssl/src/include/openssl/cipher.h -FILE: ../../../third_party/boringssl/src/include/openssl/conf.h -FILE: ../../../third_party/boringssl/src/include/openssl/cpu.h -FILE: ../../../third_party/boringssl/src/include/openssl/des.h -FILE: ../../../third_party/boringssl/src/include/openssl/dh.h -FILE: ../../../third_party/boringssl/src/include/openssl/digest.h -FILE: ../../../third_party/boringssl/src/include/openssl/dsa.h -FILE: ../../../third_party/boringssl/src/include/openssl/err.h -FILE: ../../../third_party/boringssl/src/include/openssl/evp.h -FILE: ../../../third_party/boringssl/src/include/openssl/evp_errors.h -FILE: ../../../third_party/boringssl/src/include/openssl/ex_data.h -FILE: ../../../third_party/boringssl/src/include/openssl/hmac.h -FILE: ../../../third_party/boringssl/src/include/openssl/lhash.h -FILE: ../../../third_party/boringssl/src/include/openssl/md4.h -FILE: ../../../third_party/boringssl/src/include/openssl/md5.h -FILE: ../../../third_party/boringssl/src/include/openssl/mem.h -FILE: ../../../third_party/boringssl/src/include/openssl/obj.h -FILE: ../../../third_party/boringssl/src/include/openssl/rc4.h -FILE: ../../../third_party/boringssl/src/include/openssl/ripemd.h -FILE: ../../../third_party/boringssl/src/include/openssl/rsa.h -FILE: ../../../third_party/boringssl/src/include/openssl/sha.h -FILE: ../../../third_party/boringssl/src/include/openssl/ssl.h -FILE: ../../../third_party/boringssl/src/include/openssl/ssl3.h -FILE: ../../../third_party/boringssl/src/include/openssl/stack.h -FILE: ../../../third_party/boringssl/src/include/openssl/thread.h -FILE: ../../../third_party/boringssl/src/include/openssl/tls1.h -FILE: ../../../third_party/boringssl/src/include/openssl/type_check.h -FILE: ../../../third_party/boringssl/src/include/openssl/x509.h -FILE: ../../../third_party/boringssl/src/include/openssl/x509_vfy.h -FILE: ../../../third_party/boringssl/src/ssl/d1_both.cc -FILE: ../../../third_party/boringssl/src/ssl/d1_pkt.cc -FILE: ../../../third_party/boringssl/src/ssl/d1_srtp.cc -FILE: ../../../third_party/boringssl/src/ssl/dtls_record.cc -FILE: ../../../third_party/boringssl/src/ssl/extensions.cc -FILE: ../../../third_party/boringssl/src/ssl/handshake.cc -FILE: ../../../third_party/boringssl/src/ssl/handshake_client.cc -FILE: ../../../third_party/boringssl/src/ssl/handshake_server.cc -FILE: ../../../third_party/boringssl/src/ssl/internal.h -FILE: ../../../third_party/boringssl/src/ssl/s3_both.cc -FILE: ../../../third_party/boringssl/src/ssl/s3_lib.cc -FILE: ../../../third_party/boringssl/src/ssl/s3_pkt.cc -FILE: ../../../third_party/boringssl/src/ssl/ssl_asn1.cc -FILE: ../../../third_party/boringssl/src/ssl/ssl_cert.cc -FILE: ../../../third_party/boringssl/src/ssl/ssl_cipher.cc -FILE: ../../../third_party/boringssl/src/ssl/ssl_file.cc -FILE: ../../../third_party/boringssl/src/ssl/ssl_lib.cc -FILE: ../../../third_party/boringssl/src/ssl/ssl_privkey.cc -FILE: ../../../third_party/boringssl/src/ssl/ssl_session.cc -FILE: ../../../third_party/boringssl/src/ssl/ssl_stat.cc -FILE: ../../../third_party/boringssl/src/ssl/ssl_transcript.cc -FILE: ../../../third_party/boringssl/src/ssl/ssl_x509.cc -FILE: ../../../third_party/boringssl/src/ssl/t1_enc.cc -FILE: ../../../third_party/boringssl/src/ssl/tls_method.cc -FILE: ../../../third_party/boringssl/src/ssl/tls_record.cc ----------------------------------------------------------------------------------------------------- -Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) -All rights reserved. - -This package is an SSL implementation written -by Eric Young (eay@cryptsoft.com). -The implementation was written so as to conform with Netscapes SSL. - -This library is free for commercial and non-commercial use as long as -the following conditions are aheared to. The following conditions -apply to all code found in this distribution, be it the RC4, RSA, -lhash, DES, etc., code; not just the SSL code. The SSL documentation -included with this distribution is covered by the same copyright terms -except that the holder is Tim Hudson (tjh@cryptsoft.com). - -Copyright remains Eric Young's, and as such any Copyright notices in -the code are not to be removed. -If this package is used in a product, Eric Young should be given attribution -as the author of the parts of the library used. -This can be in the form of a textual message at program startup or -in documentation (online or textual) provided with the package. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: -1. Redistributions of source code must retain the copyright - notice, this list of conditions and the following disclaimer. -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. -3. All advertising materials mentioning features or use of this software - must display the following acknowledgement: - "This product includes cryptographic software written by - Eric Young (eay@cryptsoft.com)" - The word 'cryptographic' can be left out if the rouines from the library - being used are not cryptographic related :-). -4. If you include any Windows specific code (or a derivative thereof) from - the apps directory (application code) you must include an acknowledgement: - "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - -THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -SUCH DAMAGE. - -The licence and distribution terms for any publically available version or -derivative of this code cannot be changed. i.e. this code cannot simply be -copied and put under another distribution licence -[including the GNU Public Licence.] -==================================================================================================== - -==================================================================================================== -LIBRARY: boringssl -ORIGIN: ../../../third_party/boringssl/src/crypto/asn1/asn1_test.cc -TYPE: LicenseType.unknown -FILE: ../../../third_party/boringssl/src/crypto/asn1/asn1_test.cc -FILE: ../../../third_party/boringssl/src/crypto/bytestring/asn1_compat.c -FILE: ../../../third_party/boringssl/src/crypto/chacha/chacha_test.cc -FILE: ../../../third_party/boringssl/src/crypto/cpu-aarch64-linux.c -FILE: ../../../third_party/boringssl/src/crypto/cpu-arm-linux.c -FILE: ../../../third_party/boringssl/src/crypto/cpu-ppc64le.c -FILE: ../../../third_party/boringssl/src/crypto/curve25519/spake25519.c -FILE: ../../../third_party/boringssl/src/crypto/curve25519/spake25519_test.cc -FILE: ../../../third_party/boringssl/src/crypto/ecdh_extra/ecdh_test.cc -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/check_bn_tests.go -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/ec/p256-x86_64_test.cc -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/modes/polyval.c -FILE: ../../../third_party/boringssl/src/crypto/obj/obj_test.cc -FILE: ../../../third_party/boringssl/src/crypto/obj/objects.go -FILE: ../../../third_party/boringssl/src/crypto/poly1305/internal.h -FILE: ../../../third_party/boringssl/src/crypto/pool/internal.h -FILE: ../../../third_party/boringssl/src/crypto/pool/pool.c -FILE: ../../../third_party/boringssl/src/crypto/pool/pool_test.cc -FILE: ../../../third_party/boringssl/src/crypto/rand_extra/deterministic.c -FILE: ../../../third_party/boringssl/src/crypto/x509/x509_test.cc -FILE: ../../../third_party/boringssl/src/decrepit/evp/dss1.c -FILE: ../../../third_party/boringssl/src/decrepit/evp/evp_do_all.c -FILE: ../../../third_party/boringssl/src/decrepit/obj/obj_decrepit.c -FILE: ../../../third_party/boringssl/src/decrepit/ripemd/ripemd_test.cc -FILE: ../../../third_party/boringssl/src/decrepit/x509/x509_decrepit.c -FILE: ../../../third_party/boringssl/src/include/openssl/asn1_mac.h -FILE: ../../../third_party/boringssl/src/include/openssl/obj_mac.h -FILE: ../../../third_party/boringssl/src/include/openssl/pool.h -FILE: ../../../third_party/boringssl/src/ssl/tls13_both.cc -FILE: ../../../third_party/boringssl/src/ssl/tls13_client.cc -FILE: ../../../third_party/boringssl/src/ssl/tls13_enc.cc -FILE: ../../../third_party/boringssl/src/ssl/tls13_server.cc -FILE: ../../../third_party/boringssl/src/util/BUILD.toplevel -FILE: ../../../third_party/boringssl/src/util/diff_asm.go -FILE: ../../../third_party/boringssl/src/util/run_android_tests.go ----------------------------------------------------------------------------------------------------- -Copyright (c) 2016, Google Inc. - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY -SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION -OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN -CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -==================================================================================================== - -==================================================================================================== -LIBRARY: boringssl -ORIGIN: ../../../third_party/boringssl/src/crypto/asn1/internal.h -TYPE: LicenseType.bsd -FILE: ../../../third_party/boringssl/src/crypto/asn1/internal.h -FILE: ../../../third_party/boringssl/src/crypto/evp/p_dsa_asn1.c -FILE: ../../../third_party/boringssl/src/crypto/evp/p_ec.c -FILE: ../../../third_party/boringssl/src/crypto/evp/p_ec_asn1.c -FILE: ../../../third_party/boringssl/src/crypto/evp/p_rsa.c -FILE: ../../../third_party/boringssl/src/crypto/evp/p_rsa_asn1.c -FILE: ../../../third_party/boringssl/src/crypto/evp/print.c -FILE: ../../../third_party/boringssl/src/crypto/x509/rsa_pss.c ----------------------------------------------------------------------------------------------------- -Copyright (c) 2006 The OpenSSL Project. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - -3. All advertising materials mentioning features or use of this - software must display the following acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" - -4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - endorse or promote products derived from this software without - prior written permission. For written permission, please contact - licensing@OpenSSL.org. - -5. Products derived from this software may not be called "OpenSSL" - nor may "OpenSSL" appear in their names without prior written - permission of the OpenSSL Project. - -6. Redistributions of any form whatsoever must retain the following - acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" - -THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY -EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR -ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED -OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: boringssl -ORIGIN: ../../../third_party/boringssl/src/crypto/asn1/time_support.c -TYPE: LicenseType.bsd -FILE: ../../../third_party/boringssl/src/crypto/asn1/time_support.c -FILE: ../../../third_party/boringssl/src/crypto/pem/pem_x509.c -FILE: ../../../third_party/boringssl/src/crypto/pem/pem_xaux.c -FILE: ../../../third_party/boringssl/src/crypto/x509/x509cset.c ----------------------------------------------------------------------------------------------------- -Copyright (c) 2001 The OpenSSL Project. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - -3. All advertising materials mentioning features or use of this - software must display the following acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" - -4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - endorse or promote products derived from this software without - prior written permission. For written permission, please contact - licensing@OpenSSL.org. - -5. Products derived from this software may not be called "OpenSSL" - nor may "OpenSSL" appear in their names without prior written - permission of the OpenSSL Project. - -6. Redistributions of any form whatsoever must retain the following - acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" - -THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY -EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR -ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED -OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: boringssl -ORIGIN: ../../../third_party/boringssl/src/crypto/base64/base64_test.cc -TYPE: LicenseType.unknown -FILE: ../../../third_party/boringssl/src/crypto/base64/base64_test.cc -FILE: ../../../third_party/boringssl/src/crypto/bio/bio_test.cc -FILE: ../../../third_party/boringssl/src/crypto/bio/socket_helper.c -FILE: ../../../third_party/boringssl/src/crypto/bytestring/ber.c -FILE: ../../../third_party/boringssl/src/crypto/bytestring/bytestring_test.cc -FILE: ../../../third_party/boringssl/src/crypto/bytestring/cbb.c -FILE: ../../../third_party/boringssl/src/crypto/bytestring/cbs.c -FILE: ../../../third_party/boringssl/src/crypto/bytestring/internal.h -FILE: ../../../third_party/boringssl/src/crypto/chacha/chacha.c -FILE: ../../../third_party/boringssl/src/crypto/cipher_extra/aead_test.cc -FILE: ../../../third_party/boringssl/src/crypto/cipher_extra/e_chacha20poly1305.c -FILE: ../../../third_party/boringssl/src/crypto/cipher_extra/e_tls.c -FILE: ../../../third_party/boringssl/src/crypto/cpu-arm.c -FILE: ../../../third_party/boringssl/src/crypto/crypto.c -FILE: ../../../third_party/boringssl/src/crypto/digest_extra/digest_test.cc -FILE: ../../../third_party/boringssl/src/crypto/engine/engine.c -FILE: ../../../third_party/boringssl/src/crypto/err/err_test.cc -FILE: ../../../third_party/boringssl/src/crypto/evp/evp_extra_test.cc -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/cipher/aead.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/ec/ec_test.cc -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/rand/rand.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/rand/urandom.c -FILE: ../../../third_party/boringssl/src/crypto/hkdf/hkdf.c -FILE: ../../../third_party/boringssl/src/crypto/hkdf/hkdf_test.cc -FILE: ../../../third_party/boringssl/src/crypto/lhash/lhash_test.cc -FILE: ../../../third_party/boringssl/src/crypto/pkcs7/pkcs7.c -FILE: ../../../third_party/boringssl/src/crypto/pkcs7/pkcs7_test.cc -FILE: ../../../third_party/boringssl/src/crypto/pkcs8/pkcs12_test.cc -FILE: ../../../third_party/boringssl/src/crypto/poly1305/poly1305.c -FILE: ../../../third_party/boringssl/src/crypto/poly1305/poly1305_arm.c -FILE: ../../../third_party/boringssl/src/crypto/poly1305/poly1305_vec.c -FILE: ../../../third_party/boringssl/src/crypto/rand_extra/windows.c -FILE: ../../../third_party/boringssl/src/include/openssl/aead.h -FILE: ../../../third_party/boringssl/src/include/openssl/bytestring.h -FILE: ../../../third_party/boringssl/src/include/openssl/chacha.h -FILE: ../../../third_party/boringssl/src/include/openssl/crypto.h -FILE: ../../../third_party/boringssl/src/include/openssl/engine.h -FILE: ../../../third_party/boringssl/src/include/openssl/hkdf.h -FILE: ../../../third_party/boringssl/src/include/openssl/objects.h -FILE: ../../../third_party/boringssl/src/include/openssl/opensslconf.h -FILE: ../../../third_party/boringssl/src/include/openssl/opensslv.h -FILE: ../../../third_party/boringssl/src/include/openssl/ossl_typ.h -FILE: ../../../third_party/boringssl/src/include/openssl/pkcs12.h -FILE: ../../../third_party/boringssl/src/include/openssl/pkcs7.h -FILE: ../../../third_party/boringssl/src/include/openssl/poly1305.h -FILE: ../../../third_party/boringssl/src/include/openssl/rand.h -FILE: ../../../third_party/boringssl/src/include/openssl/safestack.h -FILE: ../../../third_party/boringssl/src/ssl/ssl_test.cc -FILE: ../../../third_party/boringssl/src/tool/args.cc -FILE: ../../../third_party/boringssl/src/tool/client.cc -FILE: ../../../third_party/boringssl/src/tool/const.cc -FILE: ../../../third_party/boringssl/src/tool/digest.cc -FILE: ../../../third_party/boringssl/src/tool/internal.h -FILE: ../../../third_party/boringssl/src/tool/pkcs12.cc -FILE: ../../../third_party/boringssl/src/tool/server.cc -FILE: ../../../third_party/boringssl/src/tool/speed.cc -FILE: ../../../third_party/boringssl/src/tool/tool.cc -FILE: ../../../third_party/boringssl/src/tool/transport_common.cc -FILE: ../../../third_party/boringssl/src/tool/transport_common.h -FILE: ../../../third_party/boringssl/src/util/make_errors.go ----------------------------------------------------------------------------------------------------- -Copyright (c) 2014, Google Inc. - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY -SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION -OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN -CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -==================================================================================================== - -==================================================================================================== -LIBRARY: boringssl -ORIGIN: ../../../third_party/boringssl/src/crypto/bio/pair.c -TYPE: LicenseType.bsd -FILE: ../../../third_party/boringssl/src/crypto/bio/pair.c ----------------------------------------------------------------------------------------------------- -Copyright (c) 1998-2003 The OpenSSL Project. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - -3. All advertising materials mentioning features or use of this - software must display the following acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit. (http://www.openssl.org/)" - -4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - endorse or promote products derived from this software without - prior written permission. For written permission, please contact - openssl-core@openssl.org. - -5. Products derived from this software may not be called "OpenSSL" - nor may "OpenSSL" appear in their names without prior written - permission of the OpenSSL Project. - -6. Redistributions of any form whatsoever must retain the following - acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit (http://www.openssl.org/)" - -THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY -EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR -ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED -OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: boringssl -ORIGIN: ../../../third_party/boringssl/src/crypto/blake2/blake2.c -TYPE: LicenseType.unknown -FILE: ../../../third_party/boringssl/src/crypto/blake2/blake2.c -FILE: ../../../third_party/boringssl/src/crypto/blake2/blake2_test.cc -FILE: ../../../third_party/boringssl/src/crypto/conf/conf_test.cc -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/ecdsa/internal.h -FILE: ../../../third_party/boringssl/src/decrepit/evp/evp_test.cc -FILE: ../../../third_party/boringssl/src/include/openssl/blake2.h -FILE: ../../../third_party/boringssl/src/ssl/encrypted_client_hello.cc -FILE: ../../../third_party/boringssl/src/tool/generate_ech.cc -FILE: ../../../third_party/boringssl/src/util/fetch_ech_config_list.go -FILE: ../../../third_party/boringssl/src/util/fipstools/acvp/acvptool/subprocess/hkdf.go -FILE: ../../../third_party/boringssl/src/util/fipstools/acvp/acvptool/subprocess/xts.go -FILE: ../../../third_party/boringssl/src/util/fipstools/acvp/acvptool/testmodulewrapper/cts_test.go -FILE: ../../../third_party/boringssl/src/util/fipstools/acvp/acvptool/testmodulewrapper/hmac_drbg.go -FILE: ../../../third_party/boringssl/src/util/fipstools/acvp/acvptool/testmodulewrapper/hmac_drbg_test.go -FILE: ../../../third_party/boringssl/src/util/fipstools/acvp/acvptool/testmodulewrapper/testmodulewrapper.go -FILE: ../../../third_party/boringssl/src/util/fipstools/acvp/modulewrapper/main.cc -FILE: ../../../third_party/boringssl/src/util/fipstools/acvp/modulewrapper/modulewrapper.h ----------------------------------------------------------------------------------------------------- -Copyright (c) 2021, Google Inc. - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY -SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION -OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN -CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -==================================================================================================== - -==================================================================================================== -LIBRARY: boringssl -ORIGIN: ../../../third_party/boringssl/src/crypto/bn_extra/bn_asn1.c -TYPE: LicenseType.unknown -FILE: ../../../third_party/boringssl/err_data.c -FILE: ../../../third_party/boringssl/src/crypto/bn_extra/bn_asn1.c -FILE: ../../../third_party/boringssl/src/crypto/cmac/cmac_test.cc -FILE: ../../../third_party/boringssl/src/crypto/conf/internal.h -FILE: ../../../third_party/boringssl/src/crypto/curve25519/asm/x25519-asm-arm.S -FILE: ../../../third_party/boringssl/src/crypto/curve25519/ed25519_test.cc -FILE: ../../../third_party/boringssl/src/crypto/curve25519/x25519_test.cc -FILE: ../../../third_party/boringssl/src/crypto/err/err_data_generate.go -FILE: ../../../third_party/boringssl/src/crypto/evp/pbkdf_test.cc -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/aes/aes_test.cc -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/ec/p224-64.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/ec/util.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/rand/internal.h -FILE: ../../../third_party/boringssl/src/crypto/pkcs8/pkcs8_test.cc -FILE: ../../../third_party/boringssl/src/crypto/poly1305/poly1305_test.cc -FILE: ../../../third_party/boringssl/src/crypto/refcount_c11.c -FILE: ../../../third_party/boringssl/src/crypto/refcount_lock.c -FILE: ../../../third_party/boringssl/src/crypto/refcount_test.cc -FILE: ../../../third_party/boringssl/src/crypto/thread_none.c -FILE: ../../../third_party/boringssl/src/crypto/thread_pthread.c -FILE: ../../../third_party/boringssl/src/crypto/thread_test.cc -FILE: ../../../third_party/boringssl/src/crypto/thread_win.c -FILE: ../../../third_party/boringssl/src/include/openssl/buffer.h -FILE: ../../../third_party/boringssl/src/include/openssl/cmac.h -FILE: ../../../third_party/boringssl/src/include/openssl/curve25519.h -FILE: ../../../third_party/boringssl/src/include/openssl/dtls1.h -FILE: ../../../third_party/boringssl/src/include/openssl/srtp.h -FILE: ../../../third_party/boringssl/src/ssl/ssl_aead_ctx.cc -FILE: ../../../third_party/boringssl/src/ssl/ssl_buffer.cc -FILE: ../../../third_party/boringssl/src/ssl/ssl_key_share.cc -FILE: ../../../third_party/boringssl/src/tool/ciphers.cc -FILE: ../../../third_party/boringssl/src/tool/generate_ed25519.cc -FILE: ../../../third_party/boringssl/src/tool/genrsa.cc -FILE: ../../../third_party/boringssl/src/tool/rand.cc -FILE: ../../../third_party/boringssl/src/util/all_tests.go -FILE: ../../../third_party/boringssl/src/util/bot/DEPS ----------------------------------------------------------------------------------------------------- -Copyright (c) 2015, Google Inc. - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY -SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION -OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN -CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -==================================================================================================== - -==================================================================================================== -LIBRARY: boringssl -ORIGIN: ../../../third_party/boringssl/src/crypto/buf/buf_test.cc -TYPE: LicenseType.unknown -FILE: ../../../third_party/boringssl/crypto_test_data.cc -FILE: ../../../third_party/boringssl/src/crypto/buf/buf_test.cc -FILE: ../../../third_party/boringssl/src/crypto/cipher_extra/e_aesctrhmac.c -FILE: ../../../third_party/boringssl/src/crypto/cipher_extra/e_aesgcmsiv.c -FILE: ../../../third_party/boringssl/src/crypto/compiler_test.cc -FILE: ../../../third_party/boringssl/src/crypto/err/internal.h -FILE: ../../../third_party/boringssl/src/crypto/evp/p_ed25519.c -FILE: ../../../third_party/boringssl/src/crypto/evp/p_ed25519_asn1.c -FILE: ../../../third_party/boringssl/src/crypto/evp/scrypt_test.cc -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/aes/internal.h -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/bcm.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/bn_test_to_fuzzer.go -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/delocate.h -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/rand/ctrdrbg.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/rand/ctrdrbg_test.cc -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/self_check/fips.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/self_check/self_check.c -FILE: ../../../third_party/boringssl/src/crypto/pkcs7/internal.h -FILE: ../../../third_party/boringssl/src/crypto/pkcs7/pkcs7_x509.c -FILE: ../../../third_party/boringssl/src/crypto/rand_extra/forkunsafe.c -FILE: ../../../third_party/boringssl/src/crypto/rand_extra/fuchsia.c -FILE: ../../../third_party/boringssl/src/crypto/rand_extra/rand_extra.c -FILE: ../../../third_party/boringssl/src/decrepit/cfb/cfb.c -FILE: ../../../third_party/boringssl/src/decrepit/cfb/cfb_test.cc -FILE: ../../../third_party/boringssl/src/include/openssl/is_boringssl.h -FILE: ../../../third_party/boringssl/src/include/openssl/span.h -FILE: ../../../third_party/boringssl/src/ssl/span_test.cc -FILE: ../../../third_party/boringssl/src/ssl/ssl_versions.cc -FILE: ../../../third_party/boringssl/src/tool/file.cc -FILE: ../../../third_party/boringssl/src/tool/sign.cc -FILE: ../../../third_party/boringssl/src/util/ar/ar.go -FILE: ../../../third_party/boringssl/src/util/check_imported_libraries.go -FILE: ../../../third_party/boringssl/src/util/convert_comments.go -FILE: ../../../third_party/boringssl/src/util/embed_test_data.go -FILE: ../../../third_party/boringssl/src/util/fipstools/break-hash.go -FILE: ../../../third_party/boringssl/src/util/fipstools/cavp/cavp_aes_gcm_test.cc -FILE: ../../../third_party/boringssl/src/util/fipstools/cavp/cavp_aes_test.cc -FILE: ../../../third_party/boringssl/src/util/fipstools/cavp/cavp_ctr_drbg_test.cc -FILE: ../../../third_party/boringssl/src/util/fipstools/cavp/cavp_ecdsa2_keypair_test.cc -FILE: ../../../third_party/boringssl/src/util/fipstools/cavp/cavp_ecdsa2_pkv_test.cc -FILE: ../../../third_party/boringssl/src/util/fipstools/cavp/cavp_ecdsa2_siggen_test.cc -FILE: ../../../third_party/boringssl/src/util/fipstools/cavp/cavp_ecdsa2_sigver_test.cc -FILE: ../../../third_party/boringssl/src/util/fipstools/cavp/cavp_hmac_test.cc -FILE: ../../../third_party/boringssl/src/util/fipstools/cavp/cavp_keywrap_test.cc -FILE: ../../../third_party/boringssl/src/util/fipstools/cavp/cavp_main.cc -FILE: ../../../third_party/boringssl/src/util/fipstools/cavp/cavp_rsa2_keygen_test.cc -FILE: ../../../third_party/boringssl/src/util/fipstools/cavp/cavp_rsa2_siggen_test.cc -FILE: ../../../third_party/boringssl/src/util/fipstools/cavp/cavp_rsa2_sigver_test.cc -FILE: ../../../third_party/boringssl/src/util/fipstools/cavp/cavp_sha_monte_test.cc -FILE: ../../../third_party/boringssl/src/util/fipstools/cavp/cavp_sha_test.cc -FILE: ../../../third_party/boringssl/src/util/fipstools/cavp/cavp_tdes_test.cc -FILE: ../../../third_party/boringssl/src/util/fipstools/cavp/cavp_test_util.cc -FILE: ../../../third_party/boringssl/src/util/fipstools/cavp/cavp_test_util.h -FILE: ../../../third_party/boringssl/src/util/fipstools/cavp/test_fips.c -FILE: ../../../third_party/boringssl/src/util/fipstools/delocate/delocate.go -FILE: ../../../third_party/boringssl/src/util/fipstools/delocate/delocate.peg -FILE: ../../../third_party/boringssl/src/util/fipstools/delocate/delocate_test.go -FILE: ../../../third_party/boringssl/src/util/fipstools/fipscommon/const.go -FILE: ../../../third_party/boringssl/src/util/fipstools/inject_hash/inject_hash.go ----------------------------------------------------------------------------------------------------- -Copyright (c) 2017, Google Inc. - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY -SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION -OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN -CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -==================================================================================================== - -==================================================================================================== -LIBRARY: boringssl -ORIGIN: ../../../third_party/boringssl/src/crypto/bytestring/unicode.c -TYPE: LicenseType.unknown -FILE: ../../../third_party/boringssl/src/crypto/abi_self_test.cc -FILE: ../../../third_party/boringssl/src/crypto/bytestring/unicode.c -FILE: ../../../third_party/boringssl/src/crypto/chacha/internal.h -FILE: ../../../third_party/boringssl/src/crypto/cpu-aarch64-fuchsia.c -FILE: ../../../third_party/boringssl/src/crypto/cpu-arm-linux.h -FILE: ../../../third_party/boringssl/src/crypto/cpu-arm-linux_test.cc -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/div_extra.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/gcd_extra.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/ec/felem.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/ec/make_ec_scalar_base_mult_tests.go -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/ec/make_p256-x86_64-tests.go -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/ec/scalar.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/ec/simple_mul.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/md5/internal.h -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/md5/md5_test.cc -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/sha/internal.h -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/sha/sha_test.cc -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/tls/internal.h -FILE: ../../../third_party/boringssl/src/crypto/hrss/hrss.c -FILE: ../../../third_party/boringssl/src/crypto/hrss/hrss_test.cc -FILE: ../../../third_party/boringssl/src/crypto/hrss/internal.h -FILE: ../../../third_party/boringssl/src/crypto/impl_dispatch_test.cc -FILE: ../../../third_party/boringssl/src/crypto/pem/pem_test.cc -FILE: ../../../third_party/boringssl/src/crypto/rand_extra/rand_test.cc -FILE: ../../../third_party/boringssl/src/crypto/self_test.cc -FILE: ../../../third_party/boringssl/src/crypto/stack/stack_test.cc -FILE: ../../../third_party/boringssl/src/crypto/x509v3/internal.h -FILE: ../../../third_party/boringssl/src/include/openssl/e_os2.h -FILE: ../../../third_party/boringssl/src/include/openssl/hrss.h -FILE: ../../../third_party/boringssl/src/ssl/handoff.cc -FILE: ../../../third_party/boringssl/src/util/ar/ar_test.go -FILE: ../../../third_party/boringssl/src/util/check_filenames.go -FILE: ../../../third_party/boringssl/src/util/convert_wycheproof.go -FILE: ../../../third_party/boringssl/src/util/fipstools/cavp/cavp_kas_test.cc -FILE: ../../../third_party/boringssl/src/util/fipstools/cavp/cavp_tlskdf_test.cc -FILE: ../../../third_party/boringssl/src/util/godeps.go -FILE: ../../../third_party/boringssl/src/util/make_prefix_headers.go -FILE: ../../../third_party/boringssl/src/util/read_symbols.go -FILE: ../../../third_party/boringssl/src/util/testresult/testresult.go ----------------------------------------------------------------------------------------------------- -Copyright (c) 2018, Google Inc. - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY -SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION -OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN -CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -==================================================================================================== - -==================================================================================================== -LIBRARY: boringssl -ORIGIN: ../../../third_party/boringssl/src/crypto/cipher_extra/cipher_test.cc -TYPE: LicenseType.bsd -FILE: ../../../third_party/boringssl/src/crypto/cipher_extra/cipher_test.cc -FILE: ../../../third_party/boringssl/src/crypto/evp/evp_test.cc ----------------------------------------------------------------------------------------------------- -Copyright (c) 2015 The OpenSSL Project. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - -3. All advertising materials mentioning features or use of this - software must display the following acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" - -4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - endorse or promote products derived from this software without - prior written permission. For written permission, please contact - licensing@OpenSSL.org. - -5. Products derived from this software may not be called "OpenSSL" - nor may "OpenSSL" appear in their names without prior written - permission of the OpenSSL Project. - -6. Redistributions of any form whatsoever must retain the following - acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" - -THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY -EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR -ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED -OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: boringssl -ORIGIN: ../../../third_party/boringssl/src/crypto/cipher_extra/e_aesccm.c -TYPE: LicenseType.bsd -FILE: ../../../third_party/boringssl/src/crypto/cipher_extra/e_aesccm.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/modes/cbc.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/modes/cfb.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/modes/ctr.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/modes/gcm.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/modes/gcm_test.cc -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/modes/internal.h -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/modes/ofb.c ----------------------------------------------------------------------------------------------------- -Copyright (c) 2008 The OpenSSL Project. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - -3. All advertising materials mentioning features or use of this - software must display the following acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit. (http://www.openssl.org/)" - -4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - endorse or promote products derived from this software without - prior written permission. For written permission, please contact - openssl-core@openssl.org. - -5. Products derived from this software may not be called "OpenSSL" - nor may "OpenSSL" appear in their names without prior written - permission of the OpenSSL Project. - -6. Redistributions of any form whatsoever must retain the following - acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit (http://www.openssl.org/)" - -THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY -EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR -ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED -OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: boringssl -ORIGIN: ../../../third_party/boringssl/src/crypto/cipher_extra/tls_cbc.c -TYPE: LicenseType.bsd -FILE: ../../../third_party/boringssl/src/crypto/cipher_extra/tls_cbc.c ----------------------------------------------------------------------------------------------------- -Copyright (c) 2012 The OpenSSL Project. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - -3. All advertising materials mentioning features or use of this - software must display the following acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit. (http://www.openssl.org/)" - -4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - endorse or promote products derived from this software without - prior written permission. For written permission, please contact - openssl-core@openssl.org. - -5. Products derived from this software may not be called "OpenSSL" - nor may "OpenSSL" appear in their names without prior written - permission of the OpenSSL Project. - -6. Redistributions of any form whatsoever must retain the following - acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit (http://www.openssl.org/)" - -THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY -EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR -ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED -OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: boringssl -ORIGIN: ../../../third_party/boringssl/src/crypto/cmac/cmac.c -TYPE: LicenseType.bsd -FILE: ../../../third_party/boringssl/src/crypto/cmac/cmac.c ----------------------------------------------------------------------------------------------------- -Copyright (c) 2010 The OpenSSL Project. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - -3. All advertising materials mentioning features or use of this - software must display the following acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" - -4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - endorse or promote products derived from this software without - prior written permission. For written permission, please contact - licensing@OpenSSL.org. - -5. Products derived from this software may not be called "OpenSSL" - nor may "OpenSSL" appear in their names without prior written - permission of the OpenSSL Project. - -6. Redistributions of any form whatsoever must retain the following - acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" - -THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY -EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR -ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED -OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: boringssl -ORIGIN: ../../../third_party/boringssl/src/crypto/constant_time_test.cc -TYPE: LicenseType.bsd -FILE: ../../../third_party/boringssl/src/crypto/constant_time_test.cc ----------------------------------------------------------------------------------------------------- -Copyright (c) 2014 The OpenSSL Project. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: -1. Redistributions of source code must retain the copyright - notice, this list of conditions and the following disclaimer. -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. -3. All advertising materials mentioning features or use of this software - must display the following acknowledgement: - "This product includes cryptographic software written by - Eric Young (eay@cryptsoft.com)" - The word 'cryptographic' can be left out if the rouines from the library - being used are not cryptographic related :-). -4. If you include any Windows specific code (or a derivative thereof) from - the apps directory (application code) you must include an acknowledgement: - "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - -THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -SUCH DAMAGE. - -The licence and distribution terms for any publically available version or -derivative of this code cannot be changed. i.e. this code cannot simply be -copied and put under another distribution licence -[including the GNU Public Licence.] -==================================================================================================== - -==================================================================================================== -LIBRARY: boringssl -ORIGIN: ../../../third_party/boringssl/src/crypto/cpu-aarch64-win.c -TYPE: LicenseType.unknown -FILE: ../../../third_party/boringssl/src/crypto/cpu-aarch64-win.c ----------------------------------------------------------------------------------------------------- -Copyright (c) 2018, Google Inc. -Copyright (c) 2020, Arm Ltd. - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY -SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION -OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN -CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -==================================================================================================== - -==================================================================================================== -LIBRARY: boringssl -ORIGIN: ../../../third_party/boringssl/src/crypto/curve25519/curve25519.c -TYPE: LicenseType.unknown -FILE: ../../../third_party/boringssl/src/crypto/crypto_test.cc -FILE: ../../../third_party/boringssl/src/crypto/curve25519/curve25519.c -FILE: ../../../third_party/boringssl/src/crypto/curve25519/curve25519_tables.h -FILE: ../../../third_party/boringssl/src/crypto/curve25519/internal.h -FILE: ../../../third_party/boringssl/src/crypto/dsa/internal.h -FILE: ../../../third_party/boringssl/src/crypto/ec_extra/hash_to_curve.c -FILE: ../../../third_party/boringssl/src/crypto/ec_extra/internal.h -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/ec/make_tables.go -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/ec/p256.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/ec/p256_table.h -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/rand/fork_detect.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/rand/fork_detect.h -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/rand/fork_detect_test.cc -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/rand/getrandom_fillin.h -FILE: ../../../third_party/boringssl/src/crypto/hpke/hpke.c -FILE: ../../../third_party/boringssl/src/crypto/hpke/hpke_test.cc -FILE: ../../../third_party/boringssl/src/crypto/rand_extra/passive.c -FILE: ../../../third_party/boringssl/src/crypto/trust_token/pmbtoken.c -FILE: ../../../third_party/boringssl/src/crypto/trust_token/trust_token_test.cc -FILE: ../../../third_party/boringssl/src/crypto/trust_token/voprf.c -FILE: ../../../third_party/boringssl/src/decrepit/xts/xts_test.cc -FILE: ../../../third_party/boringssl/src/include/openssl/hpke.h -FILE: ../../../third_party/boringssl/src/include/openssl/trust_token.h -FILE: ../../../third_party/boringssl/src/tool/fd.cc -FILE: ../../../third_party/boringssl/src/util/fipstools/acvp/acvptool/nointeractive.go -FILE: ../../../third_party/boringssl/src/util/fipstools/acvp/acvptool/subprocess/aead.go -FILE: ../../../third_party/boringssl/src/util/fipstools/acvp/acvptool/subprocess/kas.go -FILE: ../../../third_party/boringssl/src/util/fipstools/acvp/acvptool/subprocess/kasdh.go -FILE: ../../../third_party/boringssl/src/util/fipstools/acvp/acvptool/subprocess/kdf.go -FILE: ../../../third_party/boringssl/src/util/fipstools/acvp/acvptool/subprocess/keyedMac.go -FILE: ../../../third_party/boringssl/src/util/fipstools/acvp/acvptool/subprocess/rsa.go -FILE: ../../../third_party/boringssl/src/util/fipstools/acvp/acvptool/subprocess/tlskdf.go -FILE: ../../../third_party/boringssl/src/util/testconfig/testconfig.go ----------------------------------------------------------------------------------------------------- -Copyright (c) 2020, Google Inc. - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY -SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION -OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN -CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -==================================================================================================== - -==================================================================================================== -LIBRARY: boringssl -ORIGIN: ../../../third_party/boringssl/src/crypto/dh_extra/dh_asn1.c -TYPE: LicenseType.bsd -FILE: ../../../third_party/boringssl/src/crypto/dh_extra/dh_asn1.c -FILE: ../../../third_party/boringssl/src/crypto/dsa/dsa_asn1.c -FILE: ../../../third_party/boringssl/src/crypto/rsa_extra/rsa_asn1.c -FILE: ../../../third_party/boringssl/src/include/openssl/asn1t.h ----------------------------------------------------------------------------------------------------- -Copyright (c) 2000-2005 The OpenSSL Project. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - -3. All advertising materials mentioning features or use of this - software must display the following acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" - -4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - endorse or promote products derived from this software without - prior written permission. For written permission, please contact - licensing@OpenSSL.org. - -5. Products derived from this software may not be called "OpenSSL" - nor may "OpenSSL" appear in their names without prior written - permission of the OpenSSL Project. - -6. Redistributions of any form whatsoever must retain the following - acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" - -THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY -EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR -ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED -OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: boringssl -ORIGIN: ../../../third_party/boringssl/src/crypto/dh_extra/params.c -TYPE: LicenseType.bsd -FILE: ../../../third_party/boringssl/src/crypto/dh_extra/params.c ----------------------------------------------------------------------------------------------------- -Copyright (c) 2011 The OpenSSL Project. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - -3. All advertising materials mentioning features or use of this - software must display the following acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" - -4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - endorse or promote products derived from this software without - prior written permission. For written permission, please contact - licensing@OpenSSL.org. - -5. Products derived from this software may not be called "OpenSSL" - nor may "OpenSSL" appear in their names without prior written - permission of the OpenSSL Project. - -6. Redistributions of any form whatsoever must retain the following - acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" - -THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY -EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR -ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED -OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: boringssl -ORIGIN: ../../../third_party/boringssl/src/crypto/ec_extra/ec_asn1.c -TYPE: LicenseType.bsd -FILE: ../../../third_party/boringssl/src/crypto/ec_extra/ec_asn1.c ----------------------------------------------------------------------------------------------------- -Copyright (c) 2000-2003 The OpenSSL Project. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - -3. All advertising materials mentioning features or use of this - software must display the following acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" - -4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - endorse or promote products derived from this software without - prior written permission. For written permission, please contact - licensing@OpenSSL.org. - -5. Products derived from this software may not be called "OpenSSL" - nor may "OpenSSL" appear in their names without prior written - permission of the OpenSSL Project. - -6. Redistributions of any form whatsoever must retain the following - acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" - -THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY -EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR -ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED -OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: boringssl -ORIGIN: ../../../third_party/boringssl/src/crypto/ec_extra/ec_derive.c -TYPE: LicenseType.unknown -FILE: ../../../third_party/boringssl/src/crypto/ec_extra/ec_derive.c -FILE: ../../../third_party/boringssl/src/crypto/evp/p_x25519.c -FILE: ../../../third_party/boringssl/src/crypto/evp/p_x25519_asn1.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/aes/aes_nohw.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/fips_shared_support.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/modes/gcm_nohw.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/rand/urandom_test.cc -FILE: ../../../third_party/boringssl/src/crypto/siphash/siphash.c -FILE: ../../../third_party/boringssl/src/crypto/siphash/siphash_test.cc -FILE: ../../../third_party/boringssl/src/crypto/trust_token/internal.h -FILE: ../../../third_party/boringssl/src/crypto/trust_token/trust_token.c -FILE: ../../../third_party/boringssl/src/decrepit/blowfish/blowfish_test.cc -FILE: ../../../third_party/boringssl/src/decrepit/cast/cast_test.cc -FILE: ../../../third_party/boringssl/src/include/openssl/siphash.h -FILE: ../../../third_party/boringssl/src/util/fipstools/acvp/acvptool/acvp.go -FILE: ../../../third_party/boringssl/src/util/fipstools/acvp/acvptool/acvp/acvp.go -FILE: ../../../third_party/boringssl/src/util/fipstools/acvp/acvptool/interactive.go -FILE: ../../../third_party/boringssl/src/util/fipstools/acvp/acvptool/parser.peg -FILE: ../../../third_party/boringssl/src/util/fipstools/acvp/acvptool/subprocess/block.go -FILE: ../../../third_party/boringssl/src/util/fipstools/acvp/acvptool/subprocess/drbg.go -FILE: ../../../third_party/boringssl/src/util/fipstools/acvp/acvptool/subprocess/ecdsa.go -FILE: ../../../third_party/boringssl/src/util/fipstools/acvp/acvptool/subprocess/hash.go -FILE: ../../../third_party/boringssl/src/util/fipstools/acvp/acvptool/subprocess/hmac.go -FILE: ../../../third_party/boringssl/src/util/fipstools/acvp/acvptool/subprocess/subprocess.go -FILE: ../../../third_party/boringssl/src/util/fipstools/acvp/modulewrapper/modulewrapper.cc ----------------------------------------------------------------------------------------------------- -Copyright (c) 2019, Google Inc. - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY -SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION -OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN -CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -==================================================================================================== - -==================================================================================================== -LIBRARY: boringssl -ORIGIN: ../../../third_party/boringssl/src/crypto/ecdh_extra/ecdh_extra.c -TYPE: LicenseType.bsd -FILE: ../../../third_party/boringssl/src/crypto/ecdh_extra/ecdh_extra.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/ecdh/ecdh.c -FILE: ../../../third_party/boringssl/src/include/openssl/ecdh.h ----------------------------------------------------------------------------------------------------- -Copyright (c) 2000-2002 The OpenSSL Project. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - -3. All advertising materials mentioning features or use of this - software must display the following acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" - -4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - endorse or promote products derived from this software without - prior written permission. For written permission, please contact - licensing@OpenSSL.org. - -5. Products derived from this software may not be called "OpenSSL" - nor may "OpenSSL" appear in their names without prior written - permission of the OpenSSL Project. - -6. Redistributions of any form whatsoever must retain the following - acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" - -THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY -EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR -ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED -OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: boringssl -ORIGIN: ../../../third_party/boringssl/src/crypto/ecdh_extra/ecdh_extra.c + ../../../third_party/boringssl/src/crypto/ecdh_extra/ecdh_extra.c -TYPE: LicenseType.bsd -FILE: ../../../third_party/boringssl/src/crypto/ecdh_extra/ecdh_extra.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/ecdh/ecdh.c -FILE: ../../../third_party/boringssl/src/include/openssl/ecdh.h ----------------------------------------------------------------------------------------------------- -Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - -3. All advertising materials mentioning features or use of this - software must display the following acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" - -4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - endorse or promote products derived from this software without - prior written permission. For written permission, please contact - licensing@OpenSSL.org. - -5. Products derived from this software may not be called "OpenSSL" - nor may "OpenSSL" appear in their names without prior written - permission of the OpenSSL Project. - -6. Redistributions of any form whatsoever must retain the following - acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" - -THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY -EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR -ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED -OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: boringssl -ORIGIN: ../../../third_party/boringssl/src/crypto/ecdsa_extra/ecdsa_asn1.c -TYPE: LicenseType.bsd -FILE: ../../../third_party/boringssl/src/crypto/ecdsa_extra/ecdsa_asn1.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/ecdsa/ecdsa.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/ecdsa/ecdsa_test.cc -FILE: ../../../third_party/boringssl/src/include/openssl/ecdsa.h ----------------------------------------------------------------------------------------------------- -Copyright (c) 1998-2005 The OpenSSL Project. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - -3. All advertising materials mentioning features or use of this - software must display the following acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" - -4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - endorse or promote products derived from this software without - prior written permission. For written permission, please contact - openssl-core@OpenSSL.org. - -5. Products derived from this software may not be called "OpenSSL" - nor may "OpenSSL" appear in their names without prior written - permission of the OpenSSL Project. - -6. Redistributions of any form whatsoever must retain the following - acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" - -THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY -EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR -ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED -OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: boringssl -ORIGIN: ../../../third_party/boringssl/src/crypto/err/err.c -TYPE: LicenseType.bsd -FILE: ../../../third_party/boringssl/src/crypto/err/err.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/internal.h -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/montgomery.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/rsa/blinding.c -FILE: ../../../third_party/boringssl/src/include/openssl/bn.h -FILE: ../../../third_party/boringssl/src/include/openssl/err.h -FILE: ../../../third_party/boringssl/src/include/openssl/tls1.h -FILE: ../../../third_party/boringssl/src/ssl/d1_srtp.cc -FILE: ../../../third_party/boringssl/src/ssl/ssl_session.cc ----------------------------------------------------------------------------------------------------- -Copyright (c) 1998-2006 The OpenSSL Project. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - -3. All advertising materials mentioning features or use of this - software must display the following acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit. (http://www.openssl.org/)" - -4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - endorse or promote products derived from this software without - prior written permission. For written permission, please contact - openssl-core@openssl.org. - -5. Products derived from this software may not be called "OpenSSL" - nor may "OpenSSL" appear in their names without prior written - permission of the OpenSSL Project. - -6. Redistributions of any form whatsoever must retain the following - acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit (http://www.openssl.org/)" - -THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY -EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR -ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED -OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: boringssl -ORIGIN: ../../../third_party/boringssl/src/crypto/evp/digestsign.c -TYPE: LicenseType.bsd -FILE: ../../../third_party/boringssl/src/crypto/evp/digestsign.c ----------------------------------------------------------------------------------------------------- -Copyright (c) 2006,2007 The OpenSSL Project. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - -3. All advertising materials mentioning features or use of this - software must display the following acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" - -4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - endorse or promote products derived from this software without - prior written permission. For written permission, please contact - licensing@OpenSSL.org. - -5. Products derived from this software may not be called "OpenSSL" - nor may "OpenSSL" appear in their names without prior written - permission of the OpenSSL Project. - -6. Redistributions of any form whatsoever must retain the following - acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" - -THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY -EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR -ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED -OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: boringssl -ORIGIN: ../../../third_party/boringssl/src/crypto/evp/pbkdf.c -TYPE: LicenseType.bsd -FILE: ../../../third_party/boringssl/src/crypto/evp/pbkdf.c -FILE: ../../../third_party/boringssl/src/crypto/pkcs8/internal.h -FILE: ../../../third_party/boringssl/src/crypto/pkcs8/p5_pbev2.c -FILE: ../../../third_party/boringssl/src/crypto/pkcs8/pkcs8.c -FILE: ../../../third_party/boringssl/src/crypto/pkcs8/pkcs8_x509.c -FILE: ../../../third_party/boringssl/src/crypto/x509/x509_trs.c -FILE: ../../../third_party/boringssl/src/crypto/x509/x509spki.c -FILE: ../../../third_party/boringssl/src/crypto/x509/x_x509a.c -FILE: ../../../third_party/boringssl/src/crypto/x509v3/tab_test.cc -FILE: ../../../third_party/boringssl/src/crypto/x509v3/v3_akey.c -FILE: ../../../third_party/boringssl/src/crypto/x509v3/v3_akeya.c -FILE: ../../../third_party/boringssl/src/crypto/x509v3/v3_bcons.c -FILE: ../../../third_party/boringssl/src/crypto/x509v3/v3_bitst.c -FILE: ../../../third_party/boringssl/src/crypto/x509v3/v3_enum.c -FILE: ../../../third_party/boringssl/src/crypto/x509v3/v3_extku.c -FILE: ../../../third_party/boringssl/src/crypto/x509v3/v3_ia5.c -FILE: ../../../third_party/boringssl/src/crypto/x509v3/v3_info.c -FILE: ../../../third_party/boringssl/src/crypto/x509v3/v3_lib.c -FILE: ../../../third_party/boringssl/src/crypto/x509v3/v3_prn.c -FILE: ../../../third_party/boringssl/src/crypto/x509v3/v3_skey.c -FILE: ../../../third_party/boringssl/src/include/openssl/pkcs8.h ----------------------------------------------------------------------------------------------------- -Copyright (c) 1999 The OpenSSL Project. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - -3. All advertising materials mentioning features or use of this - software must display the following acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" - -4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - endorse or promote products derived from this software without - prior written permission. For written permission, please contact - licensing@OpenSSL.org. - -5. Products derived from this software may not be called "OpenSSL" - nor may "OpenSSL" appear in their names without prior written - permission of the OpenSSL Project. - -6. Redistributions of any form whatsoever must retain the following - acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" - -THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY -EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR -ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED -OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: boringssl -ORIGIN: ../../../third_party/boringssl/src/crypto/evp/scrypt.c + ../../../third_party/boringssl/src/LICENSE -TYPE: LicenseType.unknown -FILE: ../../../third_party/boringssl/src/crypto/evp/scrypt.c ----------------------------------------------------------------------------------------------------- -Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved. - -Licensed under the OpenSSL license (the "License"). You may not use -this file except in compliance with the License. You can obtain a copy -in the file LICENSE in the source distribution or at -https://www.openssl.org/source/license.html -==================================================================================================== - -==================================================================================================== -LIBRARY: boringssl -ORIGIN: ../../../third_party/boringssl/src/crypto/fipsmodule/aes/aes.c -TYPE: LicenseType.bsd -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/aes/aes.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/aes/mode_wrappers.c -FILE: ../../../third_party/boringssl/src/include/openssl/aes.h ----------------------------------------------------------------------------------------------------- -Copyright (c) 2002-2006 The OpenSSL Project. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - -3. All advertising materials mentioning features or use of this - software must display the following acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit. (http://www.openssl.org/)" - -4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - endorse or promote products derived from this software without - prior written permission. For written permission, please contact - openssl-core@openssl.org. - -5. Products derived from this software may not be called "OpenSSL" - nor may "OpenSSL" appear in their names without prior written - permission of the OpenSSL Project. - -6. Redistributions of any form whatsoever must retain the following - acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit (http://www.openssl.org/)" - -THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY -EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR -ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED -OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: boringssl -ORIGIN: ../../../third_party/boringssl/src/crypto/fipsmodule/aes/key_wrap.c -TYPE: LicenseType.bsd -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/aes/key_wrap.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/cipher/e_aes.c ----------------------------------------------------------------------------------------------------- -Copyright (c) 2001-2011 The OpenSSL Project. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - -3. All advertising materials mentioning features or use of this - software must display the following acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit. (http://www.openssl.org/)" - -4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - endorse or promote products derived from this software without - prior written permission. For written permission, please contact - openssl-core@openssl.org. - -5. Products derived from this software may not be called "OpenSSL" - nor may "OpenSSL" appear in their names without prior written - permission of the OpenSSL Project. - -6. Redistributions of any form whatsoever must retain the following - acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit (http://www.openssl.org/)" - -THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY -EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR -ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED -OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: boringssl -ORIGIN: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/ctx.c -TYPE: LicenseType.bsd -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/ctx.c ----------------------------------------------------------------------------------------------------- -Copyright (c) 1998-2004 The OpenSSL Project. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - -3. All advertising materials mentioning features or use of this - software must display the following acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit. (http://www.openssl.org/)" - -4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - endorse or promote products derived from this software without - prior written permission. For written permission, please contact - openssl-core@openssl.org. - -5. Products derived from this software may not be called "OpenSSL" - nor may "OpenSSL" appear in their names without prior written - permission of the OpenSSL Project. - -6. Redistributions of any form whatsoever must retain the following - acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit (http://www.openssl.org/)" - -THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY -EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR -ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED -OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: boringssl -ORIGIN: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/exponentiation.c -TYPE: LicenseType.bsd -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/exponentiation.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/ec/ec.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/ec/ec_key.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/ec/ec_montgomery.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/ec/internal.h -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/ec/oct.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/ec/simple.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/ec/wnaf.c -FILE: ../../../third_party/boringssl/src/include/openssl/ec.h -FILE: ../../../third_party/boringssl/src/include/openssl/ec_key.h -FILE: ../../../third_party/boringssl/src/ssl/d1_both.cc -FILE: ../../../third_party/boringssl/src/ssl/d1_pkt.cc -FILE: ../../../third_party/boringssl/src/ssl/dtls_record.cc ----------------------------------------------------------------------------------------------------- -Copyright (c) 1998-2005 The OpenSSL Project. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - -3. All advertising materials mentioning features or use of this - software must display the following acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit. (http://www.openssl.org/)" - -4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - endorse or promote products derived from this software without - prior written permission. For written permission, please contact - openssl-core@openssl.org. - -5. Products derived from this software may not be called "OpenSSL" - nor may "OpenSSL" appear in their names without prior written - permission of the OpenSSL Project. - -6. Redistributions of any form whatsoever must retain the following - acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit (http://www.openssl.org/)" - -THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY -EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR -ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED -OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: boringssl -ORIGIN: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/gcd.c -TYPE: LicenseType.bsd -FILE: ../../../third_party/boringssl/src/crypto/ex_data.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/gcd.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/prime.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/random.c -FILE: ../../../third_party/boringssl/src/crypto/internal.h -FILE: ../../../third_party/boringssl/src/include/openssl/base.h -FILE: ../../../third_party/boringssl/src/include/openssl/ex_data.h ----------------------------------------------------------------------------------------------------- -Copyright (c) 1998-2001 The OpenSSL Project. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - -3. All advertising materials mentioning features or use of this - software must display the following acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit. (http://www.openssl.org/)" - -4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - endorse or promote products derived from this software without - prior written permission. For written permission, please contact - openssl-core@openssl.org. - -5. Products derived from this software may not be called "OpenSSL" - nor may "OpenSSL" appear in their names without prior written - permission of the OpenSSL Project. - -6. Redistributions of any form whatsoever must retain the following - acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit (http://www.openssl.org/)" - -THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY -EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR -ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED -OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: boringssl -ORIGIN: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/internal.h -TYPE: LicenseType.bsd -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/internal.h -FILE: ../../../third_party/boringssl/src/crypto/obj/obj_dat.h -FILE: ../../../third_party/boringssl/src/include/openssl/bn.h -FILE: ../../../third_party/boringssl/src/include/openssl/nid.h -FILE: ../../../third_party/boringssl/src/include/openssl/pem.h ----------------------------------------------------------------------------------------------------- -Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com) -All rights reserved. - -This package is an SSL implementation written -by Eric Young (eay@cryptsoft.com). -The implementation was written so as to conform with Netscapes SSL. - -This library is free for commercial and non-commercial use as long as -the following conditions are aheared to. The following conditions -apply to all code found in this distribution, be it the RC4, RSA, -lhash, DES, etc., code; not just the SSL code. The SSL documentation -included with this distribution is covered by the same copyright terms -except that the holder is Tim Hudson (tjh@cryptsoft.com). - -Copyright remains Eric Young's, and as such any Copyright notices in -the code are not to be removed. -If this package is used in a product, Eric Young should be given attribution -as the author of the parts of the library used. -This can be in the form of a textual message at program startup or -in documentation (online or textual) provided with the package. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: -1. Redistributions of source code must retain the copyright - notice, this list of conditions and the following disclaimer. -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. -3. All advertising materials mentioning features or use of this software - must display the following acknowledgement: - "This product includes cryptographic software written by - Eric Young (eay@cryptsoft.com)" - The word 'cryptographic' can be left out if the rouines from the library - being used are not cryptographic related :-). -4. If you include any Windows specific code (or a derivative thereof) from - the apps directory (application code) you must include an acknowledgement: - "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - -THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -SUCH DAMAGE. - -The licence and distribution terms for any publically available version or -derivative of this code cannot be changed. i.e. this code cannot simply be -copied and put under another distribution licence -[including the GNU Public Licence.] -==================================================================================================== - -==================================================================================================== -LIBRARY: boringssl -ORIGIN: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/jacobi.c -TYPE: LicenseType.bsd -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/jacobi.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/sqrt.c ----------------------------------------------------------------------------------------------------- -Copyright (c) 1998-2000 The OpenSSL Project. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - -3. All advertising materials mentioning features or use of this - software must display the following acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit. (http://www.openssl.org/)" - -4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - endorse or promote products derived from this software without - prior written permission. For written permission, please contact - openssl-core@openssl.org. - -5. Products derived from this software may not be called "OpenSSL" - nor may "OpenSSL" appear in their names without prior written - permission of the OpenSSL Project. - -6. Redistributions of any form whatsoever must retain the following - acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit (http://www.openssl.org/)" - -THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY -EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR -ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED -OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: boringssl -ORIGIN: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/montgomery_inv.c -TYPE: LicenseType.unknown -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/montgomery_inv.c ----------------------------------------------------------------------------------------------------- -Copyright 2016 Brian Smith. - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY -SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION -OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN -CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -==================================================================================================== - -==================================================================================================== -LIBRARY: boringssl -ORIGIN: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/rsaz_exp.c + ../../../third_party/boringssl/src/LICENSE -TYPE: LicenseType.unknown -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/rsaz_exp.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/rsaz_exp.h ----------------------------------------------------------------------------------------------------- -Copyright 2013-2016 The OpenSSL Project Authors. All Rights Reserved. -Copyright (c) 2012, Intel Corporation. All Rights Reserved. - -Licensed under the OpenSSL license (the "License"). You may not use -this file except in compliance with the License. You can obtain a copy -in the file LICENSE in the source distribution or at -https://www.openssl.org/source/license.html -==================================================================================================== - -==================================================================================================== -LIBRARY: boringssl -ORIGIN: ../../../third_party/boringssl/src/crypto/fipsmodule/digest/md32_common.h -TYPE: LicenseType.bsd -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/digest/md32_common.h ----------------------------------------------------------------------------------------------------- -Copyright (c) 1999-2007 The OpenSSL Project. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - -3. All advertising materials mentioning features or use of this - software must display the following acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" - -4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - endorse or promote products derived from this software without - prior written permission. For written permission, please contact - licensing@OpenSSL.org. - -5. Products derived from this software may not be called "OpenSSL" - nor may "OpenSSL" appear in their names without prior written - permission of the OpenSSL Project. - -6. Redistributions of any form whatsoever must retain the following - acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" - -THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY -EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR -ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED -OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: boringssl -ORIGIN: ../../../third_party/boringssl/src/crypto/fipsmodule/ec/ec.c + ../../../third_party/boringssl/src/crypto/fipsmodule/bn/exponentiation.c -TYPE: LicenseType.bsd -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/ec/ec.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/ec/ec_key.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/ec/ec_montgomery.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/ec/internal.h -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/ec/oct.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/ec/simple.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/ec/wnaf.c -FILE: ../../../third_party/boringssl/src/include/openssl/ec.h -FILE: ../../../third_party/boringssl/src/include/openssl/ec_key.h ----------------------------------------------------------------------------------------------------- -Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - -3. All advertising materials mentioning features or use of this - software must display the following acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit. (http://www.openssl.org/)" - -4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - endorse or promote products derived from this software without - prior written permission. For written permission, please contact - openssl-core@openssl.org. - -5. Products derived from this software may not be called "OpenSSL" - nor may "OpenSSL" appear in their names without prior written - permission of the OpenSSL Project. - -6. Redistributions of any form whatsoever must retain the following - acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit (http://www.openssl.org/)" - -THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY -EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR -ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED -OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: boringssl -ORIGIN: ../../../third_party/boringssl/src/crypto/fipsmodule/ec/make_tables.go + ../../../third_party/boringssl/src/LICENSE -TYPE: LicenseType.unknown -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/ec/make_tables.go -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/ec/p256-x86_64-table.h ----------------------------------------------------------------------------------------------------- -Copyright 2014-2016 The OpenSSL Project Authors. All Rights Reserved. -Copyright (c) 2015, Intel Inc. - -Licensed under the OpenSSL license (the "License"). You may not use -this file except in compliance with the License. You can obtain a copy -in the file LICENSE in the source distribution or at -https://www.openssl.org/source/license.html -==================================================================================================== - -==================================================================================================== -LIBRARY: boringssl -ORIGIN: ../../../third_party/boringssl/src/crypto/fipsmodule/ec/p256-x86_64.c + ../../../third_party/boringssl/src/LICENSE -TYPE: LicenseType.unknown -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/ec/p256-x86_64.c -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/ec/p256-x86_64.h ----------------------------------------------------------------------------------------------------- -Copyright 2014-2016 The OpenSSL Project Authors. All Rights Reserved. -Copyright (c) 2014, Intel Corporation. All Rights Reserved. - -Licensed under the OpenSSL license (the "License"). You may not use -this file except in compliance with the License. You can obtain a copy -in the file LICENSE in the source distribution or at -https://www.openssl.org/source/license.html -==================================================================================================== - -==================================================================================================== -LIBRARY: boringssl -ORIGIN: ../../../third_party/boringssl/src/crypto/fipsmodule/rsa/padding.c -TYPE: LicenseType.bsd -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/rsa/padding.c ----------------------------------------------------------------------------------------------------- -Copyright (c) 2005 The OpenSSL Project. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - -3. All advertising materials mentioning features or use of this - software must display the following acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" - -4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - endorse or promote products derived from this software without - prior written permission. For written permission, please contact - licensing@OpenSSL.org. - -5. Products derived from this software may not be called "OpenSSL" - nor may "OpenSSL" appear in their names without prior written - permission of the OpenSSL Project. - -6. Redistributions of any form whatsoever must retain the following - acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" - -THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY -EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR -ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED -OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: boringssl -ORIGIN: ../../../third_party/boringssl/src/crypto/fipsmodule/tls/kdf.c -TYPE: LicenseType.bsd -FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/tls/kdf.c -FILE: ../../../third_party/boringssl/src/decrepit/ssl/ssl_decrepit.c -FILE: ../../../third_party/boringssl/src/include/openssl/ssl.h -FILE: ../../../third_party/boringssl/src/ssl/extensions.cc -FILE: ../../../third_party/boringssl/src/ssl/handshake_client.cc -FILE: ../../../third_party/boringssl/src/ssl/handshake_server.cc -FILE: ../../../third_party/boringssl/src/ssl/internal.h -FILE: ../../../third_party/boringssl/src/ssl/s3_lib.cc -FILE: ../../../third_party/boringssl/src/ssl/ssl_cert.cc -FILE: ../../../third_party/boringssl/src/ssl/ssl_cipher.cc -FILE: ../../../third_party/boringssl/src/ssl/ssl_file.cc -FILE: ../../../third_party/boringssl/src/ssl/ssl_lib.cc -FILE: ../../../third_party/boringssl/src/ssl/ssl_transcript.cc -FILE: ../../../third_party/boringssl/src/ssl/ssl_x509.cc -FILE: ../../../third_party/boringssl/src/ssl/t1_enc.cc ----------------------------------------------------------------------------------------------------- -Copyright (c) 1998-2007 The OpenSSL Project. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - -3. All advertising materials mentioning features or use of this - software must display the following acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit. (http://www.openssl.org/)" - -4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - endorse or promote products derived from this software without - prior written permission. For written permission, please contact - openssl-core@openssl.org. - -5. Products derived from this software may not be called "OpenSSL" - nor may "OpenSSL" appear in their names without prior written - permission of the OpenSSL Project. - -6. Redistributions of any form whatsoever must retain the following - acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit (http://www.openssl.org/)" - -THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY -EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR -ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED -OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: boringssl -ORIGIN: ../../../third_party/boringssl/src/crypto/hrss/asm/poly_rq_mul.S -TYPE: LicenseType.unknown -FILE: ../../../third_party/boringssl/src/crypto/hrss/asm/poly_rq_mul.S ----------------------------------------------------------------------------------------------------- -Copyright (c) 2017, the HRSS authors. - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY -SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION -OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN -CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -==================================================================================================== - -==================================================================================================== -LIBRARY: boringssl -ORIGIN: ../../../third_party/boringssl/src/crypto/pem/pem_all.c -TYPE: LicenseType.bsd -FILE: ../../../third_party/boringssl/src/crypto/pem/pem_all.c -FILE: ../../../third_party/boringssl/src/decrepit/dh/dh_decrepit.c -FILE: ../../../third_party/boringssl/src/decrepit/dsa/dsa_decrepit.c -FILE: ../../../third_party/boringssl/src/include/openssl/ssl3.h -FILE: ../../../third_party/boringssl/src/ssl/handshake.cc -FILE: ../../../third_party/boringssl/src/ssl/s3_both.cc -FILE: ../../../third_party/boringssl/src/ssl/s3_pkt.cc -FILE: ../../../third_party/boringssl/src/ssl/tls_record.cc ----------------------------------------------------------------------------------------------------- -Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - -3. All advertising materials mentioning features or use of this - software must display the following acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit. (http://www.openssl.org/)" - -4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - endorse or promote products derived from this software without - prior written permission. For written permission, please contact - openssl-core@openssl.org. - -5. Products derived from this software may not be called "OpenSSL" - nor may "OpenSSL" appear in their names without prior written - permission of the OpenSSL Project. - -6. Redistributions of any form whatsoever must retain the following - acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit (http://www.openssl.org/)" - -THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY -EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR -ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED -OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: boringssl -ORIGIN: ../../../third_party/boringssl/src/crypto/rsa_extra/rsa_print.c + ../../../third_party/boringssl/src/LICENSE -TYPE: LicenseType.unknown -FILE: ../../../third_party/boringssl/src/crypto/rsa_extra/rsa_print.c ----------------------------------------------------------------------------------------------------- -Copyright 2006-2017 The OpenSSL Project Authors. All Rights Reserved. - -Licensed under the OpenSSL license (the "License"). You may not use -this file except in compliance with the License. You can obtain a copy -in the file LICENSE in the source distribution or at -https://www.openssl.org/source/license.html -==================================================================================================== - -==================================================================================================== -LIBRARY: boringssl -ORIGIN: ../../../third_party/boringssl/src/crypto/x509/internal.h -TYPE: LicenseType.bsd -FILE: ../../../third_party/boringssl/src/crypto/x509/internal.h ----------------------------------------------------------------------------------------------------- -Copyright (c) 2013 The OpenSSL Project. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - -3. All advertising materials mentioning features or use of this - software must display the following acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" - -4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - endorse or promote products derived from this software without - prior written permission. For written permission, please contact - licensing@OpenSSL.org. - -5. Products derived from this software may not be called "OpenSSL" - nor may "OpenSSL" appear in their names without prior written - permission of the OpenSSL Project. - -6. Redistributions of any form whatsoever must retain the following - acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" - -THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY -EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR -ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED -OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: boringssl -ORIGIN: ../../../third_party/boringssl/src/crypto/x509/x509_time_test.cc + ../../../third_party/boringssl/src/LICENSE -TYPE: LicenseType.unknown -FILE: ../../../third_party/boringssl/src/crypto/x509/x509_time_test.cc ----------------------------------------------------------------------------------------------------- -Copyright 2017 The OpenSSL Project Authors. All Rights Reserved. - -Licensed under the OpenSSL license (the "License"). You may not use -this file except in compliance with the License. You can obtain a copy -in the file LICENSE in the source distribution or at -https://www.openssl.org/source/license.html -==================================================================================================== - -==================================================================================================== -LIBRARY: boringssl -ORIGIN: ../../../third_party/boringssl/src/crypto/x509/x509_vpm.c -TYPE: LicenseType.bsd -FILE: ../../../third_party/boringssl/src/crypto/x509/x509_vpm.c -FILE: ../../../third_party/boringssl/src/crypto/x509v3/pcy_cache.c -FILE: ../../../third_party/boringssl/src/crypto/x509v3/pcy_data.c -FILE: ../../../third_party/boringssl/src/crypto/x509v3/pcy_int.h -FILE: ../../../third_party/boringssl/src/crypto/x509v3/pcy_lib.c -FILE: ../../../third_party/boringssl/src/crypto/x509v3/pcy_map.c -FILE: ../../../third_party/boringssl/src/crypto/x509v3/pcy_node.c -FILE: ../../../third_party/boringssl/src/crypto/x509v3/pcy_tree.c ----------------------------------------------------------------------------------------------------- -Copyright (c) 2004 The OpenSSL Project. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - -3. All advertising materials mentioning features or use of this - software must display the following acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" - -4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - endorse or promote products derived from this software without - prior written permission. For written permission, please contact - licensing@OpenSSL.org. - -5. Products derived from this software may not be called "OpenSSL" - nor may "OpenSSL" appear in their names without prior written - permission of the OpenSSL Project. - -6. Redistributions of any form whatsoever must retain the following - acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" - -THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY -EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR -ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED -OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: boringssl -ORIGIN: ../../../third_party/boringssl/src/crypto/x509/x_algor.c -TYPE: LicenseType.bsd -FILE: ../../../third_party/boringssl/src/crypto/x509/x_algor.c ----------------------------------------------------------------------------------------------------- -Copyright (c) 2000 The OpenSSL Project. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - -3. All advertising materials mentioning features or use of this - software must display the following acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" - -4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - endorse or promote products derived from this software without - prior written permission. For written permission, please contact - licensing@OpenSSL.org. - -5. Products derived from this software may not be called "OpenSSL" - nor may "OpenSSL" appear in their names without prior written - permission of the OpenSSL Project. - -6. Redistributions of any form whatsoever must retain the following - acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" - -THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY -EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR -ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED -OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: boringssl -ORIGIN: ../../../third_party/boringssl/src/crypto/x509v3/ext_dat.h -TYPE: LicenseType.bsd -FILE: ../../../third_party/boringssl/src/crypto/x509v3/ext_dat.h -FILE: ../../../third_party/boringssl/src/crypto/x509v3/v3_cpols.c -FILE: ../../../third_party/boringssl/src/crypto/x509v3/v3_int.c -FILE: ../../../third_party/boringssl/src/crypto/x509v3/v3_purp.c -FILE: ../../../third_party/boringssl/src/crypto/x509v3/v3name_test.cc -FILE: ../../../third_party/boringssl/src/include/openssl/x509v3.h ----------------------------------------------------------------------------------------------------- -Copyright (c) 1999-2004 The OpenSSL Project. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - -3. All advertising materials mentioning features or use of this - software must display the following acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" - -4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - endorse or promote products derived from this software without - prior written permission. For written permission, please contact - licensing@OpenSSL.org. - -5. Products derived from this software may not be called "OpenSSL" - nor may "OpenSSL" appear in their names without prior written - permission of the OpenSSL Project. - -6. Redistributions of any form whatsoever must retain the following - acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" - -THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY -EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR -ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED -OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: boringssl -ORIGIN: ../../../third_party/boringssl/src/crypto/x509v3/v3_alt.c -TYPE: LicenseType.bsd -FILE: ../../../third_party/boringssl/src/crypto/x509v3/v3_alt.c -FILE: ../../../third_party/boringssl/src/crypto/x509v3/v3_utl.c ----------------------------------------------------------------------------------------------------- -Copyright (c) 1999-2003 The OpenSSL Project. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - -3. All advertising materials mentioning features or use of this - software must display the following acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" - -4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - endorse or promote products derived from this software without - prior written permission. For written permission, please contact - licensing@OpenSSL.org. - -5. Products derived from this software may not be called "OpenSSL" - nor may "OpenSSL" appear in their names without prior written - permission of the OpenSSL Project. - -6. Redistributions of any form whatsoever must retain the following - acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" - -THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY -EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR -ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED -OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: boringssl -ORIGIN: ../../../third_party/boringssl/src/crypto/x509v3/v3_conf.c -TYPE: LicenseType.bsd -FILE: ../../../third_party/boringssl/src/crypto/x509v3/v3_conf.c ----------------------------------------------------------------------------------------------------- -Copyright (c) 1999-2002 The OpenSSL Project. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - -3. All advertising materials mentioning features or use of this - software must display the following acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" - -4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - endorse or promote products derived from this software without - prior written permission. For written permission, please contact - licensing@OpenSSL.org. - -5. Products derived from this software may not be called "OpenSSL" - nor may "OpenSSL" appear in their names without prior written - permission of the OpenSSL Project. - -6. Redistributions of any form whatsoever must retain the following - acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" - -THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY -EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR -ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED -OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: boringssl -ORIGIN: ../../../third_party/boringssl/src/crypto/x509v3/v3_crld.c -TYPE: LicenseType.bsd -FILE: ../../../third_party/boringssl/src/crypto/x509v3/v3_crld.c -FILE: ../../../third_party/boringssl/src/crypto/x509v3/v3_genn.c ----------------------------------------------------------------------------------------------------- -Copyright (c) 1999-2008 The OpenSSL Project. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - -3. All advertising materials mentioning features or use of this - software must display the following acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" - -4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - endorse or promote products derived from this software without - prior written permission. For written permission, please contact - licensing@OpenSSL.org. - -5. Products derived from this software may not be called "OpenSSL" - nor may "OpenSSL" appear in their names without prior written - permission of the OpenSSL Project. - -6. Redistributions of any form whatsoever must retain the following - acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" - -THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY -EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR -ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED -OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: boringssl -ORIGIN: ../../../third_party/boringssl/src/crypto/x509v3/v3_ncons.c -TYPE: LicenseType.bsd -FILE: ../../../third_party/boringssl/src/crypto/x509v3/v3_ncons.c -FILE: ../../../third_party/boringssl/src/crypto/x509v3/v3_pcons.c -FILE: ../../../third_party/boringssl/src/crypto/x509v3/v3_pmaps.c ----------------------------------------------------------------------------------------------------- -Copyright (c) 2003 The OpenSSL Project. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - -3. All advertising materials mentioning features or use of this - software must display the following acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" - -4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - endorse or promote products derived from this software without - prior written permission. For written permission, please contact - licensing@OpenSSL.org. - -5. Products derived from this software may not be called "OpenSSL" - nor may "OpenSSL" appear in their names without prior written - permission of the OpenSSL Project. - -6. Redistributions of any form whatsoever must retain the following - acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" - -THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY -EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR -ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED -OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: boringssl -ORIGIN: ../../../third_party/boringssl/src/crypto/x509v3/v3_ocsp.c + ../../../third_party/boringssl/src/LICENSE -TYPE: LicenseType.unknown -FILE: ../../../third_party/boringssl/src/crypto/x509v3/v3_ocsp.c ----------------------------------------------------------------------------------------------------- -Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved. - -Licensed under the OpenSSL license (the "License"). You may not use -this file except in compliance with the License. You can obtain a copy -in the file LICENSE in the source distribution or at -https://www.openssl.org/source/license.html -==================================================================================================== - -==================================================================================================== -LIBRARY: boringssl -ORIGIN: ../../../third_party/boringssl/src/crypto/x509v3/v3_pci.c -TYPE: LicenseType.bsd -FILE: ../../../third_party/boringssl/src/crypto/x509v3/v3_pci.c -FILE: ../../../third_party/boringssl/src/crypto/x509v3/v3_pcia.c ----------------------------------------------------------------------------------------------------- -Copyright (c) 2004 Kungliga Tekniska Högskolan -(Royal Institute of Technology, Stockholm, Sweden). -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - -3. Neither the name of the Institute nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: boringssl -ORIGIN: ../../../third_party/boringssl/src/decrepit/xts/xts.c -TYPE: LicenseType.bsd -FILE: ../../../third_party/boringssl/src/decrepit/xts/xts.c ----------------------------------------------------------------------------------------------------- -Copyright (c) 2011 The OpenSSL Project. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - -3. All advertising materials mentioning features or use of this - software must display the following acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit. (http://www.openssl.org/)" - -4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - endorse or promote products derived from this software without - prior written permission. For written permission, please contact - openssl-core@openssl.org. - -5. Products derived from this software may not be called "OpenSSL" - nor may "OpenSSL" appear in their names without prior written - permission of the OpenSSL Project. - -6. Redistributions of any form whatsoever must retain the following - acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit (http://www.openssl.org/)" - -THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY -EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR -ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED -OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: boringssl -ORIGIN: ../../../third_party/boringssl/src/include/openssl/arm_arch.h -TYPE: LicenseType.bsd -FILE: ../../../third_party/boringssl/src/include/openssl/arm_arch.h ----------------------------------------------------------------------------------------------------- -Copyright (c) 1998-2011 The OpenSSL Project. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - -3. All advertising materials mentioning features or use of this - software must display the following acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit. (http://www.openssl.org/)" - -4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - endorse or promote products derived from this software without - prior written permission. For written permission, please contact - openssl-core@openssl.org. - -5. Products derived from this software may not be called "OpenSSL" - nor may "OpenSSL" appear in their names without prior written - permission of the OpenSSL Project. - -6. Redistributions of any form whatsoever must retain the following - acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit (http://www.openssl.org/)" - -THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY -EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR -ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED -OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: boringssl -ORIGIN: ../../../third_party/boringssl/src/ssl/bio_ssl.cc + ../../../third_party/boringssl/src/LICENSE -TYPE: LicenseType.unknown -FILE: ../../../third_party/boringssl/src/ssl/bio_ssl.cc ----------------------------------------------------------------------------------------------------- -Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. - -Licensed under the OpenSSL license (the "License"). You may not use -this file except in compliance with the License. You can obtain a copy -in the file LICENSE in the source distribution or at -https://www.openssl.org/source/license.html -==================================================================================================== - -==================================================================================================== -LIBRARY: boringssl -ORIGIN: ../../../third_party/boringssl/src/ssl/d1_lib.cc -TYPE: LicenseType.bsd -FILE: ../../../third_party/boringssl/src/ssl/d1_lib.cc -FILE: ../../../third_party/boringssl/src/ssl/dtls_method.cc ----------------------------------------------------------------------------------------------------- -Copyright (c) 1999-2005 The OpenSSL Project. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - -3. All advertising materials mentioning features or use of this - software must display the following acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" - -4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - endorse or promote products derived from this software without - prior written permission. For written permission, please contact - openssl-core@OpenSSL.org. - -5. Products derived from this software may not be called "OpenSSL" - nor may "OpenSSL" appear in their names without prior written - permission of the OpenSSL Project. - -6. Redistributions of any form whatsoever must retain the following - acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" - -THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY -EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR -ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED -OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: boringssl -ORIGIN: ../../../third_party/boringssl/src/ssl/ssl_asn1.cc -TYPE: LicenseType.unknown -FILE: ../../../third_party/boringssl/src/ssl/ssl_asn1.cc -FILE: ../../../third_party/boringssl/src/ssl/ssl_stat.cc ----------------------------------------------------------------------------------------------------- -Copyright 2005 Nokia. All rights reserved. - -The portions of the attached software ("Contribution") is developed by -Nokia Corporation and is licensed pursuant to the OpenSSL open source -license. - -The Contribution, originally written by Mika Kousa and Pasi Eronen of -Nokia Corporation, consists of the "PSK" (Pre-Shared Key) ciphersuites -support (see RFC 4279) to OpenSSL. - -No patent licenses or other rights except those expressly stated in -the OpenSSL open source license shall be deemed granted or received -expressly, by implication, estoppel, or otherwise. - -No assurances are provided by Nokia that the Contribution does not -infringe the patent or other intellectual property rights of any third -party or that the license provides you with all the necessary rights -to make use of the Contribution. - -THE SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. IN -ADDITION TO THE DISCLAIMERS INCLUDED IN THE LICENSE, NOKIA -SPECIFICALLY DISCLAIMS ANY LIABILITY FOR CLAIMS BROUGHT BY YOU OR ANY -OTHER ENTITY BASED ON INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS OR -OTHERWISE. -==================================================================================================== - -==================================================================================================== -LIBRARY: boringssl -ORIGIN: ../../../third_party/boringssl/src/third_party/fiat/LICENSE -TYPE: LicenseType.mit -FILE: ../../../third_party/boringssl/src/third_party/fiat/METADATA -FILE: ../../../third_party/boringssl/src/third_party/fiat/curve25519_32.h -FILE: ../../../third_party/boringssl/src/third_party/fiat/curve25519_64.h -FILE: ../../../third_party/boringssl/src/third_party/fiat/p256_32.h -FILE: ../../../third_party/boringssl/src/third_party/fiat/p256_64.h ----------------------------------------------------------------------------------------------------- -The MIT License (MIT) - -Copyright (c) 2015-2016 the fiat-crypto authors (see -https://github.com/mit-plv/fiat-crypto/blob/master/AUTHORS). - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. -==================================================================================================== - -==================================================================================================== -LIBRARY: boringssl -ORIGIN: ../../../third_party/boringssl/src/third_party/googletest/LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/boringssl/src/third_party/googletest/CONTRIBUTORS -FILE: ../../../third_party/boringssl/src/third_party/googletest/METADATA -FILE: ../../../third_party/boringssl/src/third_party/googletest/cmake/Config.cmake.in -FILE: ../../../third_party/boringssl/src/third_party/googletest/cmake/gtest.pc.in -FILE: ../../../third_party/boringssl/src/third_party/googletest/cmake/gtest_main.pc.in -FILE: ../../../third_party/boringssl/src/third_party/googletest/cmake/libgtest.la.in -FILE: ../../../third_party/boringssl/src/third_party/googletest/include/gtest/gtest-param-test.h -FILE: ../../../third_party/boringssl/src/third_party/googletest/include/gtest/gtest-test-part.h -FILE: ../../../third_party/boringssl/src/third_party/googletest/include/gtest/internal/gtest-filepath.h -FILE: ../../../third_party/boringssl/src/third_party/googletest/src/gtest-all.cc -FILE: ../../../third_party/boringssl/src/third_party/googletest/src/gtest-filepath.cc -FILE: ../../../third_party/boringssl/src/third_party/googletest/src/gtest-port.cc -FILE: ../../../third_party/boringssl/src/third_party/googletest/src/gtest-test-part.cc ----------------------------------------------------------------------------------------------------- -Copyright 2008, Google Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: boringssl -ORIGIN: ../../../third_party/boringssl/src/third_party/googletest/include/gtest/gtest-matchers.h -TYPE: LicenseType.bsd -FILE: ../../../third_party/boringssl/src/third_party/googletest/include/gtest/gtest-matchers.h -FILE: ../../../third_party/boringssl/src/third_party/googletest/include/gtest/gtest-printers.h -FILE: ../../../third_party/boringssl/src/third_party/googletest/include/gtest/gtest-spi.h -FILE: ../../../third_party/boringssl/src/third_party/googletest/src/gtest-matchers.cc -FILE: ../../../third_party/boringssl/src/third_party/googletest/src/gtest-printers.cc ----------------------------------------------------------------------------------------------------- -Copyright 2007, Google Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: boringssl -ORIGIN: ../../../third_party/boringssl/src/third_party/googletest/include/gtest/gtest_pred_impl.h -TYPE: LicenseType.bsd -FILE: ../../../third_party/boringssl/src/third_party/googletest/include/gtest/gtest_pred_impl.h -FILE: ../../../third_party/boringssl/src/third_party/googletest/include/gtest/gtest_prod.h -FILE: ../../../third_party/boringssl/src/third_party/googletest/src/gtest_main.cc ----------------------------------------------------------------------------------------------------- -Copyright 2006, Google Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: boringssl -ORIGIN: ../../../third_party/boringssl/src/third_party/googletest/include/gtest/internal/custom/gtest-port.h -TYPE: LicenseType.bsd -FILE: ../../../third_party/boringssl/src/third_party/googletest/include/gtest/internal/custom/gtest-port.h -FILE: ../../../third_party/boringssl/src/third_party/googletest/include/gtest/internal/custom/gtest-printers.h -FILE: ../../../third_party/boringssl/src/third_party/googletest/include/gtest/internal/custom/gtest.h -FILE: ../../../third_party/boringssl/src/third_party/googletest/include/gtest/internal/gtest-port-arch.h ----------------------------------------------------------------------------------------------------- -Copyright 2015, Google Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: boringssl -ORIGIN: ../../../third_party/boringssl/src/third_party/googletest/include/gtest/internal/gtest-death-test-internal.h -TYPE: LicenseType.bsd -FILE: ../../../third_party/boringssl/src/third_party/googletest/include/gtest/gtest-death-test.h -FILE: ../../../third_party/boringssl/src/third_party/googletest/include/gtest/gtest-message.h -FILE: ../../../third_party/boringssl/src/third_party/googletest/include/gtest/gtest.h -FILE: ../../../third_party/boringssl/src/third_party/googletest/include/gtest/internal/gtest-death-test-internal.h -FILE: ../../../third_party/boringssl/src/third_party/googletest/include/gtest/internal/gtest-internal.h -FILE: ../../../third_party/boringssl/src/third_party/googletest/include/gtest/internal/gtest-port.h -FILE: ../../../third_party/boringssl/src/third_party/googletest/include/gtest/internal/gtest-string.h -FILE: ../../../third_party/boringssl/src/third_party/googletest/samples/sample1.cc -FILE: ../../../third_party/boringssl/src/third_party/googletest/samples/sample1.h -FILE: ../../../third_party/boringssl/src/third_party/googletest/samples/sample1_unittest.cc -FILE: ../../../third_party/boringssl/src/third_party/googletest/samples/sample2.cc -FILE: ../../../third_party/boringssl/src/third_party/googletest/samples/sample2.h -FILE: ../../../third_party/boringssl/src/third_party/googletest/samples/sample2_unittest.cc -FILE: ../../../third_party/boringssl/src/third_party/googletest/samples/sample3-inl.h -FILE: ../../../third_party/boringssl/src/third_party/googletest/samples/sample3_unittest.cc -FILE: ../../../third_party/boringssl/src/third_party/googletest/samples/sample4.cc -FILE: ../../../third_party/boringssl/src/third_party/googletest/samples/sample4.h -FILE: ../../../third_party/boringssl/src/third_party/googletest/samples/sample4_unittest.cc -FILE: ../../../third_party/boringssl/src/third_party/googletest/samples/sample5_unittest.cc -FILE: ../../../third_party/boringssl/src/third_party/googletest/src/gtest-death-test.cc -FILE: ../../../third_party/boringssl/src/third_party/googletest/src/gtest-internal-inl.h -FILE: ../../../third_party/boringssl/src/third_party/googletest/src/gtest.cc ----------------------------------------------------------------------------------------------------- -Copyright 2005, Google Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: boringssl -ORIGIN: ../../../third_party/boringssl/src/third_party/googletest/include/gtest/internal/gtest-param-util.h -TYPE: LicenseType.bsd -FILE: ../../../third_party/boringssl/src/third_party/googletest/include/gtest/gtest-typed-test.h -FILE: ../../../third_party/boringssl/src/third_party/googletest/include/gtest/internal/gtest-param-util.h -FILE: ../../../third_party/boringssl/src/third_party/googletest/include/gtest/internal/gtest-type-util.h -FILE: ../../../third_party/boringssl/src/third_party/googletest/samples/prime_tables.h -FILE: ../../../third_party/boringssl/src/third_party/googletest/samples/sample6_unittest.cc -FILE: ../../../third_party/boringssl/src/third_party/googletest/samples/sample7_unittest.cc -FILE: ../../../third_party/boringssl/src/third_party/googletest/samples/sample8_unittest.cc -FILE: ../../../third_party/boringssl/src/third_party/googletest/src/gtest-typed-test.cc ----------------------------------------------------------------------------------------------------- -Copyright 2008 Google Inc. -All Rights Reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: boringssl -ORIGIN: ../../../third_party/boringssl/src/third_party/googletest/samples/sample10_unittest.cc -TYPE: LicenseType.bsd -FILE: ../../../third_party/boringssl/src/third_party/googletest/samples/sample10_unittest.cc -FILE: ../../../third_party/boringssl/src/third_party/googletest/samples/sample9_unittest.cc ----------------------------------------------------------------------------------------------------- -Copyright 2009 Google Inc. All Rights Reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: boringssl -ORIGIN: ../../../third_party/boringssl/src/util/compare_benchmarks.go -TYPE: LicenseType.unknown -FILE: ../../../third_party/boringssl/src/util/compare_benchmarks.go ----------------------------------------------------------------------------------------------------- -Copyright (c) 2020 Google Inc. - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY -SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION -OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN -CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -==================================================================================================== - -==================================================================================================== -LIBRARY: boringssl -ORIGIN: null -TYPE: LicenseType.unknown -FILE: ../../../third_party/boringssl/ios-aarch64/crypto/chacha/chacha-armv8.S -FILE: ../../../third_party/boringssl/ios-aarch64/crypto/fipsmodule/aesv8-armx64.S -FILE: ../../../third_party/boringssl/ios-aarch64/crypto/fipsmodule/armv8-mont.S -FILE: ../../../third_party/boringssl/ios-aarch64/crypto/fipsmodule/ghash-neon-armv8.S -FILE: ../../../third_party/boringssl/ios-aarch64/crypto/fipsmodule/ghashv8-armx64.S -FILE: ../../../third_party/boringssl/ios-aarch64/crypto/fipsmodule/sha1-armv8.S -FILE: ../../../third_party/boringssl/ios-aarch64/crypto/fipsmodule/vpaes-armv8.S -FILE: ../../../third_party/boringssl/ios-arm/crypto/chacha/chacha-armv4.S -FILE: ../../../third_party/boringssl/ios-arm/crypto/fipsmodule/aesv8-armx32.S -FILE: ../../../third_party/boringssl/ios-arm/crypto/fipsmodule/armv4-mont.S -FILE: ../../../third_party/boringssl/ios-arm/crypto/fipsmodule/ghash-armv4.S -FILE: ../../../third_party/boringssl/ios-arm/crypto/fipsmodule/ghashv8-armx32.S -FILE: ../../../third_party/boringssl/ios-arm/crypto/fipsmodule/sha1-armv4-large.S -FILE: ../../../third_party/boringssl/ios-arm/crypto/fipsmodule/vpaes-armv7.S -FILE: ../../../third_party/boringssl/linux-aarch64/crypto/chacha/chacha-armv8.S -FILE: ../../../third_party/boringssl/linux-aarch64/crypto/fipsmodule/aesv8-armx64.S -FILE: ../../../third_party/boringssl/linux-aarch64/crypto/fipsmodule/armv8-mont.S -FILE: ../../../third_party/boringssl/linux-aarch64/crypto/fipsmodule/ghash-neon-armv8.S -FILE: ../../../third_party/boringssl/linux-aarch64/crypto/fipsmodule/ghashv8-armx64.S -FILE: ../../../third_party/boringssl/linux-aarch64/crypto/fipsmodule/sha1-armv8.S -FILE: ../../../third_party/boringssl/linux-aarch64/crypto/fipsmodule/vpaes-armv8.S -FILE: ../../../third_party/boringssl/linux-arm/crypto/chacha/chacha-armv4.S -FILE: ../../../third_party/boringssl/linux-arm/crypto/fipsmodule/aesv8-armx32.S -FILE: ../../../third_party/boringssl/linux-arm/crypto/fipsmodule/armv4-mont.S -FILE: ../../../third_party/boringssl/linux-arm/crypto/fipsmodule/ghash-armv4.S -FILE: ../../../third_party/boringssl/linux-arm/crypto/fipsmodule/ghashv8-armx32.S -FILE: ../../../third_party/boringssl/linux-arm/crypto/fipsmodule/sha1-armv4-large.S -FILE: ../../../third_party/boringssl/linux-arm/crypto/fipsmodule/vpaes-armv7.S -FILE: ../../../third_party/boringssl/linux-ppc64le/crypto/fipsmodule/aesp8-ppc.S -FILE: ../../../third_party/boringssl/linux-ppc64le/crypto/fipsmodule/ghashp8-ppc.S -FILE: ../../../third_party/boringssl/linux-x86/crypto/chacha/chacha-x86.S -FILE: ../../../third_party/boringssl/linux-x86/crypto/fipsmodule/aesni-x86.S -FILE: ../../../third_party/boringssl/linux-x86/crypto/fipsmodule/bn-586.S -FILE: ../../../third_party/boringssl/linux-x86/crypto/fipsmodule/co-586.S -FILE: ../../../third_party/boringssl/linux-x86/crypto/fipsmodule/ghash-ssse3-x86.S -FILE: ../../../third_party/boringssl/linux-x86/crypto/fipsmodule/ghash-x86.S -FILE: ../../../third_party/boringssl/linux-x86/crypto/fipsmodule/md5-586.S -FILE: ../../../third_party/boringssl/linux-x86/crypto/fipsmodule/sha1-586.S -FILE: ../../../third_party/boringssl/linux-x86/crypto/fipsmodule/sha256-586.S -FILE: ../../../third_party/boringssl/linux-x86/crypto/fipsmodule/sha512-586.S -FILE: ../../../third_party/boringssl/linux-x86/crypto/fipsmodule/vpaes-x86.S -FILE: ../../../third_party/boringssl/linux-x86/crypto/fipsmodule/x86-mont.S -FILE: ../../../third_party/boringssl/linux-x86_64/crypto/chacha/chacha-x86_64.S -FILE: ../../../third_party/boringssl/linux-x86_64/crypto/cipher_extra/aes128gcmsiv-x86_64.S -FILE: ../../../third_party/boringssl/linux-x86_64/crypto/cipher_extra/chacha20_poly1305_x86_64.S -FILE: ../../../third_party/boringssl/linux-x86_64/crypto/fipsmodule/aesni-gcm-x86_64.S -FILE: ../../../third_party/boringssl/linux-x86_64/crypto/fipsmodule/aesni-x86_64.S -FILE: ../../../third_party/boringssl/linux-x86_64/crypto/fipsmodule/ghash-ssse3-x86_64.S -FILE: ../../../third_party/boringssl/linux-x86_64/crypto/fipsmodule/ghash-x86_64.S -FILE: ../../../third_party/boringssl/linux-x86_64/crypto/fipsmodule/md5-x86_64.S -FILE: ../../../third_party/boringssl/linux-x86_64/crypto/fipsmodule/p256-x86_64-asm.S -FILE: ../../../third_party/boringssl/linux-x86_64/crypto/fipsmodule/p256_beeu-x86_64-asm.S -FILE: ../../../third_party/boringssl/linux-x86_64/crypto/fipsmodule/rdrand-x86_64.S -FILE: ../../../third_party/boringssl/linux-x86_64/crypto/fipsmodule/rsaz-avx2.S -FILE: ../../../third_party/boringssl/linux-x86_64/crypto/fipsmodule/sha1-x86_64.S -FILE: ../../../third_party/boringssl/linux-x86_64/crypto/fipsmodule/sha256-x86_64.S -FILE: ../../../third_party/boringssl/linux-x86_64/crypto/fipsmodule/sha512-x86_64.S -FILE: ../../../third_party/boringssl/linux-x86_64/crypto/fipsmodule/vpaes-x86_64.S -FILE: ../../../third_party/boringssl/linux-x86_64/crypto/fipsmodule/x86_64-mont.S -FILE: ../../../third_party/boringssl/linux-x86_64/crypto/fipsmodule/x86_64-mont5.S -FILE: ../../../third_party/boringssl/mac-x86/crypto/chacha/chacha-x86.S -FILE: ../../../third_party/boringssl/mac-x86/crypto/fipsmodule/aesni-x86.S -FILE: ../../../third_party/boringssl/mac-x86/crypto/fipsmodule/bn-586.S -FILE: ../../../third_party/boringssl/mac-x86/crypto/fipsmodule/co-586.S -FILE: ../../../third_party/boringssl/mac-x86/crypto/fipsmodule/ghash-ssse3-x86.S -FILE: ../../../third_party/boringssl/mac-x86/crypto/fipsmodule/ghash-x86.S -FILE: ../../../third_party/boringssl/mac-x86/crypto/fipsmodule/md5-586.S -FILE: ../../../third_party/boringssl/mac-x86/crypto/fipsmodule/sha1-586.S -FILE: ../../../third_party/boringssl/mac-x86/crypto/fipsmodule/sha256-586.S -FILE: ../../../third_party/boringssl/mac-x86/crypto/fipsmodule/sha512-586.S -FILE: ../../../third_party/boringssl/mac-x86/crypto/fipsmodule/vpaes-x86.S -FILE: ../../../third_party/boringssl/mac-x86/crypto/fipsmodule/x86-mont.S -FILE: ../../../third_party/boringssl/mac-x86_64/crypto/chacha/chacha-x86_64.S -FILE: ../../../third_party/boringssl/mac-x86_64/crypto/cipher_extra/aes128gcmsiv-x86_64.S -FILE: ../../../third_party/boringssl/mac-x86_64/crypto/cipher_extra/chacha20_poly1305_x86_64.S -FILE: ../../../third_party/boringssl/mac-x86_64/crypto/fipsmodule/aesni-gcm-x86_64.S -FILE: ../../../third_party/boringssl/mac-x86_64/crypto/fipsmodule/aesni-x86_64.S -FILE: ../../../third_party/boringssl/mac-x86_64/crypto/fipsmodule/ghash-ssse3-x86_64.S -FILE: ../../../third_party/boringssl/mac-x86_64/crypto/fipsmodule/ghash-x86_64.S -FILE: ../../../third_party/boringssl/mac-x86_64/crypto/fipsmodule/md5-x86_64.S -FILE: ../../../third_party/boringssl/mac-x86_64/crypto/fipsmodule/p256-x86_64-asm.S -FILE: ../../../third_party/boringssl/mac-x86_64/crypto/fipsmodule/p256_beeu-x86_64-asm.S -FILE: ../../../third_party/boringssl/mac-x86_64/crypto/fipsmodule/rdrand-x86_64.S -FILE: ../../../third_party/boringssl/mac-x86_64/crypto/fipsmodule/rsaz-avx2.S -FILE: ../../../third_party/boringssl/mac-x86_64/crypto/fipsmodule/sha1-x86_64.S -FILE: ../../../third_party/boringssl/mac-x86_64/crypto/fipsmodule/sha256-x86_64.S -FILE: ../../../third_party/boringssl/mac-x86_64/crypto/fipsmodule/sha512-x86_64.S -FILE: ../../../third_party/boringssl/mac-x86_64/crypto/fipsmodule/vpaes-x86_64.S -FILE: ../../../third_party/boringssl/mac-x86_64/crypto/fipsmodule/x86_64-mont.S -FILE: ../../../third_party/boringssl/mac-x86_64/crypto/fipsmodule/x86_64-mont5.S -FILE: ../../../third_party/boringssl/win-aarch64/crypto/chacha/chacha-armv8.S -FILE: ../../../third_party/boringssl/win-aarch64/crypto/fipsmodule/aesv8-armx64.S -FILE: ../../../third_party/boringssl/win-aarch64/crypto/fipsmodule/armv8-mont.S -FILE: ../../../third_party/boringssl/win-aarch64/crypto/fipsmodule/ghash-neon-armv8.S -FILE: ../../../third_party/boringssl/win-aarch64/crypto/fipsmodule/ghashv8-armx64.S -FILE: ../../../third_party/boringssl/win-aarch64/crypto/fipsmodule/sha1-armv8.S -FILE: ../../../third_party/boringssl/win-aarch64/crypto/fipsmodule/vpaes-armv8.S -FILE: ../../../third_party/boringssl/win-x86/crypto/chacha/chacha-x86.asm -FILE: ../../../third_party/boringssl/win-x86/crypto/fipsmodule/aesni-x86.asm -FILE: ../../../third_party/boringssl/win-x86/crypto/fipsmodule/bn-586.asm -FILE: ../../../third_party/boringssl/win-x86/crypto/fipsmodule/co-586.asm -FILE: ../../../third_party/boringssl/win-x86/crypto/fipsmodule/ghash-ssse3-x86.asm -FILE: ../../../third_party/boringssl/win-x86/crypto/fipsmodule/ghash-x86.asm -FILE: ../../../third_party/boringssl/win-x86/crypto/fipsmodule/md5-586.asm -FILE: ../../../third_party/boringssl/win-x86/crypto/fipsmodule/sha1-586.asm -FILE: ../../../third_party/boringssl/win-x86/crypto/fipsmodule/sha256-586.asm -FILE: ../../../third_party/boringssl/win-x86/crypto/fipsmodule/sha512-586.asm -FILE: ../../../third_party/boringssl/win-x86/crypto/fipsmodule/vpaes-x86.asm -FILE: ../../../third_party/boringssl/win-x86/crypto/fipsmodule/x86-mont.asm -FILE: ../../../third_party/boringssl/win-x86_64/crypto/chacha/chacha-x86_64.asm -FILE: ../../../third_party/boringssl/win-x86_64/crypto/cipher_extra/aes128gcmsiv-x86_64.asm -FILE: ../../../third_party/boringssl/win-x86_64/crypto/cipher_extra/chacha20_poly1305_x86_64.asm -FILE: ../../../third_party/boringssl/win-x86_64/crypto/fipsmodule/aesni-gcm-x86_64.asm -FILE: ../../../third_party/boringssl/win-x86_64/crypto/fipsmodule/aesni-x86_64.asm -FILE: ../../../third_party/boringssl/win-x86_64/crypto/fipsmodule/ghash-ssse3-x86_64.asm -FILE: ../../../third_party/boringssl/win-x86_64/crypto/fipsmodule/ghash-x86_64.asm -FILE: ../../../third_party/boringssl/win-x86_64/crypto/fipsmodule/md5-x86_64.asm -FILE: ../../../third_party/boringssl/win-x86_64/crypto/fipsmodule/p256-x86_64-asm.asm -FILE: ../../../third_party/boringssl/win-x86_64/crypto/fipsmodule/p256_beeu-x86_64-asm.asm -FILE: ../../../third_party/boringssl/win-x86_64/crypto/fipsmodule/rdrand-x86_64.asm -FILE: ../../../third_party/boringssl/win-x86_64/crypto/fipsmodule/rsaz-avx2.asm -FILE: ../../../third_party/boringssl/win-x86_64/crypto/fipsmodule/sha1-x86_64.asm -FILE: ../../../third_party/boringssl/win-x86_64/crypto/fipsmodule/sha256-x86_64.asm -FILE: ../../../third_party/boringssl/win-x86_64/crypto/fipsmodule/sha512-x86_64.asm -FILE: ../../../third_party/boringssl/win-x86_64/crypto/fipsmodule/vpaes-x86_64.asm -FILE: ../../../third_party/boringssl/win-x86_64/crypto/fipsmodule/x86_64-mont.asm -FILE: ../../../third_party/boringssl/win-x86_64/crypto/fipsmodule/x86_64-mont5.asm ----------------------------------------------------------------------------------------------------- - -==================================================================================================== - -==================================================================================================== -LIBRARY: colorama -ORIGIN: ../../../third_party/colorama/src/LICENSE.txt -TYPE: LicenseType.bsd -FILE: ../../../third_party/colorama/src/MANIFEST.in -FILE: ../../../third_party/colorama/src/screenshots/ubuntu-demo.png -FILE: ../../../third_party/colorama/src/screenshots/windows-demo.png ----------------------------------------------------------------------------------------------------- -Copyright (c) 2010 Jonathan Hartley -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -* Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -* Neither the name of the copyright holders, nor those of its contributors - may be used to endorse or promote products derived from this software without - specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: dart -ORIGIN: ../../../third_party/dart/LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/dart/.gitconfig -FILE: ../../../third_party/dart/.style.yapf -FILE: ../../../third_party/dart/.vpython -FILE: ../../../third_party/dart/PATENT_GRANT -FILE: ../../../third_party/dart/runtime/.clang-tidy -FILE: ../../../third_party/dart/runtime/CPPLINT.cfg -FILE: ../../../third_party/dart/runtime/bin/ffi_test/clobber_arm.S -FILE: ../../../third_party/dart/runtime/bin/ffi_test/clobber_arm64.S -FILE: ../../../third_party/dart/runtime/bin/ffi_test/clobber_riscv32.S -FILE: ../../../third_party/dart/runtime/bin/ffi_test/clobber_riscv64.S -FILE: ../../../third_party/dart/runtime/bin/ffi_test/clobber_x64.S -FILE: ../../../third_party/dart/runtime/bin/ffi_test/clobber_x64_win.S -FILE: ../../../third_party/dart/runtime/bin/ffi_test/clobber_x86.S -FILE: ../../../third_party/dart/runtime/bin/ffi_test/ffi_test_functions_helpers.S -FILE: ../../../third_party/dart/runtime/docs/compiler/images/catch-block-entry-0.png -FILE: ../../../third_party/dart/runtime/docs/compiler/images/catch-block-entry-1.png -FILE: ../../../third_party/dart/runtime/docs/images/aot-ic-dictionary.png -FILE: ../../../third_party/dart/runtime/docs/images/aot-ic-linear.png -FILE: ../../../third_party/dart/runtime/docs/images/aot-ic-monomorphic.png -FILE: ../../../third_party/dart/runtime/docs/images/aot-ic-singletarget.png -FILE: ../../../third_party/dart/runtime/docs/images/aot-ic-unlinked.png -FILE: ../../../third_party/dart/runtime/docs/images/aot.png -FILE: ../../../third_party/dart/runtime/docs/images/dart-to-kernel.png -FILE: ../../../third_party/dart/runtime/docs/images/flutter-cfe.png -FILE: ../../../third_party/dart/runtime/docs/images/images.graffle!images -FILE: ../../../third_party/dart/runtime/docs/images/inline-cache-1.png -FILE: ../../../third_party/dart/runtime/docs/images/isolates.png -FILE: ../../../third_party/dart/runtime/docs/images/kernel-loaded-1.png -FILE: ../../../third_party/dart/runtime/docs/images/kernel-loaded-2.png -FILE: ../../../third_party/dart/runtime/docs/images/kernel-service.png -FILE: ../../../third_party/dart/runtime/docs/images/optimizing-compilation.png -FILE: ../../../third_party/dart/runtime/docs/images/raw-function-lazy-compile.png -FILE: ../../../third_party/dart/runtime/docs/images/snapshot-appjit.png -FILE: ../../../third_party/dart/runtime/docs/images/snapshot-with-code.png -FILE: ../../../third_party/dart/runtime/docs/images/snapshot.png -FILE: ../../../third_party/dart/runtime/docs/images/unoptimized-compilation.png -FILE: ../../../third_party/dart/runtime/docs/infra/images/isolated-out-browser.png -FILE: ../../../third_party/dart/runtime/docs/infra/images/isolated-out-link.png -FILE: ../../../third_party/dart/runtime/observatory/lib/elements.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/img/chromium_icon.png -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/img/dart_icon.png -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/img/isolate_icon.png -FILE: ../../../third_party/dart/runtime/observatory/web/favicon.ico -FILE: ../../../third_party/dart/runtime/observatory/web/index.html -FILE: ../../../third_party/dart/runtime/observatory/web/third_party/trace_viewer_full.html -FILE: ../../../third_party/dart/runtime/observatory/web/timeline.html -FILE: ../../../third_party/dart/runtime/observatory_2/lib/elements.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/img/chromium_icon.png -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/img/dart_icon.png -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/img/isolate_icon.png -FILE: ../../../third_party/dart/runtime/observatory_2/web/favicon.ico -FILE: ../../../third_party/dart/runtime/observatory_2/web/index.html -FILE: ../../../third_party/dart/runtime/observatory_2/web/third_party/trace_viewer_full.html -FILE: ../../../third_party/dart/runtime/observatory_2/web/timeline.html -FILE: ../../../third_party/dart/runtime/tools/wiki/styles/style.scss -FILE: ../../../third_party/dart/runtime/tools/wiki/templates/includes/auto-refresh.html -FILE: ../../../third_party/dart/runtime/tools/wiki/templates/includes/favicon.html -FILE: ../../../third_party/dart/runtime/tools/wiki/templates/page.html -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/doublex20/arm64_android.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/doublex20/arm64_fuchsia.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/doublex20/arm64_ios.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/doublex20/arm64_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/doublex20/arm64_macos.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/doublex20/arm_android.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/doublex20/arm_ios.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/doublex20/arm_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/doublex20/ia32_android.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/doublex20/ia32_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/doublex20/ia32_win.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/doublex20/riscv32_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/doublex20/riscv64_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/doublex20/x64_fuchsia.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/doublex20/x64_ios.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/doublex20/x64_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/doublex20/x64_macos.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/doublex20/x64_win.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/floatx20/arm64_android.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/floatx20/arm64_fuchsia.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/floatx20/arm64_ios.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/floatx20/arm64_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/floatx20/arm64_macos.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/floatx20/arm_android.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/floatx20/arm_ios.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/floatx20/arm_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/floatx20/ia32_android.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/floatx20/ia32_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/floatx20/ia32_win.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/floatx20/riscv32_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/floatx20/riscv64_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/floatx20/x64_fuchsia.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/floatx20/x64_ios.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/floatx20/x64_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/floatx20/x64_macos.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/floatx20/x64_win.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/int8x10/arm64_android.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/int8x10/arm64_fuchsia.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/int8x10/arm64_ios.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/int8x10/arm64_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/int8x10/arm64_macos.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/int8x10/arm_android.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/int8x10/arm_ios.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/int8x10/arm_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/int8x10/ia32_android.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/int8x10/ia32_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/int8x10/ia32_win.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/int8x10/riscv32_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/int8x10/riscv64_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/int8x10/x64_fuchsia.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/int8x10/x64_ios.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/int8x10/x64_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/int8x10/x64_macos.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/int8x10/x64_win.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/mixedx20/arm64_android.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/mixedx20/arm64_fuchsia.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/mixedx20/arm64_ios.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/mixedx20/arm64_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/mixedx20/arm64_macos.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/mixedx20/arm_android.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/mixedx20/arm_ios.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/mixedx20/arm_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/mixedx20/ia32_android.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/mixedx20/ia32_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/mixedx20/ia32_win.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/mixedx20/riscv32_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/mixedx20/riscv64_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/mixedx20/x64_fuchsia.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/mixedx20/x64_ios.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/mixedx20/x64_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/mixedx20/x64_macos.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/mixedx20/x64_win.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/regress46127/arm64_android.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/regress46127/arm64_fuchsia.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/regress46127/arm64_ios.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/regress46127/arm64_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/regress46127/arm64_macos.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/regress46127/arm_android.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/regress46127/arm_ios.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/regress46127/arm_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/regress46127/ia32_android.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/regress46127/ia32_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/regress46127/ia32_win.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/regress46127/riscv32_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/regress46127/riscv64_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/regress46127/x64_fuchsia.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/regress46127/x64_ios.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/regress46127/x64_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/regress46127/x64_macos.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/regress46127/x64_win.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/regress_fuchsia105336/arm64_android.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/regress_fuchsia105336/arm64_fuchsia.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/regress_fuchsia105336/arm64_ios.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/regress_fuchsia105336/arm64_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/regress_fuchsia105336/arm64_macos.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/regress_fuchsia105336/arm_android.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/regress_fuchsia105336/arm_ios.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/regress_fuchsia105336/arm_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/regress_fuchsia105336/ia32_android.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/regress_fuchsia105336/ia32_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/regress_fuchsia105336/ia32_win.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/regress_fuchsia105336/riscv32_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/regress_fuchsia105336/riscv64_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/regress_fuchsia105336/x64_fuchsia.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/regress_fuchsia105336/x64_ios.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/regress_fuchsia105336/x64_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/regress_fuchsia105336/x64_macos.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/regress_fuchsia105336/x64_win.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/arm64_android.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/arm64_fuchsia.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/arm64_ios.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/arm64_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/arm64_macos.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/arm_android.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/arm_ios.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/arm_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/ia32_android.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/ia32_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/ia32_win.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/riscv32_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/riscv64_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/x64_fuchsia.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/x64_ios.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/x64_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/x64_macos.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/x64_win.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct12bytesFloatx6/arm64_android.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct12bytesFloatx6/arm64_fuchsia.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct12bytesFloatx6/arm64_ios.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct12bytesFloatx6/arm64_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct12bytesFloatx6/arm64_macos.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct12bytesFloatx6/arm_android.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct12bytesFloatx6/arm_ios.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct12bytesFloatx6/arm_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct12bytesFloatx6/ia32_android.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct12bytesFloatx6/ia32_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct12bytesFloatx6/ia32_win.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct12bytesFloatx6/riscv32_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct12bytesFloatx6/riscv64_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct12bytesFloatx6/x64_fuchsia.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct12bytesFloatx6/x64_ios.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct12bytesFloatx6/x64_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct12bytesFloatx6/x64_macos.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct12bytesFloatx6/x64_win.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/arm64_android.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/arm64_fuchsia.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/arm64_ios.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/arm64_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/arm64_macos.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/arm_android.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/arm_ios.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/arm_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/ia32_android.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/ia32_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/ia32_win.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/riscv32_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/riscv64_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/x64_fuchsia.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/x64_ios.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/x64_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/x64_macos.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/x64_win.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct16bytesMixedx10/x64_fuchsia.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct16bytesMixedx10/x64_ios.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct16bytesMixedx10/x64_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct16bytesMixedx10/x64_macos.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct16bytesMixedx10/x64_win.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct16bytesMixedx10_2/x64_fuchsia.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct16bytesMixedx10_2/x64_ios.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct16bytesMixedx10_2/x64_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct16bytesMixedx10_2/x64_macos.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct16bytesMixedx10_2/x64_win.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct16bytesMixedx10_3/x64_fuchsia.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct16bytesMixedx10_3/x64_ios.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct16bytesMixedx10_3/x64_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct16bytesMixedx10_3/x64_macos.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct16bytesMixedx10_3/x64_win.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/arm64_android.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/arm64_fuchsia.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/arm64_ios.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/arm64_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/arm64_macos.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/arm_android.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/arm_ios.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/arm_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/ia32_android.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/ia32_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/ia32_win.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/riscv32_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/riscv64_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/x64_fuchsia.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/x64_ios.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/x64_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/x64_macos.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/x64_win.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/arm64_android.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/arm64_fuchsia.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/arm64_ios.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/arm64_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/arm64_macos.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/arm_android.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/arm_ios.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/arm_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/ia32_android.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/ia32_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/ia32_win.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/riscv32_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/riscv64_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/x64_fuchsia.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/x64_ios.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/x64_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/x64_macos.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/x64_win.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/arm64_android.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/arm64_fuchsia.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/arm64_ios.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/arm64_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/arm64_macos.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/arm_android.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/arm_ios.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/arm_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/ia32_android.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/ia32_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/ia32_win.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/riscv32_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/riscv64_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/x64_fuchsia.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/x64_ios.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/x64_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/x64_macos.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/x64_win.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/structPacked/arm64_android.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/structPacked/arm64_fuchsia.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/structPacked/arm64_ios.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/structPacked/arm64_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/structPacked/arm64_macos.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/structPacked/arm_android.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/structPacked/arm_ios.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/structPacked/arm_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/structPacked/ia32_android.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/structPacked/ia32_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/structPacked/ia32_win.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/structPacked/riscv32_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/structPacked/riscv64_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/structPacked/x64_fuchsia.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/structPacked/x64_ios.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/structPacked/x64_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/structPacked/x64_macos.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/structPacked/x64_win.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/arm64_android.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/arm64_fuchsia.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/arm64_ios.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/arm64_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/arm64_macos.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/arm_android.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/arm_ios.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/arm_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/ia32_android.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/ia32_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/ia32_win.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/riscv32_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/riscv64_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/x64_fuchsia.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/x64_ios.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/x64_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/x64_macos.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/x64_win.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/arm64_android.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/arm64_fuchsia.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/arm64_ios.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/arm64_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/arm64_macos.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/arm_android.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/arm_ios.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/arm_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/ia32_android.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/ia32_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/ia32_win.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/riscv32_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/riscv64_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/x64_fuchsia.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/x64_ios.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/x64_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/x64_macos.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/x64_win.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/arm64_android.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/arm64_fuchsia.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/arm64_ios.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/arm64_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/arm64_macos.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/arm_android.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/arm_ios.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/arm_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/ia32_android.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/ia32_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/ia32_win.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/riscv32_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/riscv64_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/x64_fuchsia.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/x64_ios.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/x64_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/x64_macos.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/x64_win.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_int8array/arm64_android.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_int8array/arm64_fuchsia.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_int8array/arm64_ios.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_int8array/arm64_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_int8array/arm64_macos.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_int8array/arm_android.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_int8array/arm_ios.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_int8array/arm_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_int8array/ia32_android.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_int8array/ia32_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_int8array/ia32_win.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_int8array/riscv32_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_int8array/riscv64_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_int8array/x64_fuchsia.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_int8array/x64_ios.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_int8array/x64_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_int8array/x64_macos.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_int8array/x64_win.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/arm64_android.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/arm64_fuchsia.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/arm64_ios.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/arm64_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/arm64_macos.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/arm_android.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/arm_ios.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/arm_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/ia32_android.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/ia32_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/ia32_win.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/riscv32_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/riscv64_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/x64_fuchsia.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/x64_ios.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/x64_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/x64_macos.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/x64_win.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/arm64_android.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/arm64_fuchsia.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/arm64_ios.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/arm64_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/arm64_macos.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/arm_android.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/arm_ios.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/arm_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/ia32_android.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/ia32_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/ia32_win.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/riscv32_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/riscv64_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/x64_fuchsia.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/x64_ios.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/x64_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/x64_macos.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/x64_win.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/arm64_android.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/arm64_fuchsia.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/arm64_ios.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/arm64_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/arm64_macos.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/arm_android.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/arm_ios.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/arm_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/ia32_android.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/ia32_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/ia32_win.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/riscv32_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/riscv64_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/x64_fuchsia.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/x64_ios.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/x64_linux.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/x64_macos.expect -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/x64_win.expect -FILE: ../../../third_party/dart/samples/ffi/sqlite/docs/lib/scenario-default.svg -FILE: ../../../third_party/dart/samples/ffi/sqlite/docs/lib/scenario-full.svg -FILE: ../../../third_party/dart/sdk/lib/_internal/allowed_experiments.json -FILE: ../../../third_party/dart/sdk/lib/html/html_common/conversions_dart2js.dart -FILE: ../../../third_party/dart/sdk/lib/html/html_common/html_common.dart -FILE: ../../../third_party/dart/sdk/lib/libraries.json -FILE: ../../../third_party/dart/sdk/lib/vmservice_libraries.json -FILE: ../../../third_party/dart/third_party/clang.tar.gz.sha1 ----------------------------------------------------------------------------------------------------- -Copyright 2012, the Dart project authors. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - * Neither the name of Google LLC nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: dart -ORIGIN: ../../../third_party/dart/runtime/bin/abstract_socket_test.cc + ../../../third_party/dart/LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/dart/runtime/bin/abstract_socket_test.cc -FILE: ../../../third_party/dart/runtime/bin/analyze_snapshot.cc -FILE: ../../../third_party/dart/runtime/bin/platform_macos_cocoa.h -FILE: ../../../third_party/dart/runtime/bin/platform_macos_cocoa.mm -FILE: ../../../third_party/dart/runtime/bin/secure_socket_utils_test.cc -FILE: ../../../third_party/dart/runtime/bin/socket_base_posix.cc -FILE: ../../../third_party/dart/runtime/bin/utils.cc -FILE: ../../../third_party/dart/runtime/bin/virtual_memory.h -FILE: ../../../third_party/dart/runtime/bin/virtual_memory_fuchsia.cc -FILE: ../../../third_party/dart/runtime/bin/virtual_memory_posix.cc -FILE: ../../../third_party/dart/runtime/bin/virtual_memory_win.cc -FILE: ../../../third_party/dart/runtime/include/analyze_snapshot_api.h -FILE: ../../../third_party/dart/runtime/vm/analyze_snapshot_api_impl.cc -FILE: ../../../third_party/dart/runtime/vm/code_patcher_riscv.cc -FILE: ../../../third_party/dart/runtime/vm/code_patcher_riscv_test.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/asm_intrinsifier_riscv.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/asm_intrinsifier_test.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/backend/flow_graph_compiler_riscv.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/backend/il_riscv.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/compiler_timings.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/compiler_timings.h -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/range.h -FILE: ../../../third_party/dart/runtime/vm/compiler/relocation_test.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/stub_code_compiler_riscv.cc -FILE: ../../../third_party/dart/runtime/vm/cpu_riscv.cc -FILE: ../../../third_party/dart/runtime/vm/cpu_riscv.h -FILE: ../../../third_party/dart/runtime/vm/debugger_riscv.cc -FILE: ../../../third_party/dart/runtime/vm/heap/safepoint_test.cc -FILE: ../../../third_party/dart/runtime/vm/instructions_riscv.cc -FILE: ../../../third_party/dart/runtime/vm/instructions_riscv.h -FILE: ../../../third_party/dart/runtime/vm/instructions_riscv_test.cc -FILE: ../../../third_party/dart/runtime/vm/message_snapshot.cc -FILE: ../../../third_party/dart/runtime/vm/message_snapshot.h -FILE: ../../../third_party/dart/runtime/vm/object_graph_copy.cc -FILE: ../../../third_party/dart/runtime/vm/object_graph_copy.h -FILE: ../../../third_party/dart/runtime/vm/object_riscv_test.cc -FILE: ../../../third_party/dart/runtime/vm/pending_deopts.cc -FILE: ../../../third_party/dart/runtime/vm/pending_deopts.h -FILE: ../../../third_party/dart/runtime/vm/runtime_entry_riscv.cc -FILE: ../../../third_party/dart/runtime/vm/stack_frame_riscv.h -FILE: ../../../third_party/dart/runtime/vm/stub_code_riscv_test.cc -FILE: ../../../third_party/dart/runtime/vm/thread_interrupter_android_arm.S -FILE: ../../../third_party/dart/runtime/vm/virtual_memory_compressed.cc -FILE: ../../../third_party/dart/runtime/vm/virtual_memory_compressed.h -FILE: ../../../third_party/dart/samples/ffi/resource_management/utf8_helpers.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/js_runtime/lib/dart2js_runtime_metrics.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/js_runtime/lib/late_helper.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/ffi_allocation_patch.dart -FILE: ../../../third_party/dart/sdk/lib/core/enum.dart -FILE: ../../../third_party/dart/sdk/lib/ffi/abi.dart -FILE: ../../../third_party/dart/sdk/lib/ffi/abi_specific.dart -FILE: ../../../third_party/dart/sdk/lib/ffi/allocation.dart -FILE: ../../../third_party/dart/sdk/lib/ffi/union.dart ----------------------------------------------------------------------------------------------------- -Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file -for details. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - * Neither the name of Google LLC nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: dart -ORIGIN: ../../../third_party/dart/runtime/bin/address_sanitizer.cc + ../../../third_party/dart/LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/dart/runtime/bin/address_sanitizer.cc -FILE: ../../../third_party/dart/runtime/bin/dart_io_api_impl.cc -FILE: ../../../third_party/dart/runtime/bin/observatory_assets_empty.cc -FILE: ../../../third_party/dart/runtime/include/bin/dart_io_api.h -FILE: ../../../third_party/dart/runtime/lib/developer.cc -FILE: ../../../third_party/dart/runtime/lib/timeline.cc -FILE: ../../../third_party/dart/runtime/lib/vmservice.cc -FILE: ../../../third_party/dart/runtime/observatory/lib/allocation_profile.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/cli.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/debugger.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/sample_profile.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/allocation_profile/allocation_profile.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/cli/command.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/debugger/debugger.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/debugger/debugger_location.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/heap_snapshot.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/logging.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/logging_list.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/megamorphiccache_view.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/objectpool_view.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/persistent_handles.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/ports.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/timeline_page.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/sample_profile/sample_profile.dart -FILE: ../../../third_party/dart/runtime/observatory/web/timeline.js -FILE: ../../../third_party/dart/runtime/observatory_2/lib/allocation_profile.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/cli.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/debugger.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/sample_profile.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/allocation_profile/allocation_profile.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/cli/command.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/debugger/debugger.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/debugger/debugger_location.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/heap_snapshot.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/logging.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/logging_list.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/megamorphiccache_view.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/objectpool_view.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/persistent_handles.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/ports.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/timeline_page.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/sample_profile/sample_profile.dart -FILE: ../../../third_party/dart/runtime/observatory_2/web/timeline.js -FILE: ../../../third_party/dart/runtime/vm/atomic_test.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/aot/precompiler.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/aot/precompiler.h -FILE: ../../../third_party/dart/runtime/vm/log.cc -FILE: ../../../third_party/dart/runtime/vm/log.h -FILE: ../../../third_party/dart/runtime/vm/log_test.cc -FILE: ../../../third_party/dart/runtime/vm/os_thread.cc -FILE: ../../../third_party/dart/runtime/vm/profiler_service.cc -FILE: ../../../third_party/dart/runtime/vm/profiler_service.h -FILE: ../../../third_party/dart/runtime/vm/program_visitor.cc -FILE: ../../../third_party/dart/runtime/vm/program_visitor.h -FILE: ../../../third_party/dart/runtime/vm/regexp_assembler_bytecode.cc -FILE: ../../../third_party/dart/runtime/vm/regexp_assembler_bytecode.h -FILE: ../../../third_party/dart/runtime/vm/regexp_assembler_bytecode_inl.h -FILE: ../../../third_party/dart/runtime/vm/regexp_bytecodes.h -FILE: ../../../third_party/dart/runtime/vm/regexp_interpreter.cc -FILE: ../../../third_party/dart/runtime/vm/regexp_interpreter.h -FILE: ../../../third_party/dart/runtime/vm/scope_timer.h -FILE: ../../../third_party/dart/runtime/vm/service_event.cc -FILE: ../../../third_party/dart/runtime/vm/service_event.h -FILE: ../../../third_party/dart/runtime/vm/service_isolate.cc -FILE: ../../../third_party/dart/runtime/vm/source_report.cc -FILE: ../../../third_party/dart/runtime/vm/source_report.h -FILE: ../../../third_party/dart/runtime/vm/source_report_test.cc -FILE: ../../../third_party/dart/runtime/vm/thread.cc -FILE: ../../../third_party/dart/runtime/vm/thread.h -FILE: ../../../third_party/dart/runtime/vm/thread_barrier.h -FILE: ../../../third_party/dart/runtime/vm/thread_barrier_test.cc -FILE: ../../../third_party/dart/runtime/vm/thread_registry.cc -FILE: ../../../third_party/dart/runtime/vm/thread_registry.h -FILE: ../../../third_party/dart/runtime/vm/timeline.cc -FILE: ../../../third_party/dart/runtime/vm/timeline.h -FILE: ../../../third_party/dart/runtime/vm/timeline_test.cc -FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/patch/developer_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/classes.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/errors.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/operations.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/rtti.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/runtime.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/types.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/utils.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/private/debugger.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/js_runtime/lib/developer_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/js_runtime/lib/preambles/d8.js -FILE: ../../../third_party/dart/sdk/lib/_internal/js_runtime/lib/preambles/jsshell.js -FILE: ../../../third_party/dart/sdk/lib/_internal/js_runtime/lib/synced/async_await_error_codes.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/async_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/compact_hash.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/developer.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/timeline.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/compact_hash.dart -FILE: ../../../third_party/dart/sdk/lib/convert/base64.dart -FILE: ../../../third_party/dart/sdk/lib/developer/developer.dart -FILE: ../../../third_party/dart/sdk/lib/developer/extension.dart -FILE: ../../../third_party/dart/sdk/lib/developer/timeline.dart -FILE: ../../../third_party/dart/sdk/lib/io/io_resource_info.dart -FILE: ../../../third_party/dart/sdk/lib/io/security_context.dart -FILE: ../../../third_party/dart/sdk/lib/js/_js_annotations.dart -FILE: ../../../third_party/dart/sdk/lib/vmservice/asset.dart -FILE: ../../../third_party/dart/sdk/lib/vmservice/vmservice.dart ----------------------------------------------------------------------------------------------------- -Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file -for details. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - * Neither the name of Google LLC nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: dart -ORIGIN: ../../../third_party/dart/runtime/bin/builtin.cc + ../../../third_party/dart/LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/dart/DEPS -FILE: ../../../third_party/dart/runtime/bin/builtin.cc -FILE: ../../../third_party/dart/runtime/bin/builtin.h -FILE: ../../../third_party/dart/runtime/bin/builtin_gen_snapshot.cc -FILE: ../../../third_party/dart/runtime/bin/builtin_in.cc -FILE: ../../../third_party/dart/runtime/bin/builtin_natives.cc -FILE: ../../../third_party/dart/runtime/bin/crashpad.cc -FILE: ../../../third_party/dart/runtime/bin/crypto.cc -FILE: ../../../third_party/dart/runtime/bin/crypto.h -FILE: ../../../third_party/dart/runtime/bin/crypto_android.cc -FILE: ../../../third_party/dart/runtime/bin/crypto_linux.cc -FILE: ../../../third_party/dart/runtime/bin/crypto_macos.cc -FILE: ../../../third_party/dart/runtime/bin/crypto_win.cc -FILE: ../../../third_party/dart/runtime/bin/dartutils.cc -FILE: ../../../third_party/dart/runtime/bin/dartutils.h -FILE: ../../../third_party/dart/runtime/bin/directory.cc -FILE: ../../../third_party/dart/runtime/bin/directory.h -FILE: ../../../third_party/dart/runtime/bin/directory_android.cc -FILE: ../../../third_party/dart/runtime/bin/directory_linux.cc -FILE: ../../../third_party/dart/runtime/bin/directory_macos.cc -FILE: ../../../third_party/dart/runtime/bin/directory_win.cc -FILE: ../../../third_party/dart/runtime/bin/eventhandler.cc -FILE: ../../../third_party/dart/runtime/bin/eventhandler.h -FILE: ../../../third_party/dart/runtime/bin/eventhandler_android.cc -FILE: ../../../third_party/dart/runtime/bin/eventhandler_android.h -FILE: ../../../third_party/dart/runtime/bin/eventhandler_linux.cc -FILE: ../../../third_party/dart/runtime/bin/eventhandler_linux.h -FILE: ../../../third_party/dart/runtime/bin/eventhandler_macos.cc -FILE: ../../../third_party/dart/runtime/bin/eventhandler_macos.h -FILE: ../../../third_party/dart/runtime/bin/eventhandler_test.cc -FILE: ../../../third_party/dart/runtime/bin/eventhandler_win.h -FILE: ../../../third_party/dart/runtime/bin/fdutils.h -FILE: ../../../third_party/dart/runtime/bin/fdutils_android.cc -FILE: ../../../third_party/dart/runtime/bin/fdutils_fuchsia.cc -FILE: ../../../third_party/dart/runtime/bin/fdutils_linux.cc -FILE: ../../../third_party/dart/runtime/bin/fdutils_macos.cc -FILE: ../../../third_party/dart/runtime/bin/file_android.cc -FILE: ../../../third_party/dart/runtime/bin/file_linux.cc -FILE: ../../../third_party/dart/runtime/bin/file_macos.cc -FILE: ../../../third_party/dart/runtime/bin/file_test.cc -FILE: ../../../third_party/dart/runtime/bin/file_win.cc -FILE: ../../../third_party/dart/runtime/bin/hashmap_test.cc -FILE: ../../../third_party/dart/runtime/bin/io_buffer.cc -FILE: ../../../third_party/dart/runtime/bin/io_buffer.h -FILE: ../../../third_party/dart/runtime/bin/io_natives.h -FILE: ../../../third_party/dart/runtime/bin/isolate_data.h -FILE: ../../../third_party/dart/runtime/bin/lockers.h -FILE: ../../../third_party/dart/runtime/bin/main.cc -FILE: ../../../third_party/dart/runtime/bin/platform.cc -FILE: ../../../third_party/dart/runtime/bin/platform.h -FILE: ../../../third_party/dart/runtime/bin/platform_android.cc -FILE: ../../../third_party/dart/runtime/bin/platform_linux.cc -FILE: ../../../third_party/dart/runtime/bin/platform_macos.cc -FILE: ../../../third_party/dart/runtime/bin/platform_win.cc -FILE: ../../../third_party/dart/runtime/bin/process.h -FILE: ../../../third_party/dart/runtime/bin/process_android.cc -FILE: ../../../third_party/dart/runtime/bin/process_linux.cc -FILE: ../../../third_party/dart/runtime/bin/process_macos.cc -FILE: ../../../third_party/dart/runtime/bin/process_win.cc -FILE: ../../../third_party/dart/runtime/bin/run_vm_tests.cc -FILE: ../../../third_party/dart/runtime/bin/secure_socket_unsupported.cc -FILE: ../../../third_party/dart/runtime/bin/socket_android.cc -FILE: ../../../third_party/dart/runtime/bin/socket_base_android.h -FILE: ../../../third_party/dart/runtime/bin/socket_base_linux.h -FILE: ../../../third_party/dart/runtime/bin/socket_base_macos.h -FILE: ../../../third_party/dart/runtime/bin/socket_base_win.h -FILE: ../../../third_party/dart/runtime/bin/thread.h -FILE: ../../../third_party/dart/runtime/bin/thread_android.cc -FILE: ../../../third_party/dart/runtime/bin/thread_android.h -FILE: ../../../third_party/dart/runtime/bin/thread_linux.cc -FILE: ../../../third_party/dart/runtime/bin/thread_linux.h -FILE: ../../../third_party/dart/runtime/bin/thread_macos.cc -FILE: ../../../third_party/dart/runtime/bin/thread_macos.h -FILE: ../../../third_party/dart/runtime/bin/thread_win.cc -FILE: ../../../third_party/dart/runtime/bin/thread_win.h -FILE: ../../../third_party/dart/runtime/bin/utils.h -FILE: ../../../third_party/dart/runtime/bin/utils_android.cc -FILE: ../../../third_party/dart/runtime/bin/utils_linux.cc -FILE: ../../../third_party/dart/runtime/bin/utils_macos.cc -FILE: ../../../third_party/dart/runtime/bin/utils_win.cc -FILE: ../../../third_party/dart/runtime/bin/utils_win.h -FILE: ../../../third_party/dart/runtime/include/dart_api.h -FILE: ../../../third_party/dart/runtime/lib/array.cc -FILE: ../../../third_party/dart/runtime/lib/bool.cc -FILE: ../../../third_party/dart/runtime/lib/date.cc -FILE: ../../../third_party/dart/runtime/lib/errors.cc -FILE: ../../../third_party/dart/runtime/lib/function.cc -FILE: ../../../third_party/dart/runtime/lib/growable_array.cc -FILE: ../../../third_party/dart/runtime/lib/identical.cc -FILE: ../../../third_party/dart/runtime/lib/integers.cc -FILE: ../../../third_party/dart/runtime/lib/isolate.cc -FILE: ../../../third_party/dart/runtime/lib/mirrors.cc -FILE: ../../../third_party/dart/runtime/lib/regexp.cc -FILE: ../../../third_party/dart/runtime/lib/stopwatch.cc -FILE: ../../../third_party/dart/runtime/platform/assert.cc -FILE: ../../../third_party/dart/runtime/platform/assert.h -FILE: ../../../third_party/dart/runtime/platform/floating_point.h -FILE: ../../../third_party/dart/runtime/platform/floating_point_win.cc -FILE: ../../../third_party/dart/runtime/platform/floating_point_win.h -FILE: ../../../third_party/dart/runtime/platform/globals.h -FILE: ../../../third_party/dart/runtime/platform/hashmap.cc -FILE: ../../../third_party/dart/runtime/platform/hashmap.h -FILE: ../../../third_party/dart/runtime/platform/syslog.h -FILE: ../../../third_party/dart/runtime/platform/syslog_android.cc -FILE: ../../../third_party/dart/runtime/platform/syslog_linux.cc -FILE: ../../../third_party/dart/runtime/platform/syslog_macos.cc -FILE: ../../../third_party/dart/runtime/platform/syslog_win.cc -FILE: ../../../third_party/dart/runtime/platform/text_buffer.cc -FILE: ../../../third_party/dart/runtime/platform/text_buffer.h -FILE: ../../../third_party/dart/runtime/platform/unicode.cc -FILE: ../../../third_party/dart/runtime/platform/unicode.h -FILE: ../../../third_party/dart/runtime/platform/utils.cc -FILE: ../../../third_party/dart/runtime/platform/utils.h -FILE: ../../../third_party/dart/runtime/platform/utils_android.cc -FILE: ../../../third_party/dart/runtime/platform/utils_android.h -FILE: ../../../third_party/dart/runtime/platform/utils_linux.cc -FILE: ../../../third_party/dart/runtime/platform/utils_linux.h -FILE: ../../../third_party/dart/runtime/platform/utils_macos.cc -FILE: ../../../third_party/dart/runtime/platform/utils_macos.h -FILE: ../../../third_party/dart/runtime/platform/utils_win.cc -FILE: ../../../third_party/dart/runtime/platform/utils_win.h -FILE: ../../../third_party/dart/runtime/vm/allocation.cc -FILE: ../../../third_party/dart/runtime/vm/allocation_test.cc -FILE: ../../../third_party/dart/runtime/vm/assert_test.cc -FILE: ../../../third_party/dart/runtime/vm/base_isolate.h -FILE: ../../../third_party/dart/runtime/vm/benchmark_test.cc -FILE: ../../../third_party/dart/runtime/vm/benchmark_test.h -FILE: ../../../third_party/dart/runtime/vm/bit_set.h -FILE: ../../../third_party/dart/runtime/vm/bit_vector.cc -FILE: ../../../third_party/dart/runtime/vm/bit_vector.h -FILE: ../../../third_party/dart/runtime/vm/bit_vector_test.cc -FILE: ../../../third_party/dart/runtime/vm/bitfield_test.cc -FILE: ../../../third_party/dart/runtime/vm/bitmap.cc -FILE: ../../../third_party/dart/runtime/vm/bitmap.h -FILE: ../../../third_party/dart/runtime/vm/bitmap_test.cc -FILE: ../../../third_party/dart/runtime/vm/boolfield.h -FILE: ../../../third_party/dart/runtime/vm/boolfield_test.cc -FILE: ../../../third_party/dart/runtime/vm/bootstrap.cc -FILE: ../../../third_party/dart/runtime/vm/bootstrap.h -FILE: ../../../third_party/dart/runtime/vm/bootstrap_natives.cc -FILE: ../../../third_party/dart/runtime/vm/bootstrap_natives.h -FILE: ../../../third_party/dart/runtime/vm/class_finalizer.h -FILE: ../../../third_party/dart/runtime/vm/class_finalizer_test.cc -FILE: ../../../third_party/dart/runtime/vm/class_table.cc -FILE: ../../../third_party/dart/runtime/vm/class_table.h -FILE: ../../../third_party/dart/runtime/vm/code_descriptors.cc -FILE: ../../../third_party/dart/runtime/vm/code_descriptors.h -FILE: ../../../third_party/dart/runtime/vm/code_descriptors_test.cc -FILE: ../../../third_party/dart/runtime/vm/code_observers.cc -FILE: ../../../third_party/dart/runtime/vm/code_observers.h -FILE: ../../../third_party/dart/runtime/vm/code_patcher.cc -FILE: ../../../third_party/dart/runtime/vm/code_patcher.h -FILE: ../../../third_party/dart/runtime/vm/code_patcher_ia32.cc -FILE: ../../../third_party/dart/runtime/vm/code_patcher_x64.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/aot/aot_call_specializer.h -FILE: ../../../third_party/dart/runtime/vm/compiler/assembler/assembler.h -FILE: ../../../third_party/dart/runtime/vm/compiler/assembler/assembler_base.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/assembler/assembler_ia32_test.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/assembler/assembler_x64_test.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/assembler/disassembler_x86.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/assembler/object_pool_builder.h -FILE: ../../../third_party/dart/runtime/vm/compiler/backend/constant_propagator.h -FILE: ../../../third_party/dart/runtime/vm/compiler/backend/flow_graph.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/backend/flow_graph_compiler.h -FILE: ../../../third_party/dart/runtime/vm/compiler/backend/flow_graph_test.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/backend/il_printer.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/backend/il_printer.h -FILE: ../../../third_party/dart/runtime/vm/compiler/backend/il_test.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/backend/inliner.h -FILE: ../../../third_party/dart/runtime/vm/compiler/cha.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/cha.h -FILE: ../../../third_party/dart/runtime/vm/compiler/cha_test.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/frontend/flow_graph_builder.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/frontend/flow_graph_builder.h -FILE: ../../../third_party/dart/runtime/vm/compiler/intrinsifier.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/intrinsifier.h -FILE: ../../../third_party/dart/runtime/vm/compiler/jit/compiler.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/jit/compiler.h -FILE: ../../../third_party/dart/runtime/vm/compiler_test.cc -FILE: ../../../third_party/dart/runtime/vm/cpu.h -FILE: ../../../third_party/dart/runtime/vm/cpu_arm.cc -FILE: ../../../third_party/dart/runtime/vm/cpu_test.cc -FILE: ../../../third_party/dart/runtime/vm/cpu_x64.cc -FILE: ../../../third_party/dart/runtime/vm/cpuinfo_linux.cc -FILE: ../../../third_party/dart/runtime/vm/cpuinfo_macos.cc -FILE: ../../../third_party/dart/runtime/vm/dart_api_impl_test.cc -FILE: ../../../third_party/dart/runtime/vm/dart_api_message.h -FILE: ../../../third_party/dart/runtime/vm/dart_api_state.h -FILE: ../../../third_party/dart/runtime/vm/datastream.h -FILE: ../../../third_party/dart/runtime/vm/debugger.cc -FILE: ../../../third_party/dart/runtime/vm/debugger.h -FILE: ../../../third_party/dart/runtime/vm/debugger_api_impl_test.cc -FILE: ../../../third_party/dart/runtime/vm/double_internals.h -FILE: ../../../third_party/dart/runtime/vm/exceptions_test.cc -FILE: ../../../third_party/dart/runtime/vm/flag_list.h -FILE: ../../../third_party/dart/runtime/vm/flags.cc -FILE: ../../../third_party/dart/runtime/vm/flags.h -FILE: ../../../third_party/dart/runtime/vm/flags_test.cc -FILE: ../../../third_party/dart/runtime/vm/globals.h -FILE: ../../../third_party/dart/runtime/vm/growable_array.h -FILE: ../../../third_party/dart/runtime/vm/growable_array_test.cc -FILE: ../../../third_party/dart/runtime/vm/handles.cc -FILE: ../../../third_party/dart/runtime/vm/handles_impl.h -FILE: ../../../third_party/dart/runtime/vm/handles_test.cc -FILE: ../../../third_party/dart/runtime/vm/hash_map.h -FILE: ../../../third_party/dart/runtime/vm/hash_map_test.cc -FILE: ../../../third_party/dart/runtime/vm/heap/freelist.h -FILE: ../../../third_party/dart/runtime/vm/heap/freelist_test.cc -FILE: ../../../third_party/dart/runtime/vm/heap/heap.cc -FILE: ../../../third_party/dart/runtime/vm/heap/heap.h -FILE: ../../../third_party/dart/runtime/vm/heap/heap_test.cc -FILE: ../../../third_party/dart/runtime/vm/heap/pages.cc -FILE: ../../../third_party/dart/runtime/vm/heap/pages_test.cc -FILE: ../../../third_party/dart/runtime/vm/heap/pointer_block.cc -FILE: ../../../third_party/dart/runtime/vm/heap/pointer_block.h -FILE: ../../../third_party/dart/runtime/vm/heap/scavenger.h -FILE: ../../../third_party/dart/runtime/vm/heap/verifier.cc -FILE: ../../../third_party/dart/runtime/vm/instructions_ia32.cc -FILE: ../../../third_party/dart/runtime/vm/instructions_ia32.h -FILE: ../../../third_party/dart/runtime/vm/instructions_ia32_test.cc -FILE: ../../../third_party/dart/runtime/vm/instructions_x64.cc -FILE: ../../../third_party/dart/runtime/vm/instructions_x64.h -FILE: ../../../third_party/dart/runtime/vm/instructions_x64_test.cc -FILE: ../../../third_party/dart/runtime/vm/isolate_test.cc -FILE: ../../../third_party/dart/runtime/vm/json_test.cc -FILE: ../../../third_party/dart/runtime/vm/lockers.h -FILE: ../../../third_party/dart/runtime/vm/megamorphic_cache_table.cc -FILE: ../../../third_party/dart/runtime/vm/megamorphic_cache_table.h -FILE: ../../../third_party/dart/runtime/vm/memory_region.h -FILE: ../../../third_party/dart/runtime/vm/memory_region_test.cc -FILE: ../../../third_party/dart/runtime/vm/message_handler_test.cc -FILE: ../../../third_party/dart/runtime/vm/message_test.cc -FILE: ../../../third_party/dart/runtime/vm/native_arguments.h -FILE: ../../../third_party/dart/runtime/vm/native_message_handler.cc -FILE: ../../../third_party/dart/runtime/vm/native_message_handler.h -FILE: ../../../third_party/dart/runtime/vm/object.cc -FILE: ../../../third_party/dart/runtime/vm/object.h -FILE: ../../../third_party/dart/runtime/vm/object_arm_test.cc -FILE: ../../../third_party/dart/runtime/vm/object_ia32_test.cc -FILE: ../../../third_party/dart/runtime/vm/object_set.h -FILE: ../../../third_party/dart/runtime/vm/object_store.h -FILE: ../../../third_party/dart/runtime/vm/object_test.cc -FILE: ../../../third_party/dart/runtime/vm/object_x64_test.cc -FILE: ../../../third_party/dart/runtime/vm/os_android.cc -FILE: ../../../third_party/dart/runtime/vm/os_linux.cc -FILE: ../../../third_party/dart/runtime/vm/os_macos.cc -FILE: ../../../third_party/dart/runtime/vm/os_thread.h -FILE: ../../../third_party/dart/runtime/vm/os_thread_android.cc -FILE: ../../../third_party/dart/runtime/vm/os_thread_android.h -FILE: ../../../third_party/dart/runtime/vm/os_thread_linux.cc -FILE: ../../../third_party/dart/runtime/vm/os_thread_linux.h -FILE: ../../../third_party/dart/runtime/vm/os_thread_macos.cc -FILE: ../../../third_party/dart/runtime/vm/os_thread_macos.h -FILE: ../../../third_party/dart/runtime/vm/os_thread_win.cc -FILE: ../../../third_party/dart/runtime/vm/os_thread_win.h -FILE: ../../../third_party/dart/runtime/vm/os_win.cc -FILE: ../../../third_party/dart/runtime/vm/parser.cc -FILE: ../../../third_party/dart/runtime/vm/parser.h -FILE: ../../../third_party/dart/runtime/vm/port.cc -FILE: ../../../third_party/dart/runtime/vm/port_test.cc -FILE: ../../../third_party/dart/runtime/vm/proccpuinfo.cc -FILE: ../../../third_party/dart/runtime/vm/proccpuinfo.h -FILE: ../../../third_party/dart/runtime/vm/raw_object.cc -FILE: ../../../third_party/dart/runtime/vm/raw_object.h -FILE: ../../../third_party/dart/runtime/vm/scopes.cc -FILE: ../../../third_party/dart/runtime/vm/scopes.h -FILE: ../../../third_party/dart/runtime/vm/scopes_test.cc -FILE: ../../../third_party/dart/runtime/vm/snapshot.cc -FILE: ../../../third_party/dart/runtime/vm/snapshot.h -FILE: ../../../third_party/dart/runtime/vm/snapshot_test.cc -FILE: ../../../third_party/dart/runtime/vm/stack_frame.cc -FILE: ../../../third_party/dart/runtime/vm/stack_frame_test.cc -FILE: ../../../third_party/dart/runtime/vm/stub_code.cc -FILE: ../../../third_party/dart/runtime/vm/symbols.cc -FILE: ../../../third_party/dart/runtime/vm/symbols.h -FILE: ../../../third_party/dart/runtime/vm/thread_pool.cc -FILE: ../../../third_party/dart/runtime/vm/thread_pool.h -FILE: ../../../third_party/dart/runtime/vm/thread_pool_test.cc -FILE: ../../../third_party/dart/runtime/vm/thread_test.cc -FILE: ../../../third_party/dart/runtime/vm/token.h -FILE: ../../../third_party/dart/runtime/vm/unicode.cc -FILE: ../../../third_party/dart/runtime/vm/unit_test.cc -FILE: ../../../third_party/dart/runtime/vm/utils_test.cc -FILE: ../../../third_party/dart/runtime/vm/version.h -FILE: ../../../third_party/dart/runtime/vm/version_in.cc -FILE: ../../../third_party/dart/runtime/vm/virtual_memory.cc -FILE: ../../../third_party/dart/runtime/vm/virtual_memory.h -FILE: ../../../third_party/dart/runtime/vm/virtual_memory_posix.cc -FILE: ../../../third_party/dart/runtime/vm/virtual_memory_test.cc -FILE: ../../../third_party/dart/runtime/vm/virtual_memory_win.cc -FILE: ../../../third_party/dart/runtime/vm/zone.cc -FILE: ../../../third_party/dart/runtime/vm/zone.h -FILE: ../../../third_party/dart/runtime/vm/zone_test.cc -FILE: ../../../third_party/dart/samples/samples.status -FILE: ../../../third_party/dart/sdk/lib/_http/crypto.dart -FILE: ../../../third_party/dart/sdk/lib/_http/http_date.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/patch/async_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/patch/core_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/patch/isolate_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/patch/math_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/private/foreign_helper.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/private/interceptors.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/private/isolate_helper.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/private/js_array.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/private/js_number.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/private/js_string.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/private/native_helper.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/private/regexp_helper.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/private/string_helper.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/js_runtime/lib/async_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/js_runtime/lib/constant_map.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/js_runtime/lib/core_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/js_runtime/lib/foreign_helper.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/js_runtime/lib/interceptors.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/js_runtime/lib/isolate_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/js_runtime/lib/js_array.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/js_runtime/lib/js_number.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/js_runtime/lib/js_string.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/js_runtime/lib/math_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/js_runtime/lib/native_helper.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/js_runtime/lib/regexp_helper.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/js_runtime/lib/string_helper.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/sdk_library_metadata/lib/libraries.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/bin/builtin.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/bin/common_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/bin/directory_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/bin/eventhandler_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/bin/file_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/bin/platform_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/bin/secure_socket_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/array.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/array_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/bool_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/date_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/double.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/double_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/empty_source.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/errors_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/expando_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/function_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/growable_array.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/identical_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/immutable_map.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/integers.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/integers_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/invocation_mirror_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/isolate_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/map_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/math_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/mirrors_impl.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/mirrors_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/object_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/print_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/regexp_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/stopwatch_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/string_buffer_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/string_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/timer_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/type_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/weak_property.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/array_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/bool_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/integers_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/map_patch.dart -FILE: ../../../third_party/dart/sdk/lib/async/async.dart -FILE: ../../../third_party/dart/sdk/lib/async/async_error.dart -FILE: ../../../third_party/dart/sdk/lib/async/broadcast_stream_controller.dart -FILE: ../../../third_party/dart/sdk/lib/async/future.dart -FILE: ../../../third_party/dart/sdk/lib/async/future_impl.dart -FILE: ../../../third_party/dart/sdk/lib/async/stream_controller.dart -FILE: ../../../third_party/dart/sdk/lib/async/stream_impl.dart -FILE: ../../../third_party/dart/sdk/lib/async/stream_pipe.dart -FILE: ../../../third_party/dart/sdk/lib/async/timer.dart -FILE: ../../../third_party/dart/sdk/lib/collection/collection.dart -FILE: ../../../third_party/dart/sdk/lib/collection/iterable.dart -FILE: ../../../third_party/dart/sdk/lib/collection/iterator.dart -FILE: ../../../third_party/dart/sdk/lib/collection/maps.dart -FILE: ../../../third_party/dart/sdk/lib/collection/splay_tree.dart -FILE: ../../../third_party/dart/sdk/lib/core/bool.dart -FILE: ../../../third_party/dart/sdk/lib/core/core.dart -FILE: ../../../third_party/dart/sdk/lib/core/double.dart -FILE: ../../../third_party/dart/sdk/lib/core/errors.dart -FILE: ../../../third_party/dart/sdk/lib/core/exceptions.dart -FILE: ../../../third_party/dart/sdk/lib/core/identical.dart -FILE: ../../../third_party/dart/sdk/lib/core/int.dart -FILE: ../../../third_party/dart/sdk/lib/core/invocation.dart -FILE: ../../../third_party/dart/sdk/lib/core/iterator.dart -FILE: ../../../third_party/dart/sdk/lib/core/list.dart -FILE: ../../../third_party/dart/sdk/lib/core/num.dart -FILE: ../../../third_party/dart/sdk/lib/core/object.dart -FILE: ../../../third_party/dart/sdk/lib/core/print.dart -FILE: ../../../third_party/dart/sdk/lib/core/regexp.dart -FILE: ../../../third_party/dart/sdk/lib/core/string.dart -FILE: ../../../third_party/dart/sdk/lib/core/type.dart -FILE: ../../../third_party/dart/sdk/lib/core/uri.dart -FILE: ../../../third_party/dart/sdk/lib/core/weak.dart -FILE: ../../../third_party/dart/sdk/lib/html/dart2js/html_dart2js.dart -FILE: ../../../third_party/dart/sdk/lib/html/dartium/nativewrappers.dart -FILE: ../../../third_party/dart/sdk/lib/html/html_common/conversions.dart -FILE: ../../../third_party/dart/sdk/lib/html/html_common/css_class_set.dart -FILE: ../../../third_party/dart/sdk/lib/html/html_common/html_common_dart2js.dart -FILE: ../../../third_party/dart/sdk/lib/html/html_common/metadata.dart -FILE: ../../../third_party/dart/sdk/lib/indexed_db/dart2js/indexed_db_dart2js.dart -FILE: ../../../third_party/dart/sdk/lib/internal/async_cast.dart -FILE: ../../../third_party/dart/sdk/lib/internal/cast.dart -FILE: ../../../third_party/dart/sdk/lib/internal/internal.dart -FILE: ../../../third_party/dart/sdk/lib/io/common.dart -FILE: ../../../third_party/dart/sdk/lib/io/directory.dart -FILE: ../../../third_party/dart/sdk/lib/io/directory_impl.dart -FILE: ../../../third_party/dart/sdk/lib/io/eventhandler.dart -FILE: ../../../third_party/dart/sdk/lib/io/io.dart -FILE: ../../../third_party/dart/sdk/lib/io/platform.dart -FILE: ../../../third_party/dart/sdk/lib/io/platform_impl.dart -FILE: ../../../third_party/dart/sdk/lib/io/secure_server_socket.dart -FILE: ../../../third_party/dart/sdk/lib/isolate/isolate.dart -FILE: ../../../third_party/dart/sdk/lib/math/math.dart -FILE: ../../../third_party/dart/sdk/lib/math/random.dart -FILE: ../../../third_party/dart/sdk/lib/svg/dart2js/svg_dart2js.dart -FILE: ../../../third_party/dart/sdk/lib/web_audio/dart2js/web_audio_dart2js.dart -FILE: ../../../third_party/dart/sdk/lib/web_gl/dart2js/web_gl_dart2js.dart -FILE: ../../../third_party/dart/sdk/lib/web_sql/dart2js/web_sql_dart2js.dart ----------------------------------------------------------------------------------------------------- -Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file -for details. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - * Neither the name of Google LLC nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: dart -ORIGIN: ../../../third_party/dart/runtime/bin/cli.cc + ../../../third_party/dart/LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/dart/runtime/bin/cli.cc -FILE: ../../../third_party/dart/runtime/bin/dfe.cc -FILE: ../../../third_party/dart/runtime/bin/dfe.h -FILE: ../../../third_party/dart/runtime/bin/error_exit.cc -FILE: ../../../third_party/dart/runtime/bin/error_exit.h -FILE: ../../../third_party/dart/runtime/bin/gzip.cc -FILE: ../../../third_party/dart/runtime/bin/gzip.h -FILE: ../../../third_party/dart/runtime/bin/isolate_data.cc -FILE: ../../../third_party/dart/runtime/bin/main_options.cc -FILE: ../../../third_party/dart/runtime/bin/main_options.h -FILE: ../../../third_party/dart/runtime/bin/namespace.cc -FILE: ../../../third_party/dart/runtime/bin/namespace.h -FILE: ../../../third_party/dart/runtime/bin/namespace_android.cc -FILE: ../../../third_party/dart/runtime/bin/namespace_fuchsia.cc -FILE: ../../../third_party/dart/runtime/bin/namespace_linux.cc -FILE: ../../../third_party/dart/runtime/bin/namespace_macos.cc -FILE: ../../../third_party/dart/runtime/bin/namespace_win.cc -FILE: ../../../third_party/dart/runtime/bin/options.cc -FILE: ../../../third_party/dart/runtime/bin/options.h -FILE: ../../../third_party/dart/runtime/bin/secure_socket_filter.cc -FILE: ../../../third_party/dart/runtime/bin/secure_socket_filter.h -FILE: ../../../third_party/dart/runtime/bin/secure_socket_utils.cc -FILE: ../../../third_party/dart/runtime/bin/secure_socket_utils.h -FILE: ../../../third_party/dart/runtime/bin/security_context.cc -FILE: ../../../third_party/dart/runtime/bin/security_context.h -FILE: ../../../third_party/dart/runtime/bin/security_context_android.cc -FILE: ../../../third_party/dart/runtime/bin/security_context_fuchsia.cc -FILE: ../../../third_party/dart/runtime/bin/security_context_linux.cc -FILE: ../../../third_party/dart/runtime/bin/security_context_macos.cc -FILE: ../../../third_party/dart/runtime/bin/security_context_win.cc -FILE: ../../../third_party/dart/runtime/bin/snapshot_utils.cc -FILE: ../../../third_party/dart/runtime/bin/snapshot_utils.h -FILE: ../../../third_party/dart/runtime/bin/socket_base.cc -FILE: ../../../third_party/dart/runtime/bin/socket_base.h -FILE: ../../../third_party/dart/runtime/bin/sync_socket.cc -FILE: ../../../third_party/dart/runtime/bin/sync_socket.h -FILE: ../../../third_party/dart/runtime/bin/sync_socket_android.cc -FILE: ../../../third_party/dart/runtime/bin/sync_socket_fuchsia.cc -FILE: ../../../third_party/dart/runtime/bin/sync_socket_linux.cc -FILE: ../../../third_party/dart/runtime/bin/sync_socket_macos.cc -FILE: ../../../third_party/dart/runtime/bin/sync_socket_win.cc -FILE: ../../../third_party/dart/runtime/lib/async.cc -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/containers/search_bar.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/nav/reload.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/singletargetcache_ref.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/singletargetcache_view.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/subtypetestcache_ref.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/subtypetestcache_view.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/unlinkedcall_ref.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/unlinkedcall_view.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/service.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/single_target_cache.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/subtype_test_cache.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/timeline.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/unlinked_call.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/repositories/single_target_cache.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/repositories/subtype_test_cache.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/repositories/timeline.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/repositories/unlinked_call.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/repositories/vm.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/single_target_cache.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/subtype_test_cache.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/timeline.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/unlinked_call.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/vm.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/containers/search_bar.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/nav/reload.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/singletargetcache_ref.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/singletargetcache_view.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/subtypetestcache_ref.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/subtypetestcache_view.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/timeline/dashboard.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/unlinkedcall_ref.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/unlinkedcall_view.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/service.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/single_target_cache.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/subtype_test_cache.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/timeline.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/unlinked_call.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/repositories/single_target_cache.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/repositories/subtype_test_cache.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/repositories/timeline.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/repositories/unlinked_call.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/repositories/vm.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/single_target_cache.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/subtype_test_cache.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/timeline.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/unlinked_call.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/vm.dart -FILE: ../../../third_party/dart/runtime/platform/allocation.h -FILE: ../../../third_party/dart/runtime/platform/growable_array.h -FILE: ../../../third_party/dart/runtime/vm/compiler/assembler/assembler_riscv.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/assembler/assembler_riscv.h -FILE: ../../../third_party/dart/runtime/vm/compiler/assembler/assembler_riscv_test.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/assembler/disassembler_riscv.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/backend/locations_helpers.h -FILE: ../../../third_party/dart/runtime/vm/compiler/backend/locations_helpers_arm.h -FILE: ../../../third_party/dart/runtime/vm/compiler/backend/locations_helpers_test.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/call_specializer.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/call_specializer.h -FILE: ../../../third_party/dart/runtime/vm/compiler/frontend/kernel_binary_flowgraph.h -FILE: ../../../third_party/dart/runtime/vm/compiler/frontend/prologue_builder.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/frontend/prologue_builder.h -FILE: ../../../third_party/dart/runtime/vm/compiler/jit/jit_call_specializer.h -FILE: ../../../third_party/dart/runtime/vm/constants_riscv.cc -FILE: ../../../third_party/dart/runtime/vm/constants_riscv.h -FILE: ../../../third_party/dart/runtime/vm/constants_x86.h -FILE: ../../../third_party/dart/runtime/vm/debugger_api_impl_test.h -FILE: ../../../third_party/dart/runtime/vm/dwarf.cc -FILE: ../../../third_party/dart/runtime/vm/dwarf.h -FILE: ../../../third_party/dart/runtime/vm/fixed_cache.h -FILE: ../../../third_party/dart/runtime/vm/fixed_cache_test.cc -FILE: ../../../third_party/dart/runtime/vm/gdb_helpers.cc -FILE: ../../../third_party/dart/runtime/vm/heap/compactor.cc -FILE: ../../../third_party/dart/runtime/vm/heap/compactor.h -FILE: ../../../third_party/dart/runtime/vm/image_snapshot.cc -FILE: ../../../third_party/dart/runtime/vm/image_snapshot.h -FILE: ../../../third_party/dart/runtime/vm/json_writer.cc -FILE: ../../../third_party/dart/runtime/vm/json_writer.h -FILE: ../../../third_party/dart/runtime/vm/kernel_binary.h -FILE: ../../../third_party/dart/runtime/vm/malloc_hooks.h -FILE: ../../../third_party/dart/runtime/vm/malloc_hooks_arm.cc -FILE: ../../../third_party/dart/runtime/vm/malloc_hooks_arm64.cc -FILE: ../../../third_party/dart/runtime/vm/malloc_hooks_ia32.cc -FILE: ../../../third_party/dart/runtime/vm/malloc_hooks_tcmalloc.cc -FILE: ../../../third_party/dart/runtime/vm/malloc_hooks_test.cc -FILE: ../../../third_party/dart/runtime/vm/malloc_hooks_unsupported.cc -FILE: ../../../third_party/dart/runtime/vm/malloc_hooks_x64.cc -FILE: ../../../third_party/dart/runtime/vm/mixin_test.cc -FILE: ../../../third_party/dart/runtime/vm/simulator_riscv.cc -FILE: ../../../third_party/dart/runtime/vm/simulator_riscv.h -FILE: ../../../third_party/dart/runtime/vm/stack_trace.cc -FILE: ../../../third_party/dart/runtime/vm/stack_trace.h -FILE: ../../../third_party/dart/runtime/vm/timeline_android.cc -FILE: ../../../third_party/dart/runtime/vm/timeline_fuchsia.cc -FILE: ../../../third_party/dart/runtime/vm/timeline_linux.cc -FILE: ../../../third_party/dart/runtime/vm/zone_text_buffer.cc -FILE: ../../../third_party/dart/runtime/vm/zone_text_buffer.h -FILE: ../../../third_party/dart/sdk/lib/_http/overrides.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/private/custom_hash_map.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/private/identity_hash_map.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/private/linked_hash_map.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/private/profile.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/bin/cli_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/bin/namespace_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/bin/sync_socket_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/bigint_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/class_id_fasta.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/bigint_patch.dart -FILE: ../../../third_party/dart/sdk/lib/cli/cli.dart -FILE: ../../../third_party/dart/sdk/lib/cli/wait_for.dart -FILE: ../../../third_party/dart/sdk/lib/core/bigint.dart -FILE: ../../../third_party/dart/sdk/lib/internal/linked_list.dart -FILE: ../../../third_party/dart/sdk/lib/internal/patch.dart -FILE: ../../../third_party/dart/sdk/lib/io/embedder_config.dart -FILE: ../../../third_party/dart/sdk/lib/io/namespace_impl.dart -FILE: ../../../third_party/dart/sdk/lib/io/overrides.dart -FILE: ../../../third_party/dart/sdk/lib/io/sync_socket.dart -FILE: ../../../third_party/dart/sdk/lib/vmservice/named_lookup.dart -FILE: ../../../third_party/dart/utils/bazel/kernel_worker.dart ----------------------------------------------------------------------------------------------------- -Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file -for details. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - * Neither the name of Google LLC nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: dart -ORIGIN: ../../../third_party/dart/runtime/bin/console.h + ../../../third_party/dart/LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/dart/runtime/bin/console.h -FILE: ../../../third_party/dart/runtime/bin/console_posix.cc -FILE: ../../../third_party/dart/runtime/bin/console_win.cc ----------------------------------------------------------------------------------------------------- -Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file -for details. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - * Neither the name of Google LLC nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: dart -ORIGIN: ../../../third_party/dart/runtime/bin/crashpad.h + ../../../third_party/dart/LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/dart/runtime/bin/crashpad.h -FILE: ../../../third_party/dart/runtime/bin/dart_embedder_api_impl.cc -FILE: ../../../third_party/dart/runtime/bin/typed_data_utils.cc -FILE: ../../../third_party/dart/runtime/bin/typed_data_utils.h -FILE: ../../../third_party/dart/runtime/include/dart_embedder_api.h -FILE: ../../../third_party/dart/runtime/tools/dartfuzz/dartfuzz.dart -FILE: ../../../third_party/dart/runtime/tools/dartfuzz/dartfuzz_test.dart -FILE: ../../../third_party/dart/runtime/vm/base64.cc -FILE: ../../../third_party/dart/runtime/vm/base64.h -FILE: ../../../third_party/dart/runtime/vm/base64_test.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/backend/code_statistics.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/backend/code_statistics.h -FILE: ../../../third_party/dart/runtime/vm/compiler/backend/compile_type.h -FILE: ../../../third_party/dart/runtime/vm/compiler/backend/loops.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/backend/loops.h -FILE: ../../../third_party/dart/runtime/vm/compiler/backend/loops_test.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/backend/redundancy_elimination_test.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/backend/slot.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/backend/slot.h -FILE: ../../../third_party/dart/runtime/vm/compiler/compiler_pass.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/compiler_pass.h -FILE: ../../../third_party/dart/runtime/vm/compiler/compiler_state.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/compiler_state.h -FILE: ../../../third_party/dart/runtime/vm/compiler/frontend/base_flow_graph_builder.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/frontend/base_flow_graph_builder.h -FILE: ../../../third_party/dart/runtime/vm/compiler/frontend/constant_reader.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/frontend/constant_reader.h -FILE: ../../../third_party/dart/runtime/vm/compiler/frontend/kernel_fingerprints.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/frontend/kernel_fingerprints.h -FILE: ../../../third_party/dart/runtime/vm/compiler/frontend/kernel_translation_helper.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/frontend/kernel_translation_helper.h -FILE: ../../../third_party/dart/runtime/vm/compiler/frontend/scope_builder.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/frontend/scope_builder.h -FILE: ../../../third_party/dart/runtime/vm/compiler/relocation.h -FILE: ../../../third_party/dart/runtime/vm/constants.h -FILE: ../../../third_party/dart/runtime/vm/datastream.cc -FILE: ../../../third_party/dart/runtime/vm/finalizable_data.h -FILE: ../../../third_party/dart/runtime/vm/hash.h -FILE: ../../../third_party/dart/runtime/vm/raw_object_fields.cc -FILE: ../../../third_party/dart/runtime/vm/raw_object_fields.h -FILE: ../../../third_party/dart/runtime/vm/reverse_pc_lookup_cache.cc -FILE: ../../../third_party/dart/runtime/vm/reverse_pc_lookup_cache.h -FILE: ../../../third_party/dart/runtime/vm/type_testing_stubs.cc -FILE: ../../../third_party/dart/runtime/vm/type_testing_stubs.h -FILE: ../../../third_party/dart/runtime/vm/v8_snapshot_writer.cc -FILE: ../../../third_party/dart/runtime/vm/v8_snapshot_writer.h -FILE: ../../../third_party/dart/sdk/lib/_internal/js_runtime/lib/instantiation.dart -FILE: ../../../third_party/dart/sdk/lib/js/_js.dart -FILE: ../../../third_party/dart/sdk/lib/js/_js_client.dart -FILE: ../../../third_party/dart/sdk/lib/js/_js_server.dart -FILE: ../../../third_party/dart/sdk/lib/typed_data/unmodifiable_typed_data.dart ----------------------------------------------------------------------------------------------------- -Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file -for details. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - * Neither the name of Google LLC nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: dart -ORIGIN: ../../../third_party/dart/runtime/bin/crypto_fuchsia.cc + ../../../third_party/dart/LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/dart/runtime/bin/crypto_fuchsia.cc -FILE: ../../../third_party/dart/runtime/bin/crypto_test.cc -FILE: ../../../third_party/dart/runtime/bin/directory_fuchsia.cc -FILE: ../../../third_party/dart/runtime/bin/directory_test.cc -FILE: ../../../third_party/dart/runtime/bin/eventhandler_fuchsia.cc -FILE: ../../../third_party/dart/runtime/bin/eventhandler_fuchsia.h -FILE: ../../../third_party/dart/runtime/bin/file_fuchsia.cc -FILE: ../../../third_party/dart/runtime/bin/file_support.cc -FILE: ../../../third_party/dart/runtime/bin/file_system_watcher_fuchsia.cc -FILE: ../../../third_party/dart/runtime/bin/loader.cc -FILE: ../../../third_party/dart/runtime/bin/loader.h -FILE: ../../../third_party/dart/runtime/bin/platform_fuchsia.cc -FILE: ../../../third_party/dart/runtime/bin/process_fuchsia.cc -FILE: ../../../third_party/dart/runtime/bin/reference_counting.h -FILE: ../../../third_party/dart/runtime/bin/root_certificates_unsupported.cc -FILE: ../../../third_party/dart/runtime/bin/socket_base_fuchsia.cc -FILE: ../../../third_party/dart/runtime/bin/socket_base_fuchsia.h -FILE: ../../../third_party/dart/runtime/bin/socket_fuchsia.cc -FILE: ../../../third_party/dart/runtime/bin/stdio_fuchsia.cc -FILE: ../../../third_party/dart/runtime/bin/thread_fuchsia.cc -FILE: ../../../third_party/dart/runtime/bin/thread_fuchsia.h -FILE: ../../../third_party/dart/runtime/bin/utils_fuchsia.cc -FILE: ../../../third_party/dart/runtime/lib/stacktrace.h -FILE: ../../../third_party/dart/runtime/observatory/lib/event.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/models.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/repositories.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/app/notification.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/class_allocation_profile.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/containers/virtual_collection.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/containers/virtual_tree.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/error_ref.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/general_error.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/helpers/custom_element.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/helpers/nav_bar.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/helpers/nav_menu.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/helpers/rendering_queue.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/helpers/rendering_scheduler.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/helpers/uris.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/inbound_references.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/isolate/counter_chart.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/isolate/location.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/isolate/run_state.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/isolate/shared_summary.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/isolate/summary.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/metric/details.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/metric/graph.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/nav/class_menu.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/nav/isolate_menu.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/nav/library_menu.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/nav/menu_item.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/nav/notify.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/nav/notify_event.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/nav/notify_exception.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/nav/refresh.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/nav/top_menu.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/nav/vm_menu.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/retaining_path.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/source_link.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/strongly_reachable_instances.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/vm_connect_target.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/exceptions.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/allocation_profile.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/breakpoint.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/class.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/code.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/context.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/error.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/event.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/extension_data.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/field.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/flag.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/frame.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/function.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/guarded.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/heap_space.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/icdata.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/inbound_references.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/instance.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/isolate.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/library.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/local_var_descriptors.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/map_association.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/megamorphiccache.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/metric.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/notification.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/object.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/objectpool.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/objectstore.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/pc_descriptors.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/persistent_handles.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/ports.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/retaining_path.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/sample_profile.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/script.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/sentinel.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/source_location.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/target.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/timeline_event.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/type_arguments.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/unknown.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/vm.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/repositories/allocation_profile.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/repositories/breakpoint.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/repositories/class.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/repositories/context.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/repositories/editor.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/repositories/eval.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/repositories/event.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/repositories/field.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/repositories/flag.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/repositories/function.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/repositories/heap_snapshot.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/repositories/icdata.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/repositories/inbound_references.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/repositories/instance.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/repositories/isolate.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/repositories/library.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/repositories/megamorphiccache.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/repositories/metric.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/repositories/notification.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/repositories/object.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/repositories/objectpool.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/repositories/objectstore.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/repositories/persistent_handles.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/repositories/ports.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/repositories/reachable_size.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/repositories/retained_size.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/repositories/retaining_path.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/repositories/sample_profile.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/repositories/script.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/repositories/strongly_reachable_instances.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/repositories/target.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/repositories/type_arguments.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/allocation_profile.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/breakpoint.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/class.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/context.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/editor.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/eval.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/event.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/field.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/flag.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/function.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/heap_snapshot.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/icdata.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/inbound_references.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/instance.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/isolate.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/library.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/megamorphiccache.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/metric.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/notification.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/object.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/objectpool.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/objectstore.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/persistent_handles.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/ports.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/reachable_size.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/retained_size.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/retaining_path.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/sample_profile.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/script.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/settings.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/strongly_reachable_instances.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/target.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/type_arguments.dart -FILE: ../../../third_party/dart/runtime/observatory/web/timeline_message_handler.js -FILE: ../../../third_party/dart/runtime/observatory_2/lib/event.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/models.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/repositories.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/app/notification.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/class_allocation_profile.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/containers/virtual_collection.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/containers/virtual_tree.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/error_ref.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/general_error.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/helpers/custom_element.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/helpers/nav_bar.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/helpers/nav_menu.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/helpers/rendering_queue.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/helpers/rendering_scheduler.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/helpers/tag.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/helpers/uris.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/inbound_references.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/isolate/counter_chart.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/isolate/location.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/isolate/run_state.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/isolate/shared_summary.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/isolate/summary.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/metric/details.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/metric/graph.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/nav/class_menu.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/nav/isolate_menu.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/nav/library_menu.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/nav/menu_item.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/nav/notify.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/nav/notify_event.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/nav/notify_exception.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/nav/refresh.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/nav/top_menu.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/nav/vm_menu.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/retaining_path.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/source_link.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/strongly_reachable_instances.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/vm_connect_target.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/exceptions.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/allocation_profile.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/breakpoint.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/class.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/code.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/context.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/error.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/event.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/extension_data.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/field.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/flag.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/frame.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/function.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/guarded.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/heap_space.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/icdata.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/inbound_references.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/instance.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/isolate.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/library.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/local_var_descriptors.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/map_association.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/megamorphiccache.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/metric.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/notification.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/object.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/objectpool.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/objectstore.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/pc_descriptors.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/persistent_handles.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/ports.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/retaining_path.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/sample_profile.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/script.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/sentinel.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/source_location.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/target.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/timeline_event.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/type_arguments.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/unknown.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/vm.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/repositories/allocation_profile.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/repositories/breakpoint.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/repositories/class.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/repositories/context.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/repositories/editor.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/repositories/eval.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/repositories/event.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/repositories/field.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/repositories/flag.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/repositories/function.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/repositories/heap_snapshot.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/repositories/icdata.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/repositories/inbound_references.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/repositories/instance.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/repositories/isolate.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/repositories/library.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/repositories/megamorphiccache.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/repositories/metric.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/repositories/notification.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/repositories/object.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/repositories/objectpool.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/repositories/objectstore.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/repositories/persistent_handles.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/repositories/ports.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/repositories/reachable_size.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/repositories/retained_size.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/repositories/retaining_path.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/repositories/sample_profile.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/repositories/script.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/repositories/strongly_reachable_instances.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/repositories/target.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/repositories/type_arguments.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/allocation_profile.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/breakpoint.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/class.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/context.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/editor.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/eval.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/event.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/field.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/flag.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/function.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/heap_snapshot.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/icdata.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/inbound_references.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/instance.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/isolate.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/library.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/megamorphiccache.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/metric.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/notification.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/object.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/objectpool.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/objectstore.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/persistent_handles.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/ports.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/reachable_size.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/retained_size.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/retaining_path.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/sample_profile.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/script.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/settings.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/strongly_reachable_instances.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/target.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/type_arguments.dart -FILE: ../../../third_party/dart/runtime/observatory_2/web/timeline_message_handler.js -FILE: ../../../third_party/dart/runtime/platform/syslog_fuchsia.cc -FILE: ../../../third_party/dart/runtime/platform/utils_fuchsia.cc -FILE: ../../../third_party/dart/runtime/platform/utils_fuchsia.h -FILE: ../../../third_party/dart/runtime/vm/app_snapshot.cc -FILE: ../../../third_party/dart/runtime/vm/app_snapshot.h -FILE: ../../../third_party/dart/runtime/vm/canonical_tables.h -FILE: ../../../third_party/dart/runtime/vm/compiler/backend/branch_optimizer.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/backend/branch_optimizer.h -FILE: ../../../third_party/dart/runtime/vm/compiler/backend/redundancy_elimination.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/backend/redundancy_elimination.h -FILE: ../../../third_party/dart/runtime/vm/compiler/frontend/kernel_binary_flowgraph.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/frontend/kernel_to_il.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/frontend/kernel_to_il.h -FILE: ../../../third_party/dart/runtime/vm/cpuinfo_fuchsia.cc -FILE: ../../../third_party/dart/runtime/vm/dart_api_state.cc -FILE: ../../../third_party/dart/runtime/vm/heap/become.cc -FILE: ../../../third_party/dart/runtime/vm/heap/become.h -FILE: ../../../third_party/dart/runtime/vm/heap/safepoint.cc -FILE: ../../../third_party/dart/runtime/vm/heap/safepoint.h -FILE: ../../../third_party/dart/runtime/vm/isolate_reload.cc -FILE: ../../../third_party/dart/runtime/vm/isolate_reload.h -FILE: ../../../third_party/dart/runtime/vm/isolate_reload_test.cc -FILE: ../../../third_party/dart/runtime/vm/kernel.cc -FILE: ../../../third_party/dart/runtime/vm/kernel.h -FILE: ../../../third_party/dart/runtime/vm/kernel_binary.cc -FILE: ../../../third_party/dart/runtime/vm/kernel_isolate.cc -FILE: ../../../third_party/dart/runtime/vm/kernel_isolate.h -FILE: ../../../third_party/dart/runtime/vm/kernel_loader.cc -FILE: ../../../third_party/dart/runtime/vm/kernel_loader.h -FILE: ../../../third_party/dart/runtime/vm/lockers.cc -FILE: ../../../third_party/dart/runtime/vm/native_symbol_fuchsia.cc -FILE: ../../../third_party/dart/runtime/vm/object_reload.cc -FILE: ../../../third_party/dart/runtime/vm/object_service.cc -FILE: ../../../third_party/dart/runtime/vm/os_fuchsia.cc -FILE: ../../../third_party/dart/runtime/vm/os_thread_fuchsia.cc -FILE: ../../../third_party/dart/runtime/vm/os_thread_fuchsia.h -FILE: ../../../third_party/dart/runtime/vm/signal_handler_fuchsia.cc -FILE: ../../../third_party/dart/runtime/vm/thread_interrupter_fuchsia.cc -FILE: ../../../third_party/dart/runtime/vm/token_position.cc -FILE: ../../../third_party/dart/runtime/vm/token_position.h -FILE: ../../../third_party/dart/runtime/vm/uri.cc -FILE: ../../../third_party/dart/runtime/vm/uri.h -FILE: ../../../third_party/dart/runtime/vm/uri_test.cc -FILE: ../../../third_party/dart/runtime/vm/virtual_memory_fuchsia.cc -FILE: ../../../third_party/dart/sdk/lib/developer/service.dart -FILE: ../../../third_party/dart/sdk/lib/js_util/js_util.dart -FILE: ../../../third_party/dart/sdk/lib/vmservice/devfs.dart ----------------------------------------------------------------------------------------------------- -Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file -for details. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - * Neither the name of Google LLC nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: dart -ORIGIN: ../../../third_party/dart/runtime/bin/eventhandler_win.cc + ../../../third_party/dart/LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/dart/WATCHLISTS -FILE: ../../../third_party/dart/runtime/bin/eventhandler_win.cc -FILE: ../../../third_party/dart/runtime/bin/file.cc -FILE: ../../../third_party/dart/runtime/bin/file.h -FILE: ../../../third_party/dart/runtime/bin/file_system_watcher.cc -FILE: ../../../third_party/dart/runtime/bin/file_system_watcher.h -FILE: ../../../third_party/dart/runtime/bin/file_system_watcher_android.cc -FILE: ../../../third_party/dart/runtime/bin/file_system_watcher_linux.cc -FILE: ../../../third_party/dart/runtime/bin/file_system_watcher_macos.cc -FILE: ../../../third_party/dart/runtime/bin/file_system_watcher_win.cc -FILE: ../../../third_party/dart/runtime/bin/filter.cc -FILE: ../../../third_party/dart/runtime/bin/filter.h -FILE: ../../../third_party/dart/runtime/bin/gen_snapshot.cc -FILE: ../../../third_party/dart/runtime/bin/io_natives.cc -FILE: ../../../third_party/dart/runtime/bin/io_service.cc -FILE: ../../../third_party/dart/runtime/bin/io_service.h -FILE: ../../../third_party/dart/runtime/bin/io_service_no_ssl.cc -FILE: ../../../third_party/dart/runtime/bin/io_service_no_ssl.h -FILE: ../../../third_party/dart/runtime/bin/process.cc -FILE: ../../../third_party/dart/runtime/bin/socket.cc -FILE: ../../../third_party/dart/runtime/bin/socket.h -FILE: ../../../third_party/dart/runtime/bin/socket_base_linux.cc -FILE: ../../../third_party/dart/runtime/bin/socket_base_macos.cc -FILE: ../../../third_party/dart/runtime/bin/socket_base_win.cc -FILE: ../../../third_party/dart/runtime/bin/socket_linux.cc -FILE: ../../../third_party/dart/runtime/bin/socket_macos.cc -FILE: ../../../third_party/dart/runtime/bin/socket_win.cc -FILE: ../../../third_party/dart/runtime/bin/stdio.cc -FILE: ../../../third_party/dart/runtime/bin/stdio.h -FILE: ../../../third_party/dart/runtime/bin/stdio_android.cc -FILE: ../../../third_party/dart/runtime/bin/stdio_linux.cc -FILE: ../../../third_party/dart/runtime/bin/stdio_macos.cc -FILE: ../../../third_party/dart/runtime/bin/stdio_win.cc -FILE: ../../../third_party/dart/runtime/bin/vmservice_impl.cc -FILE: ../../../third_party/dart/runtime/bin/vmservice_impl.h -FILE: ../../../third_party/dart/runtime/include/dart_native_api.h -FILE: ../../../third_party/dart/runtime/lib/invocation_mirror.h -FILE: ../../../third_party/dart/runtime/lib/libgen_in.cc -FILE: ../../../third_party/dart/runtime/lib/simd128.cc -FILE: ../../../third_party/dart/runtime/lib/stacktrace.cc -FILE: ../../../third_party/dart/runtime/lib/typed_data.cc -FILE: ../../../third_party/dart/runtime/lib/uri.cc -FILE: ../../../third_party/dart/runtime/observatory/lib/src/app/application.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/app/location_manager.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/class_instances.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/class_ref.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/class_view.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/code_ref.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/code_view.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/context_ref.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/context_view.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/cpu_profile.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/cpu_profile/virtual_tree.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/cpu_profile_table.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/curly_block.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/error_view.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/eval_box.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/field_ref.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/field_view.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/flag_list.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/function_ref.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/function_view.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/heap_snapshot.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/helpers/any_ref.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/icdata_ref.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/icdata_view.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/instance_ref.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/instance_view.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/isolate_ref.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/isolate_view.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/json_view.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/library_ref.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/library_view.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/local_var_descriptors_ref.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/megamorphiccache_ref.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/native_memory_profiler.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/object_common.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/object_view.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/objectpool_ref.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/objectstore_view.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/observatory_application.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/pc_descriptors_ref.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/sample_buffer_control.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/script_inset.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/script_ref.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/script_view.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/sentinel_value.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/sentinel_view.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/source_inset.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/stack_trace_tree_config.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/type_arguments_ref.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/unknown_ref.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/vm_view.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/tracer.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/app/application.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/app/location_manager.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/class_instances.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/class_ref.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/class_view.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/code_ref.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/code_view.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/context_ref.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/context_view.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/cpu_profile.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/cpu_profile/virtual_tree.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/cpu_profile_table.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/curly_block.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/error_view.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/eval_box.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/field_ref.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/field_view.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/flag_list.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/function_ref.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/function_view.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/heap_snapshot.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/helpers/any_ref.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/icdata_ref.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/icdata_view.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/instance_ref.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/instance_view.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/isolate_ref.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/isolate_view.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/json_view.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/library_ref.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/library_view.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/local_var_descriptors_ref.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/megamorphiccache_ref.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/native_memory_profiler.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/object_common.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/object_view.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/objectpool_ref.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/objectstore_view.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/observatory_application.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/pc_descriptors_ref.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/sample_buffer_control.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/script_inset.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/script_ref.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/script_view.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/sentinel_value.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/sentinel_view.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/source_inset.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/stack_trace_tree_config.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/type_arguments_ref.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/unknown_ref.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/vm_view.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/tracer.dart -FILE: ../../../third_party/dart/runtime/platform/atomic.h -FILE: ../../../third_party/dart/runtime/platform/signal_blocker.h -FILE: ../../../third_party/dart/runtime/vm/allocation.h -FILE: ../../../third_party/dart/runtime/vm/class_finalizer.cc -FILE: ../../../third_party/dart/runtime/vm/code_patcher_arm.cc -FILE: ../../../third_party/dart/runtime/vm/code_patcher_arm_test.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/aot/aot_call_specializer.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/assembler/assembler_arm.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/assembler/assembler_arm.h -FILE: ../../../third_party/dart/runtime/vm/compiler/assembler/assembler_arm64_test.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/assembler/assembler_arm_test.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/assembler/assembler_ia32.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/assembler/assembler_ia32.h -FILE: ../../../third_party/dart/runtime/vm/compiler/assembler/assembler_test.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/assembler/assembler_x64.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/assembler/assembler_x64.h -FILE: ../../../third_party/dart/runtime/vm/compiler/assembler/disassembler_arm.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/backend/block_scheduler.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/backend/block_scheduler.h -FILE: ../../../third_party/dart/runtime/vm/compiler/backend/constant_propagator.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/backend/flow_graph.h -FILE: ../../../third_party/dart/runtime/vm/compiler/backend/flow_graph_compiler.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/backend/flow_graph_compiler_arm.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/backend/flow_graph_compiler_ia32.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/backend/flow_graph_compiler_x64.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/backend/il.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/backend/il.h -FILE: ../../../third_party/dart/runtime/vm/compiler/backend/il_arm.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/backend/il_ia32.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/backend/il_x64.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/backend/inliner.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/backend/linearscan.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/backend/linearscan.h -FILE: ../../../third_party/dart/runtime/vm/compiler/backend/locations.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/backend/locations.h -FILE: ../../../third_party/dart/runtime/vm/compiler/backend/type_propagator.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/backend/type_propagator.h -FILE: ../../../third_party/dart/runtime/vm/compiler/jit/jit_call_specializer.cc -FILE: ../../../third_party/dart/runtime/vm/constants_arm.h -FILE: ../../../third_party/dart/runtime/vm/constants_ia32.h -FILE: ../../../third_party/dart/runtime/vm/constants_x64.h -FILE: ../../../third_party/dart/runtime/vm/dart.cc -FILE: ../../../third_party/dart/runtime/vm/dart_api_impl.cc -FILE: ../../../third_party/dart/runtime/vm/deferred_objects.cc -FILE: ../../../third_party/dart/runtime/vm/deferred_objects.h -FILE: ../../../third_party/dart/runtime/vm/deopt_instructions.cc -FILE: ../../../third_party/dart/runtime/vm/deopt_instructions.h -FILE: ../../../third_party/dart/runtime/vm/guard_field_test.cc -FILE: ../../../third_party/dart/runtime/vm/heap/weak_table.cc -FILE: ../../../third_party/dart/runtime/vm/heap/weak_table.h -FILE: ../../../third_party/dart/runtime/vm/instructions.h -FILE: ../../../third_party/dart/runtime/vm/instructions_arm.cc -FILE: ../../../third_party/dart/runtime/vm/instructions_arm.h -FILE: ../../../third_party/dart/runtime/vm/instructions_arm_test.cc -FILE: ../../../third_party/dart/runtime/vm/isolate.cc -FILE: ../../../third_party/dart/runtime/vm/isolate.h -FILE: ../../../third_party/dart/runtime/vm/json_stream.cc -FILE: ../../../third_party/dart/runtime/vm/json_stream.h -FILE: ../../../third_party/dart/runtime/vm/native_api_impl.cc -FILE: ../../../third_party/dart/runtime/vm/native_symbol.h -FILE: ../../../third_party/dart/runtime/vm/native_symbol_android.cc -FILE: ../../../third_party/dart/runtime/vm/native_symbol_linux.cc -FILE: ../../../third_party/dart/runtime/vm/native_symbol_macos.cc -FILE: ../../../third_party/dart/runtime/vm/native_symbol_win.cc -FILE: ../../../third_party/dart/runtime/vm/object_id_ring.cc -FILE: ../../../third_party/dart/runtime/vm/object_id_ring.h -FILE: ../../../third_party/dart/runtime/vm/object_id_ring_test.cc -FILE: ../../../third_party/dart/runtime/vm/object_store.cc -FILE: ../../../third_party/dart/runtime/vm/os_test.cc -FILE: ../../../third_party/dart/runtime/vm/profiler.cc -FILE: ../../../third_party/dart/runtime/vm/profiler.h -FILE: ../../../third_party/dart/runtime/vm/profiler_test.cc -FILE: ../../../third_party/dart/runtime/vm/random.cc -FILE: ../../../third_party/dart/runtime/vm/random.h -FILE: ../../../third_party/dart/runtime/vm/reusable_handles.h -FILE: ../../../third_party/dart/runtime/vm/service.cc -FILE: ../../../third_party/dart/runtime/vm/service.h -FILE: ../../../third_party/dart/runtime/vm/service_isolate.h -FILE: ../../../third_party/dart/runtime/vm/service_test.cc -FILE: ../../../third_party/dart/runtime/vm/signal_handler.h -FILE: ../../../third_party/dart/runtime/vm/signal_handler_android.cc -FILE: ../../../third_party/dart/runtime/vm/signal_handler_linux.cc -FILE: ../../../third_party/dart/runtime/vm/signal_handler_macos.cc -FILE: ../../../third_party/dart/runtime/vm/signal_handler_win.cc -FILE: ../../../third_party/dart/runtime/vm/simulator.h -FILE: ../../../third_party/dart/runtime/vm/simulator_arm.cc -FILE: ../../../third_party/dart/runtime/vm/simulator_arm.h -FILE: ../../../third_party/dart/runtime/vm/stack_frame_arm.h -FILE: ../../../third_party/dart/runtime/vm/stack_frame_ia32.h -FILE: ../../../third_party/dart/runtime/vm/stack_frame_x64.h -FILE: ../../../third_party/dart/runtime/vm/stub_code_arm_test.cc -FILE: ../../../third_party/dart/runtime/vm/tags.h -FILE: ../../../third_party/dart/runtime/vm/thread_interrupter.cc -FILE: ../../../third_party/dart/runtime/vm/thread_interrupter.h -FILE: ../../../third_party/dart/runtime/vm/thread_interrupter_android.cc -FILE: ../../../third_party/dart/runtime/vm/thread_interrupter_linux.cc -FILE: ../../../third_party/dart/runtime/vm/thread_interrupter_macos.cc -FILE: ../../../third_party/dart/runtime/vm/thread_interrupter_win.cc -FILE: ../../../third_party/dart/sdk/lib/_http/http.dart -FILE: ../../../third_party/dart/sdk/lib/_http/http_headers.dart -FILE: ../../../third_party/dart/sdk/lib/_http/http_impl.dart -FILE: ../../../third_party/dart/sdk/lib/_http/http_parser.dart -FILE: ../../../third_party/dart/sdk/lib/_http/http_session.dart -FILE: ../../../third_party/dart/sdk/lib/_http/websocket.dart -FILE: ../../../third_party/dart/sdk/lib/_http/websocket_impl.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/patch/collection_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/patch/convert_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/patch/internal_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/patch/io_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/patch/typed_data_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/private/annotations.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/private/js_helper.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/private/js_primitives.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/private/js_rti.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/private/mirror_helper.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/private/native_typed_data.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/js_runtime/lib/annotations.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/js_runtime/lib/collection_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/js_runtime/lib/convert_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/js_runtime/lib/internal_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/js_runtime/lib/io_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/js_runtime/lib/js_helper.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/js_runtime/lib/js_names.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/js_runtime/lib/js_primitives.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/js_runtime/lib/native_typed_data.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/js_runtime/lib/typed_data_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/bin/file_system_entity_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/bin/filter_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/bin/io_service_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/bin/process_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/bin/socket_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/bin/stdio_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/bin/vmservice_io.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/bin/vmservice_server.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/collection_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/core_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/deferred_load_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/function.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/internal_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/mirror_reference.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/null_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/schedule_microtask_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/stacktrace.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/symbol_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/timer_impl.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/typed_data_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/uri_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/collection_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/io_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/null_patch.dart -FILE: ../../../third_party/dart/sdk/lib/async/deferred_load.dart -FILE: ../../../third_party/dart/sdk/lib/async/schedule_microtask.dart -FILE: ../../../third_party/dart/sdk/lib/async/stream.dart -FILE: ../../../third_party/dart/sdk/lib/async/stream_transformers.dart -FILE: ../../../third_party/dart/sdk/lib/async/zone.dart -FILE: ../../../third_party/dart/sdk/lib/collection/collections.dart -FILE: ../../../third_party/dart/sdk/lib/collection/hash_map.dart -FILE: ../../../third_party/dart/sdk/lib/collection/hash_set.dart -FILE: ../../../third_party/dart/sdk/lib/collection/linked_hash_map.dart -FILE: ../../../third_party/dart/sdk/lib/collection/linked_hash_set.dart -FILE: ../../../third_party/dart/sdk/lib/collection/linked_list.dart -FILE: ../../../third_party/dart/sdk/lib/collection/list.dart -FILE: ../../../third_party/dart/sdk/lib/convert/ascii.dart -FILE: ../../../third_party/dart/sdk/lib/convert/byte_conversion.dart -FILE: ../../../third_party/dart/sdk/lib/convert/chunked_conversion.dart -FILE: ../../../third_party/dart/sdk/lib/convert/codec.dart -FILE: ../../../third_party/dart/sdk/lib/convert/convert.dart -FILE: ../../../third_party/dart/sdk/lib/convert/converter.dart -FILE: ../../../third_party/dart/sdk/lib/convert/encoding.dart -FILE: ../../../third_party/dart/sdk/lib/convert/html_escape.dart -FILE: ../../../third_party/dart/sdk/lib/convert/json.dart -FILE: ../../../third_party/dart/sdk/lib/convert/latin1.dart -FILE: ../../../third_party/dart/sdk/lib/convert/line_splitter.dart -FILE: ../../../third_party/dart/sdk/lib/convert/string_conversion.dart -FILE: ../../../third_party/dart/sdk/lib/convert/utf.dart -FILE: ../../../third_party/dart/sdk/lib/core/annotations.dart -FILE: ../../../third_party/dart/sdk/lib/core/null.dart -FILE: ../../../third_party/dart/sdk/lib/core/stacktrace.dart -FILE: ../../../third_party/dart/sdk/lib/core/string_sink.dart -FILE: ../../../third_party/dart/sdk/lib/core/symbol.dart -FILE: ../../../third_party/dart/sdk/lib/internal/bytes_builder.dart -FILE: ../../../third_party/dart/sdk/lib/internal/list.dart -FILE: ../../../third_party/dart/sdk/lib/internal/print.dart -FILE: ../../../third_party/dart/sdk/lib/internal/symbol.dart -FILE: ../../../third_party/dart/sdk/lib/io/data_transformer.dart -FILE: ../../../third_party/dart/sdk/lib/io/file.dart -FILE: ../../../third_party/dart/sdk/lib/io/file_impl.dart -FILE: ../../../third_party/dart/sdk/lib/io/file_system_entity.dart -FILE: ../../../third_party/dart/sdk/lib/io/io_service.dart -FILE: ../../../third_party/dart/sdk/lib/io/io_sink.dart -FILE: ../../../third_party/dart/sdk/lib/io/link.dart -FILE: ../../../third_party/dart/sdk/lib/io/secure_socket.dart -FILE: ../../../third_party/dart/sdk/lib/io/socket.dart -FILE: ../../../third_party/dart/sdk/lib/io/stdio.dart -FILE: ../../../third_party/dart/sdk/lib/io/string_transformer.dart -FILE: ../../../third_party/dart/sdk/lib/js/js.dart -FILE: ../../../third_party/dart/sdk/lib/math/point.dart -FILE: ../../../third_party/dart/sdk/lib/math/rectangle.dart -FILE: ../../../third_party/dart/sdk/lib/mirrors/mirrors.dart -FILE: ../../../third_party/dart/sdk/lib/typed_data/typed_data.dart -FILE: ../../../third_party/dart/sdk/lib/vmservice/client.dart -FILE: ../../../third_party/dart/sdk/lib/vmservice/constants.dart -FILE: ../../../third_party/dart/sdk/lib/vmservice/message.dart -FILE: ../../../third_party/dart/sdk/lib/vmservice/message_router.dart -FILE: ../../../third_party/dart/sdk/lib/vmservice/running_isolate.dart -FILE: ../../../third_party/dart/sdk/lib/vmservice/running_isolates.dart -FILE: ../../../third_party/dart/sdk/lib/web_gl/dart2js/web_gl_dart2js.dart -FILE: ../../../third_party/dart/utils/compiler/create_snapshot_entry.dart ----------------------------------------------------------------------------------------------------- -Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file -for details. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - * Neither the name of Google LLC nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: dart -ORIGIN: ../../../third_party/dart/runtime/bin/ffi_test/ffi_test_dynamic_library.cc + ../../../third_party/dart/LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/dart/runtime/bin/elf_loader.cc -FILE: ../../../third_party/dart/runtime/bin/elf_loader.h -FILE: ../../../third_party/dart/runtime/bin/entrypoints_verification_test.cc -FILE: ../../../third_party/dart/runtime/bin/ffi_test/ffi_test_dynamic_library.cc -FILE: ../../../third_party/dart/runtime/bin/ffi_test/ffi_test_functions.cc -FILE: ../../../third_party/dart/runtime/bin/ffi_test/ffi_test_functions_vmspecific.cc -FILE: ../../../third_party/dart/runtime/bin/ifaddrs-android.cc -FILE: ../../../third_party/dart/runtime/bin/ifaddrs-android.h -FILE: ../../../third_party/dart/runtime/bin/namespace_fuchsia.h -FILE: ../../../third_party/dart/runtime/bin/socket_base_android.cc -FILE: ../../../third_party/dart/runtime/lib/ffi.cc -FILE: ../../../third_party/dart/runtime/lib/ffi_dynamic_library.cc -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/tree_map.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/isolate_group.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/repositories/isolate_group.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/isolate_group.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/timeline_base.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/tree_map.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/isolate_group.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/repositories/isolate_group.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/isolate_group.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/timeline_base.dart -FILE: ../../../third_party/dart/runtime/platform/elf.h -FILE: ../../../third_party/dart/runtime/platform/thread_sanitizer.h -FILE: ../../../third_party/dart/runtime/tools/dartfuzz/dartfuzz_api_table.dart -FILE: ../../../third_party/dart/runtime/tools/dartfuzz/dartfuzz_ffi_api.dart -FILE: ../../../third_party/dart/runtime/tools/dartfuzz/dartfuzz_type_table.dart -FILE: ../../../third_party/dart/runtime/tools/dartfuzz/gen_api_table.dart -FILE: ../../../third_party/dart/runtime/tools/dartfuzz/gen_type_table.dart -FILE: ../../../third_party/dart/runtime/tools/dartfuzz/gen_util.dart -FILE: ../../../third_party/dart/runtime/tools/ffi/sdk_lib_ffi_generator.dart -FILE: ../../../third_party/dart/runtime/tools/graphexplorer/graphexplorer.html -FILE: ../../../third_party/dart/runtime/tools/graphexplorer/graphexplorer.js -FILE: ../../../third_party/dart/runtime/tools/run_clang_tidy.dart -FILE: ../../../third_party/dart/runtime/vm/bss_relocs.cc -FILE: ../../../third_party/dart/runtime/vm/bss_relocs.h -FILE: ../../../third_party/dart/runtime/vm/catch_entry_moves_test.cc -FILE: ../../../third_party/dart/runtime/vm/class_id.h -FILE: ../../../third_party/dart/runtime/vm/code_comments.cc -FILE: ../../../third_party/dart/runtime/vm/code_comments.h -FILE: ../../../third_party/dart/runtime/vm/code_entry_kind.h -FILE: ../../../third_party/dart/runtime/vm/compiler/asm_intrinsifier.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/asm_intrinsifier.h -FILE: ../../../third_party/dart/runtime/vm/compiler/asm_intrinsifier_arm.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/asm_intrinsifier_arm64.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/asm_intrinsifier_ia32.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/asm_intrinsifier_x64.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/backend/bce_test.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/backend/block_builder.h -FILE: ../../../third_party/dart/runtime/vm/compiler/backend/evaluator.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/backend/evaluator.h -FILE: ../../../third_party/dart/runtime/vm/compiler/backend/flow_graph_checker.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/backend/flow_graph_checker.h -FILE: ../../../third_party/dart/runtime/vm/compiler/backend/il_test_helper.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/backend/il_test_helper.h -FILE: ../../../third_party/dart/runtime/vm/compiler/backend/inliner_test.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/backend/slot_test.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/backend/type_propagator_test.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/backend/typed_data_aot_test.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/backend/yield_position_test.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/graph_intrinsifier.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/graph_intrinsifier.h -FILE: ../../../third_party/dart/runtime/vm/compiler/offsets_extractor.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/recognized_methods_list.h -FILE: ../../../third_party/dart/runtime/vm/compiler/relocation.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/runtime_api.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/runtime_api.h -FILE: ../../../third_party/dart/runtime/vm/compiler/runtime_offsets_extracted.h -FILE: ../../../third_party/dart/runtime/vm/compiler/runtime_offsets_list.h -FILE: ../../../third_party/dart/runtime/vm/compiler/stub_code_compiler.h -FILE: ../../../third_party/dart/runtime/vm/compiler/stub_code_compiler_arm.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/stub_code_compiler_arm64.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/stub_code_compiler_ia32.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/stub_code_compiler_x64.cc -FILE: ../../../third_party/dart/runtime/vm/constants_arm.cc -FILE: ../../../third_party/dart/runtime/vm/constants_arm64.cc -FILE: ../../../third_party/dart/runtime/vm/constants_ia32.cc -FILE: ../../../third_party/dart/runtime/vm/constants_x64.cc -FILE: ../../../third_party/dart/runtime/vm/elf.cc -FILE: ../../../third_party/dart/runtime/vm/elf.h -FILE: ../../../third_party/dart/runtime/vm/ffi_callback_trampolines.cc -FILE: ../../../third_party/dart/runtime/vm/ffi_callback_trampolines.h -FILE: ../../../third_party/dart/runtime/vm/frame_layout.h -FILE: ../../../third_party/dart/runtime/vm/intrusive_dlist.h -FILE: ../../../third_party/dart/runtime/vm/intrusive_dlist_test.cc -FILE: ../../../third_party/dart/runtime/vm/libfuzzer/dart_libfuzzer.cc -FILE: ../../../third_party/dart/runtime/vm/longjump.h -FILE: ../../../third_party/dart/runtime/vm/pointer_tagging.h -FILE: ../../../third_party/dart/runtime/vm/splay-tree.h -FILE: ../../../third_party/dart/runtime/vm/static_type_exactness_state.h -FILE: ../../../third_party/dart/runtime/vm/stub_code_list.h -FILE: ../../../third_party/dart/runtime/vm/thread_stack_resource.cc -FILE: ../../../third_party/dart/runtime/vm/thread_stack_resource.h -FILE: ../../../third_party/dart/runtime/vm/thread_state.cc -FILE: ../../../third_party/dart/runtime/vm/thread_state.h -FILE: ../../../third_party/dart/samples/ffi/coordinate.dart -FILE: ../../../third_party/dart/samples/ffi/dylib_utils.dart -FILE: ../../../third_party/dart/samples/ffi/resource_management/arena_isolate_shutdown_sample.dart -FILE: ../../../third_party/dart/samples/ffi/resource_management/arena_sample.dart -FILE: ../../../third_party/dart/samples/ffi/resource_management/arena_zoned_sample.dart -FILE: ../../../third_party/dart/samples/ffi/resource_management/resource_management_test.dart -FILE: ../../../third_party/dart/samples/ffi/resource_management/unmanaged_sample.dart -FILE: ../../../third_party/dart/samples/ffi/sample_ffi_bitfield.dart -FILE: ../../../third_party/dart/samples/ffi/sample_ffi_data.dart -FILE: ../../../third_party/dart/samples/ffi/sample_ffi_dynamic_library.dart -FILE: ../../../third_party/dart/samples/ffi/sample_ffi_functions.dart -FILE: ../../../third_party/dart/samples/ffi/sample_ffi_functions_callbacks.dart -FILE: ../../../third_party/dart/samples/ffi/sample_ffi_functions_structs.dart -FILE: ../../../third_party/dart/samples/ffi/sample_ffi_structs.dart -FILE: ../../../third_party/dart/samples/ffi/samples_test.dart -FILE: ../../../third_party/dart/samples/ffi/sqlite/example/main.dart -FILE: ../../../third_party/dart/samples/ffi/sqlite/lib/sqlite.dart -FILE: ../../../third_party/dart/samples/ffi/sqlite/lib/src/bindings/bindings.dart -FILE: ../../../third_party/dart/samples/ffi/sqlite/lib/src/bindings/constants.dart -FILE: ../../../third_party/dart/samples/ffi/sqlite/lib/src/bindings/signatures.dart -FILE: ../../../third_party/dart/samples/ffi/sqlite/lib/src/bindings/types.dart -FILE: ../../../third_party/dart/samples/ffi/sqlite/lib/src/collections/closable_iterator.dart -FILE: ../../../third_party/dart/samples/ffi/sqlite/lib/src/database.dart -FILE: ../../../third_party/dart/samples/ffi/sqlite/lib/src/ffi/dylib_utils.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/js_shared/lib/rti.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/js_shared/lib/synced/recipe_syntax.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/ffi_dynamic_library_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/ffi_native_type_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/ffi_patch.dart -FILE: ../../../third_party/dart/sdk/lib/ffi/annotations.dart -FILE: ../../../third_party/dart/sdk/lib/ffi/dynamic_library.dart -FILE: ../../../third_party/dart/sdk/lib/ffi/ffi.dart -FILE: ../../../third_party/dart/sdk/lib/ffi/native_type.dart -FILE: ../../../third_party/dart/sdk/lib/ffi/struct.dart -FILE: ../../../third_party/dart/sdk/lib/internal/errors.dart ----------------------------------------------------------------------------------------------------- -Copyright (c) 2019, the Dart project authors. Please see the AUTHORS file -for details. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - * Neither the name of Google LLC nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: dart -ORIGIN: ../../../third_party/dart/runtime/bin/ffi_test/ffi_test_functions_generated.cc + ../../../third_party/dart/LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/dart/runtime/bin/dartdev_isolate.cc -FILE: ../../../third_party/dart/runtime/bin/dartdev_isolate.h -FILE: ../../../third_party/dart/runtime/bin/exe_utils.cc -FILE: ../../../third_party/dart/runtime/bin/exe_utils.h -FILE: ../../../third_party/dart/runtime/bin/ffi_test/ffi_test_functions_generated.cc -FILE: ../../../third_party/dart/runtime/bin/ffi_unit_test/run_ffi_unit_tests.cc -FILE: ../../../third_party/dart/runtime/bin/file_win.h -FILE: ../../../third_party/dart/runtime/bin/platform_macos.h -FILE: ../../../third_party/dart/runtime/bin/priority_heap_test.cc -FILE: ../../../third_party/dart/runtime/include/dart_api_dl.c -FILE: ../../../third_party/dart/runtime/include/dart_api_dl.h -FILE: ../../../third_party/dart/runtime/include/dart_version.h -FILE: ../../../third_party/dart/runtime/include/internal/dart_api_dl_impl.h -FILE: ../../../third_party/dart/runtime/observatory/bin/heap_snapshot.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/process_snapshot.dart -FILE: ../../../third_party/dart/runtime/observatory_2/bin/heap_snapshot.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/process_snapshot.dart -FILE: ../../../third_party/dart/runtime/platform/allocation.cc -FILE: ../../../third_party/dart/runtime/platform/leak_sanitizer.h -FILE: ../../../third_party/dart/runtime/platform/priority_queue.h -FILE: ../../../third_party/dart/runtime/platform/unaligned.h -FILE: ../../../third_party/dart/runtime/platform/undefined_behavior_sanitizer.h -FILE: ../../../third_party/dart/runtime/tools/wiki/xref_extractor/bin/main.dart -FILE: ../../../third_party/dart/runtime/tools/wiki/xref_extractor/lib/cquery_driver.dart -FILE: ../../../third_party/dart/runtime/tools/wiki/xref_extractor/lib/xref_extractor.dart -FILE: ../../../third_party/dart/runtime/vm/canonical_tables.cc -FILE: ../../../third_party/dart/runtime/vm/closure_functions_cache.cc -FILE: ../../../third_party/dart/runtime/vm/closure_functions_cache.h -FILE: ../../../third_party/dart/runtime/vm/compiler/aot/dispatch_table_generator.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/aot/dispatch_table_generator.h -FILE: ../../../third_party/dart/runtime/vm/compiler/aot/precompiler_tracer.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/aot/precompiler_tracer.h -FILE: ../../../third_party/dart/runtime/vm/compiler/api/deopt_id.h -FILE: ../../../third_party/dart/runtime/vm/compiler/api/print_filter.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/api/print_filter.h -FILE: ../../../third_party/dart/runtime/vm/compiler/api/type_check_mode.h -FILE: ../../../third_party/dart/runtime/vm/compiler/assembler/assembler_base.h -FILE: ../../../third_party/dart/runtime/vm/compiler/backend/constant_propagator_test.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/backend/reachability_fence_test.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/abi.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/abi.h -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/call.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/call.h -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/callback.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/callback.h -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/frame_rebase.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/frame_rebase.h -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/marshaller.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/marshaller.h -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/native_calling_convention.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/native_calling_convention.h -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/native_calling_convention_test.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/native_location.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/native_location.h -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/native_location_test.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/native_type.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/native_type.h -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/native_type_test.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/native_type_vm_test.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/recognized_method.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/recognized_method.h -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_test.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_test.h -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_test_custom_zone.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_test_custom_zone.h -FILE: ../../../third_party/dart/runtime/vm/compiler/frontend/kernel_binary_flowgraph_test.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/stub_code_compiler.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/write_barrier_elimination.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/write_barrier_elimination.h -FILE: ../../../third_party/dart/runtime/vm/compiler/write_barrier_elimination_test.cc -FILE: ../../../third_party/dart/runtime/vm/constants_base.h -FILE: ../../../third_party/dart/runtime/vm/datastream_test.cc -FILE: ../../../third_party/dart/runtime/vm/dispatch_table.cc -FILE: ../../../third_party/dart/runtime/vm/dispatch_table.h -FILE: ../../../third_party/dart/runtime/vm/experimental_features.cc -FILE: ../../../third_party/dart/runtime/vm/experimental_features.h -FILE: ../../../third_party/dart/runtime/vm/field_table.cc -FILE: ../../../third_party/dart/runtime/vm/field_table.h -FILE: ../../../third_party/dart/runtime/vm/heap/become_test.cc -FILE: ../../../third_party/dart/runtime/vm/heap/weak_table_test.cc -FILE: ../../../third_party/dart/runtime/vm/port_set.h -FILE: ../../../third_party/dart/runtime/vm/stub_code_test.cc -FILE: ../../../third_party/dart/runtime/vm/tagged_pointer.h -FILE: ../../../third_party/dart/runtime/vm/timeline_macos.cc -FILE: ../../../third_party/dart/runtime/vm/type_testing_stubs_test.cc -FILE: ../../../third_party/dart/runtime/vm/visitor.cc -FILE: ../../../third_party/dart/samples/ffi/async/async_test.dart -FILE: ../../../third_party/dart/samples/ffi/async/sample_async_callback.dart -FILE: ../../../third_party/dart/samples/ffi/async/sample_native_port_call.dart -FILE: ../../../third_party/dart/samples/ffi/sample_ffi_functions_callbacks_closures.dart -FILE: ../../../third_party/dart/sdk/lib/_http/embedder_config.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/patch/js_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/js_runtime/lib/js_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/ffi_struct_patch.dart -FILE: ../../../third_party/dart/sdk/lib/internal/lowering.dart ----------------------------------------------------------------------------------------------------- -Copyright (c) 2020, the Dart project authors. Please see the AUTHORS file -for details. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - * Neither the name of Google LLC nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: dart -ORIGIN: ../../../third_party/dart/runtime/bin/process_test.cc + ../../../third_party/dart/LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/dart/runtime/bin/process_test.cc -FILE: ../../../third_party/dart/runtime/bin/snapshot_empty.cc -FILE: ../../../third_party/dart/runtime/bin/snapshot_in.cc -FILE: ../../../third_party/dart/runtime/include/dart_tools_api.h -FILE: ../../../third_party/dart/runtime/lib/double.cc -FILE: ../../../third_party/dart/runtime/lib/math.cc -FILE: ../../../third_party/dart/runtime/lib/mirrors.h -FILE: ../../../third_party/dart/runtime/lib/object.cc -FILE: ../../../third_party/dart/runtime/lib/string.cc -FILE: ../../../third_party/dart/runtime/vm/bitfield.h -FILE: ../../../third_party/dart/runtime/vm/code_patcher_ia32_test.cc -FILE: ../../../third_party/dart/runtime/vm/code_patcher_x64_test.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/assembler/disassembler.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/assembler/disassembler.h -FILE: ../../../third_party/dart/runtime/vm/compiler/assembler/disassembler_test.cc -FILE: ../../../third_party/dart/runtime/vm/cpu_ia32.cc -FILE: ../../../third_party/dart/runtime/vm/custom_isolate_test.cc -FILE: ../../../third_party/dart/runtime/vm/dart.h -FILE: ../../../third_party/dart/runtime/vm/dart_api_impl.h -FILE: ../../../third_party/dart/runtime/vm/dart_entry.cc -FILE: ../../../third_party/dart/runtime/vm/dart_entry.h -FILE: ../../../third_party/dart/runtime/vm/debugger_arm.cc -FILE: ../../../third_party/dart/runtime/vm/debugger_ia32.cc -FILE: ../../../third_party/dart/runtime/vm/debugger_x64.cc -FILE: ../../../third_party/dart/runtime/vm/double_conversion.cc -FILE: ../../../third_party/dart/runtime/vm/double_conversion.h -FILE: ../../../third_party/dart/runtime/vm/exceptions.cc -FILE: ../../../third_party/dart/runtime/vm/exceptions.h -FILE: ../../../third_party/dart/runtime/vm/handle_visitor.h -FILE: ../../../third_party/dart/runtime/vm/handles.h -FILE: ../../../third_party/dart/runtime/vm/heap/freelist.cc -FILE: ../../../third_party/dart/runtime/vm/heap/marker.cc -FILE: ../../../third_party/dart/runtime/vm/heap/marker.h -FILE: ../../../third_party/dart/runtime/vm/heap/pages.h -FILE: ../../../third_party/dart/runtime/vm/heap/scavenger.cc -FILE: ../../../third_party/dart/runtime/vm/heap/sweeper.cc -FILE: ../../../third_party/dart/runtime/vm/heap/sweeper.h -FILE: ../../../third_party/dart/runtime/vm/heap/verifier.h -FILE: ../../../third_party/dart/runtime/vm/longjump.cc -FILE: ../../../third_party/dart/runtime/vm/longjump_test.cc -FILE: ../../../third_party/dart/runtime/vm/memory_region.cc -FILE: ../../../third_party/dart/runtime/vm/message.cc -FILE: ../../../third_party/dart/runtime/vm/message.h -FILE: ../../../third_party/dart/runtime/vm/message_handler.cc -FILE: ../../../third_party/dart/runtime/vm/message_handler.h -FILE: ../../../third_party/dart/runtime/vm/native_entry.cc -FILE: ../../../third_party/dart/runtime/vm/native_entry.h -FILE: ../../../third_party/dart/runtime/vm/native_entry_test.cc -FILE: ../../../third_party/dart/runtime/vm/native_entry_test.h -FILE: ../../../third_party/dart/runtime/vm/native_function.h -FILE: ../../../third_party/dart/runtime/vm/object_store_test.cc -FILE: ../../../third_party/dart/runtime/vm/os.h -FILE: ../../../third_party/dart/runtime/vm/port.h -FILE: ../../../third_party/dart/runtime/vm/resolver.cc -FILE: ../../../third_party/dart/runtime/vm/resolver.h -FILE: ../../../third_party/dart/runtime/vm/runtime_entry.cc -FILE: ../../../third_party/dart/runtime/vm/runtime_entry.h -FILE: ../../../third_party/dart/runtime/vm/runtime_entry_arm.cc -FILE: ../../../third_party/dart/runtime/vm/runtime_entry_ia32.cc -FILE: ../../../third_party/dart/runtime/vm/runtime_entry_list.h -FILE: ../../../third_party/dart/runtime/vm/runtime_entry_x64.cc -FILE: ../../../third_party/dart/runtime/vm/stack_frame.h -FILE: ../../../third_party/dart/runtime/vm/stub_code.h -FILE: ../../../third_party/dart/runtime/vm/stub_code_ia32_test.cc -FILE: ../../../third_party/dart/runtime/vm/stub_code_x64_test.cc -FILE: ../../../third_party/dart/runtime/vm/timer.cc -FILE: ../../../third_party/dart/runtime/vm/timer.h -FILE: ../../../third_party/dart/runtime/vm/token.cc -FILE: ../../../third_party/dart/runtime/vm/unicode_data.cc -FILE: ../../../third_party/dart/runtime/vm/unicode_test.cc -FILE: ../../../third_party/dart/runtime/vm/unit_test.h -FILE: ../../../third_party/dart/runtime/vm/visitor.h -FILE: ../../../third_party/dart/sdk/lib/collection/queue.dart -FILE: ../../../third_party/dart/sdk/lib/core/comparable.dart -FILE: ../../../third_party/dart/sdk/lib/core/date_time.dart -FILE: ../../../third_party/dart/sdk/lib/core/duration.dart -FILE: ../../../third_party/dart/sdk/lib/core/function.dart -FILE: ../../../third_party/dart/sdk/lib/core/iterable.dart -FILE: ../../../third_party/dart/sdk/lib/core/map.dart -FILE: ../../../third_party/dart/sdk/lib/core/pattern.dart -FILE: ../../../third_party/dart/sdk/lib/core/set.dart -FILE: ../../../third_party/dart/sdk/lib/core/stopwatch.dart -FILE: ../../../third_party/dart/sdk/lib/core/string_buffer.dart -FILE: ../../../third_party/dart/sdk/lib/html/html_common/device.dart -FILE: ../../../third_party/dart/sdk/lib/html/html_common/filtered_element_list.dart -FILE: ../../../third_party/dart/sdk/lib/html/html_common/lists.dart -FILE: ../../../third_party/dart/sdk/lib/internal/iterable.dart -FILE: ../../../third_party/dart/sdk/lib/internal/sort.dart -FILE: ../../../third_party/dart/utils/peg/pegparser.dart ----------------------------------------------------------------------------------------------------- -Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file -for details. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - * Neither the name of Google LLC nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: dart -ORIGIN: ../../../third_party/dart/runtime/bin/snapshot_utils_test.cc + ../../../third_party/dart/LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/dart/runtime/bin/snapshot_utils_test.cc -FILE: ../../../third_party/dart/runtime/bin/test_utils.cc -FILE: ../../../third_party/dart/runtime/bin/test_utils.h -FILE: ../../../third_party/dart/runtime/bin/thread_absl.cc -FILE: ../../../third_party/dart/runtime/bin/thread_absl.h -FILE: ../../../third_party/dart/runtime/platform/mach_o.h -FILE: ../../../third_party/dart/runtime/platform/pe.h -FILE: ../../../third_party/dart/runtime/tools/heapsnapshot/bin/explore.dart -FILE: ../../../third_party/dart/runtime/tools/heapsnapshot/lib/heapsnapshot.dart -FILE: ../../../third_party/dart/runtime/tools/heapsnapshot/lib/src/analysis.dart -FILE: ../../../third_party/dart/runtime/tools/heapsnapshot/lib/src/cli.dart -FILE: ../../../third_party/dart/runtime/tools/heapsnapshot/lib/src/expression.dart -FILE: ../../../third_party/dart/runtime/tools/heapsnapshot/lib/src/format.dart -FILE: ../../../third_party/dart/runtime/tools/heapsnapshot/lib/src/load.dart -FILE: ../../../third_party/dart/runtime/vm/compiler/backend/il_serializer.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/backend/il_serializer.h -FILE: ../../../third_party/dart/runtime/vm/heap/gc_shared.cc -FILE: ../../../third_party/dart/runtime/vm/heap/gc_shared.h -FILE: ../../../third_party/dart/runtime/vm/heap/page.cc -FILE: ../../../third_party/dart/runtime/vm/heap/page.h -FILE: ../../../third_party/dart/runtime/vm/instructions.cc -FILE: ../../../third_party/dart/runtime/vm/malloc_hooks_riscv.cc -FILE: ../../../third_party/dart/runtime/vm/os_thread_absl.cc -FILE: ../../../third_party/dart/runtime/vm/os_thread_absl.h -FILE: ../../../third_party/dart/runtime/vm/simulator_x64.cc -FILE: ../../../third_party/dart/runtime/vm/simulator_x64.h -FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/private/js_names.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/private/runtime_metrics.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/js_shared/lib/js_util_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/js_shared/lib/synced/embedded_names.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/ffi_native_finalizer_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/finalizer_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/hash_factories.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/record_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/async_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/bool.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/class_id.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/core_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/date_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/developer.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/double.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/errors_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/expando_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/function.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/growable_list.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/hash_factories.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/identical_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/int.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/internal_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/isolate_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/js_helper.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/js_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/js_util_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/list.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/math_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/object_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/print_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/regexp_helper.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/regexp_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/stack_trace_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/stopwatch_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/string_buffer_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/string_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/symbol_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/timer_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/type.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/uri_patch.dart -FILE: ../../../third_party/dart/sdk/lib/ffi/c_type.dart -FILE: ../../../third_party/dart/sdk/lib/ffi/native_finalizer.dart -FILE: ../../../third_party/dart/sdk/lib/js/js_wasm.dart -FILE: ../../../third_party/dart/sdk/lib/js_util/js_util_wasm.dart -FILE: ../../../third_party/dart/sdk/lib/wasm/wasm_types.dart ----------------------------------------------------------------------------------------------------- -Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file -for details. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - * Neither the name of Google LLC nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: dart -ORIGIN: ../../../third_party/dart/runtime/lib/profiler.cc + ../../../third_party/dart/LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/dart/runtime/lib/profiler.cc -FILE: ../../../third_party/dart/runtime/observatory/bin/shell.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/app.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/object_graph.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/service.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/service_common.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/service_html.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/service_io.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/app/page.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/app/settings.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/app/view_model.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/allocation_profile.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/class_tree.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/debugger.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/heap_map.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/isolate_reconnect.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/metrics.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/vm_connect.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/src/service/object.dart -FILE: ../../../third_party/dart/runtime/observatory/lib/utils.dart -FILE: ../../../third_party/dart/runtime/observatory/web/main.dart -FILE: ../../../third_party/dart/runtime/observatory_2/bin/shell.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/app.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/object_graph.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/service.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/service_common.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/service_html.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/service_io.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/app/page.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/app/settings.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/app/view_model.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/allocation_profile.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/class_tree.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/debugger.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/heap_map.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/isolate_reconnect.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/metrics.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/vm_connect.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/service/object.dart -FILE: ../../../third_party/dart/runtime/observatory_2/lib/utils.dart -FILE: ../../../third_party/dart/runtime/observatory_2/web/main.dart -FILE: ../../../third_party/dart/runtime/platform/address_sanitizer.h -FILE: ../../../third_party/dart/runtime/platform/memory_sanitizer.h -FILE: ../../../third_party/dart/runtime/platform/safe_stack.h -FILE: ../../../third_party/dart/runtime/tools/verbose_gc_to_bmu.dart -FILE: ../../../third_party/dart/runtime/vm/bit_set_test.cc -FILE: ../../../third_party/dart/runtime/vm/code_patcher_arm64.cc -FILE: ../../../third_party/dart/runtime/vm/code_patcher_arm64_test.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/assembler/assembler_arm64.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/assembler/assembler_arm64.h -FILE: ../../../third_party/dart/runtime/vm/compiler/assembler/disassembler_arm64.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/backend/flow_graph_compiler_arm64.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/backend/il_arm64.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/backend/range_analysis.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/backend/range_analysis.h -FILE: ../../../third_party/dart/runtime/vm/compiler/backend/range_analysis_test.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/method_recognizer.cc -FILE: ../../../third_party/dart/runtime/vm/compiler/method_recognizer.h -FILE: ../../../third_party/dart/runtime/vm/constants_arm64.h -FILE: ../../../third_party/dart/runtime/vm/cpu_arm.h -FILE: ../../../third_party/dart/runtime/vm/cpu_arm64.cc -FILE: ../../../third_party/dart/runtime/vm/cpu_arm64.h -FILE: ../../../third_party/dart/runtime/vm/cpu_ia32.h -FILE: ../../../third_party/dart/runtime/vm/cpu_x64.h -FILE: ../../../third_party/dart/runtime/vm/cpuid.cc -FILE: ../../../third_party/dart/runtime/vm/cpuid.h -FILE: ../../../third_party/dart/runtime/vm/cpuinfo.h -FILE: ../../../third_party/dart/runtime/vm/cpuinfo_android.cc -FILE: ../../../third_party/dart/runtime/vm/cpuinfo_test.cc -FILE: ../../../third_party/dart/runtime/vm/cpuinfo_win.cc -FILE: ../../../third_party/dart/runtime/vm/debugger_arm64.cc -FILE: ../../../third_party/dart/runtime/vm/hash_table.h -FILE: ../../../third_party/dart/runtime/vm/hash_table_test.cc -FILE: ../../../third_party/dart/runtime/vm/heap/scavenger_test.cc -FILE: ../../../third_party/dart/runtime/vm/heap/spaces.h -FILE: ../../../third_party/dart/runtime/vm/heap/weak_code.cc -FILE: ../../../third_party/dart/runtime/vm/heap/weak_code.h -FILE: ../../../third_party/dart/runtime/vm/instructions_arm64.cc -FILE: ../../../third_party/dart/runtime/vm/instructions_arm64.h -FILE: ../../../third_party/dart/runtime/vm/instructions_arm64_test.cc -FILE: ../../../third_party/dart/runtime/vm/metrics.cc -FILE: ../../../third_party/dart/runtime/vm/metrics.h -FILE: ../../../third_party/dart/runtime/vm/metrics_test.cc -FILE: ../../../third_party/dart/runtime/vm/object_arm64_test.cc -FILE: ../../../third_party/dart/runtime/vm/object_graph.cc -FILE: ../../../third_party/dart/runtime/vm/object_graph.h -FILE: ../../../third_party/dart/runtime/vm/object_graph_test.cc -FILE: ../../../third_party/dart/runtime/vm/regexp.cc -FILE: ../../../third_party/dart/runtime/vm/regexp.h -FILE: ../../../third_party/dart/runtime/vm/regexp_assembler.cc -FILE: ../../../third_party/dart/runtime/vm/regexp_assembler.h -FILE: ../../../third_party/dart/runtime/vm/regexp_assembler_ir.cc -FILE: ../../../third_party/dart/runtime/vm/regexp_assembler_ir.h -FILE: ../../../third_party/dart/runtime/vm/regexp_ast.cc -FILE: ../../../third_party/dart/runtime/vm/regexp_ast.h -FILE: ../../../third_party/dart/runtime/vm/regexp_parser.cc -FILE: ../../../third_party/dart/runtime/vm/regexp_parser.h -FILE: ../../../third_party/dart/runtime/vm/regexp_test.cc -FILE: ../../../third_party/dart/runtime/vm/report.cc -FILE: ../../../third_party/dart/runtime/vm/report.h -FILE: ../../../third_party/dart/runtime/vm/ring_buffer.h -FILE: ../../../third_party/dart/runtime/vm/ring_buffer_test.cc -FILE: ../../../third_party/dart/runtime/vm/runtime_entry_arm64.cc -FILE: ../../../third_party/dart/runtime/vm/simulator_arm64.cc -FILE: ../../../third_party/dart/runtime/vm/simulator_arm64.h -FILE: ../../../third_party/dart/runtime/vm/stack_frame_arm64.h -FILE: ../../../third_party/dart/runtime/vm/stub_code_arm64_test.cc -FILE: ../../../third_party/dart/runtime/vm/tags.cc -FILE: ../../../third_party/dart/runtime/vm/unibrow-inl.h -FILE: ../../../third_party/dart/runtime/vm/unibrow.cc -FILE: ../../../third_party/dart/runtime/vm/unibrow.h -FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/private/preambles/d8.js -FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/private/preambles/jsshell.js -FILE: ../../../third_party/dart/sdk/lib/_internal/js_runtime/lib/linked_hash_map.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/js_runtime/lib/synced/embedded_names.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/convert_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/lib_prefix.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/profiler.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/convert_patch.dart -FILE: ../../../third_party/dart/sdk/lib/collection/set.dart -FILE: ../../../third_party/dart/sdk/lib/core/sink.dart -FILE: ../../../third_party/dart/sdk/lib/developer/profiler.dart -FILE: ../../../third_party/dart/sdk/lib/io/process.dart -FILE: ../../../third_party/dart/sdk/lib/io/service_object.dart -FILE: ../../../third_party/dart/sdk/lib/isolate/capability.dart ----------------------------------------------------------------------------------------------------- -Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file -for details. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - * Neither the name of Google LLC nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: dart -ORIGIN: ../../../third_party/dart/runtime/observatory/web/third_party/webcomponents.min.js -TYPE: LicenseType.bsd -FILE: ../../../third_party/dart/runtime/observatory/web/third_party/webcomponents.min.js -FILE: ../../../third_party/dart/runtime/observatory_2/web/third_party/webcomponents.min.js ----------------------------------------------------------------------------------------------------- -Copyright (c) 2014 The Polymer Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: dart -ORIGIN: ../../../third_party/dart/runtime/platform/splay-tree-inl.h + ../../../third_party/dart/LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/dart/runtime/platform/splay-tree-inl.h -FILE: ../../../third_party/dart/runtime/platform/splay-tree.h ----------------------------------------------------------------------------------------------------- -Copyright (c) 2010, the Dart project authors. Please see the AUTHORS file -for details. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - * Neither the name of Google LLC nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: dart -ORIGIN: ../../../third_party/dart/sdk/lib/_internal/vm/lib/bigint_patch.dart -TYPE: LicenseType.mit -FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/bigint_patch.dart -FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/bigint_patch.dart ----------------------------------------------------------------------------------------------------- -Copyright (c) 2003-2005 Tom Wu -Copyright (c) 2012 Adam Singer (adam@solvr.io) -All Rights Reserved. - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, -EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY -WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. - -IN NO EVENT SHALL TOM WU BE LIABLE FOR ANY SPECIAL, INCIDENTAL, -INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER -RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF -THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT -OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - -In addition, the following condition applies: - -All redistributions must retain an intact copy of this copyright notice -and disclaimer. -==================================================================================================== - -==================================================================================================== -LIBRARY: dart -ORIGIN: ../../../third_party/dart/sdk/lib/io/network_profiling.dart + ../../../third_party/dart/LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/dart/sdk/lib/io/network_profiling.dart ----------------------------------------------------------------------------------------------------- -Copyright (c) 2019, the Dart project authors. Please see the AUTHORS file -for details. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - * Neither the name of Google LLC nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: double-conversion -LIBRARY: icu -ORIGIN: ../../../third_party/dart/runtime/third_party/double-conversion/src/bignum-dtoa.cc -TYPE: LicenseType.bsd -FILE: ../../../third_party/dart/runtime/third_party/double-conversion/src/bignum-dtoa.cc -FILE: ../../../third_party/dart/runtime/third_party/double-conversion/src/bignum-dtoa.h -FILE: ../../../third_party/dart/runtime/third_party/double-conversion/src/bignum.cc -FILE: ../../../third_party/dart/runtime/third_party/double-conversion/src/bignum.h -FILE: ../../../third_party/dart/runtime/third_party/double-conversion/src/cached-powers.h -FILE: ../../../third_party/dart/runtime/third_party/double-conversion/src/diy-fp.cc -FILE: ../../../third_party/dart/runtime/third_party/double-conversion/src/diy-fp.h -FILE: ../../../third_party/dart/runtime/third_party/double-conversion/src/double-conversion.cc -FILE: ../../../third_party/dart/runtime/third_party/double-conversion/src/fast-dtoa.h -FILE: ../../../third_party/dart/runtime/third_party/double-conversion/src/fixed-dtoa.cc -FILE: ../../../third_party/dart/runtime/third_party/double-conversion/src/fixed-dtoa.h -FILE: ../../../third_party/dart/runtime/third_party/double-conversion/src/strtod.cc -FILE: ../../../third_party/dart/runtime/third_party/double-conversion/src/strtod.h -FILE: ../../../third_party/dart/runtime/third_party/double-conversion/src/utils.h -FILE: ../../../third_party/icu/source/i18n/double-conversion-bignum-dtoa.cpp -FILE: ../../../third_party/icu/source/i18n/double-conversion-bignum-dtoa.h -FILE: ../../../third_party/icu/source/i18n/double-conversion-bignum.cpp -FILE: ../../../third_party/icu/source/i18n/double-conversion-bignum.h -FILE: ../../../third_party/icu/source/i18n/double-conversion-cached-powers.h -FILE: ../../../third_party/icu/source/i18n/double-conversion-diy-fp.h -FILE: ../../../third_party/icu/source/i18n/double-conversion-double-to-string.cpp -FILE: ../../../third_party/icu/source/i18n/double-conversion-fast-dtoa.h -FILE: ../../../third_party/icu/source/i18n/double-conversion-string-to-double.cpp -FILE: ../../../third_party/icu/source/i18n/double-conversion-strtod.cpp -FILE: ../../../third_party/icu/source/i18n/double-conversion-strtod.h -FILE: ../../../third_party/icu/source/i18n/double-conversion-utils.h ----------------------------------------------------------------------------------------------------- -Copyright 2010 the V8 project authors. All rights reserved. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - * Neither the name of Google Inc. nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: double-conversion -LIBRARY: icu -ORIGIN: ../../../third_party/dart/runtime/third_party/double-conversion/src/cached-powers.cc -TYPE: LicenseType.bsd -FILE: ../../../third_party/dart/runtime/third_party/double-conversion/src/cached-powers.cc -FILE: ../../../third_party/icu/source/i18n/double-conversion-cached-powers.cpp ----------------------------------------------------------------------------------------------------- -Copyright 2006-2008 the V8 project authors. All rights reserved. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - * Neither the name of Google Inc. nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: double-conversion -LIBRARY: icu -ORIGIN: ../../../third_party/dart/runtime/third_party/double-conversion/src/double-conversion.h -TYPE: LicenseType.bsd -FILE: ../../../third_party/dart/runtime/third_party/double-conversion/src/double-conversion.h -FILE: ../../../third_party/dart/runtime/third_party/double-conversion/src/fast-dtoa.cc -FILE: ../../../third_party/dart/runtime/third_party/double-conversion/src/ieee.h -FILE: ../../../third_party/icu/source/i18n/double-conversion-double-to-string.h -FILE: ../../../third_party/icu/source/i18n/double-conversion-fast-dtoa.cpp -FILE: ../../../third_party/icu/source/i18n/double-conversion-ieee.h -FILE: ../../../third_party/icu/source/i18n/double-conversion-string-to-double.h -FILE: ../../../third_party/icu/source/i18n/double-conversion.h ----------------------------------------------------------------------------------------------------- -Copyright 2012 the V8 project authors. All rights reserved. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - * Neither the name of Google Inc. nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: expat -ORIGIN: ../../../third_party/expat/appveyor.yml -TYPE: LicenseType.mit -FILE: ../../../third_party/expat/appveyor.yml ----------------------------------------------------------------------------------------------------- -Copyright (c) 2017 José Gutiérrez de la Concha -Copyright (c) 2017-2021 Sebastian Pipping -Copyright (c) 2017 Franek Korta -Licensed under the MIT license: - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the -following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -USE OR OTHER DEALINGS IN THE SOFTWARE. -==================================================================================================== - -==================================================================================================== -LIBRARY: expat -ORIGIN: ../../../third_party/expat/expat/COPYING -TYPE: LicenseType.mit -FILE: ../../../third_party/expat/expat/Changes -FILE: ../../../third_party/expat/expat/cmake/autotools/expat-config-version.cmake.in -FILE: ../../../third_party/expat/expat/cmake/autotools/expat-noconfig__linux.cmake.in -FILE: ../../../third_party/expat/expat/cmake/autotools/expat-noconfig__macos.cmake.in -FILE: ../../../third_party/expat/expat/cmake/autotools/expat-noconfig__windows.cmake.in -FILE: ../../../third_party/expat/expat/expat.pc.in -FILE: ../../../third_party/expat/expat/lib/libexpat.def -FILE: ../../../third_party/expat/expat/lib/libexpatw.def -FILE: ../../../third_party/expat/expat/lib/siphash.h ----------------------------------------------------------------------------------------------------- -Copyright (c) 1998-2000 Thai Open Source Software Center Ltd and Clark Cooper -Copyright (c) 2001-2019 Expat maintainers - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -==================================================================================================== - -==================================================================================================== -LIBRARY: expat -ORIGIN: ../../../third_party/expat/expat/cmake/expat-config.cmake.in -TYPE: LicenseType.mit -FILE: ../../../third_party/expat/expat/cmake/expat-config.cmake.in ----------------------------------------------------------------------------------------------------- -Copyright (c) 2019 Expat development team -Licensed under the MIT license: - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the -following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -USE OR OTHER DEALINGS IN THE SOFTWARE. -==================================================================================================== - -==================================================================================================== -LIBRARY: expat -ORIGIN: ../../../third_party/expat/expat/examples/elements.c -TYPE: LicenseType.mit -FILE: ../../../third_party/expat/expat/examples/elements.c ----------------------------------------------------------------------------------------------------- -Copyright (c) 1997-2000 Thai Open Source Software Center Ltd -Copyright (c) 2001-2003 Fred L. Drake, Jr. -Copyright (c) 2004-2006 Karl Waclawek -Copyright (c) 2005-2007 Steven Solie -Copyright (c) 2016-2019 Sebastian Pipping -Copyright (c) 2017 Rhodri James -Copyright (c) 2019 Zhongyuan Zhou -Licensed under the MIT license: - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the -following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -USE OR OTHER DEALINGS IN THE SOFTWARE. -==================================================================================================== - -==================================================================================================== -LIBRARY: expat -ORIGIN: ../../../third_party/expat/expat/examples/outline.c -TYPE: LicenseType.mit -FILE: ../../../third_party/expat/expat/examples/outline.c ----------------------------------------------------------------------------------------------------- -Copyright (c) 2000 Clark Cooper -Copyright (c) 2001-2003 Fred L. Drake, Jr. -Copyright (c) 2005-2007 Steven Solie -Copyright (c) 2005-2006 Karl Waclawek -Copyright (c) 2016-2019 Sebastian Pipping -Copyright (c) 2017 Rhodri James -Licensed under the MIT license: - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the -following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -USE OR OTHER DEALINGS IN THE SOFTWARE. -==================================================================================================== - -==================================================================================================== -LIBRARY: expat -ORIGIN: ../../../third_party/expat/expat/gennmtab/gennmtab.c -TYPE: LicenseType.mit -FILE: ../../../third_party/expat/expat/gennmtab/gennmtab.c -FILE: ../../../third_party/expat/expat/xmlwf/codepage.h -FILE: ../../../third_party/expat/expat/xmlwf/filemap.h -FILE: ../../../third_party/expat/expat/xmlwf/win32filemap.c ----------------------------------------------------------------------------------------------------- -Copyright (c) 1997-2000 Thai Open Source Software Center Ltd -Copyright (c) 2000 Clark Cooper -Copyright (c) 2002 Fred L. Drake, Jr. -Copyright (c) 2016-2017 Sebastian Pipping -Licensed under the MIT license: - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the -following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -USE OR OTHER DEALINGS IN THE SOFTWARE. -==================================================================================================== - -==================================================================================================== -LIBRARY: expat -ORIGIN: ../../../third_party/expat/expat/lib/ascii.h -TYPE: LicenseType.mit -FILE: ../../../third_party/expat/expat/lib/ascii.h ----------------------------------------------------------------------------------------------------- -Copyright (c) 1999-2000 Thai Open Source Software Center Ltd -Copyright (c) 2000 Clark Cooper -Copyright (c) 2002 Fred L. Drake, Jr. -Copyright (c) 2007 Karl Waclawek -Copyright (c) 2017 Sebastian Pipping -Licensed under the MIT license: - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the -following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -USE OR OTHER DEALINGS IN THE SOFTWARE. -==================================================================================================== - -==================================================================================================== -LIBRARY: expat -ORIGIN: ../../../third_party/expat/expat/lib/asciitab.h -TYPE: LicenseType.mit -FILE: ../../../third_party/expat/expat/lib/asciitab.h -FILE: ../../../third_party/expat/expat/lib/iasciitab.h -FILE: ../../../third_party/expat/expat/lib/latin1tab.h -FILE: ../../../third_party/expat/expat/lib/utf8tab.h ----------------------------------------------------------------------------------------------------- -Copyright (c) 1997-2000 Thai Open Source Software Center Ltd -Copyright (c) 2000 Clark Cooper -Copyright (c) 2002 Fred L. Drake, Jr. -Copyright (c) 2017 Sebastian Pipping -Licensed under the MIT license: - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the -following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -USE OR OTHER DEALINGS IN THE SOFTWARE. -==================================================================================================== - -==================================================================================================== -LIBRARY: expat -ORIGIN: ../../../third_party/expat/expat/lib/expat.h -TYPE: LicenseType.mit -FILE: ../../../third_party/expat/expat/lib/expat.h ----------------------------------------------------------------------------------------------------- -Copyright (c) 1997-2000 Thai Open Source Software Center Ltd -Copyright (c) 2000 Clark Cooper -Copyright (c) 2000-2005 Fred L. Drake, Jr. -Copyright (c) 2001-2002 Greg Stein -Copyright (c) 2002-2016 Karl Waclawek -Copyright (c) 2016-2021 Sebastian Pipping -Copyright (c) 2016 Cristian Rodríguez -Copyright (c) 2016 Thomas Beutlich -Copyright (c) 2017 Rhodri James -Licensed under the MIT license: - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the -following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -USE OR OTHER DEALINGS IN THE SOFTWARE. -==================================================================================================== - -==================================================================================================== -LIBRARY: expat -ORIGIN: ../../../third_party/expat/expat/lib/expat_external.h -TYPE: LicenseType.mit -FILE: ../../../third_party/expat/expat/lib/expat_external.h ----------------------------------------------------------------------------------------------------- -Copyright (c) 1997-2000 Thai Open Source Software Center Ltd -Copyright (c) 2000 Clark Cooper -Copyright (c) 2000-2004 Fred L. Drake, Jr. -Copyright (c) 2001-2002 Greg Stein -Copyright (c) 2002-2006 Karl Waclawek -Copyright (c) 2016 Cristian Rodríguez -Copyright (c) 2016-2019 Sebastian Pipping -Copyright (c) 2017 Rhodri James -Copyright (c) 2018 Yury Gribov -Licensed under the MIT license: - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the -following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -USE OR OTHER DEALINGS IN THE SOFTWARE. -==================================================================================================== - -==================================================================================================== -LIBRARY: expat -ORIGIN: ../../../third_party/expat/expat/lib/internal.h -TYPE: LicenseType.mit -FILE: ../../../third_party/expat/expat/lib/internal.h ----------------------------------------------------------------------------------------------------- -Copyright (c) 2002-2003 Fred L. Drake, Jr. -Copyright (c) 2002-2006 Karl Waclawek -Copyright (c) 2003 Greg Stein -Copyright (c) 2016-2021 Sebastian Pipping -Copyright (c) 2018 Yury Gribov -Copyright (c) 2019 David Loffredo -Licensed under the MIT license: - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the -following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -USE OR OTHER DEALINGS IN THE SOFTWARE. -==================================================================================================== - -==================================================================================================== -LIBRARY: expat -ORIGIN: ../../../third_party/expat/expat/lib/nametab.h -TYPE: LicenseType.mit -FILE: ../../../third_party/expat/expat/lib/nametab.h ----------------------------------------------------------------------------------------------------- -Copyright (c) 2000 Clark Cooper -Copyright (c) 2017 Sebastian Pipping -Licensed under the MIT license: - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the -following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -USE OR OTHER DEALINGS IN THE SOFTWARE. -==================================================================================================== - -==================================================================================================== -LIBRARY: expat -ORIGIN: ../../../third_party/expat/expat/lib/winconfig.h -TYPE: LicenseType.mit -FILE: ../../../third_party/expat/expat/lib/winconfig.h ----------------------------------------------------------------------------------------------------- -Copyright (c) 2000 Clark Cooper -Copyright (c) 2002 Greg Stein -Copyright (c) 2005 Karl Waclawek -Copyright (c) 2017-2021 Sebastian Pipping -Licensed under the MIT license: - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the -following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -USE OR OTHER DEALINGS IN THE SOFTWARE. -==================================================================================================== - -==================================================================================================== -LIBRARY: expat -ORIGIN: ../../../third_party/expat/expat/lib/xmlparse.c -TYPE: LicenseType.mit -FILE: ../../../third_party/expat/expat/lib/xmlparse.c ----------------------------------------------------------------------------------------------------- -Copyright (c) 1997-2000 Thai Open Source Software Center Ltd -Copyright (c) 2000 Clark Cooper -Copyright (c) 2000-2006 Fred L. Drake, Jr. -Copyright (c) 2001-2002 Greg Stein -Copyright (c) 2002-2016 Karl Waclawek -Copyright (c) 2005-2009 Steven Solie -Copyright (c) 2016 Eric Rahm -Copyright (c) 2016-2021 Sebastian Pipping -Copyright (c) 2016 Gaurav -Copyright (c) 2016 Thomas Beutlich -Copyright (c) 2016 Gustavo Grieco -Copyright (c) 2016 Pascal Cuoq -Copyright (c) 2016 Ed Schouten -Copyright (c) 2017-2018 Rhodri James -Copyright (c) 2017 Václav Slavík -Copyright (c) 2017 Viktor Szakats -Copyright (c) 2017 Chanho Park -Copyright (c) 2017 Rolf Eike Beer -Copyright (c) 2017 Hans Wennborg -Copyright (c) 2018 Anton Maklakov -Copyright (c) 2018 Benjamin Peterson -Copyright (c) 2018 Marco Maggi -Copyright (c) 2018 Mariusz Zaborski -Copyright (c) 2019 David Loffredo -Copyright (c) 2019-2020 Ben Wagner -Copyright (c) 2019 Vadim Zeitlin -Licensed under the MIT license: - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the -following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -USE OR OTHER DEALINGS IN THE SOFTWARE. -==================================================================================================== - -==================================================================================================== -LIBRARY: expat -ORIGIN: ../../../third_party/expat/expat/lib/xmlrole.c -TYPE: LicenseType.mit -FILE: ../../../third_party/expat/expat/lib/xmlrole.c ----------------------------------------------------------------------------------------------------- -Copyright (c) 1997-2000 Thai Open Source Software Center Ltd -Copyright (c) 2000 Clark Cooper -Copyright (c) 2002 Greg Stein -Copyright (c) 2002-2006 Karl Waclawek -Copyright (c) 2002-2003 Fred L. Drake, Jr. -Copyright (c) 2005-2009 Steven Solie -Copyright (c) 2016-2021 Sebastian Pipping -Copyright (c) 2017 Rhodri James -Copyright (c) 2019 David Loffredo -Licensed under the MIT license: - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the -following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -USE OR OTHER DEALINGS IN THE SOFTWARE. -==================================================================================================== - -==================================================================================================== -LIBRARY: expat -ORIGIN: ../../../third_party/expat/expat/lib/xmlrole.h -TYPE: LicenseType.mit -FILE: ../../../third_party/expat/expat/lib/xmlrole.h ----------------------------------------------------------------------------------------------------- -Copyright (c) 1997-2000 Thai Open Source Software Center Ltd -Copyright (c) 2000 Clark Cooper -Copyright (c) 2002 Karl Waclawek -Copyright (c) 2002 Fred L. Drake, Jr. -Copyright (c) 2017 Sebastian Pipping -Licensed under the MIT license: - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the -following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -USE OR OTHER DEALINGS IN THE SOFTWARE. -==================================================================================================== - -==================================================================================================== -LIBRARY: expat -ORIGIN: ../../../third_party/expat/expat/lib/xmltok.c -TYPE: LicenseType.mit -FILE: ../../../third_party/expat/expat/lib/xmltok.c ----------------------------------------------------------------------------------------------------- -Copyright (c) 1997-2000 Thai Open Source Software Center Ltd -Copyright (c) 2000 Clark Cooper -Copyright (c) 2001-2003 Fred L. Drake, Jr. -Copyright (c) 2002 Greg Stein -Copyright (c) 2002-2016 Karl Waclawek -Copyright (c) 2005-2009 Steven Solie -Copyright (c) 2016-2021 Sebastian Pipping -Copyright (c) 2016 Pascal Cuoq -Copyright (c) 2016 Don Lewis -Copyright (c) 2017 Rhodri James -Copyright (c) 2017 Alexander Bluhm -Copyright (c) 2017 Benbuck Nason -Copyright (c) 2017 José Gutiérrez de la Concha -Copyright (c) 2019 David Loffredo -Licensed under the MIT license: - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the -following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -USE OR OTHER DEALINGS IN THE SOFTWARE. -==================================================================================================== - -==================================================================================================== -LIBRARY: expat -ORIGIN: ../../../third_party/expat/expat/lib/xmltok.h -TYPE: LicenseType.mit -FILE: ../../../third_party/expat/expat/lib/xmltok.h ----------------------------------------------------------------------------------------------------- -Copyright (c) 1997-2000 Thai Open Source Software Center Ltd -Copyright (c) 2000 Clark Cooper -Copyright (c) 2002 Fred L. Drake, Jr. -Copyright (c) 2002-2005 Karl Waclawek -Copyright (c) 2016-2017 Sebastian Pipping -Copyright (c) 2017 Rhodri James -Licensed under the MIT license: - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the -following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -USE OR OTHER DEALINGS IN THE SOFTWARE. -==================================================================================================== - -==================================================================================================== -LIBRARY: expat -ORIGIN: ../../../third_party/expat/expat/lib/xmltok_impl.c -TYPE: LicenseType.mit -FILE: ../../../third_party/expat/expat/lib/xmltok_impl.c ----------------------------------------------------------------------------------------------------- -Copyright (c) 1997-2000 Thai Open Source Software Center Ltd -Copyright (c) 2000 Clark Cooper -Copyright (c) 2002 Fred L. Drake, Jr. -Copyright (c) 2002-2016 Karl Waclawek -Copyright (c) 2016-2021 Sebastian Pipping -Copyright (c) 2017 Rhodri James -Copyright (c) 2018 Benjamin Peterson -Copyright (c) 2018 Anton Maklakov -Copyright (c) 2019 David Loffredo -Copyright (c) 2020 Boris Kolpackov -Licensed under the MIT license: - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the -following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -USE OR OTHER DEALINGS IN THE SOFTWARE. -==================================================================================================== - -==================================================================================================== -LIBRARY: expat -ORIGIN: ../../../third_party/expat/expat/lib/xmltok_impl.h -TYPE: LicenseType.mit -FILE: ../../../third_party/expat/expat/lib/xmltok_impl.h ----------------------------------------------------------------------------------------------------- -Copyright (c) 1997-2000 Thai Open Source Software Center Ltd -Copyright (c) 2000 Clark Cooper -Copyright (c) 2017-2019 Sebastian Pipping -Licensed under the MIT license: - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the -following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -USE OR OTHER DEALINGS IN THE SOFTWARE. -==================================================================================================== - -==================================================================================================== -LIBRARY: expat -ORIGIN: ../../../third_party/expat/expat/lib/xmltok_ns.c -TYPE: LicenseType.mit -FILE: ../../../third_party/expat/expat/lib/xmltok_ns.c ----------------------------------------------------------------------------------------------------- -Copyright (c) 1997-2000 Thai Open Source Software Center Ltd -Copyright (c) 2000 Clark Cooper -Copyright (c) 2002 Greg Stein -Copyright (c) 2002 Fred L. Drake, Jr. -Copyright (c) 2002-2006 Karl Waclawek -Copyright (c) 2017 Sebastian Pipping -Licensed under the MIT license: - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the -following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -USE OR OTHER DEALINGS IN THE SOFTWARE. -==================================================================================================== - -==================================================================================================== -LIBRARY: expat -ORIGIN: ../../../third_party/expat/expat/win32/expat.iss -TYPE: LicenseType.mit -FILE: ../../../third_party/expat/expat/win32/expat.iss ----------------------------------------------------------------------------------------------------- -Copyright (c) 2001 Tim Peters -Copyright (c) 2001-2005 Fred L. Drake, Jr. -Copyright (c) 2006-2017 Karl Waclawek -Copyright (c) 2007-2021 Sebastian Pipping -Licensed under the MIT license: - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the -following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -USE OR OTHER DEALINGS IN THE SOFTWARE. -==================================================================================================== - -==================================================================================================== -LIBRARY: expat -ORIGIN: ../../../third_party/expat/expat/xmlwf/codepage.c -TYPE: LicenseType.mit -FILE: ../../../third_party/expat/expat/xmlwf/codepage.c ----------------------------------------------------------------------------------------------------- -Copyright (c) 1997-2000 Thai Open Source Software Center Ltd -Copyright (c) 2000 Clark Cooper -Copyright (c) 2002 Fred L. Drake, Jr. -Copyright (c) 2005-2006 Karl Waclawek -Copyright (c) 2016-2019 Sebastian Pipping -Copyright (c) 2019 David Loffredo -Licensed under the MIT license: - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the -following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -USE OR OTHER DEALINGS IN THE SOFTWARE. -==================================================================================================== - -==================================================================================================== -LIBRARY: expat -ORIGIN: ../../../third_party/expat/expat/xmlwf/ct.c -TYPE: LicenseType.mit -FILE: ../../../third_party/expat/expat/xmlwf/ct.c -FILE: ../../../third_party/expat/expat/xmlwf/xmlmime.h ----------------------------------------------------------------------------------------------------- -Copyright (c) 1997-2000 Thai Open Source Software Center Ltd -Copyright (c) 2002 Fred L. Drake, Jr. -Copyright (c) 2016-2017 Sebastian Pipping -Licensed under the MIT license: - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the -following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -USE OR OTHER DEALINGS IN THE SOFTWARE. -==================================================================================================== - -==================================================================================================== -LIBRARY: expat -ORIGIN: ../../../third_party/expat/expat/xmlwf/readfilemap.c -TYPE: LicenseType.mit -FILE: ../../../third_party/expat/expat/xmlwf/readfilemap.c ----------------------------------------------------------------------------------------------------- -Copyright (c) 1997-2000 Thai Open Source Software Center Ltd -Copyright (c) 2000 Clark Cooper -Copyright (c) 2001-2004 Fred L. Drake, Jr. -Copyright (c) 2002-2009 Karl Waclawek -Copyright (c) 2016-2017 Sebastian Pipping -Copyright (c) 2017 Rhodri James -Copyright (c) 2017 Franek Korta -Licensed under the MIT license: - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the -following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -USE OR OTHER DEALINGS IN THE SOFTWARE. -==================================================================================================== - -==================================================================================================== -LIBRARY: expat -ORIGIN: ../../../third_party/expat/expat/xmlwf/unixfilemap.c -TYPE: LicenseType.mit -FILE: ../../../third_party/expat/expat/xmlwf/unixfilemap.c ----------------------------------------------------------------------------------------------------- -Copyright (c) 1997-2000 Thai Open Source Software Center Ltd -Copyright (c) 2000 Clark Cooper -Copyright (c) 2001-2002 Fred L. Drake, Jr. -Copyright (c) 2006 Karl Waclawek -Copyright (c) 2016-2017 Sebastian Pipping -Copyright (c) 2017 Rhodri James -Licensed under the MIT license: - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the -following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -USE OR OTHER DEALINGS IN THE SOFTWARE. -==================================================================================================== - -==================================================================================================== -LIBRARY: expat -ORIGIN: ../../../third_party/expat/expat/xmlwf/xmlfile.c -TYPE: LicenseType.mit -FILE: ../../../third_party/expat/expat/xmlwf/xmlfile.c ----------------------------------------------------------------------------------------------------- -Copyright (c) 1997-2000 Thai Open Source Software Center Ltd -Copyright (c) 2000 Clark Cooper -Copyright (c) 2002-2003 Fred L. Drake, Jr. -Copyright (c) 2004-2006 Karl Waclawek -Copyright (c) 2005-2007 Steven Solie -Copyright (c) 2016-2021 Sebastian Pipping -Copyright (c) 2017 Rhodri James -Copyright (c) 2019 David Loffredo -Licensed under the MIT license: - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the -following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -USE OR OTHER DEALINGS IN THE SOFTWARE. -==================================================================================================== - -==================================================================================================== -LIBRARY: expat -ORIGIN: ../../../third_party/expat/expat/xmlwf/xmlfile.h -TYPE: LicenseType.mit -FILE: ../../../third_party/expat/expat/xmlwf/xmlfile.h ----------------------------------------------------------------------------------------------------- -Copyright (c) 1997-2000 Thai Open Source Software Center Ltd -Copyright (c) 2000 Clark Cooper -Copyright (c) 2002 Fred L. Drake, Jr. -Copyright (c) 2005 Karl Waclawek -Copyright (c) 2016-2019 Sebastian Pipping -Licensed under the MIT license: - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the -following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -USE OR OTHER DEALINGS IN THE SOFTWARE. -==================================================================================================== - -==================================================================================================== -LIBRARY: expat -ORIGIN: ../../../third_party/expat/expat/xmlwf/xmlmime.c -TYPE: LicenseType.mit -FILE: ../../../third_party/expat/expat/xmlwf/xmlmime.c ----------------------------------------------------------------------------------------------------- -Copyright (c) 1997-2000 Thai Open Source Software Center Ltd -Copyright (c) 2002 Fred L. Drake, Jr. -Copyright (c) 2016-2018 Sebastian Pipping -Copyright (c) 2018 Marco Maggi -Licensed under the MIT license: - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the -following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -USE OR OTHER DEALINGS IN THE SOFTWARE. -==================================================================================================== - -==================================================================================================== -LIBRARY: expat -ORIGIN: ../../../third_party/expat/expat/xmlwf/xmltchar.h -TYPE: LicenseType.mit -FILE: ../../../third_party/expat/expat/xmlwf/xmltchar.h ----------------------------------------------------------------------------------------------------- -Copyright (c) 1997-2000 Thai Open Source Software Center Ltd -Copyright (c) 2016-2021 Sebastian Pipping -Copyright (c) 2017 Rhodri James -Licensed under the MIT license: - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the -following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -USE OR OTHER DEALINGS IN THE SOFTWARE. -==================================================================================================== - -==================================================================================================== -LIBRARY: expat -ORIGIN: ../../../third_party/expat/expat/xmlwf/xmlwf.c -TYPE: LicenseType.mit -FILE: ../../../third_party/expat/expat/xmlwf/xmlwf.c ----------------------------------------------------------------------------------------------------- -Copyright (c) 1997-2000 Thai Open Source Software Center Ltd -Copyright (c) 2000 Clark Cooper -Copyright (c) 2001-2003 Fred L. Drake, Jr. -Copyright (c) 2004-2009 Karl Waclawek -Copyright (c) 2005-2007 Steven Solie -Copyright (c) 2016-2021 Sebastian Pipping -Copyright (c) 2017 Rhodri James -Copyright (c) 2019 David Loffredo -Copyright (c) 2020 Joe Orton -Copyright (c) 2020 Kleber Tarcísio -Copyright (c) 2021 Tim Bray -Licensed under the MIT license: - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the -following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -USE OR OTHER DEALINGS IN THE SOFTWARE. -==================================================================================================== - -==================================================================================================== -LIBRARY: ffx_spd -ORIGIN: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/src/third_party/ffx_spd/ffx_a.h -TYPE: LicenseType.mit -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/src/third_party/ffx_spd/ffx_a.h ----------------------------------------------------------------------------------------------------- -Copyright (c) 2017-2019 Advanced Micro Devices, Inc. All rights reserved. -Copyright (c) <2014> - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation -files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, -modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the -Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the -Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE -WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -==================================================================================================== - -==================================================================================================== -LIBRARY: ffx_spd -ORIGIN: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/src/third_party/ffx_spd/ffx_spd.h -TYPE: LicenseType.mit -FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/src/third_party/ffx_spd/ffx_spd.h ----------------------------------------------------------------------------------------------------- -Copyright (c) 2017-2020 Advanced Micro Devices, Inc. All rights reserved. - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation -files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, -modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the -Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the -Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE -WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -==================================================================================================== - -==================================================================================================== -LIBRARY: flatbuffers -ORIGIN: ../../../third_party/flatbuffers/dart/LICENSE -TYPE: LicenseType.apache -FILE: ../../../third_party/flatbuffers/dart/example/monster_my_game.sample_generated.dart -FILE: ../../../third_party/flatbuffers/dart/lib/flat_buffers.dart -FILE: ../../../third_party/flatbuffers/dart/lib/flex_buffers.dart -FILE: ../../../third_party/flatbuffers/dart/lib/src/builder.dart -FILE: ../../../third_party/flatbuffers/dart/lib/src/reference.dart -FILE: ../../../third_party/flatbuffers/dart/lib/src/types.dart ----------------------------------------------------------------------------------------------------- -Apache License -Version 2.0, January 2004 -http://www.apache.org/licenses - -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - -1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - -2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - -3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - -4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - -5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - -6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - -7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - -8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - -9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - -END OF TERMS AND CONDITIONS - -APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - -Copyright 2014 Google Inc. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -==================================================================================================== - -==================================================================================================== -LIBRARY: freetype2 -LIBRARY: zlib -ORIGIN: ../../../third_party/freetype2/src/gzip/adler32.c + ../../../third_party/freetype2/src/gzip/zlib.h -TYPE: LicenseType.zlib -FILE: ../../../third_party/freetype2/src/gzip/adler32.c -FILE: ../../../third_party/zlib/adler32.c ----------------------------------------------------------------------------------------------------- -Copyright (C) 1995-2011, 2016 Mark Adler - -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. - -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: - -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. -==================================================================================================== - -==================================================================================================== -LIBRARY: freetype2 -LIBRARY: zlib -ORIGIN: ../../../third_party/freetype2/src/gzip/ftzconf.h + ../../../third_party/freetype2/src/gzip/zlib.h -TYPE: LicenseType.zlib -FILE: ../../../third_party/freetype2/src/gzip/ftzconf.h -FILE: ../../../third_party/freetype2/src/gzip/zutil.h -FILE: ../../../third_party/zlib/zconf.h ----------------------------------------------------------------------------------------------------- -Copyright (C) 1995-2016 Jean-loup Gailly, Mark Adler - -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. - -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: - -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. -==================================================================================================== - -==================================================================================================== -LIBRARY: freetype2 -LIBRARY: zlib -ORIGIN: ../../../third_party/freetype2/src/gzip/inffast.c + ../../../third_party/freetype2/src/gzip/zlib.h -TYPE: LicenseType.zlib -FILE: ../../../third_party/freetype2/src/gzip/inffast.c -FILE: ../../../third_party/freetype2/src/gzip/inftrees.c -FILE: ../../../third_party/zlib/contrib/optimizations/inffast_chunk.c -FILE: ../../../third_party/zlib/inffast.c ----------------------------------------------------------------------------------------------------- -Copyright (C) 1995-2017 Mark Adler - -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. - -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: - -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. -==================================================================================================== - -==================================================================================================== -LIBRARY: freetype2 -LIBRARY: zlib -ORIGIN: ../../../third_party/freetype2/src/gzip/inffast.h + ../../../third_party/freetype2/src/gzip/zlib.h -TYPE: LicenseType.zlib -FILE: ../../../third_party/freetype2/src/gzip/inffast.h -FILE: ../../../third_party/zlib/inffast.h ----------------------------------------------------------------------------------------------------- -Copyright (C) 1995-2003, 2010 Mark Adler - -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. - -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: - -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. -==================================================================================================== - -==================================================================================================== -LIBRARY: freetype2 -LIBRARY: zlib -ORIGIN: ../../../third_party/freetype2/src/gzip/inftrees.h + ../../../third_party/freetype2/src/gzip/zlib.h -TYPE: LicenseType.zlib -FILE: ../../../third_party/freetype2/src/gzip/inftrees.h -FILE: ../../../third_party/zlib/inftrees.h ----------------------------------------------------------------------------------------------------- -Copyright (C) 1995-2005, 2010 Mark Adler - -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. - -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: - -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. -==================================================================================================== - -==================================================================================================== -LIBRARY: freetype2 -LIBRARY: zlib -ORIGIN: ../../../third_party/freetype2/src/gzip/zutil.c + ../../../third_party/freetype2/src/gzip/zlib.h -TYPE: LicenseType.zlib -FILE: ../../../third_party/freetype2/src/gzip/zutil.c -FILE: ../../../third_party/zlib/zutil.c ----------------------------------------------------------------------------------------------------- -Copyright (C) 1995-2017 Jean-loup Gailly - -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. - -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: - -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. -==================================================================================================== - -==================================================================================================== -LIBRARY: freetype2 -ORIGIN: ../../../third_party/freetype2/docs/FTL.TXT -TYPE: LicenseType.freetype -FILE: ../../../third_party/freetype2/.gitlab-ci.yml -FILE: ../../../third_party/freetype2/.gitmodules -FILE: ../../../third_party/freetype2/devel/ft2build.h -FILE: ../../../third_party/freetype2/devel/ftoption.h -FILE: ../../../third_party/freetype2/include/freetype-flutter-config/freetype/config/public-macros.h -FILE: ../../../third_party/freetype2/include/freetype-flutter-config/ftmodule.h -FILE: ../../../third_party/freetype2/include/freetype-flutter-config/ftoption.h -FILE: ../../../third_party/freetype2/include/freetype/config/ftconfig.h -FILE: ../../../third_party/freetype2/include/freetype/config/ftheader.h -FILE: ../../../third_party/freetype2/include/freetype/config/ftmodule.h -FILE: ../../../third_party/freetype2/include/freetype/config/ftoption.h -FILE: ../../../third_party/freetype2/include/freetype/config/ftstdlib.h -FILE: ../../../third_party/freetype2/include/freetype/config/integer-types.h -FILE: ../../../third_party/freetype2/include/freetype/config/mac-support.h -FILE: ../../../third_party/freetype2/include/freetype/config/public-macros.h -FILE: ../../../third_party/freetype2/include/freetype/freetype.h -FILE: ../../../third_party/freetype2/include/freetype/ftadvanc.h -FILE: ../../../third_party/freetype2/include/freetype/ftbbox.h -FILE: ../../../third_party/freetype2/include/freetype/ftbdf.h -FILE: ../../../third_party/freetype2/include/freetype/ftbitmap.h -FILE: ../../../third_party/freetype2/include/freetype/ftbzip2.h -FILE: ../../../third_party/freetype2/include/freetype/ftcache.h -FILE: ../../../third_party/freetype2/include/freetype/ftchapters.h -FILE: ../../../third_party/freetype2/include/freetype/ftcid.h -FILE: ../../../third_party/freetype2/include/freetype/ftcolor.h -FILE: ../../../third_party/freetype2/include/freetype/ftdriver.h -FILE: ../../../third_party/freetype2/include/freetype/fterrdef.h -FILE: ../../../third_party/freetype2/include/freetype/fterrors.h -FILE: ../../../third_party/freetype2/include/freetype/ftfntfmt.h -FILE: ../../../third_party/freetype2/include/freetype/ftgasp.h -FILE: ../../../third_party/freetype2/include/freetype/ftglyph.h -FILE: ../../../third_party/freetype2/include/freetype/ftgxval.h -FILE: ../../../third_party/freetype2/include/freetype/ftgzip.h -FILE: ../../../third_party/freetype2/include/freetype/ftimage.h -FILE: ../../../third_party/freetype2/include/freetype/ftincrem.h -FILE: ../../../third_party/freetype2/include/freetype/ftlcdfil.h -FILE: ../../../third_party/freetype2/include/freetype/ftlist.h -FILE: ../../../third_party/freetype2/include/freetype/ftlogging.h -FILE: ../../../third_party/freetype2/include/freetype/ftlzw.h -FILE: ../../../third_party/freetype2/include/freetype/ftmac.h -FILE: ../../../third_party/freetype2/include/freetype/ftmm.h -FILE: ../../../third_party/freetype2/include/freetype/ftmodapi.h -FILE: ../../../third_party/freetype2/include/freetype/ftmoderr.h -FILE: ../../../third_party/freetype2/include/freetype/ftotval.h -FILE: ../../../third_party/freetype2/include/freetype/ftoutln.h -FILE: ../../../third_party/freetype2/include/freetype/ftparams.h -FILE: ../../../third_party/freetype2/include/freetype/ftpfr.h -FILE: ../../../third_party/freetype2/include/freetype/ftrender.h -FILE: ../../../third_party/freetype2/include/freetype/ftsizes.h -FILE: ../../../third_party/freetype2/include/freetype/ftsnames.h -FILE: ../../../third_party/freetype2/include/freetype/ftstroke.h -FILE: ../../../third_party/freetype2/include/freetype/ftsynth.h -FILE: ../../../third_party/freetype2/include/freetype/ftsystem.h -FILE: ../../../third_party/freetype2/include/freetype/fttrigon.h -FILE: ../../../third_party/freetype2/include/freetype/fttypes.h -FILE: ../../../third_party/freetype2/include/freetype/ftwinfnt.h -FILE: ../../../third_party/freetype2/include/freetype/internal/autohint.h -FILE: ../../../third_party/freetype2/include/freetype/internal/cffotypes.h -FILE: ../../../third_party/freetype2/include/freetype/internal/cfftypes.h -FILE: ../../../third_party/freetype2/include/freetype/internal/compiler-macros.h -FILE: ../../../third_party/freetype2/include/freetype/internal/ftcalc.h -FILE: ../../../third_party/freetype2/include/freetype/internal/ftdebug.h -FILE: ../../../third_party/freetype2/include/freetype/internal/ftdrv.h -FILE: ../../../third_party/freetype2/include/freetype/internal/ftgloadr.h -FILE: ../../../third_party/freetype2/include/freetype/internal/ftmemory.h -FILE: ../../../third_party/freetype2/include/freetype/internal/ftobjs.h -FILE: ../../../third_party/freetype2/include/freetype/internal/ftpsprop.h -FILE: ../../../third_party/freetype2/include/freetype/internal/ftrfork.h -FILE: ../../../third_party/freetype2/include/freetype/internal/ftserv.h -FILE: ../../../third_party/freetype2/include/freetype/internal/ftstream.h -FILE: ../../../third_party/freetype2/include/freetype/internal/fttrace.h -FILE: ../../../third_party/freetype2/include/freetype/internal/ftvalid.h -FILE: ../../../third_party/freetype2/include/freetype/internal/psaux.h -FILE: ../../../third_party/freetype2/include/freetype/internal/pshints.h -FILE: ../../../third_party/freetype2/include/freetype/internal/services/svbdf.h -FILE: ../../../third_party/freetype2/include/freetype/internal/services/svcfftl.h -FILE: ../../../third_party/freetype2/include/freetype/internal/services/svcid.h -FILE: ../../../third_party/freetype2/include/freetype/internal/services/svfntfmt.h -FILE: ../../../third_party/freetype2/include/freetype/internal/services/svgldict.h -FILE: ../../../third_party/freetype2/include/freetype/internal/services/svgxval.h -FILE: ../../../third_party/freetype2/include/freetype/internal/services/svkern.h -FILE: ../../../third_party/freetype2/include/freetype/internal/services/svmetric.h -FILE: ../../../third_party/freetype2/include/freetype/internal/services/svmm.h -FILE: ../../../third_party/freetype2/include/freetype/internal/services/svotval.h -FILE: ../../../third_party/freetype2/include/freetype/internal/services/svpfr.h -FILE: ../../../third_party/freetype2/include/freetype/internal/services/svpostnm.h -FILE: ../../../third_party/freetype2/include/freetype/internal/services/svprop.h -FILE: ../../../third_party/freetype2/include/freetype/internal/services/svpscmap.h -FILE: ../../../third_party/freetype2/include/freetype/internal/services/svpsinfo.h -FILE: ../../../third_party/freetype2/include/freetype/internal/services/svsfnt.h -FILE: ../../../third_party/freetype2/include/freetype/internal/services/svttcmap.h -FILE: ../../../third_party/freetype2/include/freetype/internal/services/svtteng.h -FILE: ../../../third_party/freetype2/include/freetype/internal/services/svttglyf.h -FILE: ../../../third_party/freetype2/include/freetype/internal/services/svwinfnt.h -FILE: ../../../third_party/freetype2/include/freetype/internal/sfnt.h -FILE: ../../../third_party/freetype2/include/freetype/internal/svginterface.h -FILE: ../../../third_party/freetype2/include/freetype/internal/t1types.h -FILE: ../../../third_party/freetype2/include/freetype/internal/tttypes.h -FILE: ../../../third_party/freetype2/include/freetype/internal/wofftypes.h -FILE: ../../../third_party/freetype2/include/freetype/otsvg.h -FILE: ../../../third_party/freetype2/include/freetype/t1tables.h -FILE: ../../../third_party/freetype2/include/freetype/ttnameid.h -FILE: ../../../third_party/freetype2/include/freetype/tttables.h -FILE: ../../../third_party/freetype2/include/freetype/tttags.h -FILE: ../../../third_party/freetype2/include/ft2build.h -FILE: ../../../third_party/freetype2/meson.build -FILE: ../../../third_party/freetype2/modules.cfg -FILE: ../../../third_party/freetype2/src/autofit/afblue.c -FILE: ../../../third_party/freetype2/src/autofit/afblue.cin -FILE: ../../../third_party/freetype2/src/autofit/afblue.dat -FILE: ../../../third_party/freetype2/src/autofit/afblue.h -FILE: ../../../third_party/freetype2/src/autofit/afblue.hin -FILE: ../../../third_party/freetype2/src/autofit/afcjk.c -FILE: ../../../third_party/freetype2/src/autofit/afcjk.h -FILE: ../../../third_party/freetype2/src/autofit/afcover.h -FILE: ../../../third_party/freetype2/src/autofit/afdummy.c -FILE: ../../../third_party/freetype2/src/autofit/afdummy.h -FILE: ../../../third_party/freetype2/src/autofit/aferrors.h -FILE: ../../../third_party/freetype2/src/autofit/afglobal.c -FILE: ../../../third_party/freetype2/src/autofit/afglobal.h -FILE: ../../../third_party/freetype2/src/autofit/afhints.c -FILE: ../../../third_party/freetype2/src/autofit/afhints.h -FILE: ../../../third_party/freetype2/src/autofit/afindic.c -FILE: ../../../third_party/freetype2/src/autofit/afindic.h -FILE: ../../../third_party/freetype2/src/autofit/aflatin.c -FILE: ../../../third_party/freetype2/src/autofit/aflatin.h -FILE: ../../../third_party/freetype2/src/autofit/afloader.c -FILE: ../../../third_party/freetype2/src/autofit/afloader.h -FILE: ../../../third_party/freetype2/src/autofit/afmodule.c -FILE: ../../../third_party/freetype2/src/autofit/afmodule.h -FILE: ../../../third_party/freetype2/src/autofit/afranges.c -FILE: ../../../third_party/freetype2/src/autofit/afranges.h -FILE: ../../../third_party/freetype2/src/autofit/afscript.h -FILE: ../../../third_party/freetype2/src/autofit/afshaper.c -FILE: ../../../third_party/freetype2/src/autofit/afshaper.h -FILE: ../../../third_party/freetype2/src/autofit/afstyles.h -FILE: ../../../third_party/freetype2/src/autofit/aftypes.h -FILE: ../../../third_party/freetype2/src/autofit/afws-decl.h -FILE: ../../../third_party/freetype2/src/autofit/afws-iter.h -FILE: ../../../third_party/freetype2/src/autofit/autofit.c -FILE: ../../../third_party/freetype2/src/base/ftadvanc.c -FILE: ../../../third_party/freetype2/src/base/ftbase.c -FILE: ../../../third_party/freetype2/src/base/ftbase.h -FILE: ../../../third_party/freetype2/src/base/ftbbox.c -FILE: ../../../third_party/freetype2/src/base/ftbdf.c -FILE: ../../../third_party/freetype2/src/base/ftbitmap.c -FILE: ../../../third_party/freetype2/src/base/ftcalc.c -FILE: ../../../third_party/freetype2/src/base/ftcid.c -FILE: ../../../third_party/freetype2/src/base/ftcolor.c -FILE: ../../../third_party/freetype2/src/base/ftdbgmem.c -FILE: ../../../third_party/freetype2/src/base/ftdebug.c -FILE: ../../../third_party/freetype2/src/base/fterrors.c -FILE: ../../../third_party/freetype2/src/base/ftfntfmt.c -FILE: ../../../third_party/freetype2/src/base/ftfstype.c -FILE: ../../../third_party/freetype2/src/base/ftgasp.c -FILE: ../../../third_party/freetype2/src/base/ftgloadr.c -FILE: ../../../third_party/freetype2/src/base/ftglyph.c -FILE: ../../../third_party/freetype2/src/base/ftgxval.c -FILE: ../../../third_party/freetype2/src/base/ftinit.c -FILE: ../../../third_party/freetype2/src/base/ftlcdfil.c -FILE: ../../../third_party/freetype2/src/base/ftmac.c -FILE: ../../../third_party/freetype2/src/base/ftmm.c -FILE: ../../../third_party/freetype2/src/base/ftobjs.c -FILE: ../../../third_party/freetype2/src/base/ftotval.c -FILE: ../../../third_party/freetype2/src/base/ftoutln.c -FILE: ../../../third_party/freetype2/src/base/ftpatent.c -FILE: ../../../third_party/freetype2/src/base/ftpfr.c -FILE: ../../../third_party/freetype2/src/base/ftpsprop.c -FILE: ../../../third_party/freetype2/src/base/ftrfork.c -FILE: ../../../third_party/freetype2/src/base/ftsnames.c -FILE: ../../../third_party/freetype2/src/base/ftstream.c -FILE: ../../../third_party/freetype2/src/base/ftstroke.c -FILE: ../../../third_party/freetype2/src/base/ftsynth.c -FILE: ../../../third_party/freetype2/src/base/ftsystem.c -FILE: ../../../third_party/freetype2/src/base/fttrigon.c -FILE: ../../../third_party/freetype2/src/base/fttype1.c -FILE: ../../../third_party/freetype2/src/base/ftutil.c -FILE: ../../../third_party/freetype2/src/base/ftver.rc -FILE: ../../../third_party/freetype2/src/base/ftwinfnt.c -FILE: ../../../third_party/freetype2/src/base/md5.c -FILE: ../../../third_party/freetype2/src/base/md5.h -FILE: ../../../third_party/freetype2/src/bzip2/ftbzip2.c -FILE: ../../../third_party/freetype2/src/cache/ftcache.c -FILE: ../../../third_party/freetype2/src/cache/ftcbasic.c -FILE: ../../../third_party/freetype2/src/cache/ftccache.c -FILE: ../../../third_party/freetype2/src/cache/ftccache.h -FILE: ../../../third_party/freetype2/src/cache/ftccback.h -FILE: ../../../third_party/freetype2/src/cache/ftccmap.c -FILE: ../../../third_party/freetype2/src/cache/ftcerror.h -FILE: ../../../third_party/freetype2/src/cache/ftcglyph.c -FILE: ../../../third_party/freetype2/src/cache/ftcglyph.h -FILE: ../../../third_party/freetype2/src/cache/ftcimage.c -FILE: ../../../third_party/freetype2/src/cache/ftcimage.h -FILE: ../../../third_party/freetype2/src/cache/ftcmanag.c -FILE: ../../../third_party/freetype2/src/cache/ftcmanag.h -FILE: ../../../third_party/freetype2/src/cache/ftcmru.c -FILE: ../../../third_party/freetype2/src/cache/ftcmru.h -FILE: ../../../third_party/freetype2/src/cache/ftcsbits.c -FILE: ../../../third_party/freetype2/src/cache/ftcsbits.h -FILE: ../../../third_party/freetype2/src/cff/cff.c -FILE: ../../../third_party/freetype2/src/cff/cffcmap.c -FILE: ../../../third_party/freetype2/src/cff/cffcmap.h -FILE: ../../../third_party/freetype2/src/cff/cffdrivr.c -FILE: ../../../third_party/freetype2/src/cff/cffdrivr.h -FILE: ../../../third_party/freetype2/src/cff/cfferrs.h -FILE: ../../../third_party/freetype2/src/cff/cffgload.c -FILE: ../../../third_party/freetype2/src/cff/cffgload.h -FILE: ../../../third_party/freetype2/src/cff/cffload.c -FILE: ../../../third_party/freetype2/src/cff/cffload.h -FILE: ../../../third_party/freetype2/src/cff/cffobjs.c -FILE: ../../../third_party/freetype2/src/cff/cffobjs.h -FILE: ../../../third_party/freetype2/src/cff/cffparse.c -FILE: ../../../third_party/freetype2/src/cff/cffparse.h -FILE: ../../../third_party/freetype2/src/cff/cfftoken.h -FILE: ../../../third_party/freetype2/src/cid/ciderrs.h -FILE: ../../../third_party/freetype2/src/cid/cidgload.c -FILE: ../../../third_party/freetype2/src/cid/cidgload.h -FILE: ../../../third_party/freetype2/src/cid/cidload.c -FILE: ../../../third_party/freetype2/src/cid/cidload.h -FILE: ../../../third_party/freetype2/src/cid/cidobjs.c -FILE: ../../../third_party/freetype2/src/cid/cidobjs.h -FILE: ../../../third_party/freetype2/src/cid/cidparse.c -FILE: ../../../third_party/freetype2/src/cid/cidparse.h -FILE: ../../../third_party/freetype2/src/cid/cidriver.c -FILE: ../../../third_party/freetype2/src/cid/cidriver.h -FILE: ../../../third_party/freetype2/src/cid/cidtoken.h -FILE: ../../../third_party/freetype2/src/cid/type1cid.c -FILE: ../../../third_party/freetype2/src/dlg/dlgwrap.c -FILE: ../../../third_party/freetype2/src/gxvalid/gxvalid.c -FILE: ../../../third_party/freetype2/src/gxvalid/gxvalid.h -FILE: ../../../third_party/freetype2/src/gxvalid/gxvbsln.c -FILE: ../../../third_party/freetype2/src/gxvalid/gxvcommn.c -FILE: ../../../third_party/freetype2/src/gxvalid/gxvcommn.h -FILE: ../../../third_party/freetype2/src/gxvalid/gxverror.h -FILE: ../../../third_party/freetype2/src/gxvalid/gxvfeat.c -FILE: ../../../third_party/freetype2/src/gxvalid/gxvfeat.h -FILE: ../../../third_party/freetype2/src/gxvalid/gxvfgen.c -FILE: ../../../third_party/freetype2/src/gxvalid/gxvjust.c -FILE: ../../../third_party/freetype2/src/gxvalid/gxvkern.c -FILE: ../../../third_party/freetype2/src/gxvalid/gxvlcar.c -FILE: ../../../third_party/freetype2/src/gxvalid/gxvmod.c -FILE: ../../../third_party/freetype2/src/gxvalid/gxvmod.h -FILE: ../../../third_party/freetype2/src/gxvalid/gxvmort.c -FILE: ../../../third_party/freetype2/src/gxvalid/gxvmort.h -FILE: ../../../third_party/freetype2/src/gxvalid/gxvmort0.c -FILE: ../../../third_party/freetype2/src/gxvalid/gxvmort1.c -FILE: ../../../third_party/freetype2/src/gxvalid/gxvmort2.c -FILE: ../../../third_party/freetype2/src/gxvalid/gxvmort4.c -FILE: ../../../third_party/freetype2/src/gxvalid/gxvmort5.c -FILE: ../../../third_party/freetype2/src/gxvalid/gxvmorx.c -FILE: ../../../third_party/freetype2/src/gxvalid/gxvmorx.h -FILE: ../../../third_party/freetype2/src/gxvalid/gxvmorx0.c -FILE: ../../../third_party/freetype2/src/gxvalid/gxvmorx1.c -FILE: ../../../third_party/freetype2/src/gxvalid/gxvmorx2.c -FILE: ../../../third_party/freetype2/src/gxvalid/gxvmorx4.c -FILE: ../../../third_party/freetype2/src/gxvalid/gxvmorx5.c -FILE: ../../../third_party/freetype2/src/gxvalid/gxvopbd.c -FILE: ../../../third_party/freetype2/src/gxvalid/gxvprop.c -FILE: ../../../third_party/freetype2/src/gxvalid/gxvtrak.c -FILE: ../../../third_party/freetype2/src/gzip/ftgzip.c -FILE: ../../../third_party/freetype2/src/lzw/ftlzw.c -FILE: ../../../third_party/freetype2/src/lzw/ftzopen.c -FILE: ../../../third_party/freetype2/src/lzw/ftzopen.h -FILE: ../../../third_party/freetype2/src/otvalid/otvalid.c -FILE: ../../../third_party/freetype2/src/otvalid/otvalid.h -FILE: ../../../third_party/freetype2/src/otvalid/otvbase.c -FILE: ../../../third_party/freetype2/src/otvalid/otvcommn.c -FILE: ../../../third_party/freetype2/src/otvalid/otvcommn.h -FILE: ../../../third_party/freetype2/src/otvalid/otverror.h -FILE: ../../../third_party/freetype2/src/otvalid/otvgdef.c -FILE: ../../../third_party/freetype2/src/otvalid/otvgpos.c -FILE: ../../../third_party/freetype2/src/otvalid/otvgpos.h -FILE: ../../../third_party/freetype2/src/otvalid/otvgsub.c -FILE: ../../../third_party/freetype2/src/otvalid/otvjstf.c -FILE: ../../../third_party/freetype2/src/otvalid/otvmath.c -FILE: ../../../third_party/freetype2/src/otvalid/otvmod.c -FILE: ../../../third_party/freetype2/src/otvalid/otvmod.h -FILE: ../../../third_party/freetype2/src/pcf/pcferror.h -FILE: ../../../third_party/freetype2/src/pfr/pfr.c -FILE: ../../../third_party/freetype2/src/pfr/pfrcmap.c -FILE: ../../../third_party/freetype2/src/pfr/pfrcmap.h -FILE: ../../../third_party/freetype2/src/pfr/pfrdrivr.c -FILE: ../../../third_party/freetype2/src/pfr/pfrdrivr.h -FILE: ../../../third_party/freetype2/src/pfr/pfrerror.h -FILE: ../../../third_party/freetype2/src/pfr/pfrgload.c -FILE: ../../../third_party/freetype2/src/pfr/pfrgload.h -FILE: ../../../third_party/freetype2/src/pfr/pfrload.c -FILE: ../../../third_party/freetype2/src/pfr/pfrload.h -FILE: ../../../third_party/freetype2/src/pfr/pfrobjs.c -FILE: ../../../third_party/freetype2/src/pfr/pfrobjs.h -FILE: ../../../third_party/freetype2/src/pfr/pfrsbit.c -FILE: ../../../third_party/freetype2/src/pfr/pfrsbit.h -FILE: ../../../third_party/freetype2/src/pfr/pfrtypes.h -FILE: ../../../third_party/freetype2/src/psaux/afmparse.c -FILE: ../../../third_party/freetype2/src/psaux/afmparse.h -FILE: ../../../third_party/freetype2/src/psaux/cffdecode.c -FILE: ../../../third_party/freetype2/src/psaux/cffdecode.h -FILE: ../../../third_party/freetype2/src/psaux/psarrst.c -FILE: ../../../third_party/freetype2/src/psaux/psarrst.h -FILE: ../../../third_party/freetype2/src/psaux/psaux.c -FILE: ../../../third_party/freetype2/src/psaux/psauxerr.h -FILE: ../../../third_party/freetype2/src/psaux/psauxmod.c -FILE: ../../../third_party/freetype2/src/psaux/psauxmod.h -FILE: ../../../third_party/freetype2/src/psaux/psblues.c -FILE: ../../../third_party/freetype2/src/psaux/psblues.h -FILE: ../../../third_party/freetype2/src/psaux/psconv.c -FILE: ../../../third_party/freetype2/src/psaux/psconv.h -FILE: ../../../third_party/freetype2/src/psaux/pserror.c -FILE: ../../../third_party/freetype2/src/psaux/pserror.h -FILE: ../../../third_party/freetype2/src/psaux/psfixed.h -FILE: ../../../third_party/freetype2/src/psaux/psfont.c -FILE: ../../../third_party/freetype2/src/psaux/psfont.h -FILE: ../../../third_party/freetype2/src/psaux/psft.c -FILE: ../../../third_party/freetype2/src/psaux/psft.h -FILE: ../../../third_party/freetype2/src/psaux/psglue.h -FILE: ../../../third_party/freetype2/src/psaux/pshints.c -FILE: ../../../third_party/freetype2/src/psaux/pshints.h -FILE: ../../../third_party/freetype2/src/psaux/psintrp.c -FILE: ../../../third_party/freetype2/src/psaux/psintrp.h -FILE: ../../../third_party/freetype2/src/psaux/psobjs.c -FILE: ../../../third_party/freetype2/src/psaux/psobjs.h -FILE: ../../../third_party/freetype2/src/psaux/psread.c -FILE: ../../../third_party/freetype2/src/psaux/psread.h -FILE: ../../../third_party/freetype2/src/psaux/psstack.c -FILE: ../../../third_party/freetype2/src/psaux/psstack.h -FILE: ../../../third_party/freetype2/src/psaux/pstypes.h -FILE: ../../../third_party/freetype2/src/psaux/t1cmap.c -FILE: ../../../third_party/freetype2/src/psaux/t1cmap.h -FILE: ../../../third_party/freetype2/src/psaux/t1decode.c -FILE: ../../../third_party/freetype2/src/psaux/t1decode.h -FILE: ../../../third_party/freetype2/src/pshinter/pshalgo.c -FILE: ../../../third_party/freetype2/src/pshinter/pshalgo.h -FILE: ../../../third_party/freetype2/src/pshinter/pshglob.c -FILE: ../../../third_party/freetype2/src/pshinter/pshglob.h -FILE: ../../../third_party/freetype2/src/pshinter/pshinter.c -FILE: ../../../third_party/freetype2/src/pshinter/pshmod.c -FILE: ../../../third_party/freetype2/src/pshinter/pshmod.h -FILE: ../../../third_party/freetype2/src/pshinter/pshnterr.h -FILE: ../../../third_party/freetype2/src/pshinter/pshrec.c -FILE: ../../../third_party/freetype2/src/pshinter/pshrec.h -FILE: ../../../third_party/freetype2/src/psnames/psmodule.c -FILE: ../../../third_party/freetype2/src/psnames/psmodule.h -FILE: ../../../third_party/freetype2/src/psnames/psnamerr.h -FILE: ../../../third_party/freetype2/src/psnames/psnames.c -FILE: ../../../third_party/freetype2/src/psnames/pstables.h -FILE: ../../../third_party/freetype2/src/raster/ftmisc.h -FILE: ../../../third_party/freetype2/src/raster/ftraster.c -FILE: ../../../third_party/freetype2/src/raster/ftraster.h -FILE: ../../../third_party/freetype2/src/raster/ftrend1.c -FILE: ../../../third_party/freetype2/src/raster/ftrend1.h -FILE: ../../../third_party/freetype2/src/raster/raster.c -FILE: ../../../third_party/freetype2/src/raster/rasterrs.h -FILE: ../../../third_party/freetype2/src/sdf/ftbsdf.c -FILE: ../../../third_party/freetype2/src/sdf/ftsdf.c -FILE: ../../../third_party/freetype2/src/sdf/ftsdf.h -FILE: ../../../third_party/freetype2/src/sdf/ftsdfcommon.c -FILE: ../../../third_party/freetype2/src/sdf/ftsdfcommon.h -FILE: ../../../third_party/freetype2/src/sdf/ftsdferrs.h -FILE: ../../../third_party/freetype2/src/sdf/ftsdfrend.c -FILE: ../../../third_party/freetype2/src/sdf/ftsdfrend.h -FILE: ../../../third_party/freetype2/src/sdf/sdf.c -FILE: ../../../third_party/freetype2/src/sfnt/pngshim.c -FILE: ../../../third_party/freetype2/src/sfnt/pngshim.h -FILE: ../../../third_party/freetype2/src/sfnt/sfdriver.c -FILE: ../../../third_party/freetype2/src/sfnt/sfdriver.h -FILE: ../../../third_party/freetype2/src/sfnt/sferrors.h -FILE: ../../../third_party/freetype2/src/sfnt/sfnt.c -FILE: ../../../third_party/freetype2/src/sfnt/sfobjs.c -FILE: ../../../third_party/freetype2/src/sfnt/sfobjs.h -FILE: ../../../third_party/freetype2/src/sfnt/sfwoff.c -FILE: ../../../third_party/freetype2/src/sfnt/sfwoff.h -FILE: ../../../third_party/freetype2/src/sfnt/sfwoff2.c -FILE: ../../../third_party/freetype2/src/sfnt/sfwoff2.h -FILE: ../../../third_party/freetype2/src/sfnt/ttbdf.c -FILE: ../../../third_party/freetype2/src/sfnt/ttbdf.h -FILE: ../../../third_party/freetype2/src/sfnt/ttcmap.c -FILE: ../../../third_party/freetype2/src/sfnt/ttcmap.h -FILE: ../../../third_party/freetype2/src/sfnt/ttcmapc.h -FILE: ../../../third_party/freetype2/src/sfnt/ttcolr.c -FILE: ../../../third_party/freetype2/src/sfnt/ttcolr.h -FILE: ../../../third_party/freetype2/src/sfnt/ttcpal.c -FILE: ../../../third_party/freetype2/src/sfnt/ttcpal.h -FILE: ../../../third_party/freetype2/src/sfnt/ttkern.c -FILE: ../../../third_party/freetype2/src/sfnt/ttkern.h -FILE: ../../../third_party/freetype2/src/sfnt/ttload.c -FILE: ../../../third_party/freetype2/src/sfnt/ttload.h -FILE: ../../../third_party/freetype2/src/sfnt/ttmtx.c -FILE: ../../../third_party/freetype2/src/sfnt/ttmtx.h -FILE: ../../../third_party/freetype2/src/sfnt/ttpost.c -FILE: ../../../third_party/freetype2/src/sfnt/ttpost.h -FILE: ../../../third_party/freetype2/src/sfnt/ttsbit.c -FILE: ../../../third_party/freetype2/src/sfnt/ttsbit.h -FILE: ../../../third_party/freetype2/src/sfnt/ttsvg.c -FILE: ../../../third_party/freetype2/src/sfnt/ttsvg.h -FILE: ../../../third_party/freetype2/src/sfnt/woff2tags.c -FILE: ../../../third_party/freetype2/src/sfnt/woff2tags.h -FILE: ../../../third_party/freetype2/src/smooth/ftgrays.c -FILE: ../../../third_party/freetype2/src/smooth/ftgrays.h -FILE: ../../../third_party/freetype2/src/smooth/ftsmerrs.h -FILE: ../../../third_party/freetype2/src/smooth/ftsmooth.c -FILE: ../../../third_party/freetype2/src/smooth/ftsmooth.h -FILE: ../../../third_party/freetype2/src/smooth/smooth.c -FILE: ../../../third_party/freetype2/src/svg/ftsvg.c -FILE: ../../../third_party/freetype2/src/svg/ftsvg.h -FILE: ../../../third_party/freetype2/src/svg/svg.c -FILE: ../../../third_party/freetype2/src/svg/svgtypes.h -FILE: ../../../third_party/freetype2/src/truetype/truetype.c -FILE: ../../../third_party/freetype2/src/truetype/ttdriver.c -FILE: ../../../third_party/freetype2/src/truetype/ttdriver.h -FILE: ../../../third_party/freetype2/src/truetype/tterrors.h -FILE: ../../../third_party/freetype2/src/truetype/ttgload.c -FILE: ../../../third_party/freetype2/src/truetype/ttgload.h -FILE: ../../../third_party/freetype2/src/truetype/ttgxvar.c -FILE: ../../../third_party/freetype2/src/truetype/ttgxvar.h -FILE: ../../../third_party/freetype2/src/truetype/ttinterp.c -FILE: ../../../third_party/freetype2/src/truetype/ttinterp.h -FILE: ../../../third_party/freetype2/src/truetype/ttobjs.c -FILE: ../../../third_party/freetype2/src/truetype/ttobjs.h -FILE: ../../../third_party/freetype2/src/truetype/ttpload.c -FILE: ../../../third_party/freetype2/src/truetype/ttpload.h -FILE: ../../../third_party/freetype2/src/truetype/ttsubpix.c -FILE: ../../../third_party/freetype2/src/truetype/ttsubpix.h -FILE: ../../../third_party/freetype2/src/type1/t1afm.c -FILE: ../../../third_party/freetype2/src/type1/t1afm.h -FILE: ../../../third_party/freetype2/src/type1/t1driver.c -FILE: ../../../third_party/freetype2/src/type1/t1driver.h -FILE: ../../../third_party/freetype2/src/type1/t1errors.h -FILE: ../../../third_party/freetype2/src/type1/t1gload.c -FILE: ../../../third_party/freetype2/src/type1/t1gload.h -FILE: ../../../third_party/freetype2/src/type1/t1load.c -FILE: ../../../third_party/freetype2/src/type1/t1load.h -FILE: ../../../third_party/freetype2/src/type1/t1objs.c -FILE: ../../../third_party/freetype2/src/type1/t1objs.h -FILE: ../../../third_party/freetype2/src/type1/t1parse.c -FILE: ../../../third_party/freetype2/src/type1/t1parse.h -FILE: ../../../third_party/freetype2/src/type1/t1tokens.h -FILE: ../../../third_party/freetype2/src/type1/type1.c -FILE: ../../../third_party/freetype2/src/type42/t42drivr.c -FILE: ../../../third_party/freetype2/src/type42/t42drivr.h -FILE: ../../../third_party/freetype2/src/type42/t42error.h -FILE: ../../../third_party/freetype2/src/type42/t42objs.c -FILE: ../../../third_party/freetype2/src/type42/t42objs.h -FILE: ../../../third_party/freetype2/src/type42/t42parse.c -FILE: ../../../third_party/freetype2/src/type42/t42parse.h -FILE: ../../../third_party/freetype2/src/type42/t42types.h -FILE: ../../../third_party/freetype2/src/type42/type42.c -FILE: ../../../third_party/freetype2/src/winfonts/fnterrs.h -FILE: ../../../third_party/freetype2/src/winfonts/winfnt.c -FILE: ../../../third_party/freetype2/src/winfonts/winfnt.h -FILE: ../../../third_party/freetype2/subprojects/libpng.wrap -FILE: ../../../third_party/freetype2/subprojects/zlib.wrap ----------------------------------------------------------------------------------------------------- -The FreeType Project LICENSE - - 2006-Jan-27 - -Copyright 1996-2002, 2006 by -David Turner, Robert Wilhelm, and Werner Lemberg - -Introduction -============ - - The FreeType Project is distributed in several archive packages; - some of them may contain, in addition to the FreeType font engine, - various tools and contributions which rely on, or relate to, the - FreeType Project. - - This license applies to all files found in such packages, and - which do not fall under their own explicit license. The license - affects thus the FreeType font engine, the test programs, - documentation and makefiles, at the very least. - - This license was inspired by the BSD, Artistic, and IJG - (Independent JPEG Group) licenses, which all encourage inclusion - and use of free software in commercial and freeware products - alike. As a consequence, its main points are that: - - o We don't promise that this software works. However, we will be - interested in any kind of bug reports. (`as is' distribution) - - o You can use this software for whatever you want, in parts or - full form, without having to pay us. (`royalty-free' usage) - - o You may not pretend that you wrote this software. If you use - it, or only parts of it, in a program, you must acknowledge - somewhere in your documentation that you have used the - FreeType code. (`credits') - - We specifically permit and encourage the inclusion of this - software, with or without modifications, in commercial products. - We disclaim all warranties covering The FreeType Project and - assume no liability related to The FreeType Project. - - Finally, many people asked us for a preferred form for a - credit/disclaimer to use in compliance with this license. We thus - encourage you to use the following text: - - Portions of this software are copyright © The FreeType - Project (www.freetype.org). All rights reserved. - - Please replace with the value from the FreeType version you - actually use. - -Legal Terms -=========== - -0. Definitions - - Throughout this license, the terms `package', `FreeType Project', - and `FreeType archive' refer to the set of files originally - distributed by the authors (David Turner, Robert Wilhelm, and - Werner Lemberg) as the `FreeType Project', be they named as alpha, - beta or final release. - - `You' refers to the licensee, or person using the project, where - `using' is a generic term including compiling the project's source - code as well as linking it to form a `program' or `executable'. - This program is referred to as `a program using the FreeType - engine'. - - This license applies to all files distributed in the original - FreeType Project, including all source code, binaries and - documentation, unless otherwise stated in the file in its - original, unmodified form as distributed in the original archive. - If you are unsure whether or not a particular file is covered by - this license, you must contact us to verify this. - - The FreeType Project is copyright (C) 1996-2000 by David Turner, - Robert Wilhelm, and Werner Lemberg. All rights reserved except as - specified below. - -1. No Warranty - - THE FREETYPE PROJECT IS PROVIDED `AS IS' WITHOUT WARRANTY OF ANY - KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - PURPOSE. IN NO EVENT WILL ANY OF THE AUTHORS OR COPYRIGHT HOLDERS - BE LIABLE FOR ANY DAMAGES CAUSED BY THE USE OR THE INABILITY TO - USE, OF THE FREETYPE PROJECT. - -2. Redistribution - - This license grants a worldwide, royalty-free, perpetual and - irrevocable right and license to use, execute, perform, compile, - display, copy, create derivative works of, distribute and - sublicense the FreeType Project (in both source and object code - forms) and derivative works thereof for any purpose; and to - authorize others to exercise some or all of the rights granted - herein, subject to the following conditions: - - o Redistribution of source code must retain this license file - (`FTL.TXT') unaltered; any additions, deletions or changes to - the original files must be clearly indicated in accompanying - documentation. The copyright notices of the unaltered, - original files must be preserved in all copies of source - files. - - o Redistribution in binary form must provide a disclaimer that - states that the software is based in part of the work of the - FreeType Team, in the distribution documentation. We also - encourage you to put an URL to the FreeType web page in your - documentation, though this isn't mandatory. - - These conditions apply to any software derived from or based on - the FreeType Project, not just the unmodified files. If you use - our work, you must acknowledge us. However, no fee need be paid - to us. - -3. Advertising - - Neither the FreeType authors and contributors nor you shall use - the name of the other for commercial, advertising, or promotional - purposes without specific prior written permission. - - We suggest, but do not require, that you use one or more of the - following phrases to refer to this software in your documentation - or advertising materials: `FreeType Project', `FreeType Engine', - `FreeType library', or `FreeType Distribution'. - - As you have not signed this license, you are not required to - accept it. However, as the FreeType Project is copyrighted - material, only this license, or another one contracted with the - authors, grants you the right to use, distribute, and modify it. - Therefore, by using, distributing, or modifying the FreeType - Project, you indicate that you understand and accept all the terms - of this license. - -4. Contacts - - There are two mailing lists related to FreeType: - - o freetype@nongnu.org - - Discusses general use and applications of FreeType, as well as - future and wanted additions to the library and distribution. - If you are looking for support, start in this list if you - haven't found anything to help you in the documentation. - - o freetype-devel@nongnu.org - - Discusses bugs, as well as engine internals, design issues, - specific licenses, porting, etc. - - Our home page can be found at - - https://www.freetype.org - ---- end of FTL.TXT --- -==================================================================================================== - -==================================================================================================== -LIBRARY: freetype2 -ORIGIN: ../../../third_party/freetype2/include/freetype/internal/fthash.h -TYPE: LicenseType.mit -FILE: ../../../third_party/freetype2/include/freetype/internal/fthash.h -FILE: ../../../third_party/freetype2/src/base/fthash.c ----------------------------------------------------------------------------------------------------- -Copyright 2000 Computing Research Labs, New Mexico State University -Copyright 2001-2015 - Francesco Zappa Nardelli - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the "Software"), -to deal in the Software without restriction, including without limitation -the rights to use, copy, modify, merge, publish, distribute, sublicense, -and/or sell copies of the Software, and to permit persons to whom the -Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -THE COMPUTING RESEARCH LAB OR NEW MEXICO STATE UNIVERSITY BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT -OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR -THE USE OR OTHER DEALINGS IN THE SOFTWARE. -==================================================================================================== - -==================================================================================================== -LIBRARY: freetype2 -ORIGIN: ../../../third_party/freetype2/src/bdf/bdf.c -TYPE: LicenseType.mit -FILE: ../../../third_party/freetype2/src/bdf/bdf.c ----------------------------------------------------------------------------------------------------- -Copyright (C) 2001, 2002 by -Francesco Zappa Nardelli - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -==================================================================================================== - -==================================================================================================== -LIBRARY: freetype2 -ORIGIN: ../../../third_party/freetype2/src/bdf/bdf.h -TYPE: LicenseType.mit -FILE: ../../../third_party/freetype2/src/bdf/bdf.h ----------------------------------------------------------------------------------------------------- -Copyright 2000 Computing Research Labs, New Mexico State University -Copyright 2001-2004, 2011 Francesco Zappa Nardelli - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the "Software"), -to deal in the Software without restriction, including without limitation -the rights to use, copy, modify, merge, publish, distribute, sublicense, -and/or sell copies of the Software, and to permit persons to whom the -Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -THE COMPUTING RESEARCH LAB OR NEW MEXICO STATE UNIVERSITY BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT -OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR -THE USE OR OTHER DEALINGS IN THE SOFTWARE. -==================================================================================================== - -==================================================================================================== -LIBRARY: freetype2 -ORIGIN: ../../../third_party/freetype2/src/bdf/bdfdrivr.c -TYPE: LicenseType.mit -FILE: ../../../third_party/freetype2/src/bdf/bdfdrivr.c ----------------------------------------------------------------------------------------------------- -Copyright (C) 2001-2008, 2011, 2013, 2014 by -Francesco Zappa Nardelli - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -==================================================================================================== - -==================================================================================================== -LIBRARY: freetype2 -ORIGIN: ../../../third_party/freetype2/src/bdf/bdfdrivr.h -TYPE: LicenseType.mit -FILE: ../../../third_party/freetype2/src/bdf/bdfdrivr.h ----------------------------------------------------------------------------------------------------- -Copyright (C) 2001, 2002, 2003, 2004 by -Francesco Zappa Nardelli - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -==================================================================================================== - -==================================================================================================== -LIBRARY: freetype2 -ORIGIN: ../../../third_party/freetype2/src/bdf/bdferror.h -TYPE: LicenseType.mit -FILE: ../../../third_party/freetype2/src/bdf/bdferror.h ----------------------------------------------------------------------------------------------------- -Copyright 2001, 2002, 2012 Francesco Zappa Nardelli - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the "Software"), -to deal in the Software without restriction, including without limitation -the rights to use, copy, modify, merge, publish, distribute, sublicense, -and/or sell copies of the Software, and to permit persons to whom the -Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -THE COMPUTING RESEARCH LAB OR NEW MEXICO STATE UNIVERSITY BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT -OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR -THE USE OR OTHER DEALINGS IN THE SOFTWARE. -==================================================================================================== - -==================================================================================================== -LIBRARY: freetype2 -ORIGIN: ../../../third_party/freetype2/src/bdf/bdflib.c -TYPE: LicenseType.mit -FILE: ../../../third_party/freetype2/src/bdf/bdflib.c ----------------------------------------------------------------------------------------------------- -Copyright 2000 Computing Research Labs, New Mexico State University -Copyright 2001-2014 - Francesco Zappa Nardelli - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the "Software"), -to deal in the Software without restriction, including without limitation -the rights to use, copy, modify, merge, publish, distribute, sublicense, -and/or sell copies of the Software, and to permit persons to whom the -Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -THE COMPUTING RESEARCH LAB OR NEW MEXICO STATE UNIVERSITY BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT -OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR -THE USE OR OTHER DEALINGS IN THE SOFTWARE. -==================================================================================================== - -==================================================================================================== -LIBRARY: freetype2 -ORIGIN: ../../../third_party/freetype2/src/gzip/crc32.c + ../../../third_party/freetype2/src/gzip/zlib.h -TYPE: LicenseType.zlib -FILE: ../../../third_party/freetype2/src/gzip/crc32.c ----------------------------------------------------------------------------------------------------- -Copyright (C) 1995-2006, 2010, 2011, 2012, 2016 Mark Adler - -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. - -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: - -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. -==================================================================================================== - -==================================================================================================== -LIBRARY: freetype2 -ORIGIN: ../../../third_party/freetype2/src/gzip/gzguts.h + ../../../third_party/freetype2/src/gzip/zlib.h -TYPE: LicenseType.zlib -FILE: ../../../third_party/freetype2/src/gzip/gzguts.h ----------------------------------------------------------------------------------------------------- -Copyright (C) 2004, 2005, 2010, 2011, 2012, 2013, 2016 Mark Adler - -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. - -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: - -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. -==================================================================================================== - -==================================================================================================== -LIBRARY: freetype2 -ORIGIN: ../../../third_party/freetype2/src/gzip/infback.c + ../../../third_party/freetype2/src/gzip/zlib.h -TYPE: LicenseType.zlib -FILE: ../../../third_party/freetype2/src/gzip/infback.c -FILE: ../../../third_party/freetype2/src/gzip/inflate.c -FILE: ../../../third_party/freetype2/src/gzip/inflate.h ----------------------------------------------------------------------------------------------------- -Copyright (C) 1995-2016 Mark Adler - -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. - -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: - -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. -==================================================================================================== - -==================================================================================================== -LIBRARY: freetype2 -ORIGIN: ../../../third_party/freetype2/src/gzip/zlib.h -TYPE: LicenseType.zlib -FILE: ../../../third_party/freetype2/src/gzip/crc32.h -FILE: ../../../third_party/freetype2/src/gzip/inffixed.h -FILE: ../../../third_party/freetype2/src/gzip/patches/freetype-zlib.diff -FILE: ../../../third_party/freetype2/src/gzip/zlib.h ----------------------------------------------------------------------------------------------------- -Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler - -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. - -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: - -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. -==================================================================================================== - -==================================================================================================== -LIBRARY: freetype2 -ORIGIN: ../../../third_party/freetype2/src/pcf/pcf.c -TYPE: LicenseType.mit -FILE: ../../../third_party/freetype2/src/pcf/pcf.c ----------------------------------------------------------------------------------------------------- -Copyright 2000-2001, 2003 by -Francesco Zappa Nardelli - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -==================================================================================================== - -==================================================================================================== -LIBRARY: freetype2 -ORIGIN: ../../../third_party/freetype2/src/pcf/pcf.h -TYPE: LicenseType.mit -FILE: ../../../third_party/freetype2/src/pcf/pcf.h ----------------------------------------------------------------------------------------------------- -Copyright (C) 2000, 2001, 2002, 2003, 2006, 2010 by -Francesco Zappa Nardelli - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -==================================================================================================== - -==================================================================================================== -LIBRARY: freetype2 -ORIGIN: ../../../third_party/freetype2/src/pcf/pcfdrivr.c -TYPE: LicenseType.mit -FILE: ../../../third_party/freetype2/src/pcf/pcfdrivr.c ----------------------------------------------------------------------------------------------------- -Copyright (C) 2000-2004, 2006-2011, 2013, 2014 by -Francesco Zappa Nardelli - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -==================================================================================================== - -==================================================================================================== -LIBRARY: freetype2 -ORIGIN: ../../../third_party/freetype2/src/pcf/pcfdrivr.h -TYPE: LicenseType.mit -FILE: ../../../third_party/freetype2/src/pcf/pcfdrivr.h ----------------------------------------------------------------------------------------------------- -Copyright 2000-2001, 2002 by -Francesco Zappa Nardelli - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -==================================================================================================== - -==================================================================================================== -LIBRARY: freetype2 -ORIGIN: ../../../third_party/freetype2/src/pcf/pcfread.c -TYPE: LicenseType.mit -FILE: ../../../third_party/freetype2/src/pcf/pcfread.c ----------------------------------------------------------------------------------------------------- -Copyright 2000-2010, 2012-2014 by -Francesco Zappa Nardelli - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -==================================================================================================== - -==================================================================================================== -LIBRARY: freetype2 -ORIGIN: ../../../third_party/freetype2/src/pcf/pcfread.h -TYPE: LicenseType.mit -FILE: ../../../third_party/freetype2/src/pcf/pcfread.h ----------------------------------------------------------------------------------------------------- -Copyright 2003 by -Francesco Zappa Nardelli - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -==================================================================================================== - -==================================================================================================== -LIBRARY: freetype2 -ORIGIN: ../../../third_party/freetype2/src/pcf/pcfutil.c -TYPE: LicenseType.unknown -FILE: ../../../third_party/freetype2/src/pcf/pcfutil.c ----------------------------------------------------------------------------------------------------- -Copyright 1990, 1994, 1998 The Open Group - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -Except as contained in this notice, the name of The Open Group shall not be -used in advertising or otherwise to promote the sale, use or other dealings -in this Software without prior written authorization from The Open Group. -==================================================================================================== - -==================================================================================================== -LIBRARY: freetype2 -ORIGIN: ../../../third_party/freetype2/src/pcf/pcfutil.h -TYPE: LicenseType.mit -FILE: ../../../third_party/freetype2/src/pcf/pcfutil.h ----------------------------------------------------------------------------------------------------- -Copyright 2000, 2001, 2004 by -Francesco Zappa Nardelli - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -==================================================================================================== - -==================================================================================================== -LIBRARY: glfw -ORIGIN: ../../../third_party/glfw/LICENSE.md -TYPE: LicenseType.zlib -FILE: ../../../third_party/glfw/.appveyor.yml -FILE: ../../../third_party/glfw/CMake/MacOSXBundleInfo.plist.in -FILE: ../../../third_party/glfw/cmake_uninstall.cmake.in -FILE: ../../../third_party/glfw/docs/Doxyfile.in -FILE: ../../../third_party/glfw/docs/DoxygenLayout.xml -FILE: ../../../third_party/glfw/docs/build.dox -FILE: ../../../third_party/glfw/docs/compat.dox -FILE: ../../../third_party/glfw/docs/compile.dox -FILE: ../../../third_party/glfw/docs/context.dox -FILE: ../../../third_party/glfw/docs/extra.less -FILE: ../../../third_party/glfw/docs/footer.html -FILE: ../../../third_party/glfw/docs/header.html -FILE: ../../../third_party/glfw/docs/input.dox -FILE: ../../../third_party/glfw/docs/internal.dox -FILE: ../../../third_party/glfw/docs/intro.dox -FILE: ../../../third_party/glfw/docs/main.dox -FILE: ../../../third_party/glfw/docs/monitor.dox -FILE: ../../../third_party/glfw/docs/moving.dox -FILE: ../../../third_party/glfw/docs/news.dox -FILE: ../../../third_party/glfw/docs/quick.dox -FILE: ../../../third_party/glfw/docs/spaces.svg -FILE: ../../../third_party/glfw/docs/vulkan.dox -FILE: ../../../third_party/glfw/docs/window.dox -FILE: ../../../third_party/glfw/include/GLFW/glfw3.h -FILE: ../../../third_party/glfw/include/GLFW/glfw3native.h -FILE: ../../../third_party/glfw/src/cocoa_monitor.m -FILE: ../../../third_party/glfw/src/context.c -FILE: ../../../third_party/glfw/src/egl_context.c -FILE: ../../../third_party/glfw/src/egl_context.h -FILE: ../../../third_party/glfw/src/glfw3.pc.in -FILE: ../../../third_party/glfw/src/glfw3Config.cmake.in -FILE: ../../../third_party/glfw/src/glx_context.c -FILE: ../../../third_party/glfw/src/glx_context.h -FILE: ../../../third_party/glfw/src/init.c -FILE: ../../../third_party/glfw/src/input.c -FILE: ../../../third_party/glfw/src/internal.h -FILE: ../../../third_party/glfw/src/linux_joystick.c -FILE: ../../../third_party/glfw/src/monitor.c -FILE: ../../../third_party/glfw/src/posix_thread.c -FILE: ../../../third_party/glfw/src/posix_thread.h -FILE: ../../../third_party/glfw/src/posix_time.c -FILE: ../../../third_party/glfw/src/posix_time.h -FILE: ../../../third_party/glfw/src/vulkan.c -FILE: ../../../third_party/glfw/src/wgl_context.c -FILE: ../../../third_party/glfw/src/wgl_context.h -FILE: ../../../third_party/glfw/src/win32_init.c -FILE: ../../../third_party/glfw/src/win32_joystick.c -FILE: ../../../third_party/glfw/src/win32_monitor.c -FILE: ../../../third_party/glfw/src/win32_platform.h -FILE: ../../../third_party/glfw/src/win32_thread.c -FILE: ../../../third_party/glfw/src/win32_time.c -FILE: ../../../third_party/glfw/src/win32_window.c -FILE: ../../../third_party/glfw/src/x11_init.c -FILE: ../../../third_party/glfw/src/x11_monitor.c -FILE: ../../../third_party/glfw/src/x11_platform.h -FILE: ../../../third_party/glfw/src/x11_window.c -FILE: ../../../third_party/glfw/src/xkb_unicode.c ----------------------------------------------------------------------------------------------------- -Copyright (c) 2002-2006 Marcus Geelnard -Copyright (c) 2006-2016 Camilla Löwy - -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. - -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: - -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would - be appreciated but is not required. - -2. Altered source versions must be plainly marked as such, and must not - be misrepresented as being the original software. - -3. This notice may not be removed or altered from any source - distribution. -==================================================================================================== - -==================================================================================================== -LIBRARY: glfw -ORIGIN: ../../../third_party/glfw/src/cocoa_init.m -TYPE: LicenseType.zlib -FILE: ../../../third_party/glfw/src/cocoa_init.m -FILE: ../../../third_party/glfw/src/cocoa_platform.h -FILE: ../../../third_party/glfw/src/cocoa_time.c -FILE: ../../../third_party/glfw/src/cocoa_window.m -FILE: ../../../third_party/glfw/src/nsgl_context.h -FILE: ../../../third_party/glfw/src/nsgl_context.m ----------------------------------------------------------------------------------------------------- -Copyright (c) 2009-2016 Camilla Löwy - -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. - -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: - -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would - be appreciated but is not required. - -2. Altered source versions must be plainly marked as such, and must not - be misrepresented as being the original software. - -3. This notice may not be removed or altered from any source - distribution. -==================================================================================================== - -==================================================================================================== -LIBRARY: glfw -ORIGIN: ../../../third_party/glfw/src/cocoa_joystick.h -TYPE: LicenseType.zlib -FILE: ../../../third_party/glfw/src/cocoa_joystick.h -FILE: ../../../third_party/glfw/src/mappings.h -FILE: ../../../third_party/glfw/src/mappings.h.in -FILE: ../../../third_party/glfw/src/null_joystick.c -FILE: ../../../third_party/glfw/src/null_joystick.h -FILE: ../../../third_party/glfw/src/win32_joystick.h ----------------------------------------------------------------------------------------------------- -Copyright (c) 2006-2016 Camilla Löwy - -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. - -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: - -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would - be appreciated but is not required. - -2. Altered source versions must be plainly marked as such, and must not - be misrepresented as being the original software. - -3. This notice may not be removed or altered from any source - distribution. -==================================================================================================== - -==================================================================================================== -LIBRARY: glfw -ORIGIN: ../../../third_party/glfw/src/cocoa_joystick.m -TYPE: LicenseType.zlib -FILE: ../../../third_party/glfw/src/cocoa_joystick.m ----------------------------------------------------------------------------------------------------- -Copyright (c) 2009-2016 Camilla Löwy -Copyright (c) 2012 Torsten Walluhn - -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. - -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: - -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would - be appreciated but is not required. - -2. Altered source versions must be plainly marked as such, and must not - be misrepresented as being the original software. - -3. This notice may not be removed or altered from any source - distribution. -==================================================================================================== - -==================================================================================================== -LIBRARY: glfw -ORIGIN: ../../../third_party/glfw/src/glfw_config.h.in -TYPE: LicenseType.zlib -FILE: ../../../third_party/glfw/src/glfw_config.h.in ----------------------------------------------------------------------------------------------------- -Copyright (c) 2010-2016 Camilla Löwy - -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. - -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: - -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would - be appreciated but is not required. - -2. Altered source versions must be plainly marked as such, and must not - be misrepresented as being the original software. - -3. This notice may not be removed or altered from any source - distribution. -==================================================================================================== - -==================================================================================================== -LIBRARY: glfw -ORIGIN: ../../../third_party/glfw/src/linux_joystick.h -TYPE: LicenseType.zlib -FILE: ../../../third_party/glfw/src/linux_joystick.h -FILE: ../../../third_party/glfw/src/wl_init.c -FILE: ../../../third_party/glfw/src/wl_monitor.c -FILE: ../../../third_party/glfw/src/wl_platform.h -FILE: ../../../third_party/glfw/src/wl_window.c -FILE: ../../../third_party/glfw/src/xkb_unicode.h ----------------------------------------------------------------------------------------------------- -Copyright (c) 2014 Jonas Ådahl - -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. - -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: - -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would - be appreciated but is not required. - -2. Altered source versions must be plainly marked as such, and must not - be misrepresented as being the original software. - -3. This notice may not be removed or altered from any source - distribution. -==================================================================================================== - -==================================================================================================== -LIBRARY: glfw -ORIGIN: ../../../third_party/glfw/src/null_init.c -TYPE: LicenseType.zlib -FILE: ../../../third_party/glfw/src/null_init.c -FILE: ../../../third_party/glfw/src/null_monitor.c -FILE: ../../../third_party/glfw/src/null_platform.h -FILE: ../../../third_party/glfw/src/null_window.c -FILE: ../../../third_party/glfw/src/osmesa_context.c -FILE: ../../../third_party/glfw/src/osmesa_context.h ----------------------------------------------------------------------------------------------------- -Copyright (c) 2016 Google Inc. -Copyright (c) 2006-2016 Camilla Löwy - -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. - -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: - -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would - be appreciated but is not required. - -2. Altered source versions must be plainly marked as such, and must not - be misrepresented as being the original software. - -3. This notice may not be removed or altered from any source - distribution. -==================================================================================================== - -==================================================================================================== -LIBRARY: glfw -ORIGIN: ../../../third_party/glfw/src/window.c -TYPE: LicenseType.zlib -FILE: ../../../third_party/glfw/src/window.c ----------------------------------------------------------------------------------------------------- -Copyright (c) 2002-2006 Marcus Geelnard -Copyright (c) 2006-2016 Camilla Löwy -Copyright (c) 2012 Torsten Walluhn - -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. - -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: - -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would - be appreciated but is not required. - -2. Altered source versions must be plainly marked as such, and must not - be misrepresented as being the original software. - -3. This notice may not be removed or altered from any source - distribution. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/COPYING -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/.circleci/config.yml -FILE: ../../../third_party/harfbuzz/.codecov.yml -FILE: ../../../third_party/harfbuzz/.editorconfig -FILE: ../../../third_party/harfbuzz/THANKS -FILE: ../../../third_party/harfbuzz/TODO -FILE: ../../../third_party/harfbuzz/docs/HarfBuzz.png -FILE: ../../../third_party/harfbuzz/docs/HarfBuzz.svg -FILE: ../../../third_party/harfbuzz/docs/harfbuzz-docs.xml -FILE: ../../../third_party/harfbuzz/docs/meson.build -FILE: ../../../third_party/harfbuzz/docs/usermanual-buffers-language-script-and-direction.xml -FILE: ../../../third_party/harfbuzz/docs/usermanual-clusters.xml -FILE: ../../../third_party/harfbuzz/docs/usermanual-fonts-and-faces.xml -FILE: ../../../third_party/harfbuzz/docs/usermanual-getting-started.xml -FILE: ../../../third_party/harfbuzz/docs/usermanual-glyph-information.xml -FILE: ../../../third_party/harfbuzz/docs/usermanual-install-harfbuzz.xml -FILE: ../../../third_party/harfbuzz/docs/usermanual-integration.xml -FILE: ../../../third_party/harfbuzz/docs/usermanual-object-model.xml -FILE: ../../../third_party/harfbuzz/docs/usermanual-opentype-features.xml -FILE: ../../../third_party/harfbuzz/docs/usermanual-shaping-concepts.xml -FILE: ../../../third_party/harfbuzz/docs/usermanual-utilities.xml -FILE: ../../../third_party/harfbuzz/docs/usermanual-what-is-harfbuzz.xml -FILE: ../../../third_party/harfbuzz/docs/version.xml.in -FILE: ../../../third_party/harfbuzz/harfbuzz.doap -FILE: ../../../third_party/harfbuzz/meson.build -FILE: ../../../third_party/harfbuzz/perf/fonts/Amiri-Regular.ttf -FILE: ../../../third_party/harfbuzz/perf/fonts/NotoNastaliqUrdu-Regular.ttf -FILE: ../../../third_party/harfbuzz/perf/fonts/NotoSansDevanagari-Regular.ttf -FILE: ../../../third_party/harfbuzz/perf/fonts/Roboto-Regular.ttf -FILE: ../../../third_party/harfbuzz/perf/meson.build -FILE: ../../../third_party/harfbuzz/perf/perf-draw.hh -FILE: ../../../third_party/harfbuzz/perf/perf-extents.hh -FILE: ../../../third_party/harfbuzz/perf/perf-shaping.hh -FILE: ../../../third_party/harfbuzz/perf/perf.cc -FILE: ../../../third_party/harfbuzz/src/Makefile.sources -FILE: ../../../third_party/harfbuzz/src/harfbuzz-config.cmake.in -FILE: ../../../third_party/harfbuzz/src/harfbuzz-gobject.pc.in -FILE: ../../../third_party/harfbuzz/src/harfbuzz-icu.pc.in -FILE: ../../../third_party/harfbuzz/src/harfbuzz-subset.pc.in -FILE: ../../../third_party/harfbuzz/src/harfbuzz.cc -FILE: ../../../third_party/harfbuzz/src/harfbuzz.pc.in -FILE: ../../../third_party/harfbuzz/src/hb-ot-shape-complex-arabic-joining-list.hh -FILE: ../../../third_party/harfbuzz/src/hb-ot-shape-complex-arabic-table.hh -FILE: ../../../third_party/harfbuzz/src/hb-ot-shape-complex-indic-table.cc -FILE: ../../../third_party/harfbuzz/src/hb-ot-shape-complex-use-table.hh -FILE: ../../../third_party/harfbuzz/src/hb-ot-shape-complex-vowel-constraints.cc -FILE: ../../../third_party/harfbuzz/src/hb-ot-tag-table.hh -FILE: ../../../third_party/harfbuzz/src/hb-ucd-table.hh -FILE: ../../../third_party/harfbuzz/src/hb-unicode-emoji-table.hh -FILE: ../../../third_party/harfbuzz/src/meson.build -FILE: ../../../third_party/harfbuzz/src/update-unicode-tables.make -FILE: ../../../third_party/harfbuzz/subprojects/cairo.wrap -FILE: ../../../third_party/harfbuzz/subprojects/freetype2.wrap -FILE: ../../../third_party/harfbuzz/subprojects/glib.wrap -FILE: ../../../third_party/harfbuzz/subprojects/google-benchmark.wrap -FILE: ../../../third_party/harfbuzz/subprojects/packagefiles/ragel/meson.build -FILE: ../../../third_party/harfbuzz/subprojects/ragel.wrap -FILE: ../../../third_party/harfbuzz/subprojects/ttf-parser.wrap ----------------------------------------------------------------------------------------------------- -HarfBuzz is licensed under the so-called "Old MIT" license. Details follow. -For parts of HarfBuzz that are licensed under different licenses see individual -files names COPYING in subdirectories where applicable. - -Copyright © 2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020 Google, Inc. -Copyright © 2018,2019,2020 Ebrahim Byagowi -Copyright © 2019,2020 Facebook, Inc. -Copyright © 2012 Mozilla Foundation -Copyright © 2011 Codethink Limited -Copyright © 2008,2010 Nokia Corporation and/or its subsidiary(-ies) -Copyright © 2009 Keith Stribley -Copyright © 2009 Martin Hosken and SIL International -Copyright © 2007 Chris Wilson -Copyright © 2005,2006,2020,2021 Behdad Esfahbod -Copyright © 2005 David Turner -Copyright © 2004,2007,2008,2009,2010 Red Hat, Inc. -Copyright © 1998-2004 David Turner and Werner Lemberg - -For full copyright notices consult the individual files in the package. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/failing-alloc.c -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/failing-alloc.c -FILE: ../../../third_party/harfbuzz/src/hb-draw.hh ----------------------------------------------------------------------------------------------------- -Copyright © 2020 Ebrahim Byagowi - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-aat-layout-ankr-table.hh -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-aat-layout-ankr-table.hh -FILE: ../../../third_party/harfbuzz/src/hb-aat-layout-bsln-table.hh -FILE: ../../../third_party/harfbuzz/src/hb-aat-layout-feat-table.hh -FILE: ../../../third_party/harfbuzz/src/hb-aat-layout-just-table.hh -FILE: ../../../third_party/harfbuzz/src/hb-aat-layout.h -FILE: ../../../third_party/harfbuzz/src/hb-aat-ltag-table.hh -FILE: ../../../third_party/harfbuzz/src/hb-aat.h -FILE: ../../../third_party/harfbuzz/src/hb-ot-color-svg-table.hh -FILE: ../../../third_party/harfbuzz/src/hb-ot-gasp-table.hh -FILE: ../../../third_party/harfbuzz/src/hb-ot-metrics.h -FILE: ../../../third_party/harfbuzz/src/hb-ot-metrics.hh -FILE: ../../../third_party/harfbuzz/src/hb-ot-stat-table.hh ----------------------------------------------------------------------------------------------------- -Copyright © 2018 Ebrahim Byagowi - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-aat-layout-common.hh -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-aat-layout-common.hh -FILE: ../../../third_party/harfbuzz/src/hb-aat-layout-morx-table.hh -FILE: ../../../third_party/harfbuzz/src/hb-aat-layout.hh -FILE: ../../../third_party/harfbuzz/src/hb-debug.hh -FILE: ../../../third_party/harfbuzz/src/hb-kern.hh -FILE: ../../../third_party/harfbuzz/src/hb-ot-kern-table.hh -FILE: ../../../third_party/harfbuzz/src/hb-ot-post-macroman.hh -FILE: ../../../third_party/harfbuzz/src/hb-ot-var-avar-table.hh -FILE: ../../../third_party/harfbuzz/src/hb-ot-var-fvar-table.hh -FILE: ../../../third_party/harfbuzz/src/hb-ot-var-hvar-table.hh -FILE: ../../../third_party/harfbuzz/src/hb-ot-var-mvar-table.hh -FILE: ../../../third_party/harfbuzz/src/hb-ot-var.cc -FILE: ../../../third_party/harfbuzz/src/hb-ot-var.h -FILE: ../../../third_party/harfbuzz/src/hb-string-array.hh ----------------------------------------------------------------------------------------------------- -Copyright © 2017 Google, Inc. - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-aat-layout-kerx-table.hh -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-aat-layout-kerx-table.hh -FILE: ../../../third_party/harfbuzz/src/hb-aat-layout-trak-table.hh ----------------------------------------------------------------------------------------------------- -Copyright © 2018 Ebrahim Byagowi -Copyright © 2018 Google, Inc. - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-aat-layout-opbd-table.hh -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-aat-layout-opbd-table.hh -FILE: ../../../third_party/harfbuzz/src/hb-gdi.cc -FILE: ../../../third_party/harfbuzz/src/hb-gdi.h -FILE: ../../../third_party/harfbuzz/src/hb-number-parser.hh -FILE: ../../../third_party/harfbuzz/src/hb-number-parser.rl -FILE: ../../../third_party/harfbuzz/src/hb-number.cc -FILE: ../../../third_party/harfbuzz/src/hb-number.hh -FILE: ../../../third_party/harfbuzz/src/hb-ot-meta-table.hh -FILE: ../../../third_party/harfbuzz/src/hb-ot-meta.cc -FILE: ../../../third_party/harfbuzz/src/hb-ot-meta.h -FILE: ../../../third_party/harfbuzz/src/hb-style.cc -FILE: ../../../third_party/harfbuzz/src/hb-style.h -FILE: ../../../third_party/harfbuzz/src/test-number.cc -FILE: ../../../third_party/harfbuzz/src/test-ot-meta.cc ----------------------------------------------------------------------------------------------------- -Copyright © 2019 Ebrahim Byagowi - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-aat-layout.cc -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-aat-layout.cc ----------------------------------------------------------------------------------------------------- -Copyright © 2017 Google, Inc. -Copyright © 2018 Ebrahim Byagowi - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-aat-map.cc -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-aat-map.cc -FILE: ../../../third_party/harfbuzz/src/hb-ot-map.cc ----------------------------------------------------------------------------------------------------- -Copyright © 2009,2010 Red Hat, Inc. -Copyright © 2010,2011,2013 Google, Inc. - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-aat-map.hh -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-aat-map.hh -FILE: ../../../third_party/harfbuzz/src/hb-array.hh -FILE: ../../../third_party/harfbuzz/src/hb-map.cc -FILE: ../../../third_party/harfbuzz/src/hb-map.h -FILE: ../../../third_party/harfbuzz/src/hb-map.hh -FILE: ../../../third_party/harfbuzz/src/hb-meta.hh -FILE: ../../../third_party/harfbuzz/src/hb-null.hh -FILE: ../../../third_party/harfbuzz/src/hb-ot-deprecated.h -FILE: ../../../third_party/harfbuzz/src/hb-ot-face.cc -FILE: ../../../third_party/harfbuzz/src/hb-ot-hdmx-table.hh -FILE: ../../../third_party/harfbuzz/src/hb-ot-name-language-static.hh -FILE: ../../../third_party/harfbuzz/src/hb-ot-name-language.hh -FILE: ../../../third_party/harfbuzz/src/hb-ot-name.cc -FILE: ../../../third_party/harfbuzz/src/hb-ot-os2-unicode-ranges.hh -FILE: ../../../third_party/harfbuzz/src/hb-ot-shape-complex-khmer.hh -FILE: ../../../third_party/harfbuzz/src/hb-ot-shape-complex-myanmar.hh -FILE: ../../../third_party/harfbuzz/src/hb-ot-shape-complex-vowel-constraints.hh -FILE: ../../../third_party/harfbuzz/src/hb-static.cc -FILE: ../../../third_party/harfbuzz/src/hb-subset-input.cc -FILE: ../../../third_party/harfbuzz/src/hb-subset-input.hh -FILE: ../../../third_party/harfbuzz/src/hb-subset-plan.cc -FILE: ../../../third_party/harfbuzz/src/hb-subset-plan.hh -FILE: ../../../third_party/harfbuzz/src/hb-subset.cc -FILE: ../../../third_party/harfbuzz/src/hb-subset.h -FILE: ../../../third_party/harfbuzz/src/hb-subset.hh -FILE: ../../../third_party/harfbuzz/src/test-iter.cc -FILE: ../../../third_party/harfbuzz/src/test-ot-name.cc -FILE: ../../../third_party/harfbuzz/src/test-unicode-ranges.cc ----------------------------------------------------------------------------------------------------- -Copyright © 2018 Google, Inc. - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-algs.hh -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-algs.hh ----------------------------------------------------------------------------------------------------- -Copyright © 2017 Google, Inc. -Copyright © 2019 Facebook, Inc. - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-atomic.hh -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-atomic.hh -FILE: ../../../third_party/harfbuzz/src/hb-mutex.hh -FILE: ../../../third_party/harfbuzz/src/hb-object.hh ----------------------------------------------------------------------------------------------------- -Copyright © 2007 Chris Wilson -Copyright © 2009,2010 Red Hat, Inc. -Copyright © 2011,2012 Google, Inc. - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-bimap.hh -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-bimap.hh ----------------------------------------------------------------------------------------------------- -Copyright © 2019 Adobe Inc. - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-bit-page.hh -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-bit-page.hh -FILE: ../../../third_party/harfbuzz/src/hb-bit-set-invertible.hh -FILE: ../../../third_party/harfbuzz/src/hb-bit-set.hh -FILE: ../../../third_party/harfbuzz/src/hb-set.hh ----------------------------------------------------------------------------------------------------- -Copyright © 2012,2017 Google, Inc. -Copyright © 2021 Behdad Esfahbod - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-blob.cc -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-blob.cc ----------------------------------------------------------------------------------------------------- -Copyright © 2009 Red Hat, Inc. -Copyright © 2018 Ebrahim Byagowi - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-blob.h -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-blob.h -FILE: ../../../third_party/harfbuzz/src/hb-face.h -FILE: ../../../third_party/harfbuzz/src/hb-font.h -FILE: ../../../third_party/harfbuzz/src/hb-ot.h -FILE: ../../../third_party/harfbuzz/src/hb.h ----------------------------------------------------------------------------------------------------- -Copyright © 2009 Red Hat, Inc. - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-blob.hh -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-blob.hh ----------------------------------------------------------------------------------------------------- -Copyright © 2009 Red Hat, Inc. -Copyright © 2018 Google, Inc. - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-buffer-deserialize-json.hh -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-buffer-deserialize-json.hh -FILE: ../../../third_party/harfbuzz/src/hb-buffer-deserialize-json.rl -FILE: ../../../third_party/harfbuzz/src/hb-buffer-deserialize-text.hh -FILE: ../../../third_party/harfbuzz/src/hb-buffer-deserialize-text.rl -FILE: ../../../third_party/harfbuzz/src/hb-deprecated.h -FILE: ../../../third_party/harfbuzz/src/hb-ot-layout-jstf-table.hh -FILE: ../../../third_party/harfbuzz/src/hb-ot-shape-complex-hangul.cc ----------------------------------------------------------------------------------------------------- -Copyright © 2013 Google, Inc. - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-buffer-serialize.cc -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-buffer-serialize.cc ----------------------------------------------------------------------------------------------------- -Copyright © 2012,2013 Google, Inc. - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-buffer.cc -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-buffer.cc -FILE: ../../../third_party/harfbuzz/src/hb-buffer.hh ----------------------------------------------------------------------------------------------------- -Copyright © 1998-2004 David Turner and Werner Lemberg -Copyright © 2004,2007,2009,2010 Red Hat, Inc. -Copyright © 2011,2012 Google, Inc. - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-buffer.h -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-buffer.h ----------------------------------------------------------------------------------------------------- -Copyright © 1998-2004 David Turner and Werner Lemberg -Copyright © 2004,2007,2009 Red Hat, Inc. -Copyright © 2011,2012 Google, Inc. - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-cache.hh -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-cache.hh -FILE: ../../../third_party/harfbuzz/src/hb-ot-shape-complex-arabic-fallback.hh -FILE: ../../../third_party/harfbuzz/src/hb-ot-shape-complex-indic.hh -FILE: ../../../third_party/harfbuzz/src/hb-ot-shape-fallback.hh -FILE: ../../../third_party/harfbuzz/src/hb-ot-shape-normalize.hh -FILE: ../../../third_party/harfbuzz/src/hb-set-digest.hh -FILE: ../../../third_party/harfbuzz/src/hb-set.cc -FILE: ../../../third_party/harfbuzz/src/hb-set.h -FILE: ../../../third_party/harfbuzz/src/hb-shape-plan.cc -FILE: ../../../third_party/harfbuzz/src/hb-shape-plan.h -FILE: ../../../third_party/harfbuzz/src/hb-shaper-impl.hh -FILE: ../../../third_party/harfbuzz/src/hb-shaper-list.hh -FILE: ../../../third_party/harfbuzz/src/hb-shaper.cc -FILE: ../../../third_party/harfbuzz/src/hb-shaper.hh ----------------------------------------------------------------------------------------------------- -Copyright © 2012 Google, Inc. - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-cff-interp-common.hh -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-cff-interp-common.hh -FILE: ../../../third_party/harfbuzz/src/hb-cff-interp-cs-common.hh -FILE: ../../../third_party/harfbuzz/src/hb-cff-interp-dict-common.hh -FILE: ../../../third_party/harfbuzz/src/hb-cff1-interp-cs.hh -FILE: ../../../third_party/harfbuzz/src/hb-cff2-interp-cs.hh -FILE: ../../../third_party/harfbuzz/src/hb-ot-cff-common.hh -FILE: ../../../third_party/harfbuzz/src/hb-ot-cff1-table.cc -FILE: ../../../third_party/harfbuzz/src/hb-ot-cff1-table.hh -FILE: ../../../third_party/harfbuzz/src/hb-ot-cff2-table.cc -FILE: ../../../third_party/harfbuzz/src/hb-ot-cff2-table.hh -FILE: ../../../third_party/harfbuzz/src/hb-ot-vorg-table.hh -FILE: ../../../third_party/harfbuzz/src/hb-subset-cff-common.cc -FILE: ../../../third_party/harfbuzz/src/hb-subset-cff-common.hh -FILE: ../../../third_party/harfbuzz/src/hb-subset-cff1.cc -FILE: ../../../third_party/harfbuzz/src/hb-subset-cff1.hh -FILE: ../../../third_party/harfbuzz/src/hb-subset-cff2.cc -FILE: ../../../third_party/harfbuzz/src/hb-subset-cff2.hh ----------------------------------------------------------------------------------------------------- -Copyright © 2018 Adobe Inc. - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-common.cc -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-common.cc ----------------------------------------------------------------------------------------------------- -Copyright © 2009,2010 Red Hat, Inc. -Copyright © 2011,2012 Google, Inc. - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-common.h -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-common.h -FILE: ../../../third_party/harfbuzz/src/hb.hh ----------------------------------------------------------------------------------------------------- -Copyright © 2007,2008,2009 Red Hat, Inc. -Copyright © 2011,2012 Google, Inc. - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-config.hh -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-config.hh -FILE: ../../../third_party/harfbuzz/src/hb-pool.hh -FILE: ../../../third_party/harfbuzz/src/test-algs.cc ----------------------------------------------------------------------------------------------------- -Copyright © 2019 Facebook, Inc. - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-coretext.cc -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-coretext.cc ----------------------------------------------------------------------------------------------------- -Copyright © 2012,2013 Mozilla Foundation. -Copyright © 2012,2013 Google, Inc. - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-coretext.h -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-coretext.h ----------------------------------------------------------------------------------------------------- -Copyright © 2012 Mozilla Foundation. - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-directwrite.cc -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-directwrite.cc -FILE: ../../../third_party/harfbuzz/src/hb-directwrite.h ----------------------------------------------------------------------------------------------------- -Copyright © 2015-2019 Ebrahim Byagowi - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-dispatch.hh -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-dispatch.hh -FILE: ../../../third_party/harfbuzz/src/hb-machinery.hh -FILE: ../../../third_party/harfbuzz/src/hb-sanitize.hh ----------------------------------------------------------------------------------------------------- -Copyright © 2007,2008,2009,2010 Red Hat, Inc. -Copyright © 2012,2018 Google, Inc. - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-draw.cc -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-draw.cc -FILE: ../../../third_party/harfbuzz/src/hb-draw.h ----------------------------------------------------------------------------------------------------- -Copyright © 2019-2020 Ebrahim Byagowi - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-face.cc -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-face.cc -FILE: ../../../third_party/harfbuzz/src/hb-font.cc -FILE: ../../../third_party/harfbuzz/src/hb-shape.cc -FILE: ../../../third_party/harfbuzz/src/hb-shape.h ----------------------------------------------------------------------------------------------------- -Copyright © 2009 Red Hat, Inc. -Copyright © 2012 Google, Inc. - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-face.hh -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-face.hh -FILE: ../../../third_party/harfbuzz/src/hb-font.hh -FILE: ../../../third_party/harfbuzz/src/hb-glib.cc -FILE: ../../../third_party/harfbuzz/src/hb-glib.h -FILE: ../../../third_party/harfbuzz/src/hb-icu.h -FILE: ../../../third_party/harfbuzz/src/hb-ot-tag.cc ----------------------------------------------------------------------------------------------------- -Copyright © 2009 Red Hat, Inc. -Copyright © 2011 Google, Inc. - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-fallback-shape.cc -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-fallback-shape.cc -FILE: ../../../third_party/harfbuzz/src/hb-gobject-structs.cc -FILE: ../../../third_party/harfbuzz/src/hb-uniscribe.h -FILE: ../../../third_party/harfbuzz/src/hb-version.h -FILE: ../../../third_party/harfbuzz/src/hb-version.h.in ----------------------------------------------------------------------------------------------------- -Copyright © 2011 Google, Inc. - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-ft.cc -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-ft.cc ----------------------------------------------------------------------------------------------------- -Copyright © 2009 Red Hat, Inc. -Copyright © 2009 Keith Stribley -Copyright © 2015 Google, Inc. - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-ft.h -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-ft.h ----------------------------------------------------------------------------------------------------- -Copyright © 2009 Red Hat, Inc. -Copyright © 2015 Google, Inc. - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-gobject-enums.cc.tmpl -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-gobject-enums.cc.tmpl -FILE: ../../../third_party/harfbuzz/src/hb-gobject-structs.h -FILE: ../../../third_party/harfbuzz/src/hb-gobject.h ----------------------------------------------------------------------------------------------------- -Copyright (C) 2011 Google, Inc. - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-gobject-enums.h.tmpl -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-gobject-enums.h.tmpl ----------------------------------------------------------------------------------------------------- -Copyright (C) 2013 Google, Inc. - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-graphite2.cc -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-graphite2.cc ----------------------------------------------------------------------------------------------------- -Copyright © 2011 Martin Hosken -Copyright © 2011 SIL International -Copyright © 2011,2012 Google, Inc. - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-graphite2.h -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-graphite2.h ----------------------------------------------------------------------------------------------------- -Copyright © 2011 Martin Hosken -Copyright © 2011 SIL International - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-icu.cc -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-icu.cc ----------------------------------------------------------------------------------------------------- -Copyright © 2009 Red Hat, Inc. -Copyright © 2009 Keith Stribley -Copyright © 2011 Google, Inc. - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-iter.hh -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-iter.hh ----------------------------------------------------------------------------------------------------- -Copyright © 2018 Google, Inc. -Copyright © 2019 Facebook, Inc. - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-ms-feature-ranges.cc -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-ms-feature-ranges.cc -FILE: ../../../third_party/harfbuzz/src/hb-ms-feature-ranges.hh ----------------------------------------------------------------------------------------------------- -Copyright © 2011,2012,2013 Google, Inc. -Copyright © 2021 Khaled Hosny - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-open-file.hh -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-open-file.hh ----------------------------------------------------------------------------------------------------- -Copyright © 2007,2008,2009 Red Hat, Inc. -Copyright © 2012 Google, Inc. - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-open-type.hh -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-open-type.hh ----------------------------------------------------------------------------------------------------- -Copyright © 2007,2008,2009,2010 Red Hat, Inc. -Copyright © 2012 Google, Inc. - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-ot-cff1-std-str.hh -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-ot-cff1-std-str.hh -FILE: ../../../third_party/harfbuzz/src/test-bimap.cc -FILE: ../../../third_party/harfbuzz/src/test-ot-glyphname.cc ----------------------------------------------------------------------------------------------------- -Copyright © 2019 Adobe, Inc. - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-ot-cmap-table.hh -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-ot-cmap-table.hh -FILE: ../../../third_party/harfbuzz/src/hb-ot-font.h -FILE: ../../../third_party/harfbuzz/src/hb-ot-shape-complex-arabic-win1256.hh ----------------------------------------------------------------------------------------------------- -Copyright © 2014 Google, Inc. - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-ot-color-cbdt-table.hh -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-ot-color-cbdt-table.hh -FILE: ../../../third_party/harfbuzz/src/hb-ot-post-table.hh ----------------------------------------------------------------------------------------------------- -Copyright © 2016 Google, Inc. - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-ot-color-colr-table.hh -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-ot-color-colr-table.hh -FILE: ../../../third_party/harfbuzz/src/hb-ot-color-colrv1-closure.hh -FILE: ../../../third_party/harfbuzz/src/hb-ot-color-sbix-table.hh ----------------------------------------------------------------------------------------------------- -Copyright © 2018 Ebrahim Byagowi -Copyright © 2020 Google, Inc. - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-ot-color-cpal-table.hh -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-ot-color-cpal-table.hh -FILE: ../../../third_party/harfbuzz/src/hb-ot-color.cc ----------------------------------------------------------------------------------------------------- -Copyright © 2016 Google, Inc. -Copyright © 2018 Ebrahim Byagowi - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-ot-color.h -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-ot-color.h ----------------------------------------------------------------------------------------------------- -Copyright © 2016 Google, Inc. -Copyright © 2018 Khaled Hosny -Copyright © 2018 Ebrahim Byagowi - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-ot-face-table-list.hh -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-ot-face-table-list.hh ----------------------------------------------------------------------------------------------------- -Copyright © 2007,2008,2009 Red Hat, Inc. -Copyright © 2012,2013 Google, Inc. -Copyright © 2019, Facebook Inc. - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-ot-face.hh -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-ot-face.hh -FILE: ../../../third_party/harfbuzz/src/hb-ot-layout.hh ----------------------------------------------------------------------------------------------------- -Copyright © 2007,2008,2009 Red Hat, Inc. -Copyright © 2012,2013 Google, Inc. - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-ot-font.cc -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-ot-font.cc ----------------------------------------------------------------------------------------------------- -Copyright © 2011,2014 Google, Inc. - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-ot-glyf-table.hh -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-ot-glyf-table.hh ----------------------------------------------------------------------------------------------------- -Copyright © 2015 Google, Inc. -Copyright © 2019 Adobe Inc. -Copyright © 2019 Ebrahim Byagowi - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-ot-head-table.hh -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-ot-head-table.hh ----------------------------------------------------------------------------------------------------- -Copyright © 2010 Red Hat, Inc. -Copyright © 2012 Google, Inc. - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-ot-hhea-table.hh -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-ot-hhea-table.hh -FILE: ../../../third_party/harfbuzz/src/hb-ot-hmtx-table.hh -FILE: ../../../third_party/harfbuzz/src/hb-ot-maxp-table.hh -FILE: ../../../third_party/harfbuzz/src/hb-ot-name-table.hh -FILE: ../../../third_party/harfbuzz/src/hb-ot-shape-complex-indic-machine.hh -FILE: ../../../third_party/harfbuzz/src/hb-ot-shape-complex-indic-machine.rl -FILE: ../../../third_party/harfbuzz/src/hb-ot-shape-complex-indic.cc -FILE: ../../../third_party/harfbuzz/src/hb-ot-shape-complex-khmer-machine.hh -FILE: ../../../third_party/harfbuzz/src/hb-ot-shape-complex-khmer-machine.rl -FILE: ../../../third_party/harfbuzz/src/hb-ot-shape-complex-khmer.cc -FILE: ../../../third_party/harfbuzz/src/hb-ot-shape-complex-myanmar-machine.hh -FILE: ../../../third_party/harfbuzz/src/hb-ot-shape-complex-myanmar-machine.rl -FILE: ../../../third_party/harfbuzz/src/hb-ot-shape-fallback.cc -FILE: ../../../third_party/harfbuzz/src/hb-ot-shape-normalize.cc ----------------------------------------------------------------------------------------------------- -Copyright © 2011,2012 Google, Inc. - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-ot-layout-base-table.hh -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-ot-layout-base-table.hh ----------------------------------------------------------------------------------------------------- -Copyright © 2016 Elie Roux -Copyright © 2018 Google, Inc. -Copyright © 2018-2019 Ebrahim Byagowi - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-ot-layout-common.hh -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-ot-layout-common.hh ----------------------------------------------------------------------------------------------------- -Copyright © 2007,2008,2009 Red Hat, Inc. -Copyright © 2010,2012 Google, Inc. - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-ot-layout-gdef-table.hh -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-ot-layout-gdef-table.hh ----------------------------------------------------------------------------------------------------- -Copyright © 2007,2008,2009 Red Hat, Inc. -Copyright © 2010,2011,2012 Google, Inc. - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-ot-layout-gpos-table.hh -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-ot-layout-gpos-table.hh -FILE: ../../../third_party/harfbuzz/src/hb-ot-layout-gsub-table.hh ----------------------------------------------------------------------------------------------------- -Copyright © 2007,2008,2009,2010 Red Hat, Inc. -Copyright © 2010,2012,2013 Google, Inc. - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-ot-layout-gsubgpos.hh -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-ot-layout-gsubgpos.hh ----------------------------------------------------------------------------------------------------- -Copyright © 2007,2008,2009,2010 Red Hat, Inc. -Copyright © 2010,2012 Google, Inc. - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-ot-layout.cc -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-ot-layout.cc ----------------------------------------------------------------------------------------------------- -Copyright © 1998-2004 David Turner and Werner Lemberg -Copyright © 2006 Behdad Esfahbod -Copyright © 2007,2008,2009 Red Hat, Inc. -Copyright © 2012,2013 Google, Inc. - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-ot-layout.h -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-ot-layout.h ----------------------------------------------------------------------------------------------------- -Copyright © 2007,2008,2009 Red Hat, Inc. - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-ot-map.hh -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-ot-map.hh ----------------------------------------------------------------------------------------------------- -Copyright © 2009,2010 Red Hat, Inc. -Copyright © 2010,2011,2012,2013 Google, Inc. - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-ot-math-table.hh -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-ot-math-table.hh -FILE: ../../../third_party/harfbuzz/src/hb-ot-math.cc -FILE: ../../../third_party/harfbuzz/src/hb-ot-math.h ----------------------------------------------------------------------------------------------------- -Copyright © 2016 Igalia S.L. - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-ot-metrics.cc -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-ot-metrics.cc ----------------------------------------------------------------------------------------------------- -Copyright © 2018-2019 Ebrahim Byagowi - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-ot-name.h -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-ot-name.h ----------------------------------------------------------------------------------------------------- -Copyright © 2018 Ebrahim Byagowi. - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-ot-os2-table.hh -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-ot-os2-table.hh ----------------------------------------------------------------------------------------------------- -Copyright © 2011,2012 Google, Inc. -Copyright © 2018 Ebrahim Byagowi - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-ot-post-table-v2subset.hh -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-ot-post-table-v2subset.hh -FILE: ../../../third_party/harfbuzz/src/hb-ot-var-common.hh ----------------------------------------------------------------------------------------------------- -Copyright © 2021 Google, Inc. - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-ot-shape-complex-arabic.cc -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-ot-shape-complex-arabic.cc -FILE: ../../../third_party/harfbuzz/src/hb-ot-shape-complex-default.cc -FILE: ../../../third_party/harfbuzz/src/hb-ot-shape-complex-hebrew.cc -FILE: ../../../third_party/harfbuzz/src/hb-ot-shape-complex-thai.cc ----------------------------------------------------------------------------------------------------- -Copyright © 2010,2012 Google, Inc. - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-ot-shape-complex-arabic.hh -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-ot-shape-complex-arabic.hh -FILE: ../../../third_party/harfbuzz/src/hb-ot-shape-complex-use-machine.hh -FILE: ../../../third_party/harfbuzz/src/hb-ot-shape-complex-use-machine.rl -FILE: ../../../third_party/harfbuzz/src/hb-ot-shape-complex-use.cc ----------------------------------------------------------------------------------------------------- -Copyright © 2015 Mozilla Foundation. -Copyright © 2015 Google, Inc. - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-ot-shape-complex-myanmar.cc -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-ot-shape-complex-myanmar.cc -FILE: ../../../third_party/harfbuzz/src/hb-uniscribe.cc ----------------------------------------------------------------------------------------------------- -Copyright © 2011,2012,2013 Google, Inc. - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-ot-shape-complex-syllabic.cc -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-ot-shape-complex-syllabic.cc -FILE: ../../../third_party/harfbuzz/src/hb-ot-shape-complex-syllabic.hh ----------------------------------------------------------------------------------------------------- -Copyright © 2021 Behdad Esfahbod. - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-ot-shape-complex.hh -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-ot-shape-complex.hh ----------------------------------------------------------------------------------------------------- -Copyright © 2010,2011,2012 Google, Inc. - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-ot-shape.cc -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-ot-shape.cc ----------------------------------------------------------------------------------------------------- -Copyright © 2009,2010 Red Hat, Inc. -Copyright © 2010,2011,2012 Google, Inc. - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-ot-shape.h -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-ot-shape.h ----------------------------------------------------------------------------------------------------- -Copyright © 2013 Red Hat, Inc. - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-ot-shape.hh -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-ot-shape.hh ----------------------------------------------------------------------------------------------------- -Copyright © 2010 Google, Inc. - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-ot-var-gvar-table.hh -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-ot-var-gvar-table.hh ----------------------------------------------------------------------------------------------------- -Copyright © 2019 Adobe Inc. -Copyright © 2019 Ebrahim Byagowi - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-priority-queue.hh -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-priority-queue.hh -FILE: ../../../third_party/harfbuzz/src/hb-repacker.hh -FILE: ../../../third_party/harfbuzz/src/test-array.cc -FILE: ../../../third_party/harfbuzz/src/test-priority-queue.cc -FILE: ../../../third_party/harfbuzz/src/test-repacker.cc ----------------------------------------------------------------------------------------------------- -Copyright © 2020 Google, Inc. - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-serialize.hh -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-serialize.hh ----------------------------------------------------------------------------------------------------- -Copyright © 2007,2008,2009,2010 Red Hat, Inc. -Copyright © 2012,2018 Google, Inc. -Copyright © 2019 Facebook, Inc. - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-shape-plan.hh -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-shape-plan.hh ----------------------------------------------------------------------------------------------------- -Copyright © 2012,2018 Google, Inc. - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-ucd.cc -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-ucd.cc ----------------------------------------------------------------------------------------------------- -Copyright (C) 2012 Grigori Goronzy - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-unicode.cc -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-unicode.cc -FILE: ../../../third_party/harfbuzz/src/hb-unicode.hh ----------------------------------------------------------------------------------------------------- -Copyright © 2009 Red Hat, Inc. -Copyright © 2011 Codethink Limited -Copyright © 2010,2011,2012 Google, Inc. - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-unicode.h -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-unicode.h ----------------------------------------------------------------------------------------------------- -Copyright © 2009 Red Hat, Inc. -Copyright © 2011 Codethink Limited -Copyright © 2011,2012 Google, Inc. - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-utf.hh -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-utf.hh ----------------------------------------------------------------------------------------------------- -Copyright © 2011,2012,2014 Google, Inc. - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/hb-vector.hh -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/hb-vector.hh ----------------------------------------------------------------------------------------------------- -Copyright © 2017,2018 Google, Inc. - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/main.cc -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/main.cc ----------------------------------------------------------------------------------------------------- -Copyright © 2007,2008,2009 Red Hat, Inc. -Copyright © 2018,2019,2020 Ebrahim Byagowi -Copyright © 2018 Khaled Hosny - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/test-buffer-serialize.cc -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/test-buffer-serialize.cc ----------------------------------------------------------------------------------------------------- -Copyright © 2010,2011,2013 Google, Inc. - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/test-gpos-size-params.cc -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/test-gpos-size-params.cc -FILE: ../../../third_party/harfbuzz/src/test-gsub-would-substitute.cc -FILE: ../../../third_party/harfbuzz/src/test.cc ----------------------------------------------------------------------------------------------------- -Copyright © 2010,2011 Google, Inc. - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: harfbuzz -ORIGIN: ../../../third_party/harfbuzz/src/test-map.cc -TYPE: LicenseType.unknown -FILE: ../../../third_party/harfbuzz/src/test-map.cc -FILE: ../../../third_party/harfbuzz/src/test-set.cc -FILE: ../../../third_party/harfbuzz/src/test-vector.cc ----------------------------------------------------------------------------------------------------- -Copyright © 2021 Behdad Esfahbod - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -==================================================================================================== - -==================================================================================================== -LIBRARY: icu -LIBRARY: vulkan-deps -ORIGIN: ../../../third_party/icu/scripts/LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/icu/fuzzers/icu_unicode_string_codepage_create_fuzzer.cc -FILE: ../../../third_party/icu/scripts/accept_lang.list -FILE: ../../../third_party/icu/scripts/chrome_ui_languages.list -FILE: ../../../third_party/icu/scripts/currencies.list -FILE: ../../../third_party/vulkan-deps/.gitignore -FILE: ../../../third_party/vulkan-deps/DEPS -FILE: ../../../third_party/vulkan-deps/additional_readme_paths.json ----------------------------------------------------------------------------------------------------- -Copyright 2015 The Chromium Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: icu -ORIGIN: ../../../third_party/dart/runtime/third_party/double-conversion/COPYING -TYPE: LicenseType.bsd -FILE: ../../../third_party/icu/DIR_METADATA -FILE: ../../../third_party/icu/android/icudtl.dat -FILE: ../../../third_party/icu/cast/brkitr.patch -FILE: ../../../third_party/icu/cast/icudtl.dat -FILE: ../../../third_party/icu/chromeos/icudtl.dat -FILE: ../../../third_party/icu/chromeos/icudtl.dat.hash -FILE: ../../../third_party/icu/common/icudtb.dat -FILE: ../../../third_party/icu/common/icudtl.dat -FILE: ../../../third_party/icu/flutter/brkitr.patch -FILE: ../../../third_party/icu/flutter/icudtl.dat -FILE: ../../../third_party/icu/fuzzers/fuzzer_utils.h -FILE: ../../../third_party/icu/fuzzers/icu_appendable_fuzzer.cc -FILE: ../../../third_party/icu/fuzzers/icu_break_iterator_fuzzer.cc -FILE: ../../../third_party/icu/fuzzers/icu_break_iterator_utf32_fuzzer.cc -FILE: ../../../third_party/icu/fuzzers/icu_number_format_fuzzer.cc -FILE: ../../../third_party/icu/fuzzers/icu_to_case_fuzzer.cc -FILE: ../../../third_party/icu/fuzzers/icu_ucasemap_fuzzer.cc -FILE: ../../../third_party/icu/ios/icudtl.dat -FILE: ../../../third_party/icu/patches/AliasDataBuilder-readAlias.patch -FILE: ../../../third_party/icu/patches/DateIntervalFormatnormalizeHourMetacharacters.patch -FILE: ../../../third_party/icu/patches/ardatepattern.patch -FILE: ../../../third_party/icu/patches/atomic_template_instantiation.patch -FILE: ../../../third_party/icu/patches/calendar-get-out-of-bound.patch -FILE: ../../../third_party/icu/patches/calendar-get-out-of-bound2.patch -FILE: ../../../third_party/icu/patches/calendar_return_error_early.patch -FILE: ../../../third_party/icu/patches/cjdict.patch -FILE: ../../../third_party/icu/patches/collationdatabuilder.patch -FILE: ../../../third_party/icu/patches/configure.patch -FILE: ../../../third_party/icu/patches/cxx20enum.patch -FILE: ../../../third_party/icu/patches/data_symb.patch -FILE: ../../../third_party/icu/patches/formatted_string_builder.patch -FILE: ../../../third_party/icu/patches/fuchsia.patch -FILE: ../../../third_party/icu/patches/gb_table.patch -FILE: ../../../third_party/icu/patches/iso2022jp.patch -FILE: ../../../third_party/icu/patches/isvalidenum.patch -FILE: ../../../third_party/icu/patches/khmer-dictbe.patch -FILE: ../../../third_party/icu/patches/locale1.patch -FILE: ../../../third_party/icu/patches/locale_google.patch -FILE: ../../../third_party/icu/patches/number_range_format.patch -FILE: ../../../third_party/icu/patches/restrace.patch -FILE: ../../../third_party/icu/patches/rmATOMIC_VAR_INIT.patch -FILE: ../../../third_party/icu/patches/timezone-rawoffset.patch -FILE: ../../../third_party/icu/patches/unused-var-unary-operators.patch -FILE: ../../../third_party/icu/patches/wordbrk.patch -FILE: ../../../third_party/icu/patches/wpo.patch -FILE: ../../../third_party/icu/source/data/in/coll/ucadata-implicithan.icu -FILE: ../../../third_party/icu/source/data/in/coll/ucadata-unihan.icu -FILE: ../../../third_party/icu/source/data/in/nfc.nrm -FILE: ../../../third_party/icu/source/data/in/nfkc.nrm -FILE: ../../../third_party/icu/source/data/in/nfkc_cf.nrm -FILE: ../../../third_party/icu/source/data/in/pnames.icu -FILE: ../../../third_party/icu/source/data/in/ubidi.icu -FILE: ../../../third_party/icu/source/data/in/ucase.icu -FILE: ../../../third_party/icu/source/data/in/uemoji.icu -FILE: ../../../third_party/icu/source/data/in/ulayout.icu -FILE: ../../../third_party/icu/source/data/in/unames.icu -FILE: ../../../third_party/icu/source/data/in/uprops.icu -FILE: ../../../third_party/icu/source/data/in/uts46.nrm -FILE: ../../../third_party/icu/source/data/mappings/big5-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/euc-jp-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/euc-kr-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/gb18030.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm866-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-10-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-13-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-14-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-15-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-16-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-2-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-3-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-4-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-5-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-6-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-7-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-8-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/koi8-r-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/koi8-u-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/macintosh-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/shift_jis-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1250-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1251-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1252-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1253-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1254-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1255-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1256-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1257-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1258-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-874-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-936-2000.ucm -FILE: ../../../third_party/icu/source/data/mappings/x-mac-cyrillic-html.ucm -FILE: ../../../third_party/icu/source/extra/scrptrun/srtest.dsp -FILE: ../../../third_party/icu/source/extra/scrptrun/srtest.dsw -FILE: ../../../third_party/icu/source/tools/tzcode/asctime.c -FILE: ../../../third_party/icu/source/tools/tzcode/ialloc.c -FILE: ../../../third_party/icu/source/tools/tzcode/localtime.c -FILE: ../../../third_party/icu/source/tools/tzcode/private.h -FILE: ../../../third_party/icu/source/tools/tzcode/scheck.c -FILE: ../../../third_party/icu/source/tools/tzcode/tzfile.h -FILE: ../../../third_party/icu/source/tools/tzcode/tzselect.ksh -FILE: ../../../third_party/icu/source/tools/tzcode/zdump.c -FILE: ../../../third_party/icu/source/tools/tzcode/zic.c -FILE: ../../../third_party/icu/tzres/metaZones.res -FILE: ../../../third_party/icu/tzres/timezoneTypes.res -FILE: ../../../third_party/icu/tzres/zoneinfo64.res ----------------------------------------------------------------------------------------------------- -Copyright 2006-2011, the V8 project authors. All rights reserved. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - * Neither the name of Google Inc. nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: icu -ORIGIN: ../../../third_party/icu/LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/icu/DIR_METADATA -FILE: ../../../third_party/icu/android/icudtl.dat -FILE: ../../../third_party/icu/cast/brkitr.patch -FILE: ../../../third_party/icu/cast/icudtl.dat -FILE: ../../../third_party/icu/chromeos/icudtl.dat -FILE: ../../../third_party/icu/chromeos/icudtl.dat.hash -FILE: ../../../third_party/icu/common/icudtb.dat -FILE: ../../../third_party/icu/common/icudtl.dat -FILE: ../../../third_party/icu/flutter/brkitr.patch -FILE: ../../../third_party/icu/flutter/icudtl.dat -FILE: ../../../third_party/icu/fuzzers/fuzzer_utils.h -FILE: ../../../third_party/icu/fuzzers/icu_appendable_fuzzer.cc -FILE: ../../../third_party/icu/fuzzers/icu_break_iterator_fuzzer.cc -FILE: ../../../third_party/icu/fuzzers/icu_break_iterator_utf32_fuzzer.cc -FILE: ../../../third_party/icu/fuzzers/icu_number_format_fuzzer.cc -FILE: ../../../third_party/icu/fuzzers/icu_to_case_fuzzer.cc -FILE: ../../../third_party/icu/fuzzers/icu_ucasemap_fuzzer.cc -FILE: ../../../third_party/icu/ios/icudtl.dat -FILE: ../../../third_party/icu/patches/AliasDataBuilder-readAlias.patch -FILE: ../../../third_party/icu/patches/DateIntervalFormatnormalizeHourMetacharacters.patch -FILE: ../../../third_party/icu/patches/ardatepattern.patch -FILE: ../../../third_party/icu/patches/atomic_template_instantiation.patch -FILE: ../../../third_party/icu/patches/calendar-get-out-of-bound.patch -FILE: ../../../third_party/icu/patches/calendar-get-out-of-bound2.patch -FILE: ../../../third_party/icu/patches/calendar_return_error_early.patch -FILE: ../../../third_party/icu/patches/cjdict.patch -FILE: ../../../third_party/icu/patches/collationdatabuilder.patch -FILE: ../../../third_party/icu/patches/configure.patch -FILE: ../../../third_party/icu/patches/cxx20enum.patch -FILE: ../../../third_party/icu/patches/data_symb.patch -FILE: ../../../third_party/icu/patches/formatted_string_builder.patch -FILE: ../../../third_party/icu/patches/fuchsia.patch -FILE: ../../../third_party/icu/patches/gb_table.patch -FILE: ../../../third_party/icu/patches/iso2022jp.patch -FILE: ../../../third_party/icu/patches/isvalidenum.patch -FILE: ../../../third_party/icu/patches/khmer-dictbe.patch -FILE: ../../../third_party/icu/patches/locale1.patch -FILE: ../../../third_party/icu/patches/locale_google.patch -FILE: ../../../third_party/icu/patches/number_range_format.patch -FILE: ../../../third_party/icu/patches/restrace.patch -FILE: ../../../third_party/icu/patches/rmATOMIC_VAR_INIT.patch -FILE: ../../../third_party/icu/patches/timezone-rawoffset.patch -FILE: ../../../third_party/icu/patches/unused-var-unary-operators.patch -FILE: ../../../third_party/icu/patches/wordbrk.patch -FILE: ../../../third_party/icu/patches/wpo.patch -FILE: ../../../third_party/icu/source/data/in/coll/ucadata-implicithan.icu -FILE: ../../../third_party/icu/source/data/in/coll/ucadata-unihan.icu -FILE: ../../../third_party/icu/source/data/in/nfc.nrm -FILE: ../../../third_party/icu/source/data/in/nfkc.nrm -FILE: ../../../third_party/icu/source/data/in/nfkc_cf.nrm -FILE: ../../../third_party/icu/source/data/in/pnames.icu -FILE: ../../../third_party/icu/source/data/in/ubidi.icu -FILE: ../../../third_party/icu/source/data/in/ucase.icu -FILE: ../../../third_party/icu/source/data/in/uemoji.icu -FILE: ../../../third_party/icu/source/data/in/ulayout.icu -FILE: ../../../third_party/icu/source/data/in/unames.icu -FILE: ../../../third_party/icu/source/data/in/uprops.icu -FILE: ../../../third_party/icu/source/data/in/uts46.nrm -FILE: ../../../third_party/icu/source/data/mappings/big5-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/euc-jp-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/euc-kr-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/gb18030.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm866-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-10-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-13-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-14-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-15-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-16-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-2-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-3-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-4-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-5-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-6-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-7-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-8-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/koi8-r-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/koi8-u-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/macintosh-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/shift_jis-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1250-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1251-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1252-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1253-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1254-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1255-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1256-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1257-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1258-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-874-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-936-2000.ucm -FILE: ../../../third_party/icu/source/data/mappings/x-mac-cyrillic-html.ucm -FILE: ../../../third_party/icu/source/extra/scrptrun/srtest.dsp -FILE: ../../../third_party/icu/source/extra/scrptrun/srtest.dsw -FILE: ../../../third_party/icu/source/tools/tzcode/asctime.c -FILE: ../../../third_party/icu/source/tools/tzcode/ialloc.c -FILE: ../../../third_party/icu/source/tools/tzcode/localtime.c -FILE: ../../../third_party/icu/source/tools/tzcode/private.h -FILE: ../../../third_party/icu/source/tools/tzcode/scheck.c -FILE: ../../../third_party/icu/source/tools/tzcode/tzfile.h -FILE: ../../../third_party/icu/source/tools/tzcode/tzselect.ksh -FILE: ../../../third_party/icu/source/tools/tzcode/zdump.c -FILE: ../../../third_party/icu/source/tools/tzcode/zic.c -FILE: ../../../third_party/icu/tzres/metaZones.res -FILE: ../../../third_party/icu/tzres/timezoneTypes.res -FILE: ../../../third_party/icu/tzres/zoneinfo64.res ----------------------------------------------------------------------------------------------------- -Copyright (C) 2016 and later: Unicode, Inc. and others. -License & terms of use: http://www.unicode.org/copyright.html -Copyright (c) 2015 International Business Machines Corporation -and others. All Rights Reserved. - -Project: https://github.com/rober42539/lao-dictionary -Dictionary: https://github.com/rober42539/lao-dictionary/laodict.txt -License: https://github.com/rober42539/lao-dictionary/LICENSE.txt - (copied below) - - This file is derived from the above dictionary version of Nov 22, 2020 - - Copyright (C) 2013 Brian Eugene Wilson, Robert Martin Campbell. - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. Redistributions in binary - form must reproduce the above copyright notice, this list of conditions and - the following disclaimer in the documentation and/or other materials - provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, -INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED -OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: icu -ORIGIN: ../../../third_party/icu/LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/icu/DIR_METADATA -FILE: ../../../third_party/icu/android/icudtl.dat -FILE: ../../../third_party/icu/cast/brkitr.patch -FILE: ../../../third_party/icu/cast/icudtl.dat -FILE: ../../../third_party/icu/chromeos/icudtl.dat -FILE: ../../../third_party/icu/chromeos/icudtl.dat.hash -FILE: ../../../third_party/icu/common/icudtb.dat -FILE: ../../../third_party/icu/common/icudtl.dat -FILE: ../../../third_party/icu/flutter/brkitr.patch -FILE: ../../../third_party/icu/flutter/icudtl.dat -FILE: ../../../third_party/icu/fuzzers/fuzzer_utils.h -FILE: ../../../third_party/icu/fuzzers/icu_appendable_fuzzer.cc -FILE: ../../../third_party/icu/fuzzers/icu_break_iterator_fuzzer.cc -FILE: ../../../third_party/icu/fuzzers/icu_break_iterator_utf32_fuzzer.cc -FILE: ../../../third_party/icu/fuzzers/icu_number_format_fuzzer.cc -FILE: ../../../third_party/icu/fuzzers/icu_to_case_fuzzer.cc -FILE: ../../../third_party/icu/fuzzers/icu_ucasemap_fuzzer.cc -FILE: ../../../third_party/icu/ios/icudtl.dat -FILE: ../../../third_party/icu/patches/AliasDataBuilder-readAlias.patch -FILE: ../../../third_party/icu/patches/DateIntervalFormatnormalizeHourMetacharacters.patch -FILE: ../../../third_party/icu/patches/ardatepattern.patch -FILE: ../../../third_party/icu/patches/atomic_template_instantiation.patch -FILE: ../../../third_party/icu/patches/calendar-get-out-of-bound.patch -FILE: ../../../third_party/icu/patches/calendar-get-out-of-bound2.patch -FILE: ../../../third_party/icu/patches/calendar_return_error_early.patch -FILE: ../../../third_party/icu/patches/cjdict.patch -FILE: ../../../third_party/icu/patches/collationdatabuilder.patch -FILE: ../../../third_party/icu/patches/configure.patch -FILE: ../../../third_party/icu/patches/cxx20enum.patch -FILE: ../../../third_party/icu/patches/data_symb.patch -FILE: ../../../third_party/icu/patches/formatted_string_builder.patch -FILE: ../../../third_party/icu/patches/fuchsia.patch -FILE: ../../../third_party/icu/patches/gb_table.patch -FILE: ../../../third_party/icu/patches/iso2022jp.patch -FILE: ../../../third_party/icu/patches/isvalidenum.patch -FILE: ../../../third_party/icu/patches/khmer-dictbe.patch -FILE: ../../../third_party/icu/patches/locale1.patch -FILE: ../../../third_party/icu/patches/locale_google.patch -FILE: ../../../third_party/icu/patches/number_range_format.patch -FILE: ../../../third_party/icu/patches/restrace.patch -FILE: ../../../third_party/icu/patches/rmATOMIC_VAR_INIT.patch -FILE: ../../../third_party/icu/patches/timezone-rawoffset.patch -FILE: ../../../third_party/icu/patches/unused-var-unary-operators.patch -FILE: ../../../third_party/icu/patches/wordbrk.patch -FILE: ../../../third_party/icu/patches/wpo.patch -FILE: ../../../third_party/icu/source/data/in/coll/ucadata-implicithan.icu -FILE: ../../../third_party/icu/source/data/in/coll/ucadata-unihan.icu -FILE: ../../../third_party/icu/source/data/in/nfc.nrm -FILE: ../../../third_party/icu/source/data/in/nfkc.nrm -FILE: ../../../third_party/icu/source/data/in/nfkc_cf.nrm -FILE: ../../../third_party/icu/source/data/in/pnames.icu -FILE: ../../../third_party/icu/source/data/in/ubidi.icu -FILE: ../../../third_party/icu/source/data/in/ucase.icu -FILE: ../../../third_party/icu/source/data/in/uemoji.icu -FILE: ../../../third_party/icu/source/data/in/ulayout.icu -FILE: ../../../third_party/icu/source/data/in/unames.icu -FILE: ../../../third_party/icu/source/data/in/uprops.icu -FILE: ../../../third_party/icu/source/data/in/uts46.nrm -FILE: ../../../third_party/icu/source/data/mappings/big5-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/euc-jp-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/euc-kr-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/gb18030.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm866-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-10-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-13-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-14-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-15-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-16-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-2-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-3-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-4-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-5-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-6-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-7-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-8-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/koi8-r-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/koi8-u-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/macintosh-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/shift_jis-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1250-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1251-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1252-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1253-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1254-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1255-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1256-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1257-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1258-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-874-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-936-2000.ucm -FILE: ../../../third_party/icu/source/data/mappings/x-mac-cyrillic-html.ucm -FILE: ../../../third_party/icu/source/extra/scrptrun/srtest.dsp -FILE: ../../../third_party/icu/source/extra/scrptrun/srtest.dsw -FILE: ../../../third_party/icu/source/tools/tzcode/asctime.c -FILE: ../../../third_party/icu/source/tools/tzcode/ialloc.c -FILE: ../../../third_party/icu/source/tools/tzcode/localtime.c -FILE: ../../../third_party/icu/source/tools/tzcode/private.h -FILE: ../../../third_party/icu/source/tools/tzcode/scheck.c -FILE: ../../../third_party/icu/source/tools/tzcode/tzfile.h -FILE: ../../../third_party/icu/source/tools/tzcode/tzselect.ksh -FILE: ../../../third_party/icu/source/tools/tzcode/zdump.c -FILE: ../../../third_party/icu/source/tools/tzcode/zic.c -FILE: ../../../third_party/icu/tzres/metaZones.res -FILE: ../../../third_party/icu/tzres/timezoneTypes.res -FILE: ../../../third_party/icu/tzres/zoneinfo64.res ----------------------------------------------------------------------------------------------------- -Copyright (c) 1999 Computer Systems and Communication Lab, - Institute of Information Science, Academia - * Sinica. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. -. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. -. Neither the name of the Computer Systems and Communication Lab - nor the names of its contributors may be used to endorse or - promote products derived from this software without specific - prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED -OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: icu -ORIGIN: ../../../third_party/icu/LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/icu/DIR_METADATA -FILE: ../../../third_party/icu/android/icudtl.dat -FILE: ../../../third_party/icu/cast/brkitr.patch -FILE: ../../../third_party/icu/cast/icudtl.dat -FILE: ../../../third_party/icu/chromeos/icudtl.dat -FILE: ../../../third_party/icu/chromeos/icudtl.dat.hash -FILE: ../../../third_party/icu/common/icudtb.dat -FILE: ../../../third_party/icu/common/icudtl.dat -FILE: ../../../third_party/icu/flutter/brkitr.patch -FILE: ../../../third_party/icu/flutter/icudtl.dat -FILE: ../../../third_party/icu/fuzzers/fuzzer_utils.h -FILE: ../../../third_party/icu/fuzzers/icu_appendable_fuzzer.cc -FILE: ../../../third_party/icu/fuzzers/icu_break_iterator_fuzzer.cc -FILE: ../../../third_party/icu/fuzzers/icu_break_iterator_utf32_fuzzer.cc -FILE: ../../../third_party/icu/fuzzers/icu_number_format_fuzzer.cc -FILE: ../../../third_party/icu/fuzzers/icu_to_case_fuzzer.cc -FILE: ../../../third_party/icu/fuzzers/icu_ucasemap_fuzzer.cc -FILE: ../../../third_party/icu/ios/icudtl.dat -FILE: ../../../third_party/icu/patches/AliasDataBuilder-readAlias.patch -FILE: ../../../third_party/icu/patches/DateIntervalFormatnormalizeHourMetacharacters.patch -FILE: ../../../third_party/icu/patches/ardatepattern.patch -FILE: ../../../third_party/icu/patches/atomic_template_instantiation.patch -FILE: ../../../third_party/icu/patches/calendar-get-out-of-bound.patch -FILE: ../../../third_party/icu/patches/calendar-get-out-of-bound2.patch -FILE: ../../../third_party/icu/patches/calendar_return_error_early.patch -FILE: ../../../third_party/icu/patches/cjdict.patch -FILE: ../../../third_party/icu/patches/collationdatabuilder.patch -FILE: ../../../third_party/icu/patches/configure.patch -FILE: ../../../third_party/icu/patches/cxx20enum.patch -FILE: ../../../third_party/icu/patches/data_symb.patch -FILE: ../../../third_party/icu/patches/formatted_string_builder.patch -FILE: ../../../third_party/icu/patches/fuchsia.patch -FILE: ../../../third_party/icu/patches/gb_table.patch -FILE: ../../../third_party/icu/patches/iso2022jp.patch -FILE: ../../../third_party/icu/patches/isvalidenum.patch -FILE: ../../../third_party/icu/patches/khmer-dictbe.patch -FILE: ../../../third_party/icu/patches/locale1.patch -FILE: ../../../third_party/icu/patches/locale_google.patch -FILE: ../../../third_party/icu/patches/number_range_format.patch -FILE: ../../../third_party/icu/patches/restrace.patch -FILE: ../../../third_party/icu/patches/rmATOMIC_VAR_INIT.patch -FILE: ../../../third_party/icu/patches/timezone-rawoffset.patch -FILE: ../../../third_party/icu/patches/unused-var-unary-operators.patch -FILE: ../../../third_party/icu/patches/wordbrk.patch -FILE: ../../../third_party/icu/patches/wpo.patch -FILE: ../../../third_party/icu/source/data/in/coll/ucadata-implicithan.icu -FILE: ../../../third_party/icu/source/data/in/coll/ucadata-unihan.icu -FILE: ../../../third_party/icu/source/data/in/nfc.nrm -FILE: ../../../third_party/icu/source/data/in/nfkc.nrm -FILE: ../../../third_party/icu/source/data/in/nfkc_cf.nrm -FILE: ../../../third_party/icu/source/data/in/pnames.icu -FILE: ../../../third_party/icu/source/data/in/ubidi.icu -FILE: ../../../third_party/icu/source/data/in/ucase.icu -FILE: ../../../third_party/icu/source/data/in/uemoji.icu -FILE: ../../../third_party/icu/source/data/in/ulayout.icu -FILE: ../../../third_party/icu/source/data/in/unames.icu -FILE: ../../../third_party/icu/source/data/in/uprops.icu -FILE: ../../../third_party/icu/source/data/in/uts46.nrm -FILE: ../../../third_party/icu/source/data/mappings/big5-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/euc-jp-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/euc-kr-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/gb18030.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm866-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-10-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-13-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-14-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-15-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-16-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-2-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-3-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-4-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-5-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-6-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-7-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-8-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/koi8-r-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/koi8-u-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/macintosh-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/shift_jis-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1250-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1251-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1252-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1253-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1254-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1255-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1256-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1257-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1258-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-874-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-936-2000.ucm -FILE: ../../../third_party/icu/source/data/mappings/x-mac-cyrillic-html.ucm -FILE: ../../../third_party/icu/source/extra/scrptrun/srtest.dsp -FILE: ../../../third_party/icu/source/extra/scrptrun/srtest.dsw -FILE: ../../../third_party/icu/source/tools/tzcode/asctime.c -FILE: ../../../third_party/icu/source/tools/tzcode/ialloc.c -FILE: ../../../third_party/icu/source/tools/tzcode/localtime.c -FILE: ../../../third_party/icu/source/tools/tzcode/private.h -FILE: ../../../third_party/icu/source/tools/tzcode/scheck.c -FILE: ../../../third_party/icu/source/tools/tzcode/tzfile.h -FILE: ../../../third_party/icu/source/tools/tzcode/tzselect.ksh -FILE: ../../../third_party/icu/source/tools/tzcode/zdump.c -FILE: ../../../third_party/icu/source/tools/tzcode/zic.c -FILE: ../../../third_party/icu/tzres/metaZones.res -FILE: ../../../third_party/icu/tzres/timezoneTypes.res -FILE: ../../../third_party/icu/tzres/zoneinfo64.res ----------------------------------------------------------------------------------------------------- -Copyright (c) 1999 TaBE Project. -Copyright (c) 1999 Pai-Hsiang Hsiao. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. -. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. -. Neither the name of the TaBE Project nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED -OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: icu -ORIGIN: ../../../third_party/icu/LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/icu/DIR_METADATA -FILE: ../../../third_party/icu/android/icudtl.dat -FILE: ../../../third_party/icu/cast/brkitr.patch -FILE: ../../../third_party/icu/cast/icudtl.dat -FILE: ../../../third_party/icu/chromeos/icudtl.dat -FILE: ../../../third_party/icu/chromeos/icudtl.dat.hash -FILE: ../../../third_party/icu/common/icudtb.dat -FILE: ../../../third_party/icu/common/icudtl.dat -FILE: ../../../third_party/icu/flutter/brkitr.patch -FILE: ../../../third_party/icu/flutter/icudtl.dat -FILE: ../../../third_party/icu/fuzzers/fuzzer_utils.h -FILE: ../../../third_party/icu/fuzzers/icu_appendable_fuzzer.cc -FILE: ../../../third_party/icu/fuzzers/icu_break_iterator_fuzzer.cc -FILE: ../../../third_party/icu/fuzzers/icu_break_iterator_utf32_fuzzer.cc -FILE: ../../../third_party/icu/fuzzers/icu_number_format_fuzzer.cc -FILE: ../../../third_party/icu/fuzzers/icu_to_case_fuzzer.cc -FILE: ../../../third_party/icu/fuzzers/icu_ucasemap_fuzzer.cc -FILE: ../../../third_party/icu/ios/icudtl.dat -FILE: ../../../third_party/icu/patches/AliasDataBuilder-readAlias.patch -FILE: ../../../third_party/icu/patches/DateIntervalFormatnormalizeHourMetacharacters.patch -FILE: ../../../third_party/icu/patches/ardatepattern.patch -FILE: ../../../third_party/icu/patches/atomic_template_instantiation.patch -FILE: ../../../third_party/icu/patches/calendar-get-out-of-bound.patch -FILE: ../../../third_party/icu/patches/calendar-get-out-of-bound2.patch -FILE: ../../../third_party/icu/patches/calendar_return_error_early.patch -FILE: ../../../third_party/icu/patches/cjdict.patch -FILE: ../../../third_party/icu/patches/collationdatabuilder.patch -FILE: ../../../third_party/icu/patches/configure.patch -FILE: ../../../third_party/icu/patches/cxx20enum.patch -FILE: ../../../third_party/icu/patches/data_symb.patch -FILE: ../../../third_party/icu/patches/formatted_string_builder.patch -FILE: ../../../third_party/icu/patches/fuchsia.patch -FILE: ../../../third_party/icu/patches/gb_table.patch -FILE: ../../../third_party/icu/patches/iso2022jp.patch -FILE: ../../../third_party/icu/patches/isvalidenum.patch -FILE: ../../../third_party/icu/patches/khmer-dictbe.patch -FILE: ../../../third_party/icu/patches/locale1.patch -FILE: ../../../third_party/icu/patches/locale_google.patch -FILE: ../../../third_party/icu/patches/number_range_format.patch -FILE: ../../../third_party/icu/patches/restrace.patch -FILE: ../../../third_party/icu/patches/rmATOMIC_VAR_INIT.patch -FILE: ../../../third_party/icu/patches/timezone-rawoffset.patch -FILE: ../../../third_party/icu/patches/unused-var-unary-operators.patch -FILE: ../../../third_party/icu/patches/wordbrk.patch -FILE: ../../../third_party/icu/patches/wpo.patch -FILE: ../../../third_party/icu/source/data/in/coll/ucadata-implicithan.icu -FILE: ../../../third_party/icu/source/data/in/coll/ucadata-unihan.icu -FILE: ../../../third_party/icu/source/data/in/nfc.nrm -FILE: ../../../third_party/icu/source/data/in/nfkc.nrm -FILE: ../../../third_party/icu/source/data/in/nfkc_cf.nrm -FILE: ../../../third_party/icu/source/data/in/pnames.icu -FILE: ../../../third_party/icu/source/data/in/ubidi.icu -FILE: ../../../third_party/icu/source/data/in/ucase.icu -FILE: ../../../third_party/icu/source/data/in/uemoji.icu -FILE: ../../../third_party/icu/source/data/in/ulayout.icu -FILE: ../../../third_party/icu/source/data/in/unames.icu -FILE: ../../../third_party/icu/source/data/in/uprops.icu -FILE: ../../../third_party/icu/source/data/in/uts46.nrm -FILE: ../../../third_party/icu/source/data/mappings/big5-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/euc-jp-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/euc-kr-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/gb18030.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm866-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-10-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-13-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-14-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-15-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-16-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-2-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-3-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-4-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-5-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-6-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-7-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-8-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/koi8-r-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/koi8-u-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/macintosh-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/shift_jis-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1250-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1251-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1252-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1253-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1254-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1255-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1256-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1257-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1258-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-874-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-936-2000.ucm -FILE: ../../../third_party/icu/source/data/mappings/x-mac-cyrillic-html.ucm -FILE: ../../../third_party/icu/source/extra/scrptrun/srtest.dsp -FILE: ../../../third_party/icu/source/extra/scrptrun/srtest.dsw -FILE: ../../../third_party/icu/source/tools/tzcode/asctime.c -FILE: ../../../third_party/icu/source/tools/tzcode/ialloc.c -FILE: ../../../third_party/icu/source/tools/tzcode/localtime.c -FILE: ../../../third_party/icu/source/tools/tzcode/private.h -FILE: ../../../third_party/icu/source/tools/tzcode/scheck.c -FILE: ../../../third_party/icu/source/tools/tzcode/tzfile.h -FILE: ../../../third_party/icu/source/tools/tzcode/tzselect.ksh -FILE: ../../../third_party/icu/source/tools/tzcode/zdump.c -FILE: ../../../third_party/icu/source/tools/tzcode/zic.c -FILE: ../../../third_party/icu/tzres/metaZones.res -FILE: ../../../third_party/icu/tzres/timezoneTypes.res -FILE: ../../../third_party/icu/tzres/zoneinfo64.res ----------------------------------------------------------------------------------------------------- -Copyright (c) 2014 International Business Machines Corporation -and others. All Rights Reserved. - -This list is part of a project hosted at: - github.com/kanyawtech/myanmar-karen-word-lists - -Copyright (c) 2013, LeRoy Benjamin Sharon -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: Redistributions of source code must retain the above -copyright notice, this list of conditions and the following -disclaimer. Redistributions in binary form must reproduce the -above copyright notice, this list of conditions and the following -disclaimer in the documentation and/or other materials provided -with the distribution. - - Neither the name Myanmar Karen Word Lists, nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND -CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS -BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED -TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR -TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF -THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: icu -ORIGIN: ../../../third_party/icu/LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/icu/DIR_METADATA -FILE: ../../../third_party/icu/android/icudtl.dat -FILE: ../../../third_party/icu/cast/brkitr.patch -FILE: ../../../third_party/icu/cast/icudtl.dat -FILE: ../../../third_party/icu/chromeos/icudtl.dat -FILE: ../../../third_party/icu/chromeos/icudtl.dat.hash -FILE: ../../../third_party/icu/common/icudtb.dat -FILE: ../../../third_party/icu/common/icudtl.dat -FILE: ../../../third_party/icu/flutter/brkitr.patch -FILE: ../../../third_party/icu/flutter/icudtl.dat -FILE: ../../../third_party/icu/fuzzers/fuzzer_utils.h -FILE: ../../../third_party/icu/fuzzers/icu_appendable_fuzzer.cc -FILE: ../../../third_party/icu/fuzzers/icu_break_iterator_fuzzer.cc -FILE: ../../../third_party/icu/fuzzers/icu_break_iterator_utf32_fuzzer.cc -FILE: ../../../third_party/icu/fuzzers/icu_number_format_fuzzer.cc -FILE: ../../../third_party/icu/fuzzers/icu_to_case_fuzzer.cc -FILE: ../../../third_party/icu/fuzzers/icu_ucasemap_fuzzer.cc -FILE: ../../../third_party/icu/ios/icudtl.dat -FILE: ../../../third_party/icu/patches/AliasDataBuilder-readAlias.patch -FILE: ../../../third_party/icu/patches/DateIntervalFormatnormalizeHourMetacharacters.patch -FILE: ../../../third_party/icu/patches/ardatepattern.patch -FILE: ../../../third_party/icu/patches/atomic_template_instantiation.patch -FILE: ../../../third_party/icu/patches/calendar-get-out-of-bound.patch -FILE: ../../../third_party/icu/patches/calendar-get-out-of-bound2.patch -FILE: ../../../third_party/icu/patches/calendar_return_error_early.patch -FILE: ../../../third_party/icu/patches/cjdict.patch -FILE: ../../../third_party/icu/patches/collationdatabuilder.patch -FILE: ../../../third_party/icu/patches/configure.patch -FILE: ../../../third_party/icu/patches/cxx20enum.patch -FILE: ../../../third_party/icu/patches/data_symb.patch -FILE: ../../../third_party/icu/patches/formatted_string_builder.patch -FILE: ../../../third_party/icu/patches/fuchsia.patch -FILE: ../../../third_party/icu/patches/gb_table.patch -FILE: ../../../third_party/icu/patches/iso2022jp.patch -FILE: ../../../third_party/icu/patches/isvalidenum.patch -FILE: ../../../third_party/icu/patches/khmer-dictbe.patch -FILE: ../../../third_party/icu/patches/locale1.patch -FILE: ../../../third_party/icu/patches/locale_google.patch -FILE: ../../../third_party/icu/patches/number_range_format.patch -FILE: ../../../third_party/icu/patches/restrace.patch -FILE: ../../../third_party/icu/patches/rmATOMIC_VAR_INIT.patch -FILE: ../../../third_party/icu/patches/timezone-rawoffset.patch -FILE: ../../../third_party/icu/patches/unused-var-unary-operators.patch -FILE: ../../../third_party/icu/patches/wordbrk.patch -FILE: ../../../third_party/icu/patches/wpo.patch -FILE: ../../../third_party/icu/source/data/in/coll/ucadata-implicithan.icu -FILE: ../../../third_party/icu/source/data/in/coll/ucadata-unihan.icu -FILE: ../../../third_party/icu/source/data/in/nfc.nrm -FILE: ../../../third_party/icu/source/data/in/nfkc.nrm -FILE: ../../../third_party/icu/source/data/in/nfkc_cf.nrm -FILE: ../../../third_party/icu/source/data/in/pnames.icu -FILE: ../../../third_party/icu/source/data/in/ubidi.icu -FILE: ../../../third_party/icu/source/data/in/ucase.icu -FILE: ../../../third_party/icu/source/data/in/uemoji.icu -FILE: ../../../third_party/icu/source/data/in/ulayout.icu -FILE: ../../../third_party/icu/source/data/in/unames.icu -FILE: ../../../third_party/icu/source/data/in/uprops.icu -FILE: ../../../third_party/icu/source/data/in/uts46.nrm -FILE: ../../../third_party/icu/source/data/mappings/big5-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/euc-jp-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/euc-kr-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/gb18030.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm866-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-10-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-13-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-14-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-15-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-16-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-2-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-3-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-4-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-5-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-6-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-7-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-8-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/koi8-r-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/koi8-u-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/macintosh-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/shift_jis-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1250-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1251-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1252-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1253-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1254-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1255-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1256-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1257-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1258-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-874-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-936-2000.ucm -FILE: ../../../third_party/icu/source/data/mappings/x-mac-cyrillic-html.ucm -FILE: ../../../third_party/icu/source/extra/scrptrun/srtest.dsp -FILE: ../../../third_party/icu/source/extra/scrptrun/srtest.dsw -FILE: ../../../third_party/icu/source/tools/tzcode/asctime.c -FILE: ../../../third_party/icu/source/tools/tzcode/ialloc.c -FILE: ../../../third_party/icu/source/tools/tzcode/localtime.c -FILE: ../../../third_party/icu/source/tools/tzcode/private.h -FILE: ../../../third_party/icu/source/tools/tzcode/scheck.c -FILE: ../../../third_party/icu/source/tools/tzcode/tzfile.h -FILE: ../../../third_party/icu/source/tools/tzcode/tzselect.ksh -FILE: ../../../third_party/icu/source/tools/tzcode/zdump.c -FILE: ../../../third_party/icu/source/tools/tzcode/zic.c -FILE: ../../../third_party/icu/tzres/metaZones.res -FILE: ../../../third_party/icu/tzres/timezoneTypes.res -FILE: ../../../third_party/icu/tzres/zoneinfo64.res ----------------------------------------------------------------------------------------------------- -The BSD License -http://opensource.org/licenses/bsd-license.php -Copyright (C) 2006-2008, Google Inc. - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following -disclaimer in the documentation and/or other materials provided with -the distribution. - Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND -CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR -BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: icu -ORIGIN: ../../../third_party/icu/LICENSE -TYPE: LicenseType.icu -FILE: ../../../third_party/icu/DIR_METADATA -FILE: ../../../third_party/icu/android/icudtl.dat -FILE: ../../../third_party/icu/cast/brkitr.patch -FILE: ../../../third_party/icu/cast/icudtl.dat -FILE: ../../../third_party/icu/chromeos/icudtl.dat -FILE: ../../../third_party/icu/chromeos/icudtl.dat.hash -FILE: ../../../third_party/icu/common/icudtb.dat -FILE: ../../../third_party/icu/common/icudtl.dat -FILE: ../../../third_party/icu/flutter/brkitr.patch -FILE: ../../../third_party/icu/flutter/icudtl.dat -FILE: ../../../third_party/icu/fuzzers/fuzzer_utils.h -FILE: ../../../third_party/icu/fuzzers/icu_appendable_fuzzer.cc -FILE: ../../../third_party/icu/fuzzers/icu_break_iterator_fuzzer.cc -FILE: ../../../third_party/icu/fuzzers/icu_break_iterator_utf32_fuzzer.cc -FILE: ../../../third_party/icu/fuzzers/icu_number_format_fuzzer.cc -FILE: ../../../third_party/icu/fuzzers/icu_to_case_fuzzer.cc -FILE: ../../../third_party/icu/fuzzers/icu_ucasemap_fuzzer.cc -FILE: ../../../third_party/icu/ios/icudtl.dat -FILE: ../../../third_party/icu/patches/AliasDataBuilder-readAlias.patch -FILE: ../../../third_party/icu/patches/DateIntervalFormatnormalizeHourMetacharacters.patch -FILE: ../../../third_party/icu/patches/ardatepattern.patch -FILE: ../../../third_party/icu/patches/atomic_template_instantiation.patch -FILE: ../../../third_party/icu/patches/calendar-get-out-of-bound.patch -FILE: ../../../third_party/icu/patches/calendar-get-out-of-bound2.patch -FILE: ../../../third_party/icu/patches/calendar_return_error_early.patch -FILE: ../../../third_party/icu/patches/cjdict.patch -FILE: ../../../third_party/icu/patches/collationdatabuilder.patch -FILE: ../../../third_party/icu/patches/configure.patch -FILE: ../../../third_party/icu/patches/cxx20enum.patch -FILE: ../../../third_party/icu/patches/data_symb.patch -FILE: ../../../third_party/icu/patches/formatted_string_builder.patch -FILE: ../../../third_party/icu/patches/fuchsia.patch -FILE: ../../../third_party/icu/patches/gb_table.patch -FILE: ../../../third_party/icu/patches/iso2022jp.patch -FILE: ../../../third_party/icu/patches/isvalidenum.patch -FILE: ../../../third_party/icu/patches/khmer-dictbe.patch -FILE: ../../../third_party/icu/patches/locale1.patch -FILE: ../../../third_party/icu/patches/locale_google.patch -FILE: ../../../third_party/icu/patches/number_range_format.patch -FILE: ../../../third_party/icu/patches/restrace.patch -FILE: ../../../third_party/icu/patches/rmATOMIC_VAR_INIT.patch -FILE: ../../../third_party/icu/patches/timezone-rawoffset.patch -FILE: ../../../third_party/icu/patches/unused-var-unary-operators.patch -FILE: ../../../third_party/icu/patches/wordbrk.patch -FILE: ../../../third_party/icu/patches/wpo.patch -FILE: ../../../third_party/icu/source/data/in/coll/ucadata-implicithan.icu -FILE: ../../../third_party/icu/source/data/in/coll/ucadata-unihan.icu -FILE: ../../../third_party/icu/source/data/in/nfc.nrm -FILE: ../../../third_party/icu/source/data/in/nfkc.nrm -FILE: ../../../third_party/icu/source/data/in/nfkc_cf.nrm -FILE: ../../../third_party/icu/source/data/in/pnames.icu -FILE: ../../../third_party/icu/source/data/in/ubidi.icu -FILE: ../../../third_party/icu/source/data/in/ucase.icu -FILE: ../../../third_party/icu/source/data/in/uemoji.icu -FILE: ../../../third_party/icu/source/data/in/ulayout.icu -FILE: ../../../third_party/icu/source/data/in/unames.icu -FILE: ../../../third_party/icu/source/data/in/uprops.icu -FILE: ../../../third_party/icu/source/data/in/uts46.nrm -FILE: ../../../third_party/icu/source/data/mappings/big5-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/euc-jp-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/euc-kr-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/gb18030.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm866-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-10-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-13-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-14-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-15-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-16-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-2-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-3-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-4-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-5-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-6-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-7-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-8-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/koi8-r-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/koi8-u-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/macintosh-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/shift_jis-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1250-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1251-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1252-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1253-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1254-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1255-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1256-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1257-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1258-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-874-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-936-2000.ucm -FILE: ../../../third_party/icu/source/data/mappings/x-mac-cyrillic-html.ucm -FILE: ../../../third_party/icu/source/extra/scrptrun/srtest.dsp -FILE: ../../../third_party/icu/source/extra/scrptrun/srtest.dsw -FILE: ../../../third_party/icu/source/tools/tzcode/asctime.c -FILE: ../../../third_party/icu/source/tools/tzcode/ialloc.c -FILE: ../../../third_party/icu/source/tools/tzcode/localtime.c -FILE: ../../../third_party/icu/source/tools/tzcode/private.h -FILE: ../../../third_party/icu/source/tools/tzcode/scheck.c -FILE: ../../../third_party/icu/source/tools/tzcode/tzfile.h -FILE: ../../../third_party/icu/source/tools/tzcode/tzselect.ksh -FILE: ../../../third_party/icu/source/tools/tzcode/zdump.c -FILE: ../../../third_party/icu/source/tools/tzcode/zic.c -FILE: ../../../third_party/icu/tzres/metaZones.res -FILE: ../../../third_party/icu/tzres/timezoneTypes.res -FILE: ../../../third_party/icu/tzres/zoneinfo64.res ----------------------------------------------------------------------------------------------------- -Copyright (c) 1995-2016 International Business Machines Corporation and others -All rights reserved. - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, and/or sell copies of the Software, and to permit persons -to whom the Software is furnished to do so, provided that the above -copyright notice(s) and this permission notice appear in all copies of -the Software and that both the above copyright notice(s) and this -permission notice appear in supporting documentation. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT -OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR -HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY -SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER -RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF -CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN -CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - -Except as contained in this notice, the name of a copyright holder -shall not be used in advertising or otherwise to promote the sale, use -or other dealings in this Software without prior written authorization -of the copyright holder. - -All trademarks and registered trademarks mentioned herein are the -property of their respective owners. -==================================================================================================== - -==================================================================================================== -LIBRARY: icu -ORIGIN: ../../../third_party/icu/LICENSE -TYPE: LicenseType.mit -FILE: ../../../third_party/icu/DIR_METADATA -FILE: ../../../third_party/icu/android/icudtl.dat -FILE: ../../../third_party/icu/cast/brkitr.patch -FILE: ../../../third_party/icu/cast/icudtl.dat -FILE: ../../../third_party/icu/chromeos/icudtl.dat -FILE: ../../../third_party/icu/chromeos/icudtl.dat.hash -FILE: ../../../third_party/icu/common/icudtb.dat -FILE: ../../../third_party/icu/common/icudtl.dat -FILE: ../../../third_party/icu/flutter/brkitr.patch -FILE: ../../../third_party/icu/flutter/icudtl.dat -FILE: ../../../third_party/icu/fuzzers/fuzzer_utils.h -FILE: ../../../third_party/icu/fuzzers/icu_appendable_fuzzer.cc -FILE: ../../../third_party/icu/fuzzers/icu_break_iterator_fuzzer.cc -FILE: ../../../third_party/icu/fuzzers/icu_break_iterator_utf32_fuzzer.cc -FILE: ../../../third_party/icu/fuzzers/icu_number_format_fuzzer.cc -FILE: ../../../third_party/icu/fuzzers/icu_to_case_fuzzer.cc -FILE: ../../../third_party/icu/fuzzers/icu_ucasemap_fuzzer.cc -FILE: ../../../third_party/icu/ios/icudtl.dat -FILE: ../../../third_party/icu/patches/AliasDataBuilder-readAlias.patch -FILE: ../../../third_party/icu/patches/DateIntervalFormatnormalizeHourMetacharacters.patch -FILE: ../../../third_party/icu/patches/ardatepattern.patch -FILE: ../../../third_party/icu/patches/atomic_template_instantiation.patch -FILE: ../../../third_party/icu/patches/calendar-get-out-of-bound.patch -FILE: ../../../third_party/icu/patches/calendar-get-out-of-bound2.patch -FILE: ../../../third_party/icu/patches/calendar_return_error_early.patch -FILE: ../../../third_party/icu/patches/cjdict.patch -FILE: ../../../third_party/icu/patches/collationdatabuilder.patch -FILE: ../../../third_party/icu/patches/configure.patch -FILE: ../../../third_party/icu/patches/cxx20enum.patch -FILE: ../../../third_party/icu/patches/data_symb.patch -FILE: ../../../third_party/icu/patches/formatted_string_builder.patch -FILE: ../../../third_party/icu/patches/fuchsia.patch -FILE: ../../../third_party/icu/patches/gb_table.patch -FILE: ../../../third_party/icu/patches/iso2022jp.patch -FILE: ../../../third_party/icu/patches/isvalidenum.patch -FILE: ../../../third_party/icu/patches/khmer-dictbe.patch -FILE: ../../../third_party/icu/patches/locale1.patch -FILE: ../../../third_party/icu/patches/locale_google.patch -FILE: ../../../third_party/icu/patches/number_range_format.patch -FILE: ../../../third_party/icu/patches/restrace.patch -FILE: ../../../third_party/icu/patches/rmATOMIC_VAR_INIT.patch -FILE: ../../../third_party/icu/patches/timezone-rawoffset.patch -FILE: ../../../third_party/icu/patches/unused-var-unary-operators.patch -FILE: ../../../third_party/icu/patches/wordbrk.patch -FILE: ../../../third_party/icu/patches/wpo.patch -FILE: ../../../third_party/icu/source/data/in/coll/ucadata-implicithan.icu -FILE: ../../../third_party/icu/source/data/in/coll/ucadata-unihan.icu -FILE: ../../../third_party/icu/source/data/in/nfc.nrm -FILE: ../../../third_party/icu/source/data/in/nfkc.nrm -FILE: ../../../third_party/icu/source/data/in/nfkc_cf.nrm -FILE: ../../../third_party/icu/source/data/in/pnames.icu -FILE: ../../../third_party/icu/source/data/in/ubidi.icu -FILE: ../../../third_party/icu/source/data/in/ucase.icu -FILE: ../../../third_party/icu/source/data/in/uemoji.icu -FILE: ../../../third_party/icu/source/data/in/ulayout.icu -FILE: ../../../third_party/icu/source/data/in/unames.icu -FILE: ../../../third_party/icu/source/data/in/uprops.icu -FILE: ../../../third_party/icu/source/data/in/uts46.nrm -FILE: ../../../third_party/icu/source/data/mappings/big5-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/euc-jp-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/euc-kr-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/gb18030.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm866-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-10-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-13-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-14-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-15-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-16-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-2-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-3-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-4-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-5-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-6-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-7-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-8-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/koi8-r-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/koi8-u-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/macintosh-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/shift_jis-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1250-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1251-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1252-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1253-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1254-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1255-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1256-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1257-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1258-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-874-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-936-2000.ucm -FILE: ../../../third_party/icu/source/data/mappings/x-mac-cyrillic-html.ucm -FILE: ../../../third_party/icu/source/extra/scrptrun/srtest.dsp -FILE: ../../../third_party/icu/source/extra/scrptrun/srtest.dsw -FILE: ../../../third_party/icu/source/tools/tzcode/asctime.c -FILE: ../../../third_party/icu/source/tools/tzcode/ialloc.c -FILE: ../../../third_party/icu/source/tools/tzcode/localtime.c -FILE: ../../../third_party/icu/source/tools/tzcode/private.h -FILE: ../../../third_party/icu/source/tools/tzcode/scheck.c -FILE: ../../../third_party/icu/source/tools/tzcode/tzfile.h -FILE: ../../../third_party/icu/source/tools/tzcode/tzselect.ksh -FILE: ../../../third_party/icu/source/tools/tzcode/zdump.c -FILE: ../../../third_party/icu/source/tools/tzcode/zic.c -FILE: ../../../third_party/icu/tzres/metaZones.res -FILE: ../../../third_party/icu/tzres/timezoneTypes.res -FILE: ../../../third_party/icu/tzres/zoneinfo64.res ----------------------------------------------------------------------------------------------------- -Copyright 1991 by the Massachusetts Institute of Technology -==================================================================================================== - -==================================================================================================== -LIBRARY: icu -ORIGIN: ../../../third_party/icu/LICENSE -TYPE: LicenseType.unknown -FILE: ../../../third_party/icu/DIR_METADATA -FILE: ../../../third_party/icu/android/icudtl.dat -FILE: ../../../third_party/icu/cast/brkitr.patch -FILE: ../../../third_party/icu/cast/icudtl.dat -FILE: ../../../third_party/icu/chromeos/icudtl.dat -FILE: ../../../third_party/icu/chromeos/icudtl.dat.hash -FILE: ../../../third_party/icu/common/icudtb.dat -FILE: ../../../third_party/icu/common/icudtl.dat -FILE: ../../../third_party/icu/flutter/brkitr.patch -FILE: ../../../third_party/icu/flutter/icudtl.dat -FILE: ../../../third_party/icu/fuzzers/fuzzer_utils.h -FILE: ../../../third_party/icu/fuzzers/icu_appendable_fuzzer.cc -FILE: ../../../third_party/icu/fuzzers/icu_break_iterator_fuzzer.cc -FILE: ../../../third_party/icu/fuzzers/icu_break_iterator_utf32_fuzzer.cc -FILE: ../../../third_party/icu/fuzzers/icu_number_format_fuzzer.cc -FILE: ../../../third_party/icu/fuzzers/icu_to_case_fuzzer.cc -FILE: ../../../third_party/icu/fuzzers/icu_ucasemap_fuzzer.cc -FILE: ../../../third_party/icu/ios/icudtl.dat -FILE: ../../../third_party/icu/patches/AliasDataBuilder-readAlias.patch -FILE: ../../../third_party/icu/patches/DateIntervalFormatnormalizeHourMetacharacters.patch -FILE: ../../../third_party/icu/patches/ardatepattern.patch -FILE: ../../../third_party/icu/patches/atomic_template_instantiation.patch -FILE: ../../../third_party/icu/patches/calendar-get-out-of-bound.patch -FILE: ../../../third_party/icu/patches/calendar-get-out-of-bound2.patch -FILE: ../../../third_party/icu/patches/calendar_return_error_early.patch -FILE: ../../../third_party/icu/patches/cjdict.patch -FILE: ../../../third_party/icu/patches/collationdatabuilder.patch -FILE: ../../../third_party/icu/patches/configure.patch -FILE: ../../../third_party/icu/patches/cxx20enum.patch -FILE: ../../../third_party/icu/patches/data_symb.patch -FILE: ../../../third_party/icu/patches/formatted_string_builder.patch -FILE: ../../../third_party/icu/patches/fuchsia.patch -FILE: ../../../third_party/icu/patches/gb_table.patch -FILE: ../../../third_party/icu/patches/iso2022jp.patch -FILE: ../../../third_party/icu/patches/isvalidenum.patch -FILE: ../../../third_party/icu/patches/khmer-dictbe.patch -FILE: ../../../third_party/icu/patches/locale1.patch -FILE: ../../../third_party/icu/patches/locale_google.patch -FILE: ../../../third_party/icu/patches/number_range_format.patch -FILE: ../../../third_party/icu/patches/restrace.patch -FILE: ../../../third_party/icu/patches/rmATOMIC_VAR_INIT.patch -FILE: ../../../third_party/icu/patches/timezone-rawoffset.patch -FILE: ../../../third_party/icu/patches/unused-var-unary-operators.patch -FILE: ../../../third_party/icu/patches/wordbrk.patch -FILE: ../../../third_party/icu/patches/wpo.patch -FILE: ../../../third_party/icu/source/data/in/coll/ucadata-implicithan.icu -FILE: ../../../third_party/icu/source/data/in/coll/ucadata-unihan.icu -FILE: ../../../third_party/icu/source/data/in/nfc.nrm -FILE: ../../../third_party/icu/source/data/in/nfkc.nrm -FILE: ../../../third_party/icu/source/data/in/nfkc_cf.nrm -FILE: ../../../third_party/icu/source/data/in/pnames.icu -FILE: ../../../third_party/icu/source/data/in/ubidi.icu -FILE: ../../../third_party/icu/source/data/in/ucase.icu -FILE: ../../../third_party/icu/source/data/in/uemoji.icu -FILE: ../../../third_party/icu/source/data/in/ulayout.icu -FILE: ../../../third_party/icu/source/data/in/unames.icu -FILE: ../../../third_party/icu/source/data/in/uprops.icu -FILE: ../../../third_party/icu/source/data/in/uts46.nrm -FILE: ../../../third_party/icu/source/data/mappings/big5-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/euc-jp-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/euc-kr-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/gb18030.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm866-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-10-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-13-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-14-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-15-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-16-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-2-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-3-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-4-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-5-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-6-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-7-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-8-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/koi8-r-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/koi8-u-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/macintosh-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/shift_jis-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1250-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1251-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1252-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1253-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1254-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1255-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1256-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1257-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1258-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-874-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-936-2000.ucm -FILE: ../../../third_party/icu/source/data/mappings/x-mac-cyrillic-html.ucm -FILE: ../../../third_party/icu/source/extra/scrptrun/srtest.dsp -FILE: ../../../third_party/icu/source/extra/scrptrun/srtest.dsw -FILE: ../../../third_party/icu/source/tools/tzcode/asctime.c -FILE: ../../../third_party/icu/source/tools/tzcode/ialloc.c -FILE: ../../../third_party/icu/source/tools/tzcode/localtime.c -FILE: ../../../third_party/icu/source/tools/tzcode/private.h -FILE: ../../../third_party/icu/source/tools/tzcode/scheck.c -FILE: ../../../third_party/icu/source/tools/tzcode/tzfile.h -FILE: ../../../third_party/icu/source/tools/tzcode/tzselect.ksh -FILE: ../../../third_party/icu/source/tools/tzcode/zdump.c -FILE: ../../../third_party/icu/source/tools/tzcode/zic.c -FILE: ../../../third_party/icu/tzres/metaZones.res -FILE: ../../../third_party/icu/tzres/timezoneTypes.res -FILE: ../../../third_party/icu/tzres/zoneinfo64.res ----------------------------------------------------------------------------------------------------- -Copyright 1996 Chih-Hao Tsai @ Beckman Institute, - University of Illinois -c-tsai4@uiuc.edu http://casper.beckman.uiuc.edu/~c-tsai4 -==================================================================================================== - -==================================================================================================== -LIBRARY: icu -ORIGIN: ../../../third_party/icu/LICENSE -TYPE: LicenseType.unknown -FILE: ../../../third_party/icu/DIR_METADATA -FILE: ../../../third_party/icu/android/icudtl.dat -FILE: ../../../third_party/icu/cast/brkitr.patch -FILE: ../../../third_party/icu/cast/icudtl.dat -FILE: ../../../third_party/icu/chromeos/icudtl.dat -FILE: ../../../third_party/icu/chromeos/icudtl.dat.hash -FILE: ../../../third_party/icu/common/icudtb.dat -FILE: ../../../third_party/icu/common/icudtl.dat -FILE: ../../../third_party/icu/flutter/brkitr.patch -FILE: ../../../third_party/icu/flutter/icudtl.dat -FILE: ../../../third_party/icu/fuzzers/fuzzer_utils.h -FILE: ../../../third_party/icu/fuzzers/icu_appendable_fuzzer.cc -FILE: ../../../third_party/icu/fuzzers/icu_break_iterator_fuzzer.cc -FILE: ../../../third_party/icu/fuzzers/icu_break_iterator_utf32_fuzzer.cc -FILE: ../../../third_party/icu/fuzzers/icu_number_format_fuzzer.cc -FILE: ../../../third_party/icu/fuzzers/icu_to_case_fuzzer.cc -FILE: ../../../third_party/icu/fuzzers/icu_ucasemap_fuzzer.cc -FILE: ../../../third_party/icu/ios/icudtl.dat -FILE: ../../../third_party/icu/patches/AliasDataBuilder-readAlias.patch -FILE: ../../../third_party/icu/patches/DateIntervalFormatnormalizeHourMetacharacters.patch -FILE: ../../../third_party/icu/patches/ardatepattern.patch -FILE: ../../../third_party/icu/patches/atomic_template_instantiation.patch -FILE: ../../../third_party/icu/patches/calendar-get-out-of-bound.patch -FILE: ../../../third_party/icu/patches/calendar-get-out-of-bound2.patch -FILE: ../../../third_party/icu/patches/calendar_return_error_early.patch -FILE: ../../../third_party/icu/patches/cjdict.patch -FILE: ../../../third_party/icu/patches/collationdatabuilder.patch -FILE: ../../../third_party/icu/patches/configure.patch -FILE: ../../../third_party/icu/patches/cxx20enum.patch -FILE: ../../../third_party/icu/patches/data_symb.patch -FILE: ../../../third_party/icu/patches/formatted_string_builder.patch -FILE: ../../../third_party/icu/patches/fuchsia.patch -FILE: ../../../third_party/icu/patches/gb_table.patch -FILE: ../../../third_party/icu/patches/iso2022jp.patch -FILE: ../../../third_party/icu/patches/isvalidenum.patch -FILE: ../../../third_party/icu/patches/khmer-dictbe.patch -FILE: ../../../third_party/icu/patches/locale1.patch -FILE: ../../../third_party/icu/patches/locale_google.patch -FILE: ../../../third_party/icu/patches/number_range_format.patch -FILE: ../../../third_party/icu/patches/restrace.patch -FILE: ../../../third_party/icu/patches/rmATOMIC_VAR_INIT.patch -FILE: ../../../third_party/icu/patches/timezone-rawoffset.patch -FILE: ../../../third_party/icu/patches/unused-var-unary-operators.patch -FILE: ../../../third_party/icu/patches/wordbrk.patch -FILE: ../../../third_party/icu/patches/wpo.patch -FILE: ../../../third_party/icu/source/data/in/coll/ucadata-implicithan.icu -FILE: ../../../third_party/icu/source/data/in/coll/ucadata-unihan.icu -FILE: ../../../third_party/icu/source/data/in/nfc.nrm -FILE: ../../../third_party/icu/source/data/in/nfkc.nrm -FILE: ../../../third_party/icu/source/data/in/nfkc_cf.nrm -FILE: ../../../third_party/icu/source/data/in/pnames.icu -FILE: ../../../third_party/icu/source/data/in/ubidi.icu -FILE: ../../../third_party/icu/source/data/in/ucase.icu -FILE: ../../../third_party/icu/source/data/in/uemoji.icu -FILE: ../../../third_party/icu/source/data/in/ulayout.icu -FILE: ../../../third_party/icu/source/data/in/unames.icu -FILE: ../../../third_party/icu/source/data/in/uprops.icu -FILE: ../../../third_party/icu/source/data/in/uts46.nrm -FILE: ../../../third_party/icu/source/data/mappings/big5-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/euc-jp-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/euc-kr-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/gb18030.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm866-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-10-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-13-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-14-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-15-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-16-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-2-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-3-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-4-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-5-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-6-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-7-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-8-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/koi8-r-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/koi8-u-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/macintosh-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/shift_jis-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1250-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1251-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1252-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1253-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1254-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1255-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1256-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1257-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1258-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-874-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-936-2000.ucm -FILE: ../../../third_party/icu/source/data/mappings/x-mac-cyrillic-html.ucm -FILE: ../../../third_party/icu/source/extra/scrptrun/srtest.dsp -FILE: ../../../third_party/icu/source/extra/scrptrun/srtest.dsw -FILE: ../../../third_party/icu/source/tools/tzcode/asctime.c -FILE: ../../../third_party/icu/source/tools/tzcode/ialloc.c -FILE: ../../../third_party/icu/source/tools/tzcode/localtime.c -FILE: ../../../third_party/icu/source/tools/tzcode/private.h -FILE: ../../../third_party/icu/source/tools/tzcode/scheck.c -FILE: ../../../third_party/icu/source/tools/tzcode/tzfile.h -FILE: ../../../third_party/icu/source/tools/tzcode/tzselect.ksh -FILE: ../../../third_party/icu/source/tools/tzcode/zdump.c -FILE: ../../../third_party/icu/source/tools/tzcode/zic.c -FILE: ../../../third_party/icu/tzres/metaZones.res -FILE: ../../../third_party/icu/tzres/timezoneTypes.res -FILE: ../../../third_party/icu/tzres/zoneinfo64.res ----------------------------------------------------------------------------------------------------- -Copyright 2000, 2001, 2002, 2003 Nara Institute of Science -and Technology. All Rights Reserved. - -Use, reproduction, and distribution of this software is permitted. -Any copy of this software, whether in its original form or modified, -must include both the above copyright notice and the following -paragraphs. - -Nara Institute of Science and Technology (NAIST), -the copyright holders, disclaims all warranties with regard to this -software, including all implied warranties of merchantability and -fitness, in no event shall NAIST be liable for -any special, indirect or consequential damages or any damages -whatsoever resulting from loss of use, data or profits, whether in an -action of contract, negligence or other tortuous action, arising out -of or in connection with the use or performance of this software. - -A large portion of the dictionary entries -originate from ICOT Free Software. The following conditions for ICOT -Free Software applies to the current dictionary as well. - -Each User may also freely distribute the Program, whether in its -original form or modified, to any third party or parties, PROVIDED -that the provisions of Section 3 ("NO WARRANTY") will ALWAYS appear -on, or be attached to, the Program, which is distributed substantially -in the same form as set out herein and that such intended -distribution, if actually made, will neither violate or otherwise -contravene any of the laws and regulations of the countries having -jurisdiction over the User or the intended distribution itself. - -NO WARRANTY - -The program was produced on an experimental basis in the course of the -research and development conducted during the project and is provided -to users as so produced on an experimental basis. Accordingly, the -program is provided without any warranty whatsoever, whether express, -implied, statutory or otherwise. The term "warranty" used herein -includes, but is not limited to, any warranty of the quality, -performance, merchantability and fitness for a particular purpose of -the program and the nonexistence of any infringement or violation of -any right of any third party. - -Each user of the program will agree and understand, and be deemed to -have agreed and understood, that there is no warranty whatsoever for -the program and, accordingly, the entire risk arising from or -otherwise connected with the program is assumed by the user. - -Therefore, neither ICOT, the copyright holder, or any other -organization that participated in or was otherwise related to the -development of the program and their respective officials, directors, -officers and other employees shall be held liable for any and all -damages, including, without limitation, general, special, incidental -and consequential damages, arising out of or otherwise in connection -with the use or inability to use the program or any product, material -or result produced or otherwise obtained by using the program, -regardless of whether they have been advised of, or otherwise had -knowledge of, the possibility of such damages at any time during the -project or thereafter. Each user will be deemed to have agreed to the -foregoing by his or her commencement of use of the program. The term -"use" as used herein includes, but is not limited to, the use, -modification, copying and distribution of the program and the -production of secondary products from the program. - -In the case where the program, whether in its original form or -modified, was distributed or delivered to or received by a user from -any person, organization or entity other than ICOT, unless it makes or -grants independently of ICOT any specific warranty to the user in -writing, such person, organization or entity, will also be exempted -from and not be held liable to the user for any such damages as noted -above as far as the program is concerned. -==================================================================================================== - -==================================================================================================== -LIBRARY: icu -ORIGIN: ../../../third_party/icu/LICENSE -TYPE: LicenseType.unknown -FILE: ../../../third_party/icu/DIR_METADATA -FILE: ../../../third_party/icu/android/icudtl.dat -FILE: ../../../third_party/icu/cast/brkitr.patch -FILE: ../../../third_party/icu/cast/icudtl.dat -FILE: ../../../third_party/icu/chromeos/icudtl.dat -FILE: ../../../third_party/icu/chromeos/icudtl.dat.hash -FILE: ../../../third_party/icu/common/icudtb.dat -FILE: ../../../third_party/icu/common/icudtl.dat -FILE: ../../../third_party/icu/flutter/brkitr.patch -FILE: ../../../third_party/icu/flutter/icudtl.dat -FILE: ../../../third_party/icu/fuzzers/fuzzer_utils.h -FILE: ../../../third_party/icu/fuzzers/icu_appendable_fuzzer.cc -FILE: ../../../third_party/icu/fuzzers/icu_break_iterator_fuzzer.cc -FILE: ../../../third_party/icu/fuzzers/icu_break_iterator_utf32_fuzzer.cc -FILE: ../../../third_party/icu/fuzzers/icu_number_format_fuzzer.cc -FILE: ../../../third_party/icu/fuzzers/icu_to_case_fuzzer.cc -FILE: ../../../third_party/icu/fuzzers/icu_ucasemap_fuzzer.cc -FILE: ../../../third_party/icu/ios/icudtl.dat -FILE: ../../../third_party/icu/patches/AliasDataBuilder-readAlias.patch -FILE: ../../../third_party/icu/patches/DateIntervalFormatnormalizeHourMetacharacters.patch -FILE: ../../../third_party/icu/patches/ardatepattern.patch -FILE: ../../../third_party/icu/patches/atomic_template_instantiation.patch -FILE: ../../../third_party/icu/patches/calendar-get-out-of-bound.patch -FILE: ../../../third_party/icu/patches/calendar-get-out-of-bound2.patch -FILE: ../../../third_party/icu/patches/calendar_return_error_early.patch -FILE: ../../../third_party/icu/patches/cjdict.patch -FILE: ../../../third_party/icu/patches/collationdatabuilder.patch -FILE: ../../../third_party/icu/patches/configure.patch -FILE: ../../../third_party/icu/patches/cxx20enum.patch -FILE: ../../../third_party/icu/patches/data_symb.patch -FILE: ../../../third_party/icu/patches/formatted_string_builder.patch -FILE: ../../../third_party/icu/patches/fuchsia.patch -FILE: ../../../third_party/icu/patches/gb_table.patch -FILE: ../../../third_party/icu/patches/iso2022jp.patch -FILE: ../../../third_party/icu/patches/isvalidenum.patch -FILE: ../../../third_party/icu/patches/khmer-dictbe.patch -FILE: ../../../third_party/icu/patches/locale1.patch -FILE: ../../../third_party/icu/patches/locale_google.patch -FILE: ../../../third_party/icu/patches/number_range_format.patch -FILE: ../../../third_party/icu/patches/restrace.patch -FILE: ../../../third_party/icu/patches/rmATOMIC_VAR_INIT.patch -FILE: ../../../third_party/icu/patches/timezone-rawoffset.patch -FILE: ../../../third_party/icu/patches/unused-var-unary-operators.patch -FILE: ../../../third_party/icu/patches/wordbrk.patch -FILE: ../../../third_party/icu/patches/wpo.patch -FILE: ../../../third_party/icu/source/data/in/coll/ucadata-implicithan.icu -FILE: ../../../third_party/icu/source/data/in/coll/ucadata-unihan.icu -FILE: ../../../third_party/icu/source/data/in/nfc.nrm -FILE: ../../../third_party/icu/source/data/in/nfkc.nrm -FILE: ../../../third_party/icu/source/data/in/nfkc_cf.nrm -FILE: ../../../third_party/icu/source/data/in/pnames.icu -FILE: ../../../third_party/icu/source/data/in/ubidi.icu -FILE: ../../../third_party/icu/source/data/in/ucase.icu -FILE: ../../../third_party/icu/source/data/in/uemoji.icu -FILE: ../../../third_party/icu/source/data/in/ulayout.icu -FILE: ../../../third_party/icu/source/data/in/unames.icu -FILE: ../../../third_party/icu/source/data/in/uprops.icu -FILE: ../../../third_party/icu/source/data/in/uts46.nrm -FILE: ../../../third_party/icu/source/data/mappings/big5-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/euc-jp-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/euc-kr-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/gb18030.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm866-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-10-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-13-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-14-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-15-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-16-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-2-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-3-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-4-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-5-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-6-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-7-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859-8-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/koi8-r-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/koi8-u-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/macintosh-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/shift_jis-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1250-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1251-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1252-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1253-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1254-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1255-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1256-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1257-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-1258-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-874-html.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-936-2000.ucm -FILE: ../../../third_party/icu/source/data/mappings/x-mac-cyrillic-html.ucm -FILE: ../../../third_party/icu/source/extra/scrptrun/srtest.dsp -FILE: ../../../third_party/icu/source/extra/scrptrun/srtest.dsw -FILE: ../../../third_party/icu/source/tools/tzcode/asctime.c -FILE: ../../../third_party/icu/source/tools/tzcode/ialloc.c -FILE: ../../../third_party/icu/source/tools/tzcode/localtime.c -FILE: ../../../third_party/icu/source/tools/tzcode/private.h -FILE: ../../../third_party/icu/source/tools/tzcode/scheck.c -FILE: ../../../third_party/icu/source/tools/tzcode/tzfile.h -FILE: ../../../third_party/icu/source/tools/tzcode/tzselect.ksh -FILE: ../../../third_party/icu/source/tools/tzcode/zdump.c -FILE: ../../../third_party/icu/source/tools/tzcode/zic.c -FILE: ../../../third_party/icu/tzres/metaZones.res -FILE: ../../../third_party/icu/tzres/timezoneTypes.res -FILE: ../../../third_party/icu/tzres/zoneinfo64.res ----------------------------------------------------------------------------------------------------- -See Terms of Use -for definitions of Unicode Inc.’s Data Files and Software. - -NOTICE TO USER: Carefully read the following legal agreement. -BY DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING UNICODE INC.'S -DATA FILES ("DATA FILES"), AND/OR SOFTWARE ("SOFTWARE"), -YOU UNEQUIVOCALLY ACCEPT, AND AGREE TO BE BOUND BY, ALL OF THE -TERMS AND CONDITIONS OF THIS AGREEMENT. -IF YOU DO NOT AGREE, DO NOT DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE -THE DATA FILES OR SOFTWARE. - -COPYRIGHT AND PERMISSION NOTICE - -Copyright © 1991-2022 Unicode, Inc. All rights reserved. -Distributed under the Terms of Use in https://www.unicode.org/copyright.html. - -Permission is hereby granted, free of charge, to any person obtaining -a copy of the Unicode data files and any associated documentation -(the "Data Files") or Unicode software and any associated documentation -(the "Software") to deal in the Data Files or Software -without restriction, including without limitation the rights to use, -copy, modify, merge, publish, distribute, and/or sell copies of -the Data Files or Software, and to permit persons to whom the Data Files -or Software are furnished to do so, provided that either -(a) this copyright and permission notice appear with all copies -of the Data Files or Software, or -(b) this copyright and permission notice appear in associated -Documentation. - -THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF -ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE -WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT OF THIRD PARTY RIGHTS. -IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS -NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL -DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, -DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER -TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THE DATA FILES OR SOFTWARE. - -Except as contained in this notice, the name of a copyright holder -shall not be used in advertising or otherwise to promote the sale, -use or other dealings in these Data Files or Software without prior -written authorization of the copyright holder. -==================================================================================================== - -==================================================================================================== -LIBRARY: icu -ORIGIN: ../../../third_party/icu/filters/android.json + ../../../third_party/dart/runtime/third_party/double-conversion/LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/icu/filters/android.json -FILE: ../../../third_party/icu/filters/cast.json -FILE: ../../../third_party/icu/filters/chromeos.json -FILE: ../../../third_party/icu/filters/common.json -FILE: ../../../third_party/icu/filters/flutter.json -FILE: ../../../third_party/icu/filters/ios.json ----------------------------------------------------------------------------------------------------- -Copyright 2019 the V8 project authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - * Neither the name of Google LLC nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: icu -ORIGIN: ../../../third_party/icu/fuzzers/icu_converter_fuzzer.cc + ../../../LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/icu/fuzzers/icu_converter_fuzzer.cc -FILE: ../../../third_party/icu/fuzzers/icu_regex.dict -FILE: ../../../third_party/icu/fuzzers/icu_uregex_open_fuzzer.cc ----------------------------------------------------------------------------------------------------- -Copyright 2016 The Chromium Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: icu -ORIGIN: ../../../third_party/icu/source/common/unicode/appendable.h -TYPE: LicenseType.icu -FILE: ../../../third_party/icu/APIChangeReport.html -FILE: ../../../third_party/icu/source/Doxyfile.in -FILE: ../../../third_party/icu/source/common/BUILD.bazel -FILE: ../../../third_party/icu/source/common/appendable.cpp -FILE: ../../../third_party/icu/source/common/bmpset.cpp -FILE: ../../../third_party/icu/source/common/bmpset.h -FILE: ../../../third_party/icu/source/common/brkeng.cpp -FILE: ../../../third_party/icu/source/common/brkeng.h -FILE: ../../../third_party/icu/source/common/brkiter.cpp -FILE: ../../../third_party/icu/source/common/bytesinkutil.cpp -FILE: ../../../third_party/icu/source/common/bytesinkutil.h -FILE: ../../../third_party/icu/source/common/bytestream.cpp -FILE: ../../../third_party/icu/source/common/bytestrie.cpp -FILE: ../../../third_party/icu/source/common/bytestriebuilder.cpp -FILE: ../../../third_party/icu/source/common/bytestrieiterator.cpp -FILE: ../../../third_party/icu/source/common/caniter.cpp -FILE: ../../../third_party/icu/source/common/capi_helper.h -FILE: ../../../third_party/icu/source/common/characterproperties.cpp -FILE: ../../../third_party/icu/source/common/chariter.cpp -FILE: ../../../third_party/icu/source/common/charstr.cpp -FILE: ../../../third_party/icu/source/common/charstr.h -FILE: ../../../third_party/icu/source/common/charstrmap.h -FILE: ../../../third_party/icu/source/common/cmemory.cpp -FILE: ../../../third_party/icu/source/common/cmemory.h -FILE: ../../../third_party/icu/source/common/common.rc -FILE: ../../../third_party/icu/source/common/cpputils.h -FILE: ../../../third_party/icu/source/common/cstr.cpp -FILE: ../../../third_party/icu/source/common/cstr.h -FILE: ../../../third_party/icu/source/common/cstring.cpp -FILE: ../../../third_party/icu/source/common/cstring.h -FILE: ../../../third_party/icu/source/common/cwchar.cpp -FILE: ../../../third_party/icu/source/common/cwchar.h -FILE: ../../../third_party/icu/source/common/dictbe.cpp -FILE: ../../../third_party/icu/source/common/dictbe.h -FILE: ../../../third_party/icu/source/common/dictionarydata.cpp -FILE: ../../../third_party/icu/source/common/dictionarydata.h -FILE: ../../../third_party/icu/source/common/dtintrv.cpp -FILE: ../../../third_party/icu/source/common/edits.cpp -FILE: ../../../third_party/icu/source/common/emojiprops.cpp -FILE: ../../../third_party/icu/source/common/emojiprops.h -FILE: ../../../third_party/icu/source/common/errorcode.cpp -FILE: ../../../third_party/icu/source/common/filteredbrk.cpp -FILE: ../../../third_party/icu/source/common/filterednormalizer2.cpp -FILE: ../../../third_party/icu/source/common/hash.h -FILE: ../../../third_party/icu/source/common/icudataver.cpp -FILE: ../../../third_party/icu/source/common/icuplug.cpp -FILE: ../../../third_party/icu/source/common/icuplugimp.h -FILE: ../../../third_party/icu/source/common/loadednormalizer2impl.cpp -FILE: ../../../third_party/icu/source/common/localebuilder.cpp -FILE: ../../../third_party/icu/source/common/localematcher.cpp -FILE: ../../../third_party/icu/source/common/localeprioritylist.cpp -FILE: ../../../third_party/icu/source/common/localeprioritylist.h -FILE: ../../../third_party/icu/source/common/localsvc.h -FILE: ../../../third_party/icu/source/common/locavailable.cpp -FILE: ../../../third_party/icu/source/common/locbased.cpp -FILE: ../../../third_party/icu/source/common/locbased.h -FILE: ../../../third_party/icu/source/common/locdispnames.cpp -FILE: ../../../third_party/icu/source/common/locdistance.cpp -FILE: ../../../third_party/icu/source/common/locdistance.h -FILE: ../../../third_party/icu/source/common/locdspnm.cpp -FILE: ../../../third_party/icu/source/common/locid.cpp -FILE: ../../../third_party/icu/source/common/loclikely.cpp -FILE: ../../../third_party/icu/source/common/loclikelysubtags.cpp -FILE: ../../../third_party/icu/source/common/loclikelysubtags.h -FILE: ../../../third_party/icu/source/common/locmap.cpp -FILE: ../../../third_party/icu/source/common/locmap.h -FILE: ../../../third_party/icu/source/common/locresdata.cpp -FILE: ../../../third_party/icu/source/common/locutil.cpp -FILE: ../../../third_party/icu/source/common/locutil.h -FILE: ../../../third_party/icu/source/common/lsr.cpp -FILE: ../../../third_party/icu/source/common/lsr.h -FILE: ../../../third_party/icu/source/common/lstmbe.cpp -FILE: ../../../third_party/icu/source/common/lstmbe.h -FILE: ../../../third_party/icu/source/common/messageimpl.h -FILE: ../../../third_party/icu/source/common/messagepattern.cpp -FILE: ../../../third_party/icu/source/common/msvcres.h -FILE: ../../../third_party/icu/source/common/mutex.h -FILE: ../../../third_party/icu/source/common/norm2_nfc_data.h -FILE: ../../../third_party/icu/source/common/norm2allmodes.h -FILE: ../../../third_party/icu/source/common/normalizer2.cpp -FILE: ../../../third_party/icu/source/common/normalizer2impl.cpp -FILE: ../../../third_party/icu/source/common/normalizer2impl.h -FILE: ../../../third_party/icu/source/common/normlzr.cpp -FILE: ../../../third_party/icu/source/common/parsepos.cpp -FILE: ../../../third_party/icu/source/common/patternprops.cpp -FILE: ../../../third_party/icu/source/common/patternprops.h -FILE: ../../../third_party/icu/source/common/pluralmap.cpp -FILE: ../../../third_party/icu/source/common/pluralmap.h -FILE: ../../../third_party/icu/source/common/propname.cpp -FILE: ../../../third_party/icu/source/common/propname.h -FILE: ../../../third_party/icu/source/common/propname_data.h -FILE: ../../../third_party/icu/source/common/propsvec.cpp -FILE: ../../../third_party/icu/source/common/propsvec.h -FILE: ../../../third_party/icu/source/common/punycode.cpp -FILE: ../../../third_party/icu/source/common/punycode.h -FILE: ../../../third_party/icu/source/common/putil.cpp -FILE: ../../../third_party/icu/source/common/putilimp.h -FILE: ../../../third_party/icu/source/common/rbbi.cpp -FILE: ../../../third_party/icu/source/common/rbbi_cache.cpp -FILE: ../../../third_party/icu/source/common/rbbi_cache.h -FILE: ../../../third_party/icu/source/common/rbbidata.cpp -FILE: ../../../third_party/icu/source/common/rbbidata.h -FILE: ../../../third_party/icu/source/common/rbbinode.cpp -FILE: ../../../third_party/icu/source/common/rbbinode.h -FILE: ../../../third_party/icu/source/common/rbbirb.cpp -FILE: ../../../third_party/icu/source/common/rbbirb.h -FILE: ../../../third_party/icu/source/common/rbbirpt.h -FILE: ../../../third_party/icu/source/common/rbbiscan.cpp -FILE: ../../../third_party/icu/source/common/rbbiscan.h -FILE: ../../../third_party/icu/source/common/rbbisetb.cpp -FILE: ../../../third_party/icu/source/common/rbbisetb.h -FILE: ../../../third_party/icu/source/common/rbbistbl.cpp -FILE: ../../../third_party/icu/source/common/rbbitblb.cpp -FILE: ../../../third_party/icu/source/common/rbbitblb.h -FILE: ../../../third_party/icu/source/common/resbund.cpp -FILE: ../../../third_party/icu/source/common/resbund_cnv.cpp -FILE: ../../../third_party/icu/source/common/resource.cpp -FILE: ../../../third_party/icu/source/common/resource.h -FILE: ../../../third_party/icu/source/common/restrace.cpp -FILE: ../../../third_party/icu/source/common/restrace.h -FILE: ../../../third_party/icu/source/common/ruleiter.cpp -FILE: ../../../third_party/icu/source/common/ruleiter.h -FILE: ../../../third_party/icu/source/common/schriter.cpp -FILE: ../../../third_party/icu/source/common/serv.cpp -FILE: ../../../third_party/icu/source/common/serv.h -FILE: ../../../third_party/icu/source/common/servlk.cpp -FILE: ../../../third_party/icu/source/common/servlkf.cpp -FILE: ../../../third_party/icu/source/common/servloc.h -FILE: ../../../third_party/icu/source/common/servls.cpp -FILE: ../../../third_party/icu/source/common/servnotf.cpp -FILE: ../../../third_party/icu/source/common/servnotf.h -FILE: ../../../third_party/icu/source/common/servrbf.cpp -FILE: ../../../third_party/icu/source/common/servslkf.cpp -FILE: ../../../third_party/icu/source/common/sharedobject.cpp -FILE: ../../../third_party/icu/source/common/sharedobject.h -FILE: ../../../third_party/icu/source/common/simpleformatter.cpp -FILE: ../../../third_party/icu/source/common/sprpimpl.h -FILE: ../../../third_party/icu/source/common/static_unicode_sets.cpp -FILE: ../../../third_party/icu/source/common/static_unicode_sets.h -FILE: ../../../third_party/icu/source/common/stringpiece.cpp -FILE: ../../../third_party/icu/source/common/stringtriebuilder.cpp -FILE: ../../../third_party/icu/source/common/uarrsort.cpp -FILE: ../../../third_party/icu/source/common/uarrsort.h -FILE: ../../../third_party/icu/source/common/uassert.h -FILE: ../../../third_party/icu/source/common/ubidi.cpp -FILE: ../../../third_party/icu/source/common/ubidi_props.cpp -FILE: ../../../third_party/icu/source/common/ubidi_props.h -FILE: ../../../third_party/icu/source/common/ubidi_props_data.h -FILE: ../../../third_party/icu/source/common/ubidiimp.h -FILE: ../../../third_party/icu/source/common/ubidiln.cpp -FILE: ../../../third_party/icu/source/common/ubiditransform.cpp -FILE: ../../../third_party/icu/source/common/ubidiwrt.cpp -FILE: ../../../third_party/icu/source/common/ubrk.cpp -FILE: ../../../third_party/icu/source/common/ubrkimpl.h -FILE: ../../../third_party/icu/source/common/ucase.cpp -FILE: ../../../third_party/icu/source/common/ucase.h -FILE: ../../../third_party/icu/source/common/ucase_props_data.h -FILE: ../../../third_party/icu/source/common/ucasemap.cpp -FILE: ../../../third_party/icu/source/common/ucasemap_imp.h -FILE: ../../../third_party/icu/source/common/ucasemap_titlecase_brkiter.cpp -FILE: ../../../third_party/icu/source/common/ucat.cpp -FILE: ../../../third_party/icu/source/common/uchar.cpp -FILE: ../../../third_party/icu/source/common/uchar_props_data.h -FILE: ../../../third_party/icu/source/common/ucharstrie.cpp -FILE: ../../../third_party/icu/source/common/ucharstriebuilder.cpp -FILE: ../../../third_party/icu/source/common/ucharstrieiterator.cpp -FILE: ../../../third_party/icu/source/common/uchriter.cpp -FILE: ../../../third_party/icu/source/common/ucln.h -FILE: ../../../third_party/icu/source/common/ucln_cmn.cpp -FILE: ../../../third_party/icu/source/common/ucln_cmn.h -FILE: ../../../third_party/icu/source/common/ucln_imp.h -FILE: ../../../third_party/icu/source/common/ucmndata.cpp -FILE: ../../../third_party/icu/source/common/ucmndata.h -FILE: ../../../third_party/icu/source/common/ucnv.cpp -FILE: ../../../third_party/icu/source/common/ucnv2022.cpp -FILE: ../../../third_party/icu/source/common/ucnv_bld.cpp -FILE: ../../../third_party/icu/source/common/ucnv_bld.h -FILE: ../../../third_party/icu/source/common/ucnv_cb.cpp -FILE: ../../../third_party/icu/source/common/ucnv_cnv.cpp -FILE: ../../../third_party/icu/source/common/ucnv_cnv.h -FILE: ../../../third_party/icu/source/common/ucnv_ct.cpp -FILE: ../../../third_party/icu/source/common/ucnv_err.cpp -FILE: ../../../third_party/icu/source/common/ucnv_ext.cpp -FILE: ../../../third_party/icu/source/common/ucnv_ext.h -FILE: ../../../third_party/icu/source/common/ucnv_imp.h -FILE: ../../../third_party/icu/source/common/ucnv_io.cpp -FILE: ../../../third_party/icu/source/common/ucnv_io.h -FILE: ../../../third_party/icu/source/common/ucnv_lmb.cpp -FILE: ../../../third_party/icu/source/common/ucnv_set.cpp -FILE: ../../../third_party/icu/source/common/ucnv_u16.cpp -FILE: ../../../third_party/icu/source/common/ucnv_u32.cpp -FILE: ../../../third_party/icu/source/common/ucnv_u7.cpp -FILE: ../../../third_party/icu/source/common/ucnv_u8.cpp -FILE: ../../../third_party/icu/source/common/ucnvbocu.cpp -FILE: ../../../third_party/icu/source/common/ucnvdisp.cpp -FILE: ../../../third_party/icu/source/common/ucnvhz.cpp -FILE: ../../../third_party/icu/source/common/ucnvisci.cpp -FILE: ../../../third_party/icu/source/common/ucnvlat1.cpp -FILE: ../../../third_party/icu/source/common/ucnvmbcs.cpp -FILE: ../../../third_party/icu/source/common/ucnvmbcs.h -FILE: ../../../third_party/icu/source/common/ucnvscsu.cpp -FILE: ../../../third_party/icu/source/common/ucnvsel.cpp -FILE: ../../../third_party/icu/source/common/ucol_data.h -FILE: ../../../third_party/icu/source/common/ucol_swp.cpp -FILE: ../../../third_party/icu/source/common/ucol_swp.h -FILE: ../../../third_party/icu/source/common/ucptrie.cpp -FILE: ../../../third_party/icu/source/common/ucptrie_impl.h -FILE: ../../../third_party/icu/source/common/ucurr.cpp -FILE: ../../../third_party/icu/source/common/ucurrimp.h -FILE: ../../../third_party/icu/source/common/udata.cpp -FILE: ../../../third_party/icu/source/common/udatamem.cpp -FILE: ../../../third_party/icu/source/common/udatamem.h -FILE: ../../../third_party/icu/source/common/udataswp.cpp -FILE: ../../../third_party/icu/source/common/udataswp.h -FILE: ../../../third_party/icu/source/common/uelement.h -FILE: ../../../third_party/icu/source/common/uenum.cpp -FILE: ../../../third_party/icu/source/common/uenumimp.h -FILE: ../../../third_party/icu/source/common/uhash.cpp -FILE: ../../../third_party/icu/source/common/uhash.h -FILE: ../../../third_party/icu/source/common/uhash_us.cpp -FILE: ../../../third_party/icu/source/common/uidna.cpp -FILE: ../../../third_party/icu/source/common/uinit.cpp -FILE: ../../../third_party/icu/source/common/uinvchar.cpp -FILE: ../../../third_party/icu/source/common/uinvchar.h -FILE: ../../../third_party/icu/source/common/uiter.cpp -FILE: ../../../third_party/icu/source/common/ulayout_props.h -FILE: ../../../third_party/icu/source/common/ulist.cpp -FILE: ../../../third_party/icu/source/common/ulist.h -FILE: ../../../third_party/icu/source/common/uloc.cpp -FILE: ../../../third_party/icu/source/common/uloc_keytype.cpp -FILE: ../../../third_party/icu/source/common/uloc_tag.cpp -FILE: ../../../third_party/icu/source/common/ulocimp.h -FILE: ../../../third_party/icu/source/common/umapfile.cpp -FILE: ../../../third_party/icu/source/common/umapfile.h -FILE: ../../../third_party/icu/source/common/umath.cpp -FILE: ../../../third_party/icu/source/common/umutablecptrie.cpp -FILE: ../../../third_party/icu/source/common/umutex.cpp -FILE: ../../../third_party/icu/source/common/umutex.h -FILE: ../../../third_party/icu/source/common/unames.cpp -FILE: ../../../third_party/icu/source/common/unicode/appendable.h -FILE: ../../../third_party/icu/source/common/unicode/brkiter.h -FILE: ../../../third_party/icu/source/common/unicode/bytestream.h -FILE: ../../../third_party/icu/source/common/unicode/bytestrie.h -FILE: ../../../third_party/icu/source/common/unicode/bytestriebuilder.h -FILE: ../../../third_party/icu/source/common/unicode/caniter.h -FILE: ../../../third_party/icu/source/common/unicode/casemap.h -FILE: ../../../third_party/icu/source/common/unicode/char16ptr.h -FILE: ../../../third_party/icu/source/common/unicode/chariter.h -FILE: ../../../third_party/icu/source/common/unicode/dbbi.h -FILE: ../../../third_party/icu/source/common/unicode/docmain.h -FILE: ../../../third_party/icu/source/common/unicode/dtintrv.h -FILE: ../../../third_party/icu/source/common/unicode/edits.h -FILE: ../../../third_party/icu/source/common/unicode/enumset.h -FILE: ../../../third_party/icu/source/common/unicode/errorcode.h -FILE: ../../../third_party/icu/source/common/unicode/filteredbrk.h -FILE: ../../../third_party/icu/source/common/unicode/icudataver.h -FILE: ../../../third_party/icu/source/common/unicode/icuplug.h -FILE: ../../../third_party/icu/source/common/unicode/idna.h -FILE: ../../../third_party/icu/source/common/unicode/localebuilder.h -FILE: ../../../third_party/icu/source/common/unicode/localematcher.h -FILE: ../../../third_party/icu/source/common/unicode/localpointer.h -FILE: ../../../third_party/icu/source/common/unicode/locdspnm.h -FILE: ../../../third_party/icu/source/common/unicode/locid.h -FILE: ../../../third_party/icu/source/common/unicode/messagepattern.h -FILE: ../../../third_party/icu/source/common/unicode/normalizer2.h -FILE: ../../../third_party/icu/source/common/unicode/normlzr.h -FILE: ../../../third_party/icu/source/common/unicode/parseerr.h -FILE: ../../../third_party/icu/source/common/unicode/parsepos.h -FILE: ../../../third_party/icu/source/common/unicode/platform.h -FILE: ../../../third_party/icu/source/common/unicode/ptypes.h -FILE: ../../../third_party/icu/source/common/unicode/putil.h -FILE: ../../../third_party/icu/source/common/unicode/rbbi.h -FILE: ../../../third_party/icu/source/common/unicode/rep.h -FILE: ../../../third_party/icu/source/common/unicode/resbund.h -FILE: ../../../third_party/icu/source/common/unicode/schriter.h -FILE: ../../../third_party/icu/source/common/unicode/simpleformatter.h -FILE: ../../../third_party/icu/source/common/unicode/std_string.h -FILE: ../../../third_party/icu/source/common/unicode/strenum.h -FILE: ../../../third_party/icu/source/common/unicode/stringoptions.h -FILE: ../../../third_party/icu/source/common/unicode/stringpiece.h -FILE: ../../../third_party/icu/source/common/unicode/stringtriebuilder.h -FILE: ../../../third_party/icu/source/common/unicode/symtable.h -FILE: ../../../third_party/icu/source/common/unicode/ubidi.h -FILE: ../../../third_party/icu/source/common/unicode/ubiditransform.h -FILE: ../../../third_party/icu/source/common/unicode/ubrk.h -FILE: ../../../third_party/icu/source/common/unicode/ucasemap.h -FILE: ../../../third_party/icu/source/common/unicode/ucat.h -FILE: ../../../third_party/icu/source/common/unicode/uchar.h -FILE: ../../../third_party/icu/source/common/unicode/ucharstrie.h -FILE: ../../../third_party/icu/source/common/unicode/ucharstriebuilder.h -FILE: ../../../third_party/icu/source/common/unicode/uchriter.h -FILE: ../../../third_party/icu/source/common/unicode/uclean.h -FILE: ../../../third_party/icu/source/common/unicode/ucnv.h -FILE: ../../../third_party/icu/source/common/unicode/ucnv_cb.h -FILE: ../../../third_party/icu/source/common/unicode/ucnv_err.h -FILE: ../../../third_party/icu/source/common/unicode/ucnvsel.h -FILE: ../../../third_party/icu/source/common/unicode/uconfig.h -FILE: ../../../third_party/icu/source/common/unicode/ucpmap.h -FILE: ../../../third_party/icu/source/common/unicode/ucptrie.h -FILE: ../../../third_party/icu/source/common/unicode/ucurr.h -FILE: ../../../third_party/icu/source/common/unicode/udata.h -FILE: ../../../third_party/icu/source/common/unicode/udisplaycontext.h -FILE: ../../../third_party/icu/source/common/unicode/uenum.h -FILE: ../../../third_party/icu/source/common/unicode/uidna.h -FILE: ../../../third_party/icu/source/common/unicode/uiter.h -FILE: ../../../third_party/icu/source/common/unicode/uldnames.h -FILE: ../../../third_party/icu/source/common/unicode/uloc.h -FILE: ../../../third_party/icu/source/common/unicode/umachine.h -FILE: ../../../third_party/icu/source/common/unicode/umisc.h -FILE: ../../../third_party/icu/source/common/unicode/umutablecptrie.h -FILE: ../../../third_party/icu/source/common/unicode/unifilt.h -FILE: ../../../third_party/icu/source/common/unicode/unifunct.h -FILE: ../../../third_party/icu/source/common/unicode/unimatch.h -FILE: ../../../third_party/icu/source/common/unicode/uniset.h -FILE: ../../../third_party/icu/source/common/unicode/unistr.h -FILE: ../../../third_party/icu/source/common/unicode/unorm.h -FILE: ../../../third_party/icu/source/common/unicode/unorm2.h -FILE: ../../../third_party/icu/source/common/unicode/uobject.h -FILE: ../../../third_party/icu/source/common/unicode/urename.h -FILE: ../../../third_party/icu/source/common/unicode/urep.h -FILE: ../../../third_party/icu/source/common/unicode/ures.h -FILE: ../../../third_party/icu/source/common/unicode/uscript.h -FILE: ../../../third_party/icu/source/common/unicode/uset.h -FILE: ../../../third_party/icu/source/common/unicode/usetiter.h -FILE: ../../../third_party/icu/source/common/unicode/ushape.h -FILE: ../../../third_party/icu/source/common/unicode/usprep.h -FILE: ../../../third_party/icu/source/common/unicode/ustring.h -FILE: ../../../third_party/icu/source/common/unicode/ustringtrie.h -FILE: ../../../third_party/icu/source/common/unicode/utext.h -FILE: ../../../third_party/icu/source/common/unicode/utf.h -FILE: ../../../third_party/icu/source/common/unicode/utf16.h -FILE: ../../../third_party/icu/source/common/unicode/utf32.h -FILE: ../../../third_party/icu/source/common/unicode/utf8.h -FILE: ../../../third_party/icu/source/common/unicode/utf_old.h -FILE: ../../../third_party/icu/source/common/unicode/utrace.h -FILE: ../../../third_party/icu/source/common/unicode/utypes.h -FILE: ../../../third_party/icu/source/common/unicode/uvernum.h -FILE: ../../../third_party/icu/source/common/unicode/uversion.h -FILE: ../../../third_party/icu/source/common/unifiedcache.cpp -FILE: ../../../third_party/icu/source/common/unifiedcache.h -FILE: ../../../third_party/icu/source/common/unifilt.cpp -FILE: ../../../third_party/icu/source/common/unifunct.cpp -FILE: ../../../third_party/icu/source/common/uniquecharstr.h -FILE: ../../../third_party/icu/source/common/uniset.cpp -FILE: ../../../third_party/icu/source/common/uniset_closure.cpp -FILE: ../../../third_party/icu/source/common/uniset_props.cpp -FILE: ../../../third_party/icu/source/common/unisetspan.cpp -FILE: ../../../third_party/icu/source/common/unisetspan.h -FILE: ../../../third_party/icu/source/common/unistr.cpp -FILE: ../../../third_party/icu/source/common/unistr_case.cpp -FILE: ../../../third_party/icu/source/common/unistr_case_locale.cpp -FILE: ../../../third_party/icu/source/common/unistr_cnv.cpp -FILE: ../../../third_party/icu/source/common/unistr_props.cpp -FILE: ../../../third_party/icu/source/common/unistr_titlecase_brkiter.cpp -FILE: ../../../third_party/icu/source/common/unistrappender.h -FILE: ../../../third_party/icu/source/common/unorm.cpp -FILE: ../../../third_party/icu/source/common/unormcmp.cpp -FILE: ../../../third_party/icu/source/common/unormimp.h -FILE: ../../../third_party/icu/source/common/uobject.cpp -FILE: ../../../third_party/icu/source/common/uposixdefs.h -FILE: ../../../third_party/icu/source/common/uprops.cpp -FILE: ../../../third_party/icu/source/common/uprops.h -FILE: ../../../third_party/icu/source/common/ures_cnv.cpp -FILE: ../../../third_party/icu/source/common/uresbund.cpp -FILE: ../../../third_party/icu/source/common/uresdata.cpp -FILE: ../../../third_party/icu/source/common/uresdata.h -FILE: ../../../third_party/icu/source/common/uresimp.h -FILE: ../../../third_party/icu/source/common/ureslocs.h -FILE: ../../../third_party/icu/source/common/usc_impl.cpp -FILE: ../../../third_party/icu/source/common/usc_impl.h -FILE: ../../../third_party/icu/source/common/uscript.cpp -FILE: ../../../third_party/icu/source/common/uscript_props.cpp -FILE: ../../../third_party/icu/source/common/uset.cpp -FILE: ../../../third_party/icu/source/common/uset_imp.h -FILE: ../../../third_party/icu/source/common/uset_props.cpp -FILE: ../../../third_party/icu/source/common/usetiter.cpp -FILE: ../../../third_party/icu/source/common/ushape.cpp -FILE: ../../../third_party/icu/source/common/usprep.cpp -FILE: ../../../third_party/icu/source/common/ustack.cpp -FILE: ../../../third_party/icu/source/common/ustr_cnv.cpp -FILE: ../../../third_party/icu/source/common/ustr_cnv.h -FILE: ../../../third_party/icu/source/common/ustr_imp.h -FILE: ../../../third_party/icu/source/common/ustr_titlecase_brkiter.cpp -FILE: ../../../third_party/icu/source/common/ustr_wcs.cpp -FILE: ../../../third_party/icu/source/common/ustrcase.cpp -FILE: ../../../third_party/icu/source/common/ustrcase_locale.cpp -FILE: ../../../third_party/icu/source/common/ustrenum.cpp -FILE: ../../../third_party/icu/source/common/ustrenum.h -FILE: ../../../third_party/icu/source/common/ustrfmt.cpp -FILE: ../../../third_party/icu/source/common/ustrfmt.h -FILE: ../../../third_party/icu/source/common/ustring.cpp -FILE: ../../../third_party/icu/source/common/ustrtrns.cpp -FILE: ../../../third_party/icu/source/common/utext.cpp -FILE: ../../../third_party/icu/source/common/utf_impl.cpp -FILE: ../../../third_party/icu/source/common/util.cpp -FILE: ../../../third_party/icu/source/common/util.h -FILE: ../../../third_party/icu/source/common/util_props.cpp -FILE: ../../../third_party/icu/source/common/utrace.cpp -FILE: ../../../third_party/icu/source/common/utracimp.h -FILE: ../../../third_party/icu/source/common/utrie.cpp -FILE: ../../../third_party/icu/source/common/utrie.h -FILE: ../../../third_party/icu/source/common/utrie2.cpp -FILE: ../../../third_party/icu/source/common/utrie2.h -FILE: ../../../third_party/icu/source/common/utrie2_builder.cpp -FILE: ../../../third_party/icu/source/common/utrie2_impl.h -FILE: ../../../third_party/icu/source/common/utrie_swap.cpp -FILE: ../../../third_party/icu/source/common/uts46.cpp -FILE: ../../../third_party/icu/source/common/utypeinfo.h -FILE: ../../../third_party/icu/source/common/utypes.cpp -FILE: ../../../third_party/icu/source/common/uvector.cpp -FILE: ../../../third_party/icu/source/common/uvector.h -FILE: ../../../third_party/icu/source/common/uvectr32.cpp -FILE: ../../../third_party/icu/source/common/uvectr32.h -FILE: ../../../third_party/icu/source/common/uvectr64.cpp -FILE: ../../../third_party/icu/source/common/uvectr64.h -FILE: ../../../third_party/icu/source/common/wintz.cpp -FILE: ../../../third_party/icu/source/common/wintz.h -FILE: ../../../third_party/icu/source/config/icu-config-bottom -FILE: ../../../third_party/icu/source/config/icu-config.1.in -FILE: ../../../third_party/icu/source/config/icu.pc.in -FILE: ../../../third_party/icu/source/config/make2sh.sed -FILE: ../../../third_party/icu/source/config/mh-aix-gcc -FILE: ../../../third_party/icu/source/config/mh-aix-va -FILE: ../../../third_party/icu/source/config/mh-alpha-linux-cc -FILE: ../../../third_party/icu/source/config/mh-alpha-linux-gcc -FILE: ../../../third_party/icu/source/config/mh-alpha-osf -FILE: ../../../third_party/icu/source/config/mh-beos -FILE: ../../../third_party/icu/source/config/mh-bsd-gcc -FILE: ../../../third_party/icu/source/config/mh-cygwin -FILE: ../../../third_party/icu/source/config/mh-cygwin-msvc -FILE: ../../../third_party/icu/source/config/mh-cygwin64 -FILE: ../../../third_party/icu/source/config/mh-darwin -FILE: ../../../third_party/icu/source/config/mh-haiku -FILE: ../../../third_party/icu/source/config/mh-hpux-acc -FILE: ../../../third_party/icu/source/config/mh-hpux-gcc -FILE: ../../../third_party/icu/source/config/mh-irix -FILE: ../../../third_party/icu/source/config/mh-linux -FILE: ../../../third_party/icu/source/config/mh-linux-va -FILE: ../../../third_party/icu/source/config/mh-mingw -FILE: ../../../third_party/icu/source/config/mh-mingw64 -FILE: ../../../third_party/icu/source/config/mh-mpras -FILE: ../../../third_party/icu/source/config/mh-msys-msvc -FILE: ../../../third_party/icu/source/config/mh-os390 -FILE: ../../../third_party/icu/source/config/mh-os400 -FILE: ../../../third_party/icu/source/config/mh-qnx -FILE: ../../../third_party/icu/source/config/mh-solaris -FILE: ../../../third_party/icu/source/config/mh-solaris-gcc -FILE: ../../../third_party/icu/source/config/mh-unknown -FILE: ../../../third_party/icu/source/config/windows-update.sed.in -FILE: ../../../third_party/icu/source/data/brkitr/LOCALE_DEPS.json -FILE: ../../../third_party/icu/source/data/build.xml -FILE: ../../../third_party/icu/source/data/coll/LOCALE_DEPS.json -FILE: ../../../third_party/icu/source/data/curr/LOCALE_DEPS.json -FILE: ../../../third_party/icu/source/data/dtd/cldr-35.1/common/dtd/ldml.dtd -FILE: ../../../third_party/icu/source/data/dtd/cldr-35.1/common/dtd/ldmlICU.dtd -FILE: ../../../third_party/icu/source/data/dtd/cldr-40/common/dtd/ldml.dtd -FILE: ../../../third_party/icu/source/data/dtd/cldr-40/common/dtd/ldmlICU.dtd -FILE: ../../../third_party/icu/source/data/dtd/cldr/common/dtd/ldml.dtd -FILE: ../../../third_party/icu/source/data/dtd/cldr/common/dtd/ldmlICU.dtd -FILE: ../../../third_party/icu/source/data/icupkg.inc.in -FILE: ../../../third_party/icu/source/data/lang/LOCALE_DEPS.json -FILE: ../../../third_party/icu/source/data/locales/LOCALE_DEPS.json -FILE: ../../../third_party/icu/source/data/makedata.mak -FILE: ../../../third_party/icu/source/data/mappings/cns-11643-1992.ucm -FILE: ../../../third_party/icu/source/data/mappings/ebcdic-xml-us.ucm -FILE: ../../../third_party/icu/source/data/mappings/euc-jp-2007.ucm -FILE: ../../../third_party/icu/source/data/mappings/euc-tw-2014.ucm -FILE: ../../../third_party/icu/source/data/mappings/gsm-03.38-2009.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-1006_P100-1995.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-1025_P100-1995.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-1026_P100-1995.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-1047_P100-1995.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-1051_P100-1995.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-1089_P100-1995.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-1097_P100-1995.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-1098_P100-1995.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-1112_P100-1995.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-1122_P100-1999.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-1123_P100-1995.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-1124_P100-1996.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-1125_P100-1997.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-1129_P100-1997.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-1130_P100-1997.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-1131_P100-1997.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-1132_P100-1998.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-1133_P100-1997.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-1137_P100-1999.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-1140_P100-1997.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-1141_P100-1997.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-1142_P100-1997.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-1143_P100-1997.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-1144_P100-1997.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-1145_P100-1997.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-1146_P100-1997.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-1147_P100-1997.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-1148_P100-1997.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-1149_P100-1997.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-1153_P100-1999.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-1154_P100-1999.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-1155_P100-1999.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-1156_P100-1999.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-1157_P100-1999.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-1158_P100-1999.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-1160_P100-1999.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-1162_P100-1999.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-1164_P100-1999.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-1168_P100-2002.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-1250_P100-1995.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-1251_P100-1995.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-1252_P100-2000.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-1253_P100-1995.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-1254_P100-1995.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-1255_P100-1995.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-1256_P110-1997.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-1257_P100-1995.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-1258_P100-1997.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-12712_P100-1998.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-1276_P100-1995.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-1363_P110-1997.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-1363_P11B-1998.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-1364_P110-2007.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-1371_P100-1999.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-1373_P100-2002.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-1375_P100-2008.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-1383_P110-1999.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-1386_P100-2001.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-1388_P103-2001.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-1390_P110-2003.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-1399_P110-2003.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-16684_P110-2003.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-16804_X110-1999.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-273_P100-1995.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-277_P100-1995.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-278_P100-1995.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-280_P100-1995.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-284_P100-1995.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-285_P100-1995.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-290_P100-1995.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-297_P100-1995.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-33722_P120-1999.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-33722_P12A_P12A-2004_U2.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-33722_P12A_P12A-2009_U2.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-37_P100-1995.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-420_X120-1999.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-424_P100-1995.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-437_P100-1995.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-4517_P100-2005.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-4899_P100-1998.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-4909_P100-1999.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-4971_P100-1999.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-500_P100-1995.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-5012_P100-1999.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-5123_P100-1999.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-5346_P100-1998.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-5347_P100-1998.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-5348_P100-1997.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-5349_P100-1998.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-5350_P100-1998.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-5351_P100-1998.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-5352_P100-1998.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-5353_P100-1998.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-5354_P100-1998.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-5471_P100-2006.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-5478_P100-1995.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-720_P100-1997.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-737_P100-1997.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-775_P100-1996.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-803_P100-1999.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-813_P100-1995.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-838_P100-1995.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-8482_P100-1999.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-850_P100-1995.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-851_P100-1995.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-852_P100-1995.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-855_P100-1995.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-856_P100-1995.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-857_P100-1995.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-858_P100-1997.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-860_P100-1995.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-861_P100-1995.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-862_P100-1995.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-863_P100-1995.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-864_X110-1999.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-865_P100-1995.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-866_P100-1995.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-867_P100-1998.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-868_P100-1995.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-869_P100-1995.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-870_P100-1995.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-871_P100-1995.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-874_P100-1995.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-875_P100-1995.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-878_P100-1996.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-9005_X110-2007.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-901_P100-1999.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-902_P100-1999.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-9067_X100-2005.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-912_P100-1995.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-913_P100-2000.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-914_P100-1995.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-915_P100-1995.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-916_P100-1995.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-918_P100-1995.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-920_P100-1995.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-921_P100-1995.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-922_P100-1999.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-923_P100-1998.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-930_P120-1999.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-933_P110-1995.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-935_P110-1999.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-937_P110-1999.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-939_P120-1999.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-942_P12A-1999.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-943_P130-1999.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-943_P15A-2003.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-9447_P100-2002.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-9448_X100-2005.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-9449_P100-2002.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-949_P110-1999.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-949_P11A-1999.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-950_P110-1999.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-954_P101-2007.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-964_P110-1999.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-970_P110_P110-2006_U2.ucm -FILE: ../../../third_party/icu/source/data/mappings/ibm-971_P100-1995.ucm -FILE: ../../../third_party/icu/source/data/mappings/icu-internal-25546.ucm -FILE: ../../../third_party/icu/source/data/mappings/icu-internal-compound-d1.ucm -FILE: ../../../third_party/icu/source/data/mappings/icu-internal-compound-d2.ucm -FILE: ../../../third_party/icu/source/data/mappings/icu-internal-compound-d3.ucm -FILE: ../../../third_party/icu/source/data/mappings/icu-internal-compound-d4.ucm -FILE: ../../../third_party/icu/source/data/mappings/icu-internal-compound-d5.ucm -FILE: ../../../third_party/icu/source/data/mappings/icu-internal-compound-d6.ucm -FILE: ../../../third_party/icu/source/data/mappings/icu-internal-compound-d7.ucm -FILE: ../../../third_party/icu/source/data/mappings/icu-internal-compound-s1.ucm -FILE: ../../../third_party/icu/source/data/mappings/icu-internal-compound-s2.ucm -FILE: ../../../third_party/icu/source/data/mappings/icu-internal-compound-s3.ucm -FILE: ../../../third_party/icu/source/data/mappings/icu-internal-compound-t.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859_10-1998.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859_11-2001.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-8859_14-1998.ucm -FILE: ../../../third_party/icu/source/data/mappings/iso-ir-165.ucm -FILE: ../../../third_party/icu/source/data/mappings/jisx-212.ucm -FILE: ../../../third_party/icu/source/data/mappings/lmb-excp.ucm -FILE: ../../../third_party/icu/source/data/mappings/macos-0_2-10.2.ucm -FILE: ../../../third_party/icu/source/data/mappings/macos-29-10.2.ucm -FILE: ../../../third_party/icu/source/data/mappings/macos-35-10.2.ucm -FILE: ../../../third_party/icu/source/data/mappings/macos-6_2-10.4.ucm -FILE: ../../../third_party/icu/source/data/mappings/macos-7_3-10.2.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-874-2000.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-949-2000.ucm -FILE: ../../../third_party/icu/source/data/mappings/windows-950-2000.ucm -FILE: ../../../third_party/icu/source/data/misc/icudata.rc -FILE: ../../../third_party/icu/source/data/rbnf/LOCALE_DEPS.json -FILE: ../../../third_party/icu/source/data/region/LOCALE_DEPS.json -FILE: ../../../third_party/icu/source/data/unidata/norm2/BUILD.bazel -FILE: ../../../third_party/icu/source/data/unit/LOCALE_DEPS.json -FILE: ../../../third_party/icu/source/data/zone/LOCALE_DEPS.json -FILE: ../../../third_party/icu/source/extra/scrptrun/scrptrun.cpp -FILE: ../../../third_party/icu/source/extra/scrptrun/scrptrun.h -FILE: ../../../third_party/icu/source/extra/scrptrun/srtest.cpp -FILE: ../../../third_party/icu/source/extra/uconv/makedata.mak -FILE: ../../../third_party/icu/source/extra/uconv/pkgdata.inc.in -FILE: ../../../third_party/icu/source/extra/uconv/uconv.1.in -FILE: ../../../third_party/icu/source/extra/uconv/uconv.cpp -FILE: ../../../third_party/icu/source/extra/uconv/unicode/uwmsg.h -FILE: ../../../third_party/icu/source/extra/uconv/uwmsg.c -FILE: ../../../third_party/icu/source/i18n/BUILD.bazel -FILE: ../../../third_party/icu/source/i18n/alphaindex.cpp -FILE: ../../../third_party/icu/source/i18n/anytrans.cpp -FILE: ../../../third_party/icu/source/i18n/anytrans.h -FILE: ../../../third_party/icu/source/i18n/astro.cpp -FILE: ../../../third_party/icu/source/i18n/astro.h -FILE: ../../../third_party/icu/source/i18n/basictz.cpp -FILE: ../../../third_party/icu/source/i18n/bocsu.cpp -FILE: ../../../third_party/icu/source/i18n/bocsu.h -FILE: ../../../third_party/icu/source/i18n/brktrans.cpp -FILE: ../../../third_party/icu/source/i18n/brktrans.h -FILE: ../../../third_party/icu/source/i18n/buddhcal.cpp -FILE: ../../../third_party/icu/source/i18n/buddhcal.h -FILE: ../../../third_party/icu/source/i18n/calendar.cpp -FILE: ../../../third_party/icu/source/i18n/casetrn.cpp -FILE: ../../../third_party/icu/source/i18n/casetrn.h -FILE: ../../../third_party/icu/source/i18n/cecal.cpp -FILE: ../../../third_party/icu/source/i18n/cecal.h -FILE: ../../../third_party/icu/source/i18n/chnsecal.cpp -FILE: ../../../third_party/icu/source/i18n/chnsecal.h -FILE: ../../../third_party/icu/source/i18n/choicfmt.cpp -FILE: ../../../third_party/icu/source/i18n/coleitr.cpp -FILE: ../../../third_party/icu/source/i18n/coll.cpp -FILE: ../../../third_party/icu/source/i18n/collation.cpp -FILE: ../../../third_party/icu/source/i18n/collation.h -FILE: ../../../third_party/icu/source/i18n/collationbuilder.cpp -FILE: ../../../third_party/icu/source/i18n/collationbuilder.h -FILE: ../../../third_party/icu/source/i18n/collationcompare.cpp -FILE: ../../../third_party/icu/source/i18n/collationcompare.h -FILE: ../../../third_party/icu/source/i18n/collationdata.cpp -FILE: ../../../third_party/icu/source/i18n/collationdata.h -FILE: ../../../third_party/icu/source/i18n/collationdatabuilder.cpp -FILE: ../../../third_party/icu/source/i18n/collationdatabuilder.h -FILE: ../../../third_party/icu/source/i18n/collationdatareader.cpp -FILE: ../../../third_party/icu/source/i18n/collationdatareader.h -FILE: ../../../third_party/icu/source/i18n/collationdatawriter.cpp -FILE: ../../../third_party/icu/source/i18n/collationdatawriter.h -FILE: ../../../third_party/icu/source/i18n/collationfastlatin.cpp -FILE: ../../../third_party/icu/source/i18n/collationfastlatin.h -FILE: ../../../third_party/icu/source/i18n/collationfastlatinbuilder.cpp -FILE: ../../../third_party/icu/source/i18n/collationfastlatinbuilder.h -FILE: ../../../third_party/icu/source/i18n/collationfcd.cpp -FILE: ../../../third_party/icu/source/i18n/collationfcd.h -FILE: ../../../third_party/icu/source/i18n/collationiterator.cpp -FILE: ../../../third_party/icu/source/i18n/collationiterator.h -FILE: ../../../third_party/icu/source/i18n/collationkeys.cpp -FILE: ../../../third_party/icu/source/i18n/collationkeys.h -FILE: ../../../third_party/icu/source/i18n/collationroot.cpp -FILE: ../../../third_party/icu/source/i18n/collationroot.h -FILE: ../../../third_party/icu/source/i18n/collationrootelements.cpp -FILE: ../../../third_party/icu/source/i18n/collationrootelements.h -FILE: ../../../third_party/icu/source/i18n/collationruleparser.cpp -FILE: ../../../third_party/icu/source/i18n/collationruleparser.h -FILE: ../../../third_party/icu/source/i18n/collationsets.cpp -FILE: ../../../third_party/icu/source/i18n/collationsets.h -FILE: ../../../third_party/icu/source/i18n/collationsettings.cpp -FILE: ../../../third_party/icu/source/i18n/collationsettings.h -FILE: ../../../third_party/icu/source/i18n/collationtailoring.cpp -FILE: ../../../third_party/icu/source/i18n/collationtailoring.h -FILE: ../../../third_party/icu/source/i18n/collationweights.cpp -FILE: ../../../third_party/icu/source/i18n/collationweights.h -FILE: ../../../third_party/icu/source/i18n/collunsafe.h -FILE: ../../../third_party/icu/source/i18n/compactdecimalformat.cpp -FILE: ../../../third_party/icu/source/i18n/coptccal.cpp -FILE: ../../../third_party/icu/source/i18n/coptccal.h -FILE: ../../../third_party/icu/source/i18n/cpdtrans.cpp -FILE: ../../../third_party/icu/source/i18n/cpdtrans.h -FILE: ../../../third_party/icu/source/i18n/csdetect.cpp -FILE: ../../../third_party/icu/source/i18n/csdetect.h -FILE: ../../../third_party/icu/source/i18n/csmatch.cpp -FILE: ../../../third_party/icu/source/i18n/csmatch.h -FILE: ../../../third_party/icu/source/i18n/csr2022.cpp -FILE: ../../../third_party/icu/source/i18n/csr2022.h -FILE: ../../../third_party/icu/source/i18n/csrecog.cpp -FILE: ../../../third_party/icu/source/i18n/csrecog.h -FILE: ../../../third_party/icu/source/i18n/csrmbcs.cpp -FILE: ../../../third_party/icu/source/i18n/csrmbcs.h -FILE: ../../../third_party/icu/source/i18n/csrsbcs.cpp -FILE: ../../../third_party/icu/source/i18n/csrsbcs.h -FILE: ../../../third_party/icu/source/i18n/csrucode.cpp -FILE: ../../../third_party/icu/source/i18n/csrucode.h -FILE: ../../../third_party/icu/source/i18n/csrutf8.cpp -FILE: ../../../third_party/icu/source/i18n/csrutf8.h -FILE: ../../../third_party/icu/source/i18n/curramt.cpp -FILE: ../../../third_party/icu/source/i18n/currfmt.cpp -FILE: ../../../third_party/icu/source/i18n/currfmt.h -FILE: ../../../third_party/icu/source/i18n/currpinf.cpp -FILE: ../../../third_party/icu/source/i18n/currunit.cpp -FILE: ../../../third_party/icu/source/i18n/dangical.cpp -FILE: ../../../third_party/icu/source/i18n/dangical.h -FILE: ../../../third_party/icu/source/i18n/datefmt.cpp -FILE: ../../../third_party/icu/source/i18n/dayperiodrules.cpp -FILE: ../../../third_party/icu/source/i18n/dayperiodrules.h -FILE: ../../../third_party/icu/source/i18n/dcfmtsym.cpp -FILE: ../../../third_party/icu/source/i18n/decContext.cpp -FILE: ../../../third_party/icu/source/i18n/decContext.h -FILE: ../../../third_party/icu/source/i18n/decNumber.cpp -FILE: ../../../third_party/icu/source/i18n/decNumber.h -FILE: ../../../third_party/icu/source/i18n/decNumberLocal.h -FILE: ../../../third_party/icu/source/i18n/decimfmt.cpp -FILE: ../../../third_party/icu/source/i18n/double-conversion-bignum-dtoa.cpp -FILE: ../../../third_party/icu/source/i18n/double-conversion-bignum-dtoa.h -FILE: ../../../third_party/icu/source/i18n/double-conversion-bignum.cpp -FILE: ../../../third_party/icu/source/i18n/double-conversion-bignum.h -FILE: ../../../third_party/icu/source/i18n/double-conversion-cached-powers.cpp -FILE: ../../../third_party/icu/source/i18n/double-conversion-cached-powers.h -FILE: ../../../third_party/icu/source/i18n/double-conversion-diy-fp.h -FILE: ../../../third_party/icu/source/i18n/double-conversion-double-to-string.cpp -FILE: ../../../third_party/icu/source/i18n/double-conversion-double-to-string.h -FILE: ../../../third_party/icu/source/i18n/double-conversion-fast-dtoa.cpp -FILE: ../../../third_party/icu/source/i18n/double-conversion-fast-dtoa.h -FILE: ../../../third_party/icu/source/i18n/double-conversion-ieee.h -FILE: ../../../third_party/icu/source/i18n/double-conversion-string-to-double.cpp -FILE: ../../../third_party/icu/source/i18n/double-conversion-string-to-double.h -FILE: ../../../third_party/icu/source/i18n/double-conversion-strtod.cpp -FILE: ../../../third_party/icu/source/i18n/double-conversion-strtod.h -FILE: ../../../third_party/icu/source/i18n/double-conversion-utils.h -FILE: ../../../third_party/icu/source/i18n/double-conversion.h -FILE: ../../../third_party/icu/source/i18n/dt_impl.h -FILE: ../../../third_party/icu/source/i18n/dtfmtsym.cpp -FILE: ../../../third_party/icu/source/i18n/dtitv_impl.h -FILE: ../../../third_party/icu/source/i18n/dtitvfmt.cpp -FILE: ../../../third_party/icu/source/i18n/dtitvinf.cpp -FILE: ../../../third_party/icu/source/i18n/dtptngen.cpp -FILE: ../../../third_party/icu/source/i18n/dtptngen_impl.h -FILE: ../../../third_party/icu/source/i18n/dtrule.cpp -FILE: ../../../third_party/icu/source/i18n/erarules.cpp -FILE: ../../../third_party/icu/source/i18n/erarules.h -FILE: ../../../third_party/icu/source/i18n/esctrn.cpp -FILE: ../../../third_party/icu/source/i18n/esctrn.h -FILE: ../../../third_party/icu/source/i18n/ethpccal.cpp -FILE: ../../../third_party/icu/source/i18n/ethpccal.h -FILE: ../../../third_party/icu/source/i18n/fmtable.cpp -FILE: ../../../third_party/icu/source/i18n/fmtable_cnv.cpp -FILE: ../../../third_party/icu/source/i18n/fmtableimp.h -FILE: ../../../third_party/icu/source/i18n/format.cpp -FILE: ../../../third_party/icu/source/i18n/formatted_string_builder.cpp -FILE: ../../../third_party/icu/source/i18n/formatted_string_builder.h -FILE: ../../../third_party/icu/source/i18n/formattedval_impl.h -FILE: ../../../third_party/icu/source/i18n/formattedval_iterimpl.cpp -FILE: ../../../third_party/icu/source/i18n/formattedval_sbimpl.cpp -FILE: ../../../third_party/icu/source/i18n/formattedvalue.cpp -FILE: ../../../third_party/icu/source/i18n/fphdlimp.cpp -FILE: ../../../third_party/icu/source/i18n/fphdlimp.h -FILE: ../../../third_party/icu/source/i18n/fpositer.cpp -FILE: ../../../third_party/icu/source/i18n/funcrepl.cpp -FILE: ../../../third_party/icu/source/i18n/funcrepl.h -FILE: ../../../third_party/icu/source/i18n/gender.cpp -FILE: ../../../third_party/icu/source/i18n/gregocal.cpp -FILE: ../../../third_party/icu/source/i18n/gregoimp.cpp -FILE: ../../../third_party/icu/source/i18n/gregoimp.h -FILE: ../../../third_party/icu/source/i18n/hebrwcal.cpp -FILE: ../../../third_party/icu/source/i18n/hebrwcal.h -FILE: ../../../third_party/icu/source/i18n/i18n.rc -FILE: ../../../third_party/icu/source/i18n/indiancal.cpp -FILE: ../../../third_party/icu/source/i18n/indiancal.h -FILE: ../../../third_party/icu/source/i18n/inputext.cpp -FILE: ../../../third_party/icu/source/i18n/inputext.h -FILE: ../../../third_party/icu/source/i18n/islamcal.cpp -FILE: ../../../third_party/icu/source/i18n/islamcal.h -FILE: ../../../third_party/icu/source/i18n/japancal.cpp -FILE: ../../../third_party/icu/source/i18n/japancal.h -FILE: ../../../third_party/icu/source/i18n/listformatter.cpp -FILE: ../../../third_party/icu/source/i18n/measfmt.cpp -FILE: ../../../third_party/icu/source/i18n/measunit.cpp -FILE: ../../../third_party/icu/source/i18n/measunit_extra.cpp -FILE: ../../../third_party/icu/source/i18n/measunit_impl.h -FILE: ../../../third_party/icu/source/i18n/measure.cpp -FILE: ../../../third_party/icu/source/i18n/msgfmt.cpp -FILE: ../../../third_party/icu/source/i18n/msgfmt_impl.h -FILE: ../../../third_party/icu/source/i18n/name2uni.cpp -FILE: ../../../third_party/icu/source/i18n/name2uni.h -FILE: ../../../third_party/icu/source/i18n/nfrlist.h -FILE: ../../../third_party/icu/source/i18n/nfrs.cpp -FILE: ../../../third_party/icu/source/i18n/nfrs.h -FILE: ../../../third_party/icu/source/i18n/nfrule.cpp -FILE: ../../../third_party/icu/source/i18n/nfrule.h -FILE: ../../../third_party/icu/source/i18n/nfsubs.cpp -FILE: ../../../third_party/icu/source/i18n/nfsubs.h -FILE: ../../../third_party/icu/source/i18n/nortrans.cpp -FILE: ../../../third_party/icu/source/i18n/nortrans.h -FILE: ../../../third_party/icu/source/i18n/nultrans.cpp -FILE: ../../../third_party/icu/source/i18n/nultrans.h -FILE: ../../../third_party/icu/source/i18n/number_affixutils.cpp -FILE: ../../../third_party/icu/source/i18n/number_affixutils.h -FILE: ../../../third_party/icu/source/i18n/number_asformat.cpp -FILE: ../../../third_party/icu/source/i18n/number_asformat.h -FILE: ../../../third_party/icu/source/i18n/number_capi.cpp -FILE: ../../../third_party/icu/source/i18n/number_compact.cpp -FILE: ../../../third_party/icu/source/i18n/number_compact.h -FILE: ../../../third_party/icu/source/i18n/number_currencysymbols.cpp -FILE: ../../../third_party/icu/source/i18n/number_currencysymbols.h -FILE: ../../../third_party/icu/source/i18n/number_decimalquantity.cpp -FILE: ../../../third_party/icu/source/i18n/number_decimalquantity.h -FILE: ../../../third_party/icu/source/i18n/number_decimfmtprops.cpp -FILE: ../../../third_party/icu/source/i18n/number_decimfmtprops.h -FILE: ../../../third_party/icu/source/i18n/number_decnum.h -FILE: ../../../third_party/icu/source/i18n/number_fluent.cpp -FILE: ../../../third_party/icu/source/i18n/number_formatimpl.cpp -FILE: ../../../third_party/icu/source/i18n/number_formatimpl.h -FILE: ../../../third_party/icu/source/i18n/number_grouping.cpp -FILE: ../../../third_party/icu/source/i18n/number_integerwidth.cpp -FILE: ../../../third_party/icu/source/i18n/number_longnames.cpp -FILE: ../../../third_party/icu/source/i18n/number_longnames.h -FILE: ../../../third_party/icu/source/i18n/number_mapper.cpp -FILE: ../../../third_party/icu/source/i18n/number_mapper.h -FILE: ../../../third_party/icu/source/i18n/number_microprops.h -FILE: ../../../third_party/icu/source/i18n/number_modifiers.cpp -FILE: ../../../third_party/icu/source/i18n/number_modifiers.h -FILE: ../../../third_party/icu/source/i18n/number_multiplier.cpp -FILE: ../../../third_party/icu/source/i18n/number_multiplier.h -FILE: ../../../third_party/icu/source/i18n/number_notation.cpp -FILE: ../../../third_party/icu/source/i18n/number_output.cpp -FILE: ../../../third_party/icu/source/i18n/number_padding.cpp -FILE: ../../../third_party/icu/source/i18n/number_patternmodifier.cpp -FILE: ../../../third_party/icu/source/i18n/number_patternmodifier.h -FILE: ../../../third_party/icu/source/i18n/number_patternstring.cpp -FILE: ../../../third_party/icu/source/i18n/number_patternstring.h -FILE: ../../../third_party/icu/source/i18n/number_rounding.cpp -FILE: ../../../third_party/icu/source/i18n/number_roundingutils.h -FILE: ../../../third_party/icu/source/i18n/number_scientific.cpp -FILE: ../../../third_party/icu/source/i18n/number_scientific.h -FILE: ../../../third_party/icu/source/i18n/number_skeletons.cpp -FILE: ../../../third_party/icu/source/i18n/number_skeletons.h -FILE: ../../../third_party/icu/source/i18n/number_symbolswrapper.cpp -FILE: ../../../third_party/icu/source/i18n/number_types.h -FILE: ../../../third_party/icu/source/i18n/number_usageprefs.cpp -FILE: ../../../third_party/icu/source/i18n/number_usageprefs.h -FILE: ../../../third_party/icu/source/i18n/number_utils.cpp -FILE: ../../../third_party/icu/source/i18n/number_utils.h -FILE: ../../../third_party/icu/source/i18n/number_utypes.h -FILE: ../../../third_party/icu/source/i18n/numfmt.cpp -FILE: ../../../third_party/icu/source/i18n/numparse_affixes.cpp -FILE: ../../../third_party/icu/source/i18n/numparse_affixes.h -FILE: ../../../third_party/icu/source/i18n/numparse_compositions.cpp -FILE: ../../../third_party/icu/source/i18n/numparse_compositions.h -FILE: ../../../third_party/icu/source/i18n/numparse_currency.cpp -FILE: ../../../third_party/icu/source/i18n/numparse_currency.h -FILE: ../../../third_party/icu/source/i18n/numparse_decimal.cpp -FILE: ../../../third_party/icu/source/i18n/numparse_decimal.h -FILE: ../../../third_party/icu/source/i18n/numparse_impl.cpp -FILE: ../../../third_party/icu/source/i18n/numparse_impl.h -FILE: ../../../third_party/icu/source/i18n/numparse_parsednumber.cpp -FILE: ../../../third_party/icu/source/i18n/numparse_scientific.cpp -FILE: ../../../third_party/icu/source/i18n/numparse_scientific.h -FILE: ../../../third_party/icu/source/i18n/numparse_symbols.cpp -FILE: ../../../third_party/icu/source/i18n/numparse_symbols.h -FILE: ../../../third_party/icu/source/i18n/numparse_types.h -FILE: ../../../third_party/icu/source/i18n/numparse_utils.h -FILE: ../../../third_party/icu/source/i18n/numparse_validators.cpp -FILE: ../../../third_party/icu/source/i18n/numparse_validators.h -FILE: ../../../third_party/icu/source/i18n/numrange_capi.cpp -FILE: ../../../third_party/icu/source/i18n/numrange_fluent.cpp -FILE: ../../../third_party/icu/source/i18n/numrange_impl.cpp -FILE: ../../../third_party/icu/source/i18n/numrange_impl.h -FILE: ../../../third_party/icu/source/i18n/numsys.cpp -FILE: ../../../third_party/icu/source/i18n/numsys_impl.h -FILE: ../../../third_party/icu/source/i18n/olsontz.cpp -FILE: ../../../third_party/icu/source/i18n/olsontz.h -FILE: ../../../third_party/icu/source/i18n/persncal.cpp -FILE: ../../../third_party/icu/source/i18n/persncal.h -FILE: ../../../third_party/icu/source/i18n/pluralranges.cpp -FILE: ../../../third_party/icu/source/i18n/pluralranges.h -FILE: ../../../third_party/icu/source/i18n/plurfmt.cpp -FILE: ../../../third_party/icu/source/i18n/plurrule.cpp -FILE: ../../../third_party/icu/source/i18n/plurrule_impl.h -FILE: ../../../third_party/icu/source/i18n/quant.cpp -FILE: ../../../third_party/icu/source/i18n/quant.h -FILE: ../../../third_party/icu/source/i18n/quantityformatter.cpp -FILE: ../../../third_party/icu/source/i18n/quantityformatter.h -FILE: ../../../third_party/icu/source/i18n/rbnf.cpp -FILE: ../../../third_party/icu/source/i18n/rbt.cpp -FILE: ../../../third_party/icu/source/i18n/rbt.h -FILE: ../../../third_party/icu/source/i18n/rbt_data.cpp -FILE: ../../../third_party/icu/source/i18n/rbt_data.h -FILE: ../../../third_party/icu/source/i18n/rbt_pars.cpp -FILE: ../../../third_party/icu/source/i18n/rbt_pars.h -FILE: ../../../third_party/icu/source/i18n/rbt_rule.cpp -FILE: ../../../third_party/icu/source/i18n/rbt_rule.h -FILE: ../../../third_party/icu/source/i18n/rbt_set.cpp -FILE: ../../../third_party/icu/source/i18n/rbt_set.h -FILE: ../../../third_party/icu/source/i18n/rbtz.cpp -FILE: ../../../third_party/icu/source/i18n/regexcmp.cpp -FILE: ../../../third_party/icu/source/i18n/regexcmp.h -FILE: ../../../third_party/icu/source/i18n/regexcst.h -FILE: ../../../third_party/icu/source/i18n/regeximp.cpp -FILE: ../../../third_party/icu/source/i18n/regeximp.h -FILE: ../../../third_party/icu/source/i18n/regexst.cpp -FILE: ../../../third_party/icu/source/i18n/regexst.h -FILE: ../../../third_party/icu/source/i18n/regextxt.cpp -FILE: ../../../third_party/icu/source/i18n/regextxt.h -FILE: ../../../third_party/icu/source/i18n/region.cpp -FILE: ../../../third_party/icu/source/i18n/region_impl.h -FILE: ../../../third_party/icu/source/i18n/reldatefmt.cpp -FILE: ../../../third_party/icu/source/i18n/reldtfmt.cpp -FILE: ../../../third_party/icu/source/i18n/reldtfmt.h -FILE: ../../../third_party/icu/source/i18n/rematch.cpp -FILE: ../../../third_party/icu/source/i18n/remtrans.cpp -FILE: ../../../third_party/icu/source/i18n/remtrans.h -FILE: ../../../third_party/icu/source/i18n/repattrn.cpp -FILE: ../../../third_party/icu/source/i18n/rulebasedcollator.cpp -FILE: ../../../third_party/icu/source/i18n/scientificnumberformatter.cpp -FILE: ../../../third_party/icu/source/i18n/scriptset.cpp -FILE: ../../../third_party/icu/source/i18n/scriptset.h -FILE: ../../../third_party/icu/source/i18n/search.cpp -FILE: ../../../third_party/icu/source/i18n/selfmt.cpp -FILE: ../../../third_party/icu/source/i18n/selfmtimpl.h -FILE: ../../../third_party/icu/source/i18n/sharedbreakiterator.cpp -FILE: ../../../third_party/icu/source/i18n/sharedbreakiterator.h -FILE: ../../../third_party/icu/source/i18n/sharedcalendar.h -FILE: ../../../third_party/icu/source/i18n/shareddateformatsymbols.h -FILE: ../../../third_party/icu/source/i18n/sharednumberformat.h -FILE: ../../../third_party/icu/source/i18n/sharedpluralrules.h -FILE: ../../../third_party/icu/source/i18n/simpletz.cpp -FILE: ../../../third_party/icu/source/i18n/smpdtfmt.cpp -FILE: ../../../third_party/icu/source/i18n/smpdtfst.cpp -FILE: ../../../third_party/icu/source/i18n/smpdtfst.h -FILE: ../../../third_party/icu/source/i18n/sortkey.cpp -FILE: ../../../third_party/icu/source/i18n/standardplural.cpp -FILE: ../../../third_party/icu/source/i18n/standardplural.h -FILE: ../../../third_party/icu/source/i18n/string_segment.cpp -FILE: ../../../third_party/icu/source/i18n/string_segment.h -FILE: ../../../third_party/icu/source/i18n/strmatch.cpp -FILE: ../../../third_party/icu/source/i18n/strmatch.h -FILE: ../../../third_party/icu/source/i18n/strrepl.cpp -FILE: ../../../third_party/icu/source/i18n/strrepl.h -FILE: ../../../third_party/icu/source/i18n/stsearch.cpp -FILE: ../../../third_party/icu/source/i18n/taiwncal.cpp -FILE: ../../../third_party/icu/source/i18n/taiwncal.h -FILE: ../../../third_party/icu/source/i18n/timezone.cpp -FILE: ../../../third_party/icu/source/i18n/titletrn.cpp -FILE: ../../../third_party/icu/source/i18n/titletrn.h -FILE: ../../../third_party/icu/source/i18n/tmunit.cpp -FILE: ../../../third_party/icu/source/i18n/tmutamt.cpp -FILE: ../../../third_party/icu/source/i18n/tmutfmt.cpp -FILE: ../../../third_party/icu/source/i18n/tolowtrn.cpp -FILE: ../../../third_party/icu/source/i18n/tolowtrn.h -FILE: ../../../third_party/icu/source/i18n/toupptrn.cpp -FILE: ../../../third_party/icu/source/i18n/toupptrn.h -FILE: ../../../third_party/icu/source/i18n/translit.cpp -FILE: ../../../third_party/icu/source/i18n/transreg.cpp -FILE: ../../../third_party/icu/source/i18n/transreg.h -FILE: ../../../third_party/icu/source/i18n/tridpars.cpp -FILE: ../../../third_party/icu/source/i18n/tridpars.h -FILE: ../../../third_party/icu/source/i18n/tzfmt.cpp -FILE: ../../../third_party/icu/source/i18n/tzgnames.cpp -FILE: ../../../third_party/icu/source/i18n/tzgnames.h -FILE: ../../../third_party/icu/source/i18n/tznames.cpp -FILE: ../../../third_party/icu/source/i18n/tznames_impl.cpp -FILE: ../../../third_party/icu/source/i18n/tznames_impl.h -FILE: ../../../third_party/icu/source/i18n/tzrule.cpp -FILE: ../../../third_party/icu/source/i18n/tztrans.cpp -FILE: ../../../third_party/icu/source/i18n/ucal.cpp -FILE: ../../../third_party/icu/source/i18n/ucln_in.cpp -FILE: ../../../third_party/icu/source/i18n/ucln_in.h -FILE: ../../../third_party/icu/source/i18n/ucol.cpp -FILE: ../../../third_party/icu/source/i18n/ucol_imp.h -FILE: ../../../third_party/icu/source/i18n/ucol_res.cpp -FILE: ../../../third_party/icu/source/i18n/ucol_sit.cpp -FILE: ../../../third_party/icu/source/i18n/ucoleitr.cpp -FILE: ../../../third_party/icu/source/i18n/ucsdet.cpp -FILE: ../../../third_party/icu/source/i18n/udat.cpp -FILE: ../../../third_party/icu/source/i18n/udateintervalformat.cpp -FILE: ../../../third_party/icu/source/i18n/udatpg.cpp -FILE: ../../../third_party/icu/source/i18n/ufieldpositer.cpp -FILE: ../../../third_party/icu/source/i18n/uitercollationiterator.cpp -FILE: ../../../third_party/icu/source/i18n/uitercollationiterator.h -FILE: ../../../third_party/icu/source/i18n/ulistformatter.cpp -FILE: ../../../third_party/icu/source/i18n/ulocdata.cpp -FILE: ../../../third_party/icu/source/i18n/umsg.cpp -FILE: ../../../third_party/icu/source/i18n/umsg_imp.h -FILE: ../../../third_party/icu/source/i18n/unesctrn.cpp -FILE: ../../../third_party/icu/source/i18n/unesctrn.h -FILE: ../../../third_party/icu/source/i18n/uni2name.cpp -FILE: ../../../third_party/icu/source/i18n/uni2name.h -FILE: ../../../third_party/icu/source/i18n/unicode/alphaindex.h -FILE: ../../../third_party/icu/source/i18n/unicode/basictz.h -FILE: ../../../third_party/icu/source/i18n/unicode/calendar.h -FILE: ../../../third_party/icu/source/i18n/unicode/choicfmt.h -FILE: ../../../third_party/icu/source/i18n/unicode/coleitr.h -FILE: ../../../third_party/icu/source/i18n/unicode/coll.h -FILE: ../../../third_party/icu/source/i18n/unicode/compactdecimalformat.h -FILE: ../../../third_party/icu/source/i18n/unicode/curramt.h -FILE: ../../../third_party/icu/source/i18n/unicode/currpinf.h -FILE: ../../../third_party/icu/source/i18n/unicode/currunit.h -FILE: ../../../third_party/icu/source/i18n/unicode/datefmt.h -FILE: ../../../third_party/icu/source/i18n/unicode/dcfmtsym.h -FILE: ../../../third_party/icu/source/i18n/unicode/decimfmt.h -FILE: ../../../third_party/icu/source/i18n/unicode/dtfmtsym.h -FILE: ../../../third_party/icu/source/i18n/unicode/dtitvfmt.h -FILE: ../../../third_party/icu/source/i18n/unicode/dtitvinf.h -FILE: ../../../third_party/icu/source/i18n/unicode/dtptngen.h -FILE: ../../../third_party/icu/source/i18n/unicode/dtrule.h -FILE: ../../../third_party/icu/source/i18n/unicode/fieldpos.h -FILE: ../../../third_party/icu/source/i18n/unicode/fmtable.h -FILE: ../../../third_party/icu/source/i18n/unicode/format.h -FILE: ../../../third_party/icu/source/i18n/unicode/formattedvalue.h -FILE: ../../../third_party/icu/source/i18n/unicode/fpositer.h -FILE: ../../../third_party/icu/source/i18n/unicode/gender.h -FILE: ../../../third_party/icu/source/i18n/unicode/gregocal.h -FILE: ../../../third_party/icu/source/i18n/unicode/listformatter.h -FILE: ../../../third_party/icu/source/i18n/unicode/measfmt.h -FILE: ../../../third_party/icu/source/i18n/unicode/measunit.h -FILE: ../../../third_party/icu/source/i18n/unicode/measure.h -FILE: ../../../third_party/icu/source/i18n/unicode/msgfmt.h -FILE: ../../../third_party/icu/source/i18n/unicode/nounit.h -FILE: ../../../third_party/icu/source/i18n/unicode/numberformatter.h -FILE: ../../../third_party/icu/source/i18n/unicode/numberrangeformatter.h -FILE: ../../../third_party/icu/source/i18n/unicode/numfmt.h -FILE: ../../../third_party/icu/source/i18n/unicode/numsys.h -FILE: ../../../third_party/icu/source/i18n/unicode/plurfmt.h -FILE: ../../../third_party/icu/source/i18n/unicode/plurrule.h -FILE: ../../../third_party/icu/source/i18n/unicode/rbnf.h -FILE: ../../../third_party/icu/source/i18n/unicode/rbtz.h -FILE: ../../../third_party/icu/source/i18n/unicode/regex.h -FILE: ../../../third_party/icu/source/i18n/unicode/region.h -FILE: ../../../third_party/icu/source/i18n/unicode/reldatefmt.h -FILE: ../../../third_party/icu/source/i18n/unicode/scientificnumberformatter.h -FILE: ../../../third_party/icu/source/i18n/unicode/search.h -FILE: ../../../third_party/icu/source/i18n/unicode/selfmt.h -FILE: ../../../third_party/icu/source/i18n/unicode/simpletz.h -FILE: ../../../third_party/icu/source/i18n/unicode/smpdtfmt.h -FILE: ../../../third_party/icu/source/i18n/unicode/sortkey.h -FILE: ../../../third_party/icu/source/i18n/unicode/stsearch.h -FILE: ../../../third_party/icu/source/i18n/unicode/tblcoll.h -FILE: ../../../third_party/icu/source/i18n/unicode/timezone.h -FILE: ../../../third_party/icu/source/i18n/unicode/tmunit.h -FILE: ../../../third_party/icu/source/i18n/unicode/tmutamt.h -FILE: ../../../third_party/icu/source/i18n/unicode/tmutfmt.h -FILE: ../../../third_party/icu/source/i18n/unicode/translit.h -FILE: ../../../third_party/icu/source/i18n/unicode/tzfmt.h -FILE: ../../../third_party/icu/source/i18n/unicode/tznames.h -FILE: ../../../third_party/icu/source/i18n/unicode/tzrule.h -FILE: ../../../third_party/icu/source/i18n/unicode/tztrans.h -FILE: ../../../third_party/icu/source/i18n/unicode/ucal.h -FILE: ../../../third_party/icu/source/i18n/unicode/ucol.h -FILE: ../../../third_party/icu/source/i18n/unicode/ucoleitr.h -FILE: ../../../third_party/icu/source/i18n/unicode/ucsdet.h -FILE: ../../../third_party/icu/source/i18n/unicode/udat.h -FILE: ../../../third_party/icu/source/i18n/unicode/udateintervalformat.h -FILE: ../../../third_party/icu/source/i18n/unicode/udatpg.h -FILE: ../../../third_party/icu/source/i18n/unicode/ufieldpositer.h -FILE: ../../../third_party/icu/source/i18n/unicode/uformattable.h -FILE: ../../../third_party/icu/source/i18n/unicode/uformattedvalue.h -FILE: ../../../third_party/icu/source/i18n/unicode/ugender.h -FILE: ../../../third_party/icu/source/i18n/unicode/ulistformatter.h -FILE: ../../../third_party/icu/source/i18n/unicode/ulocdata.h -FILE: ../../../third_party/icu/source/i18n/unicode/umsg.h -FILE: ../../../third_party/icu/source/i18n/unicode/unirepl.h -FILE: ../../../third_party/icu/source/i18n/unicode/unounclass.h -FILE: ../../../third_party/icu/source/i18n/unicode/unum.h -FILE: ../../../third_party/icu/source/i18n/unicode/unumberformatter.h -FILE: ../../../third_party/icu/source/i18n/unicode/unumberrangeformatter.h -FILE: ../../../third_party/icu/source/i18n/unicode/unumsys.h -FILE: ../../../third_party/icu/source/i18n/unicode/upluralrules.h -FILE: ../../../third_party/icu/source/i18n/unicode/uregex.h -FILE: ../../../third_party/icu/source/i18n/unicode/uregion.h -FILE: ../../../third_party/icu/source/i18n/unicode/ureldatefmt.h -FILE: ../../../third_party/icu/source/i18n/unicode/usearch.h -FILE: ../../../third_party/icu/source/i18n/unicode/uspoof.h -FILE: ../../../third_party/icu/source/i18n/unicode/utmscale.h -FILE: ../../../third_party/icu/source/i18n/unicode/utrans.h -FILE: ../../../third_party/icu/source/i18n/unicode/vtzone.h -FILE: ../../../third_party/icu/source/i18n/units_complexconverter.cpp -FILE: ../../../third_party/icu/source/i18n/units_complexconverter.h -FILE: ../../../third_party/icu/source/i18n/units_converter.cpp -FILE: ../../../third_party/icu/source/i18n/units_converter.h -FILE: ../../../third_party/icu/source/i18n/units_data.cpp -FILE: ../../../third_party/icu/source/i18n/units_data.h -FILE: ../../../third_party/icu/source/i18n/units_router.cpp -FILE: ../../../third_party/icu/source/i18n/units_router.h -FILE: ../../../third_party/icu/source/i18n/unum.cpp -FILE: ../../../third_party/icu/source/i18n/unumsys.cpp -FILE: ../../../third_party/icu/source/i18n/upluralrules.cpp -FILE: ../../../third_party/icu/source/i18n/uregex.cpp -FILE: ../../../third_party/icu/source/i18n/uregexc.cpp -FILE: ../../../third_party/icu/source/i18n/uregion.cpp -FILE: ../../../third_party/icu/source/i18n/usearch.cpp -FILE: ../../../third_party/icu/source/i18n/uspoof.cpp -FILE: ../../../third_party/icu/source/i18n/uspoof_build.cpp -FILE: ../../../third_party/icu/source/i18n/uspoof_conf.cpp -FILE: ../../../third_party/icu/source/i18n/uspoof_conf.h -FILE: ../../../third_party/icu/source/i18n/uspoof_impl.cpp -FILE: ../../../third_party/icu/source/i18n/uspoof_impl.h -FILE: ../../../third_party/icu/source/i18n/usrchimp.h -FILE: ../../../third_party/icu/source/i18n/utf16collationiterator.cpp -FILE: ../../../third_party/icu/source/i18n/utf16collationiterator.h -FILE: ../../../third_party/icu/source/i18n/utf8collationiterator.cpp -FILE: ../../../third_party/icu/source/i18n/utf8collationiterator.h -FILE: ../../../third_party/icu/source/i18n/utmscale.cpp -FILE: ../../../third_party/icu/source/i18n/utrans.cpp -FILE: ../../../third_party/icu/source/i18n/vtzone.cpp -FILE: ../../../third_party/icu/source/i18n/vzone.cpp -FILE: ../../../third_party/icu/source/i18n/vzone.h -FILE: ../../../third_party/icu/source/i18n/windtfmt.cpp -FILE: ../../../third_party/icu/source/i18n/windtfmt.h -FILE: ../../../third_party/icu/source/i18n/winnmfmt.cpp -FILE: ../../../third_party/icu/source/i18n/winnmfmt.h -FILE: ../../../third_party/icu/source/i18n/wintzimpl.cpp -FILE: ../../../third_party/icu/source/i18n/wintzimpl.h -FILE: ../../../third_party/icu/source/i18n/zonemeta.cpp -FILE: ../../../third_party/icu/source/i18n/zonemeta.h -FILE: ../../../third_party/icu/source/i18n/zrule.cpp -FILE: ../../../third_party/icu/source/i18n/zrule.h -FILE: ../../../third_party/icu/source/i18n/ztrans.cpp -FILE: ../../../third_party/icu/source/i18n/ztrans.h -FILE: ../../../third_party/icu/source/icudefs.mk.in -FILE: ../../../third_party/icu/source/io/io.rc -FILE: ../../../third_party/icu/source/io/locbund.cpp -FILE: ../../../third_party/icu/source/io/locbund.h -FILE: ../../../third_party/icu/source/io/sprintf.cpp -FILE: ../../../third_party/icu/source/io/sscanf.cpp -FILE: ../../../third_party/icu/source/io/ucln_io.cpp -FILE: ../../../third_party/icu/source/io/ucln_io.h -FILE: ../../../third_party/icu/source/io/ufile.cpp -FILE: ../../../third_party/icu/source/io/ufile.h -FILE: ../../../third_party/icu/source/io/ufmt_cmn.cpp -FILE: ../../../third_party/icu/source/io/ufmt_cmn.h -FILE: ../../../third_party/icu/source/io/unicode/ustdio.h -FILE: ../../../third_party/icu/source/io/unicode/ustream.h -FILE: ../../../third_party/icu/source/io/uprintf.cpp -FILE: ../../../third_party/icu/source/io/uprintf.h -FILE: ../../../third_party/icu/source/io/uprntf_p.cpp -FILE: ../../../third_party/icu/source/io/uscanf.cpp -FILE: ../../../third_party/icu/source/io/uscanf.h -FILE: ../../../third_party/icu/source/io/uscanf_p.cpp -FILE: ../../../third_party/icu/source/io/ustdio.cpp -FILE: ../../../third_party/icu/source/io/ustream.cpp -FILE: ../../../third_party/icu/source/python/icutools/databuilder/filtration_schema.json -FILE: ../../../third_party/icu/source/stubdata/BUILD.bazel -FILE: ../../../third_party/icu/source/stubdata/stubdata.cpp -FILE: ../../../third_party/icu/source/tools/ctestfw/ctest.c -FILE: ../../../third_party/icu/source/tools/ctestfw/datamap.cpp -FILE: ../../../third_party/icu/source/tools/ctestfw/testdata.cpp -FILE: ../../../third_party/icu/source/tools/ctestfw/tstdtmod.cpp -FILE: ../../../third_party/icu/source/tools/ctestfw/ucln_ct.c -FILE: ../../../third_party/icu/source/tools/ctestfw/unicode/ctest.h -FILE: ../../../third_party/icu/source/tools/ctestfw/unicode/datamap.h -FILE: ../../../third_party/icu/source/tools/ctestfw/unicode/testdata.h -FILE: ../../../third_party/icu/source/tools/ctestfw/unicode/testlog.h -FILE: ../../../third_party/icu/source/tools/ctestfw/unicode/testtype.h -FILE: ../../../third_party/icu/source/tools/ctestfw/unicode/tstdtmod.h -FILE: ../../../third_party/icu/source/tools/ctestfw/unicode/uperf.h -FILE: ../../../third_party/icu/source/tools/ctestfw/unicode/utimer.h -FILE: ../../../third_party/icu/source/tools/ctestfw/uperf.cpp -FILE: ../../../third_party/icu/source/tools/escapesrc/cptbl.h -FILE: ../../../third_party/icu/source/tools/escapesrc/escapesrc.cpp -FILE: ../../../third_party/icu/source/tools/escapesrc/expect-simple.cpp -FILE: ../../../third_party/icu/source/tools/escapesrc/tblgen.cpp -FILE: ../../../third_party/icu/source/tools/escapesrc/test-nochange.cpp -FILE: ../../../third_party/icu/source/tools/escapesrc/test-simple.cpp -FILE: ../../../third_party/icu/source/tools/genbrk/genbrk.1.in -FILE: ../../../third_party/icu/source/tools/genbrk/genbrk.cpp -FILE: ../../../third_party/icu/source/tools/genccode/genccode.8.in -FILE: ../../../third_party/icu/source/tools/genccode/genccode.c -FILE: ../../../third_party/icu/source/tools/gencfu/gencfu.1.in -FILE: ../../../third_party/icu/source/tools/gencfu/gencfu.cpp -FILE: ../../../third_party/icu/source/tools/gencmn/gencmn.8.in -FILE: ../../../third_party/icu/source/tools/gencmn/gencmn.c -FILE: ../../../third_party/icu/source/tools/gencnval/gencnval.1.in -FILE: ../../../third_party/icu/source/tools/gencnval/gencnval.c -FILE: ../../../third_party/icu/source/tools/gencolusb/extract_unsafe_backwards.cpp -FILE: ../../../third_party/icu/source/tools/gencolusb/verify_uset.cpp -FILE: ../../../third_party/icu/source/tools/gendict/gendict.1.in -FILE: ../../../third_party/icu/source/tools/gendict/gendict.cpp -FILE: ../../../third_party/icu/source/tools/gennorm2/BUILD.bazel -FILE: ../../../third_party/icu/source/tools/gennorm2/extradata.cpp -FILE: ../../../third_party/icu/source/tools/gennorm2/extradata.h -FILE: ../../../third_party/icu/source/tools/gennorm2/gennorm2.cpp -FILE: ../../../third_party/icu/source/tools/gennorm2/n2builder.cpp -FILE: ../../../third_party/icu/source/tools/gennorm2/n2builder.h -FILE: ../../../third_party/icu/source/tools/gennorm2/norms.cpp -FILE: ../../../third_party/icu/source/tools/gennorm2/norms.h -FILE: ../../../third_party/icu/source/tools/genrb/derb.1.in -FILE: ../../../third_party/icu/source/tools/genrb/derb.cpp -FILE: ../../../third_party/icu/source/tools/genrb/errmsg.c -FILE: ../../../third_party/icu/source/tools/genrb/errmsg.h -FILE: ../../../third_party/icu/source/tools/genrb/filterrb.cpp -FILE: ../../../third_party/icu/source/tools/genrb/filterrb.h -FILE: ../../../third_party/icu/source/tools/genrb/genrb.1.in -FILE: ../../../third_party/icu/source/tools/genrb/genrb.cpp -FILE: ../../../third_party/icu/source/tools/genrb/genrb.h -FILE: ../../../third_party/icu/source/tools/genrb/parse.cpp -FILE: ../../../third_party/icu/source/tools/genrb/parse.h -FILE: ../../../third_party/icu/source/tools/genrb/prscmnts.cpp -FILE: ../../../third_party/icu/source/tools/genrb/prscmnts.h -FILE: ../../../third_party/icu/source/tools/genrb/rbutil.c -FILE: ../../../third_party/icu/source/tools/genrb/rbutil.h -FILE: ../../../third_party/icu/source/tools/genrb/read.c -FILE: ../../../third_party/icu/source/tools/genrb/read.h -FILE: ../../../third_party/icu/source/tools/genrb/reslist.cpp -FILE: ../../../third_party/icu/source/tools/genrb/reslist.h -FILE: ../../../third_party/icu/source/tools/genrb/rle.c -FILE: ../../../third_party/icu/source/tools/genrb/rle.h -FILE: ../../../third_party/icu/source/tools/genrb/ustr.c -FILE: ../../../third_party/icu/source/tools/genrb/ustr.h -FILE: ../../../third_party/icu/source/tools/genrb/wrtjava.cpp -FILE: ../../../third_party/icu/source/tools/genrb/wrtxml.cpp -FILE: ../../../third_party/icu/source/tools/gensprep/gensprep.8.in -FILE: ../../../third_party/icu/source/tools/gensprep/gensprep.c -FILE: ../../../third_party/icu/source/tools/gensprep/gensprep.h -FILE: ../../../third_party/icu/source/tools/gensprep/store.c -FILE: ../../../third_party/icu/source/tools/gentest/genres32.c -FILE: ../../../third_party/icu/source/tools/gentest/gentest.c -FILE: ../../../third_party/icu/source/tools/gentest/gentest.h -FILE: ../../../third_party/icu/source/tools/icuexportdata/icuexportdata.1.in -FILE: ../../../third_party/icu/source/tools/icuexportdata/icuexportdata.cpp -FILE: ../../../third_party/icu/source/tools/icuinfo/icuinfo.cpp -FILE: ../../../third_party/icu/source/tools/icuinfo/testplug.c -FILE: ../../../third_party/icu/source/tools/icupkg/icupkg.8.in -FILE: ../../../third_party/icu/source/tools/icupkg/icupkg.cpp -FILE: ../../../third_party/icu/source/tools/icuswap/icuswap.cpp -FILE: ../../../third_party/icu/source/tools/makeconv/gencnvex.c -FILE: ../../../third_party/icu/source/tools/makeconv/genmbcs.cpp -FILE: ../../../third_party/icu/source/tools/makeconv/genmbcs.h -FILE: ../../../third_party/icu/source/tools/makeconv/makeconv.1.in -FILE: ../../../third_party/icu/source/tools/makeconv/makeconv.cpp -FILE: ../../../third_party/icu/source/tools/makeconv/makeconv.h -FILE: ../../../third_party/icu/source/tools/makeconv/ucnvstat.c -FILE: ../../../third_party/icu/source/tools/pkgdata/pkgdata.1.in -FILE: ../../../third_party/icu/source/tools/pkgdata/pkgdata.cpp -FILE: ../../../third_party/icu/source/tools/pkgdata/pkgtypes.c -FILE: ../../../third_party/icu/source/tools/pkgdata/pkgtypes.h -FILE: ../../../third_party/icu/source/tools/toolutil/BUILD.bazel -FILE: ../../../third_party/icu/source/tools/toolutil/collationinfo.cpp -FILE: ../../../third_party/icu/source/tools/toolutil/collationinfo.h -FILE: ../../../third_party/icu/source/tools/toolutil/dbgutil.cpp -FILE: ../../../third_party/icu/source/tools/toolutil/dbgutil.h -FILE: ../../../third_party/icu/source/tools/toolutil/denseranges.cpp -FILE: ../../../third_party/icu/source/tools/toolutil/denseranges.h -FILE: ../../../third_party/icu/source/tools/toolutil/filestrm.cpp -FILE: ../../../third_party/icu/source/tools/toolutil/filestrm.h -FILE: ../../../third_party/icu/source/tools/toolutil/filetools.cpp -FILE: ../../../third_party/icu/source/tools/toolutil/filetools.h -FILE: ../../../third_party/icu/source/tools/toolutil/flagparser.cpp -FILE: ../../../third_party/icu/source/tools/toolutil/flagparser.h -FILE: ../../../third_party/icu/source/tools/toolutil/package.cpp -FILE: ../../../third_party/icu/source/tools/toolutil/package.h -FILE: ../../../third_party/icu/source/tools/toolutil/pkg_genc.cpp -FILE: ../../../third_party/icu/source/tools/toolutil/pkg_genc.h -FILE: ../../../third_party/icu/source/tools/toolutil/pkg_gencmn.cpp -FILE: ../../../third_party/icu/source/tools/toolutil/pkg_gencmn.h -FILE: ../../../third_party/icu/source/tools/toolutil/pkg_icu.cpp -FILE: ../../../third_party/icu/source/tools/toolutil/pkg_icu.h -FILE: ../../../third_party/icu/source/tools/toolutil/pkg_imp.h -FILE: ../../../third_party/icu/source/tools/toolutil/pkgitems.cpp -FILE: ../../../third_party/icu/source/tools/toolutil/ppucd.cpp -FILE: ../../../third_party/icu/source/tools/toolutil/ppucd.h -FILE: ../../../third_party/icu/source/tools/toolutil/swapimpl.cpp -FILE: ../../../third_party/icu/source/tools/toolutil/swapimpl.h -FILE: ../../../third_party/icu/source/tools/toolutil/toolutil.cpp -FILE: ../../../third_party/icu/source/tools/toolutil/toolutil.h -FILE: ../../../third_party/icu/source/tools/toolutil/ucbuf.cpp -FILE: ../../../third_party/icu/source/tools/toolutil/ucbuf.h -FILE: ../../../third_party/icu/source/tools/toolutil/ucln_tu.cpp -FILE: ../../../third_party/icu/source/tools/toolutil/ucm.cpp -FILE: ../../../third_party/icu/source/tools/toolutil/ucm.h -FILE: ../../../third_party/icu/source/tools/toolutil/ucmstate.cpp -FILE: ../../../third_party/icu/source/tools/toolutil/udbgutil.cpp -FILE: ../../../third_party/icu/source/tools/toolutil/udbgutil.h -FILE: ../../../third_party/icu/source/tools/toolutil/unewdata.cpp -FILE: ../../../third_party/icu/source/tools/toolutil/unewdata.h -FILE: ../../../third_party/icu/source/tools/toolutil/uoptions.cpp -FILE: ../../../third_party/icu/source/tools/toolutil/uoptions.h -FILE: ../../../third_party/icu/source/tools/toolutil/uparse.cpp -FILE: ../../../third_party/icu/source/tools/toolutil/uparse.h -FILE: ../../../third_party/icu/source/tools/toolutil/writesrc.cpp -FILE: ../../../third_party/icu/source/tools/toolutil/writesrc.h -FILE: ../../../third_party/icu/source/tools/toolutil/xmlparser.cpp -FILE: ../../../third_party/icu/source/tools/toolutil/xmlparser.h -FILE: ../../../third_party/icu/source/tools/tzcode/icuregions -FILE: ../../../third_party/icu/source/tools/tzcode/icuzdump.cpp -FILE: ../../../third_party/icu/source/tools/tzcode/icuzones -FILE: ../../../third_party/icu/source/tools/tzcode/tz2icu.cpp -FILE: ../../../third_party/icu/source/tools/tzcode/tz2icu.h +ORIGIN: null +TYPE: LicenseType.unknown +FILE: ../../../third_party/boringssl/ios-aarch64/crypto/chacha/chacha-armv8.S +FILE: ../../../third_party/boringssl/ios-aarch64/crypto/fipsmodule/aesv8-armx64.S +FILE: ../../../third_party/boringssl/ios-aarch64/crypto/fipsmodule/armv8-mont.S +FILE: ../../../third_party/boringssl/ios-aarch64/crypto/fipsmodule/ghash-neon-armv8.S +FILE: ../../../third_party/boringssl/ios-aarch64/crypto/fipsmodule/ghashv8-armx64.S +FILE: ../../../third_party/boringssl/ios-aarch64/crypto/fipsmodule/sha1-armv8.S +FILE: ../../../third_party/boringssl/ios-aarch64/crypto/fipsmodule/vpaes-armv8.S +FILE: ../../../third_party/boringssl/ios-arm/crypto/chacha/chacha-armv4.S +FILE: ../../../third_party/boringssl/ios-arm/crypto/fipsmodule/aesv8-armx32.S +FILE: ../../../third_party/boringssl/ios-arm/crypto/fipsmodule/armv4-mont.S +FILE: ../../../third_party/boringssl/ios-arm/crypto/fipsmodule/ghash-armv4.S +FILE: ../../../third_party/boringssl/ios-arm/crypto/fipsmodule/ghashv8-armx32.S +FILE: ../../../third_party/boringssl/ios-arm/crypto/fipsmodule/sha1-armv4-large.S +FILE: ../../../third_party/boringssl/ios-arm/crypto/fipsmodule/vpaes-armv7.S +FILE: ../../../third_party/boringssl/linux-aarch64/crypto/chacha/chacha-armv8.S +FILE: ../../../third_party/boringssl/linux-aarch64/crypto/fipsmodule/aesv8-armx64.S +FILE: ../../../third_party/boringssl/linux-aarch64/crypto/fipsmodule/armv8-mont.S +FILE: ../../../third_party/boringssl/linux-aarch64/crypto/fipsmodule/ghash-neon-armv8.S +FILE: ../../../third_party/boringssl/linux-aarch64/crypto/fipsmodule/ghashv8-armx64.S +FILE: ../../../third_party/boringssl/linux-aarch64/crypto/fipsmodule/sha1-armv8.S +FILE: ../../../third_party/boringssl/linux-aarch64/crypto/fipsmodule/vpaes-armv8.S +FILE: ../../../third_party/boringssl/linux-arm/crypto/chacha/chacha-armv4.S +FILE: ../../../third_party/boringssl/linux-arm/crypto/fipsmodule/aesv8-armx32.S +FILE: ../../../third_party/boringssl/linux-arm/crypto/fipsmodule/armv4-mont.S +FILE: ../../../third_party/boringssl/linux-arm/crypto/fipsmodule/ghash-armv4.S +FILE: ../../../third_party/boringssl/linux-arm/crypto/fipsmodule/ghashv8-armx32.S +FILE: ../../../third_party/boringssl/linux-arm/crypto/fipsmodule/sha1-armv4-large.S +FILE: ../../../third_party/boringssl/linux-arm/crypto/fipsmodule/vpaes-armv7.S +FILE: ../../../third_party/boringssl/linux-ppc64le/crypto/fipsmodule/aesp8-ppc.S +FILE: ../../../third_party/boringssl/linux-ppc64le/crypto/fipsmodule/ghashp8-ppc.S +FILE: ../../../third_party/boringssl/linux-x86/crypto/chacha/chacha-x86.S +FILE: ../../../third_party/boringssl/linux-x86/crypto/fipsmodule/aesni-x86.S +FILE: ../../../third_party/boringssl/linux-x86/crypto/fipsmodule/bn-586.S +FILE: ../../../third_party/boringssl/linux-x86/crypto/fipsmodule/co-586.S +FILE: ../../../third_party/boringssl/linux-x86/crypto/fipsmodule/ghash-ssse3-x86.S +FILE: ../../../third_party/boringssl/linux-x86/crypto/fipsmodule/ghash-x86.S +FILE: ../../../third_party/boringssl/linux-x86/crypto/fipsmodule/md5-586.S +FILE: ../../../third_party/boringssl/linux-x86/crypto/fipsmodule/sha1-586.S +FILE: ../../../third_party/boringssl/linux-x86/crypto/fipsmodule/sha256-586.S +FILE: ../../../third_party/boringssl/linux-x86/crypto/fipsmodule/sha512-586.S +FILE: ../../../third_party/boringssl/linux-x86/crypto/fipsmodule/vpaes-x86.S +FILE: ../../../third_party/boringssl/linux-x86/crypto/fipsmodule/x86-mont.S +FILE: ../../../third_party/boringssl/linux-x86_64/crypto/chacha/chacha-x86_64.S +FILE: ../../../third_party/boringssl/linux-x86_64/crypto/cipher_extra/aes128gcmsiv-x86_64.S +FILE: ../../../third_party/boringssl/linux-x86_64/crypto/cipher_extra/chacha20_poly1305_x86_64.S +FILE: ../../../third_party/boringssl/linux-x86_64/crypto/fipsmodule/aesni-gcm-x86_64.S +FILE: ../../../third_party/boringssl/linux-x86_64/crypto/fipsmodule/aesni-x86_64.S +FILE: ../../../third_party/boringssl/linux-x86_64/crypto/fipsmodule/ghash-ssse3-x86_64.S +FILE: ../../../third_party/boringssl/linux-x86_64/crypto/fipsmodule/ghash-x86_64.S +FILE: ../../../third_party/boringssl/linux-x86_64/crypto/fipsmodule/md5-x86_64.S +FILE: ../../../third_party/boringssl/linux-x86_64/crypto/fipsmodule/p256-x86_64-asm.S +FILE: ../../../third_party/boringssl/linux-x86_64/crypto/fipsmodule/p256_beeu-x86_64-asm.S +FILE: ../../../third_party/boringssl/linux-x86_64/crypto/fipsmodule/rdrand-x86_64.S +FILE: ../../../third_party/boringssl/linux-x86_64/crypto/fipsmodule/rsaz-avx2.S +FILE: ../../../third_party/boringssl/linux-x86_64/crypto/fipsmodule/sha1-x86_64.S +FILE: ../../../third_party/boringssl/linux-x86_64/crypto/fipsmodule/sha256-x86_64.S +FILE: ../../../third_party/boringssl/linux-x86_64/crypto/fipsmodule/sha512-x86_64.S +FILE: ../../../third_party/boringssl/linux-x86_64/crypto/fipsmodule/vpaes-x86_64.S +FILE: ../../../third_party/boringssl/linux-x86_64/crypto/fipsmodule/x86_64-mont.S +FILE: ../../../third_party/boringssl/linux-x86_64/crypto/fipsmodule/x86_64-mont5.S +FILE: ../../../third_party/boringssl/mac-x86/crypto/chacha/chacha-x86.S +FILE: ../../../third_party/boringssl/mac-x86/crypto/fipsmodule/aesni-x86.S +FILE: ../../../third_party/boringssl/mac-x86/crypto/fipsmodule/bn-586.S +FILE: ../../../third_party/boringssl/mac-x86/crypto/fipsmodule/co-586.S +FILE: ../../../third_party/boringssl/mac-x86/crypto/fipsmodule/ghash-ssse3-x86.S +FILE: ../../../third_party/boringssl/mac-x86/crypto/fipsmodule/ghash-x86.S +FILE: ../../../third_party/boringssl/mac-x86/crypto/fipsmodule/md5-586.S +FILE: ../../../third_party/boringssl/mac-x86/crypto/fipsmodule/sha1-586.S +FILE: ../../../third_party/boringssl/mac-x86/crypto/fipsmodule/sha256-586.S +FILE: ../../../third_party/boringssl/mac-x86/crypto/fipsmodule/sha512-586.S +FILE: ../../../third_party/boringssl/mac-x86/crypto/fipsmodule/vpaes-x86.S +FILE: ../../../third_party/boringssl/mac-x86/crypto/fipsmodule/x86-mont.S +FILE: ../../../third_party/boringssl/mac-x86_64/crypto/chacha/chacha-x86_64.S +FILE: ../../../third_party/boringssl/mac-x86_64/crypto/cipher_extra/aes128gcmsiv-x86_64.S +FILE: ../../../third_party/boringssl/mac-x86_64/crypto/cipher_extra/chacha20_poly1305_x86_64.S +FILE: ../../../third_party/boringssl/mac-x86_64/crypto/fipsmodule/aesni-gcm-x86_64.S +FILE: ../../../third_party/boringssl/mac-x86_64/crypto/fipsmodule/aesni-x86_64.S +FILE: ../../../third_party/boringssl/mac-x86_64/crypto/fipsmodule/ghash-ssse3-x86_64.S +FILE: ../../../third_party/boringssl/mac-x86_64/crypto/fipsmodule/ghash-x86_64.S +FILE: ../../../third_party/boringssl/mac-x86_64/crypto/fipsmodule/md5-x86_64.S +FILE: ../../../third_party/boringssl/mac-x86_64/crypto/fipsmodule/p256-x86_64-asm.S +FILE: ../../../third_party/boringssl/mac-x86_64/crypto/fipsmodule/p256_beeu-x86_64-asm.S +FILE: ../../../third_party/boringssl/mac-x86_64/crypto/fipsmodule/rdrand-x86_64.S +FILE: ../../../third_party/boringssl/mac-x86_64/crypto/fipsmodule/rsaz-avx2.S +FILE: ../../../third_party/boringssl/mac-x86_64/crypto/fipsmodule/sha1-x86_64.S +FILE: ../../../third_party/boringssl/mac-x86_64/crypto/fipsmodule/sha256-x86_64.S +FILE: ../../../third_party/boringssl/mac-x86_64/crypto/fipsmodule/sha512-x86_64.S +FILE: ../../../third_party/boringssl/mac-x86_64/crypto/fipsmodule/vpaes-x86_64.S +FILE: ../../../third_party/boringssl/mac-x86_64/crypto/fipsmodule/x86_64-mont.S +FILE: ../../../third_party/boringssl/mac-x86_64/crypto/fipsmodule/x86_64-mont5.S +FILE: ../../../third_party/boringssl/win-aarch64/crypto/chacha/chacha-armv8.S +FILE: ../../../third_party/boringssl/win-aarch64/crypto/fipsmodule/aesv8-armx64.S +FILE: ../../../third_party/boringssl/win-aarch64/crypto/fipsmodule/armv8-mont.S +FILE: ../../../third_party/boringssl/win-aarch64/crypto/fipsmodule/ghash-neon-armv8.S +FILE: ../../../third_party/boringssl/win-aarch64/crypto/fipsmodule/ghashv8-armx64.S +FILE: ../../../third_party/boringssl/win-aarch64/crypto/fipsmodule/sha1-armv8.S +FILE: ../../../third_party/boringssl/win-aarch64/crypto/fipsmodule/vpaes-armv8.S +FILE: ../../../third_party/boringssl/win-x86/crypto/chacha/chacha-x86.asm +FILE: ../../../third_party/boringssl/win-x86/crypto/fipsmodule/aesni-x86.asm +FILE: ../../../third_party/boringssl/win-x86/crypto/fipsmodule/bn-586.asm +FILE: ../../../third_party/boringssl/win-x86/crypto/fipsmodule/co-586.asm +FILE: ../../../third_party/boringssl/win-x86/crypto/fipsmodule/ghash-ssse3-x86.asm +FILE: ../../../third_party/boringssl/win-x86/crypto/fipsmodule/ghash-x86.asm +FILE: ../../../third_party/boringssl/win-x86/crypto/fipsmodule/md5-586.asm +FILE: ../../../third_party/boringssl/win-x86/crypto/fipsmodule/sha1-586.asm +FILE: ../../../third_party/boringssl/win-x86/crypto/fipsmodule/sha256-586.asm +FILE: ../../../third_party/boringssl/win-x86/crypto/fipsmodule/sha512-586.asm +FILE: ../../../third_party/boringssl/win-x86/crypto/fipsmodule/vpaes-x86.asm +FILE: ../../../third_party/boringssl/win-x86/crypto/fipsmodule/x86-mont.asm +FILE: ../../../third_party/boringssl/win-x86_64/crypto/chacha/chacha-x86_64.asm +FILE: ../../../third_party/boringssl/win-x86_64/crypto/cipher_extra/aes128gcmsiv-x86_64.asm +FILE: ../../../third_party/boringssl/win-x86_64/crypto/cipher_extra/chacha20_poly1305_x86_64.asm +FILE: ../../../third_party/boringssl/win-x86_64/crypto/fipsmodule/aesni-gcm-x86_64.asm +FILE: ../../../third_party/boringssl/win-x86_64/crypto/fipsmodule/aesni-x86_64.asm +FILE: ../../../third_party/boringssl/win-x86_64/crypto/fipsmodule/ghash-ssse3-x86_64.asm +FILE: ../../../third_party/boringssl/win-x86_64/crypto/fipsmodule/ghash-x86_64.asm +FILE: ../../../third_party/boringssl/win-x86_64/crypto/fipsmodule/md5-x86_64.asm +FILE: ../../../third_party/boringssl/win-x86_64/crypto/fipsmodule/p256-x86_64-asm.asm +FILE: ../../../third_party/boringssl/win-x86_64/crypto/fipsmodule/p256_beeu-x86_64-asm.asm +FILE: ../../../third_party/boringssl/win-x86_64/crypto/fipsmodule/rdrand-x86_64.asm +FILE: ../../../third_party/boringssl/win-x86_64/crypto/fipsmodule/rsaz-avx2.asm +FILE: ../../../third_party/boringssl/win-x86_64/crypto/fipsmodule/sha1-x86_64.asm +FILE: ../../../third_party/boringssl/win-x86_64/crypto/fipsmodule/sha256-x86_64.asm +FILE: ../../../third_party/boringssl/win-x86_64/crypto/fipsmodule/sha512-x86_64.asm +FILE: ../../../third_party/boringssl/win-x86_64/crypto/fipsmodule/vpaes-x86_64.asm +FILE: ../../../third_party/boringssl/win-x86_64/crypto/fipsmodule/x86_64-mont.asm +FILE: ../../../third_party/boringssl/win-x86_64/crypto/fipsmodule/x86_64-mont5.asm +---------------------------------------------------------------------------------------------------- + +==================================================================================================== + +==================================================================================================== +LIBRARY: angle +ORIGIN: ../../../third_party/angle/src/compiler/preprocessor/preprocessor_tab_autogen.cpp +TYPE: LicenseType.bison +FILE: ../../../third_party/angle/src/compiler/preprocessor/preprocessor_tab_autogen.cpp +FILE: ../../../third_party/angle/src/compiler/translator/glslang_tab_autogen.cpp +FILE: ../../../third_party/angle/src/compiler/translator/glslang_tab_autogen.h +---------------------------------------------------------------------------------------------------- + +==================================================================================================== + +==================================================================================================== +LIBRARY: libpng +ORIGIN: ../../../third_party/libpng/LICENSE +TYPE: LicenseType.libpng +FILE: ../../../third_party/libpng/pngprefix.h +---------------------------------------------------------------------------------------------------- + +==================================================================================================== + +==================================================================================================== +LIBRARY: libpng +ORIGIN: ../../../third_party/libpng/png.h +TYPE: LicenseType.libpng +FILE: ../../../third_party/libpng/arm/arm_init.c +FILE: ../../../third_party/libpng/arm/filter_neon.S +FILE: ../../../third_party/libpng/arm/filter_neon_intrinsics.c +FILE: ../../../third_party/libpng/arm/palette_neon_intrinsics.c +FILE: ../../../third_party/libpng/intel/filter_sse2_intrinsics.c +FILE: ../../../third_party/libpng/intel/intel_init.c +FILE: ../../../third_party/libpng/png.c +FILE: ../../../third_party/libpng/pngconf.h +FILE: ../../../third_party/libpng/pngdebug.h +FILE: ../../../third_party/libpng/pngerror.c +FILE: ../../../third_party/libpng/pngget.c +FILE: ../../../third_party/libpng/pnginfo.h +FILE: ../../../third_party/libpng/pnglibconf.h +FILE: ../../../third_party/libpng/pngmem.c +FILE: ../../../third_party/libpng/pngpread.c +FILE: ../../../third_party/libpng/pngpriv.h +FILE: ../../../third_party/libpng/pngread.c +FILE: ../../../third_party/libpng/pngrio.c +FILE: ../../../third_party/libpng/pngrtran.c +FILE: ../../../third_party/libpng/pngrutil.c +FILE: ../../../third_party/libpng/pngset.c +FILE: ../../../third_party/libpng/pngstruct.h +FILE: ../../../third_party/libpng/pngtest.c +FILE: ../../../third_party/libpng/pngtrans.c +FILE: ../../../third_party/libpng/pngwio.c +FILE: ../../../third_party/libpng/pngwrite.c +FILE: ../../../third_party/libpng/pngwtran.c +FILE: ../../../third_party/libpng/pngwutil.c ---------------------------------------------------------------------------------------------------- -Unicode® Copyright and Terms of Use -For the general privacy policy governing access to this site, see the Unicode Privacy Policy. + +==================================================================================================== -A. Unicode Copyright -1. Copyright © 1991-2022 Unicode, Inc. All rights reserved. -B. Definitions -Unicode Data Files ("DATA FILES") include all data files under the directories: -https://www.unicode.org/Public -https://www.unicode.org/reports -https://www.unicode.org/ivd/data +==================================================================================================== +LIBRARY: smhasher +ORIGIN: ../../../third_party/angle/src/common/third_party/smhasher/LICENSE +TYPE: LicenseType.mit +FILE: ../../../third_party/angle/src/common/third_party/smhasher/src/PMurHash.cpp +FILE: ../../../third_party/angle/src/common/third_party/smhasher/src/PMurHash.h +---------------------------------------------------------------------------------------------------- +All MurmurHash source files are placed in the public domain. -Unicode Data Files do not include PDF online code charts under the directory: -https://www.unicode.org/Public +The license below applies to all other code in SMHasher: -Unicode Software ("SOFTWARE") includes any source code published in the Unicode Standard -or any source code or compiled code under the directories: -https://www.unicode.org/Public/PROGRAMS -https://www.unicode.org/Public/cldr -http://site.icu-project.org/download -C. Terms of Use -1. Certain documents and files on this website contain a legend indicating that "Modification is permitted." Any person is hereby authorized, without fee, to modify such documents and files to create derivative works conforming to the Unicode® Standard, subject to Terms and Conditions herein. -2. Any person is hereby authorized, without fee, to view, use, reproduce, and distribute all documents and files, subject to the Terms and Conditions herein. -3. Further specifications of rights and restrictions pertaining to the use of the Unicode DATA FILES and SOFTWARE can be found in the Unicode Data Files and Software License. -4. Each version of the Unicode Standard has further specifications of rights and restrictions of use. For the book editions (Unicode 5.0 and earlier), these are found on the back of the title page. -5. The Unicode PDF online code charts carry specific restrictions. Those restrictions are incorporated as the first page of each PDF code chart. -6. All other files, including online documentation of the core specification for Unicode 6.0 and later, are covered under these general Terms of Use. -7. No license is granted to "mirror" the Unicode website where a fee is charged for access to the "mirror" site. -8. Modification is not permitted with respect to this document. All copies of this document must be verbatim. -D. Restricted Rights Legend -1. Any technical data or software which is licensed to the United States of America, its agencies and/or instrumentalities under this Agreement is commercial technical data or commercial computer software developed exclusively at private expense as defined in FAR 2.101, or DFARS 252.227-7014 (June 1995), as applicable. For technical data, use, duplication, or disclosure by the Government is subject to restrictions as set forth in DFARS 202.227-7015 Technical Data, Commercial and Items (Nov 1995) and this Agreement. For Software, in accordance with FAR 12-212 or DFARS 227-7202, as applicable, use, duplication or disclosure by the Government is subject to the restrictions set forth in this Agreement. -E.Warranties and Disclaimers -1. This publication and/or website may include technical or typographical errors or other inaccuracies. Changes are periodically added to the information herein; these changes will be incorporated in new editions of the publication and/or website. Unicode, Inc. may make improvements and/or changes in the product(s) and/or program(s) described in this publication and/or website at any time. -2. If this file has been purchased on magnetic or optical media from Unicode, Inc. the sole and exclusive remedy for any claim will be exchange of the defective media within ninety (90) days of original purchase. -3. EXCEPT AS PROVIDED IN SECTION E.2, THIS PUBLICATION AND/OR SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND EITHER EXPRESS, IMPLIED, OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT. UNICODE, INC. AND ITS LICENSORS ASSUME NO RESPONSIBILITY FOR ERRORS OR OMISSIONS IN THIS PUBLICATION AND/OR SOFTWARE OR OTHER DOCUMENTS WHICH ARE REFERENCED BY OR LINKED TO THIS PUBLICATION OR THE UNICODE WEBSITE. -F. Waiver of Damages -1. In no event shall Unicode, Inc. or its licensors be liable for any special, incidental, indirect or consequential damages of any kind, or any damages whatsoever, whether or not Unicode, Inc. was advised of the possibility of the damage, including, without limitation, those resulting from the following: loss of use, data or profits, in connection with the use, modification or distribution of this information or its derivatives. -G. Trademarks & Logos -1. The Unicode Word Mark and the Unicode Logo are trademarks of Unicode, Inc. “The Unicode Consortium” and “Unicode, Inc.” are trade names of Unicode, Inc. Use of the information and materials found on this website indicates your acknowledgement of Unicode, Inc.’s exclusive worldwide rights in the Unicode Word Mark, the Unicode Logo, and the Unicode trade names. -3. The Unicode Consortium Name and Trademark Usage Policy (“Trademark Policy”) are incorporated herein by reference and you agree to abide by the provisions of the Trademark Policy, which may be changed from time to time in the sole discretion of Unicode, Inc. -4. All third party trademarks referenced herein are the property of their respective owners. -H. Miscellaneous -1. Jurisdiction and Venue. This website is operated from a location in the State of California, United States of America. Unicode, Inc. makes no representation that the materials are appropriate for use in other locations. If you access this website from other locations, you are responsible for compliance with local laws. This Agreement, all use of this website and any claims and damages resulting from use of this website are governed solely by the laws of the State of California without regard to any principles which would apply the laws of a different jurisdiction. The user agrees that any disputes regarding this website shall be resolved solely in the courts located in Santa Clara County, California. The user agrees said courts have personal jurisdiction and agree to waive any right to transfer the dispute to any other forum. -2. Modification by Unicode, Inc. Unicode, Inc. shall have the right to modify this Agreement at any time by posting it to this website. The user may not assign any part of this Agreement without Unicode, Inc.’s prior written consent. -3. Taxes. The user agrees to pay any taxes arising from access to this website or use of the information herein, except for those based on Unicode’s net income. -4. Severability. If any provision of this Agreement is declared invalid or unenforceable, the remaining provisions of this Agreement shall remain in effect. -5. Entire Agreement. This Agreement constitutes the entire agreement between the parties. +Copyright (c) 2011 Google, Inc. -EXHIBIT 1 -UNICODE, INC. LICENSE AGREEMENT - DATA FILES AND SOFTWARE +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: -See Terms of Use -for definitions of Unicode Inc.’s Data Files and Software. +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. -NOTICE TO USER: Carefully read the following legal agreement. -BY DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING UNICODE INC.'S -DATA FILES ("DATA FILES"), AND/OR SOFTWARE ("SOFTWARE"), -YOU UNEQUIVOCALLY ACCEPT, AND AGREE TO BE BOUND BY, ALL OF THE -TERMS AND CONDITIONS OF THIS AGREEMENT. -IF YOU DO NOT AGREE, DO NOT DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE -THE DATA FILES OR SOFTWARE. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +==================================================================================================== -COPYRIGHT AND PERMISSION NOTICE +==================================================================================================== +LIBRARY: flatbuffers +ORIGIN: ../../../third_party/flatbuffers/dart/LICENSE +TYPE: LicenseType.apache +FILE: ../../../third_party/flatbuffers/dart/example/monster_my_game.sample_generated.dart +FILE: ../../../third_party/flatbuffers/dart/lib/flat_buffers.dart +FILE: ../../../third_party/flatbuffers/dart/lib/flex_buffers.dart +FILE: ../../../third_party/flatbuffers/dart/lib/src/builder.dart +FILE: ../../../third_party/flatbuffers/dart/lib/src/reference.dart +FILE: ../../../third_party/flatbuffers/dart/lib/src/types.dart +---------------------------------------------------------------------------------------------------- +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses -Copyright © 1991-2022 Unicode, Inc. All rights reserved. -Distributed under the Terms of Use in https://www.unicode.org/copyright.html. +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION -Permission is hereby granted, free of charge, to any person obtaining -a copy of the Unicode data files and any associated documentation -(the "Data Files") or Unicode software and any associated documentation -(the "Software") to deal in the Data Files or Software -without restriction, including without limitation the rights to use, -copy, modify, merge, publish, distribute, and/or sell copies of -the Data Files or Software, and to permit persons to whom the Data Files -or Software are furnished to do so, provided that either -(a) this copyright and permission notice appear with all copies -of the Data Files or Software, or -(b) this copyright and permission notice appear in associated -Documentation. +1. Definitions. -THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF -ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE -WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT OF THIRD PARTY RIGHTS. -IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS -NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL -DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, -DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER -TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THE DATA FILES OR SOFTWARE. + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. -Except as contained in this notice, the name of a copyright holder -shall not be used in advertising or otherwise to promote the sale, -use or other dealings in these Data Files or Software without prior -written authorization of the copyright holder. -==================================================================================================== + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. -==================================================================================================== -LIBRARY: icu -ORIGIN: ../../../third_party/icu/source/data/mappings/iso-8859_10-1998.ucm -TYPE: LicenseType.unknown -FILE: ../../../third_party/icu/source/data/mappings/iso-8859_10-1998.ucm ----------------------------------------------------------------------------------------------------- -Copyright (c) 1999 Unicode, Inc. All Rights reserved. - Copyright (C) 2002-2005, International Business Machines - Corporation and others. All Rights Reserved. + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. -This file is provided as-is by Unicode, Inc. (The Unicode Consortium). -No claims are made as to fitness for any particular purpose. No -warranties of any kind are expressed or implied. The recipient -agrees to determine applicability of information provided. If this -file has been provided on optical media by Unicode, Inc., the sole -remedy for any claim will be exchange of defective media within 90 -days of receipt. + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. -Unicode, Inc. hereby grants the right to freely use the information -supplied in this file in the creation of products supporting the -Unicode Standard, and to make copies of this file in any form for -internal or external distribution as long as this notice remains -attached. -==================================================================================================== + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. -==================================================================================================== -LIBRARY: icu -ORIGIN: ../../../third_party/icu/source/data/mappings/iso-8859_11-2001.ucm -TYPE: LicenseType.unknown -FILE: ../../../third_party/icu/source/data/mappings/iso-8859_11-2001.ucm ----------------------------------------------------------------------------------------------------- -Copyright (c) 2002 Unicode, Inc. All Rights reserved. - Copyright (C) 2002-2005, International Business Machines - Corporation and others. All Rights Reserved. + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. -This file is provided as-is by Unicode, Inc. (The Unicode Consortium). -No claims are made as to fitness for any particular purpose. No -warranties of any kind are expressed or implied. The recipient -agrees to determine applicability of information provided. If this -file has been provided on optical media by Unicode, Inc., the sole -remedy for any claim will be exchange of defective media within 90 -days of receipt. + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). -Unicode, Inc. hereby grants the right to freely use the information -supplied in this file in the creation of products supporting the -Unicode Standard, and to make copies of this file in any form for -internal or external distribution as long as this notice remains -attached. -==================================================================================================== + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. -==================================================================================================== -LIBRARY: icu -ORIGIN: ../../../third_party/icu/source/data/mappings/iso-8859_14-1998.ucm -TYPE: LicenseType.unknown -FILE: ../../../third_party/icu/source/data/mappings/iso-8859_14-1998.ucm ----------------------------------------------------------------------------------------------------- -Copyright (c) 1998 - 1999 Unicode, Inc. All Rights reserved. - Copyright (C) 2002-2005, International Business Machines - Corporation and others. All Rights Reserved. + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. -This file is provided as-is by Unicode, Inc. (The Unicode Consortium). -No claims are made as to fitness for any particular purpose. No -warranties of any kind are expressed or implied. The recipient -agrees to determine applicability of information provided. If this -file has been provided on optical media by Unicode, Inc., the sole -remedy for any claim will be exchange of defective media within 90 -days of receipt. +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: -Unicode, Inc. hereby grants the right to freely use the information -supplied in this file in the creation of products supporting the -Unicode Standard, and to make copies of this file in any form for -internal or external distribution as long as this notice remains -attached. -==================================================================================================== + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and -==================================================================================================== -LIBRARY: icu -ORIGIN: ../../../third_party/icu/source/i18n/decContext.cpp + ../../../third_party/dart/runtime/third_party/double-conversion/COPYING -TYPE: LicenseType.bsd -FILE: ../../../third_party/icu/source/i18n/decContext.cpp ----------------------------------------------------------------------------------------------------- -Copyright (c) IBM Corporation, 2000-2012. All rights reserved. + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - * Neither the name of Google Inc. nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. -==================================================================================================== -LIBRARY: icu -ORIGIN: ../../../third_party/icu/source/i18n/decContext.h + ../../../third_party/dart/runtime/third_party/double-conversion/COPYING -TYPE: LicenseType.bsd -FILE: ../../../third_party/icu/source/i18n/decContext.h ----------------------------------------------------------------------------------------------------- -Copyright (c) IBM Corporation, 2000-2011. All rights reserved. +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - * Neither the name of Google Inc. nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. -==================================================================================================== -LIBRARY: icu -ORIGIN: ../../../third_party/icu/source/i18n/decNumber.cpp + ../../../third_party/dart/runtime/third_party/double-conversion/COPYING -TYPE: LicenseType.bsd -FILE: ../../../third_party/icu/source/i18n/decNumber.cpp ----------------------------------------------------------------------------------------------------- -Copyright (c) IBM Corporation, 2000-2014. All rights reserved. +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +END OF TERMS AND CONDITIONS - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - * Neither the name of Google Inc. nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. +APPENDIX: How to apply the Apache License to your work. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. -==================================================================================================== -LIBRARY: icu -ORIGIN: ../../../third_party/icu/source/i18n/decNumber.h + ../../../third_party/dart/runtime/third_party/double-conversion/COPYING -TYPE: LicenseType.bsd -FILE: ../../../third_party/icu/source/i18n/decNumber.h ----------------------------------------------------------------------------------------------------- -Copyright (c) IBM Corporation, 2000-2010. All rights reserved. +Copyright 2014 Google Inc. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - * Neither the name of Google Inc. nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. + http://www.apache.org/licenses/LICENSE-2.0 -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. ==================================================================================================== ==================================================================================================== -LIBRARY: icu -ORIGIN: ../../../third_party/icu/source/i18n/decNumberLocal.h + ../../../third_party/dart/runtime/third_party/double-conversion/COPYING -TYPE: LicenseType.bsd -FILE: ../../../third_party/icu/source/i18n/decNumberLocal.h +LIBRARY: abseil-cpp +LIBRARY: angle +LIBRARY: boringssl +LIBRARY: expat +LIBRARY: flatbuffers +LIBRARY: fuchsia-vulkan +LIBRARY: khronos +LIBRARY: libwebp +LIBRARY: pkg +LIBRARY: vulkan-deps +LIBRARY: wuffs +ORIGIN: ../../../flutter/third_party/txt/LICENSE +TYPE: LicenseType.apache +FILE: ../../../third_party/abseil-cpp/BUILD.bazel +FILE: ../../../third_party/abseil-cpp/CMake/install_test_project/simple.cc +FILE: ../../../third_party/abseil-cpp/WORKSPACE +FILE: ../../../third_party/abseil-cpp/absl/BUILD.bazel +FILE: ../../../third_party/abseil-cpp/absl/algorithm/BUILD.bazel +FILE: ../../../third_party/abseil-cpp/absl/algorithm/algorithm.h +FILE: ../../../third_party/abseil-cpp/absl/algorithm/algorithm_test.cc +FILE: ../../../third_party/abseil-cpp/absl/algorithm/container.h +FILE: ../../../third_party/abseil-cpp/absl/algorithm/container_test.cc +FILE: ../../../third_party/abseil-cpp/absl/algorithm/equal_benchmark.cc +FILE: ../../../third_party/abseil-cpp/absl/base/BUILD.bazel +FILE: ../../../third_party/abseil-cpp/absl/base/attributes.h +FILE: ../../../third_party/abseil-cpp/absl/base/bit_cast_test.cc +FILE: ../../../third_party/abseil-cpp/absl/base/call_once.h +FILE: ../../../third_party/abseil-cpp/absl/base/call_once_test.cc +FILE: ../../../third_party/abseil-cpp/absl/base/casts.h +FILE: ../../../third_party/abseil-cpp/absl/base/config.h +FILE: ../../../third_party/abseil-cpp/absl/base/config_test.cc +FILE: ../../../third_party/abseil-cpp/absl/base/const_init.h +FILE: ../../../third_party/abseil-cpp/absl/base/dynamic_annotations.h +FILE: ../../../third_party/abseil-cpp/absl/base/exception_safety_testing_test.cc +FILE: ../../../third_party/abseil-cpp/absl/base/inline_variable_test.cc +FILE: ../../../third_party/abseil-cpp/absl/base/inline_variable_test_a.cc +FILE: ../../../third_party/abseil-cpp/absl/base/inline_variable_test_b.cc +FILE: ../../../third_party/abseil-cpp/absl/base/internal/atomic_hook.h +FILE: ../../../third_party/abseil-cpp/absl/base/internal/atomic_hook_test.cc +FILE: ../../../third_party/abseil-cpp/absl/base/internal/atomic_hook_test_helper.cc +FILE: ../../../third_party/abseil-cpp/absl/base/internal/atomic_hook_test_helper.h +FILE: ../../../third_party/abseil-cpp/absl/base/internal/cmake_thread_test.cc +FILE: ../../../third_party/abseil-cpp/absl/base/internal/cycleclock.cc +FILE: ../../../third_party/abseil-cpp/absl/base/internal/cycleclock.h +FILE: ../../../third_party/abseil-cpp/absl/base/internal/direct_mmap.h +FILE: ../../../third_party/abseil-cpp/absl/base/internal/endian.h +FILE: ../../../third_party/abseil-cpp/absl/base/internal/endian_test.cc +FILE: ../../../third_party/abseil-cpp/absl/base/internal/errno_saver.h +FILE: ../../../third_party/abseil-cpp/absl/base/internal/errno_saver_test.cc +FILE: ../../../third_party/abseil-cpp/absl/base/internal/exception_safety_testing.cc +FILE: ../../../third_party/abseil-cpp/absl/base/internal/exception_safety_testing.h +FILE: ../../../third_party/abseil-cpp/absl/base/internal/exception_testing.h +FILE: ../../../third_party/abseil-cpp/absl/base/internal/fast_type_id.h +FILE: ../../../third_party/abseil-cpp/absl/base/internal/fast_type_id_test.cc +FILE: ../../../third_party/abseil-cpp/absl/base/internal/hide_ptr.h +FILE: ../../../third_party/abseil-cpp/absl/base/internal/identity.h +FILE: ../../../third_party/abseil-cpp/absl/base/internal/inline_variable.h +FILE: ../../../third_party/abseil-cpp/absl/base/internal/inline_variable_testing.h +FILE: ../../../third_party/abseil-cpp/absl/base/internal/invoke.h +FILE: ../../../third_party/abseil-cpp/absl/base/internal/low_level_alloc.cc +FILE: ../../../third_party/abseil-cpp/absl/base/internal/low_level_alloc.h +FILE: ../../../third_party/abseil-cpp/absl/base/internal/low_level_alloc_test.cc +FILE: ../../../third_party/abseil-cpp/absl/base/internal/low_level_scheduling.h +FILE: ../../../third_party/abseil-cpp/absl/base/internal/per_thread_tls.h +FILE: ../../../third_party/abseil-cpp/absl/base/internal/prefetch.h +FILE: ../../../third_party/abseil-cpp/absl/base/internal/prefetch_test.cc +FILE: ../../../third_party/abseil-cpp/absl/base/internal/pretty_function.h +FILE: ../../../third_party/abseil-cpp/absl/base/internal/raw_logging.cc +FILE: ../../../third_party/abseil-cpp/absl/base/internal/raw_logging.h +FILE: ../../../third_party/abseil-cpp/absl/base/internal/scheduling_mode.h +FILE: ../../../third_party/abseil-cpp/absl/base/internal/scoped_set_env.cc +FILE: ../../../third_party/abseil-cpp/absl/base/internal/scoped_set_env.h +FILE: ../../../third_party/abseil-cpp/absl/base/internal/scoped_set_env_test.cc +FILE: ../../../third_party/abseil-cpp/absl/base/internal/spinlock.cc +FILE: ../../../third_party/abseil-cpp/absl/base/internal/spinlock.h +FILE: ../../../third_party/abseil-cpp/absl/base/internal/spinlock_akaros.inc +FILE: ../../../third_party/abseil-cpp/absl/base/internal/spinlock_benchmark.cc +FILE: ../../../third_party/abseil-cpp/absl/base/internal/spinlock_linux.inc +FILE: ../../../third_party/abseil-cpp/absl/base/internal/spinlock_posix.inc +FILE: ../../../third_party/abseil-cpp/absl/base/internal/spinlock_wait.cc +FILE: ../../../third_party/abseil-cpp/absl/base/internal/spinlock_wait.h +FILE: ../../../third_party/abseil-cpp/absl/base/internal/spinlock_win32.inc +FILE: ../../../third_party/abseil-cpp/absl/base/internal/strerror.cc +FILE: ../../../third_party/abseil-cpp/absl/base/internal/strerror.h +FILE: ../../../third_party/abseil-cpp/absl/base/internal/strerror_benchmark.cc +FILE: ../../../third_party/abseil-cpp/absl/base/internal/strerror_test.cc +FILE: ../../../third_party/abseil-cpp/absl/base/internal/sysinfo.cc +FILE: ../../../third_party/abseil-cpp/absl/base/internal/sysinfo.h +FILE: ../../../third_party/abseil-cpp/absl/base/internal/sysinfo_test.cc +FILE: ../../../third_party/abseil-cpp/absl/base/internal/thread_identity.cc +FILE: ../../../third_party/abseil-cpp/absl/base/internal/thread_identity.h +FILE: ../../../third_party/abseil-cpp/absl/base/internal/thread_identity_benchmark.cc +FILE: ../../../third_party/abseil-cpp/absl/base/internal/thread_identity_test.cc +FILE: ../../../third_party/abseil-cpp/absl/base/internal/throw_delegate.cc +FILE: ../../../third_party/abseil-cpp/absl/base/internal/throw_delegate.h +FILE: ../../../third_party/abseil-cpp/absl/base/internal/tsan_mutex_interface.h +FILE: ../../../third_party/abseil-cpp/absl/base/internal/unaligned_access.h +FILE: ../../../third_party/abseil-cpp/absl/base/internal/unique_small_name_test.cc +FILE: ../../../third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +FILE: ../../../third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h +FILE: ../../../third_party/abseil-cpp/absl/base/invoke_test.cc +FILE: ../../../third_party/abseil-cpp/absl/base/log_severity.cc +FILE: ../../../third_party/abseil-cpp/absl/base/log_severity.h +FILE: ../../../third_party/abseil-cpp/absl/base/log_severity_test.cc +FILE: ../../../third_party/abseil-cpp/absl/base/macros.h +FILE: ../../../third_party/abseil-cpp/absl/base/optimization.h +FILE: ../../../third_party/abseil-cpp/absl/base/optimization_test.cc +FILE: ../../../third_party/abseil-cpp/absl/base/options.h +FILE: ../../../third_party/abseil-cpp/absl/base/policy_checks.h +FILE: ../../../third_party/abseil-cpp/absl/base/port.h +FILE: ../../../third_party/abseil-cpp/absl/base/raw_logging_test.cc +FILE: ../../../third_party/abseil-cpp/absl/base/spinlock_test_common.cc +FILE: ../../../third_party/abseil-cpp/absl/base/thread_annotations.h +FILE: ../../../third_party/abseil-cpp/absl/base/throw_delegate_test.cc +FILE: ../../../third_party/abseil-cpp/absl/cleanup/BUILD.bazel +FILE: ../../../third_party/abseil-cpp/absl/cleanup/cleanup.h +FILE: ../../../third_party/abseil-cpp/absl/cleanup/cleanup_test.cc +FILE: ../../../third_party/abseil-cpp/absl/cleanup/internal/cleanup.h +FILE: ../../../third_party/abseil-cpp/absl/container/BUILD.bazel +FILE: ../../../third_party/abseil-cpp/absl/container/btree_benchmark.cc +FILE: ../../../third_party/abseil-cpp/absl/container/btree_map.h +FILE: ../../../third_party/abseil-cpp/absl/container/btree_set.h +FILE: ../../../third_party/abseil-cpp/absl/container/btree_test.cc +FILE: ../../../third_party/abseil-cpp/absl/container/btree_test.h +FILE: ../../../third_party/abseil-cpp/absl/container/fixed_array.h +FILE: ../../../third_party/abseil-cpp/absl/container/fixed_array_benchmark.cc +FILE: ../../../third_party/abseil-cpp/absl/container/fixed_array_exception_safety_test.cc +FILE: ../../../third_party/abseil-cpp/absl/container/fixed_array_test.cc +FILE: ../../../third_party/abseil-cpp/absl/container/flat_hash_map.h +FILE: ../../../third_party/abseil-cpp/absl/container/flat_hash_map_test.cc +FILE: ../../../third_party/abseil-cpp/absl/container/flat_hash_set.h +FILE: ../../../third_party/abseil-cpp/absl/container/flat_hash_set_test.cc +FILE: ../../../third_party/abseil-cpp/absl/container/inlined_vector.h +FILE: ../../../third_party/abseil-cpp/absl/container/inlined_vector_benchmark.cc +FILE: ../../../third_party/abseil-cpp/absl/container/inlined_vector_exception_safety_test.cc +FILE: ../../../third_party/abseil-cpp/absl/container/inlined_vector_test.cc +FILE: ../../../third_party/abseil-cpp/absl/container/internal/btree.h +FILE: ../../../third_party/abseil-cpp/absl/container/internal/btree_container.h +FILE: ../../../third_party/abseil-cpp/absl/container/internal/common.h +FILE: ../../../third_party/abseil-cpp/absl/container/internal/compressed_tuple.h +FILE: ../../../third_party/abseil-cpp/absl/container/internal/compressed_tuple_test.cc +FILE: ../../../third_party/abseil-cpp/absl/container/internal/container_memory.h +FILE: ../../../third_party/abseil-cpp/absl/container/internal/container_memory_test.cc +FILE: ../../../third_party/abseil-cpp/absl/container/internal/counting_allocator.h +FILE: ../../../third_party/abseil-cpp/absl/container/internal/hash_function_defaults.h +FILE: ../../../third_party/abseil-cpp/absl/container/internal/hash_function_defaults_test.cc +FILE: ../../../third_party/abseil-cpp/absl/container/internal/hash_generator_testing.cc +FILE: ../../../third_party/abseil-cpp/absl/container/internal/hash_generator_testing.h +FILE: ../../../third_party/abseil-cpp/absl/container/internal/hash_policy_testing.h +FILE: ../../../third_party/abseil-cpp/absl/container/internal/hash_policy_testing_test.cc +FILE: ../../../third_party/abseil-cpp/absl/container/internal/hash_policy_traits.h +FILE: ../../../third_party/abseil-cpp/absl/container/internal/hash_policy_traits_test.cc +FILE: ../../../third_party/abseil-cpp/absl/container/internal/hashtable_debug.h +FILE: ../../../third_party/abseil-cpp/absl/container/internal/hashtable_debug_hooks.h +FILE: ../../../third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +FILE: ../../../third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +FILE: ../../../third_party/abseil-cpp/absl/container/internal/hashtablez_sampler_force_weak_definition.cc +FILE: ../../../third_party/abseil-cpp/absl/container/internal/hashtablez_sampler_test.cc +FILE: ../../../third_party/abseil-cpp/absl/container/internal/inlined_vector.h +FILE: ../../../third_party/abseil-cpp/absl/container/internal/layout.h +FILE: ../../../third_party/abseil-cpp/absl/container/internal/layout_benchmark.cc +FILE: ../../../third_party/abseil-cpp/absl/container/internal/layout_test.cc +FILE: ../../../third_party/abseil-cpp/absl/container/internal/node_slot_policy.h +FILE: ../../../third_party/abseil-cpp/absl/container/internal/node_slot_policy_test.cc +FILE: ../../../third_party/abseil-cpp/absl/container/internal/raw_hash_map.h +FILE: ../../../third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +FILE: ../../../third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +FILE: ../../../third_party/abseil-cpp/absl/container/internal/raw_hash_set_allocator_test.cc +FILE: ../../../third_party/abseil-cpp/absl/container/internal/raw_hash_set_benchmark.cc +FILE: ../../../third_party/abseil-cpp/absl/container/internal/raw_hash_set_probe_benchmark.cc +FILE: ../../../third_party/abseil-cpp/absl/container/internal/raw_hash_set_test.cc +FILE: ../../../third_party/abseil-cpp/absl/container/internal/test_instance_tracker.cc +FILE: ../../../third_party/abseil-cpp/absl/container/internal/test_instance_tracker.h +FILE: ../../../third_party/abseil-cpp/absl/container/internal/test_instance_tracker_test.cc +FILE: ../../../third_party/abseil-cpp/absl/container/internal/tracked.h +FILE: ../../../third_party/abseil-cpp/absl/container/internal/unordered_map_constructor_test.h +FILE: ../../../third_party/abseil-cpp/absl/container/internal/unordered_map_lookup_test.h +FILE: ../../../third_party/abseil-cpp/absl/container/internal/unordered_map_members_test.h +FILE: ../../../third_party/abseil-cpp/absl/container/internal/unordered_map_modifiers_test.h +FILE: ../../../third_party/abseil-cpp/absl/container/internal/unordered_map_test.cc +FILE: ../../../third_party/abseil-cpp/absl/container/internal/unordered_set_constructor_test.h +FILE: ../../../third_party/abseil-cpp/absl/container/internal/unordered_set_lookup_test.h +FILE: ../../../third_party/abseil-cpp/absl/container/internal/unordered_set_members_test.h +FILE: ../../../third_party/abseil-cpp/absl/container/internal/unordered_set_modifiers_test.h +FILE: ../../../third_party/abseil-cpp/absl/container/internal/unordered_set_test.cc +FILE: ../../../third_party/abseil-cpp/absl/container/node_hash_map.h +FILE: ../../../third_party/abseil-cpp/absl/container/node_hash_map_test.cc +FILE: ../../../third_party/abseil-cpp/absl/container/node_hash_set.h +FILE: ../../../third_party/abseil-cpp/absl/container/node_hash_set_test.cc +FILE: ../../../third_party/abseil-cpp/absl/container/sample_element_size_test.cc +FILE: ../../../third_party/abseil-cpp/absl/debugging/BUILD.bazel +FILE: ../../../third_party/abseil-cpp/absl/debugging/failure_signal_handler.cc +FILE: ../../../third_party/abseil-cpp/absl/debugging/failure_signal_handler.h +FILE: ../../../third_party/abseil-cpp/absl/debugging/failure_signal_handler_test.cc +FILE: ../../../third_party/abseil-cpp/absl/debugging/internal/address_is_readable.cc +FILE: ../../../third_party/abseil-cpp/absl/debugging/internal/address_is_readable.h +FILE: ../../../third_party/abseil-cpp/absl/debugging/internal/demangle.cc +FILE: ../../../third_party/abseil-cpp/absl/debugging/internal/demangle.h +FILE: ../../../third_party/abseil-cpp/absl/debugging/internal/demangle_test.cc +FILE: ../../../third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.cc +FILE: ../../../third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h +FILE: ../../../third_party/abseil-cpp/absl/debugging/internal/examine_stack.cc +FILE: ../../../third_party/abseil-cpp/absl/debugging/internal/examine_stack.h +FILE: ../../../third_party/abseil-cpp/absl/debugging/internal/stack_consumption.cc +FILE: ../../../third_party/abseil-cpp/absl/debugging/internal/stack_consumption.h +FILE: ../../../third_party/abseil-cpp/absl/debugging/internal/stack_consumption_test.cc +FILE: ../../../third_party/abseil-cpp/absl/debugging/internal/stacktrace_arm-inl.inc +FILE: ../../../third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +FILE: ../../../third_party/abseil-cpp/absl/debugging/internal/stacktrace_emscripten-inl.inc +FILE: ../../../third_party/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc +FILE: ../../../third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +FILE: ../../../third_party/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +FILE: ../../../third_party/abseil-cpp/absl/debugging/internal/stacktrace_win32-inl.inc +FILE: ../../../third_party/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +FILE: ../../../third_party/abseil-cpp/absl/debugging/internal/symbolize.h +FILE: ../../../third_party/abseil-cpp/absl/debugging/internal/vdso_support.cc +FILE: ../../../third_party/abseil-cpp/absl/debugging/internal/vdso_support.h +FILE: ../../../third_party/abseil-cpp/absl/debugging/leak_check.cc +FILE: ../../../third_party/abseil-cpp/absl/debugging/leak_check.h +FILE: ../../../third_party/abseil-cpp/absl/debugging/leak_check_fail_test.cc +FILE: ../../../third_party/abseil-cpp/absl/debugging/leak_check_test.cc +FILE: ../../../third_party/abseil-cpp/absl/debugging/stacktrace.cc +FILE: ../../../third_party/abseil-cpp/absl/debugging/stacktrace.h +FILE: ../../../third_party/abseil-cpp/absl/debugging/stacktrace_benchmark.cc +FILE: ../../../third_party/abseil-cpp/absl/debugging/symbolize.cc +FILE: ../../../third_party/abseil-cpp/absl/debugging/symbolize.h +FILE: ../../../third_party/abseil-cpp/absl/debugging/symbolize_darwin.inc +FILE: ../../../third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +FILE: ../../../third_party/abseil-cpp/absl/debugging/symbolize_emscripten.inc +FILE: ../../../third_party/abseil-cpp/absl/debugging/symbolize_test.cc +FILE: ../../../third_party/abseil-cpp/absl/debugging/symbolize_unimplemented.inc +FILE: ../../../third_party/abseil-cpp/absl/debugging/symbolize_win32.inc +FILE: ../../../third_party/abseil-cpp/absl/flags/BUILD.bazel +FILE: ../../../third_party/abseil-cpp/absl/flags/commandlineflag.cc +FILE: ../../../third_party/abseil-cpp/absl/flags/commandlineflag.h +FILE: ../../../third_party/abseil-cpp/absl/flags/commandlineflag_test.cc +FILE: ../../../third_party/abseil-cpp/absl/flags/config.h +FILE: ../../../third_party/abseil-cpp/absl/flags/config_test.cc +FILE: ../../../third_party/abseil-cpp/absl/flags/declare.h +FILE: ../../../third_party/abseil-cpp/absl/flags/flag.cc +FILE: ../../../third_party/abseil-cpp/absl/flags/flag.h +FILE: ../../../third_party/abseil-cpp/absl/flags/flag_benchmark.cc +FILE: ../../../third_party/abseil-cpp/absl/flags/flag_test.cc +FILE: ../../../third_party/abseil-cpp/absl/flags/flag_test_defs.cc +FILE: ../../../third_party/abseil-cpp/absl/flags/internal/commandlineflag.cc +FILE: ../../../third_party/abseil-cpp/absl/flags/internal/commandlineflag.h +FILE: ../../../third_party/abseil-cpp/absl/flags/internal/flag.cc +FILE: ../../../third_party/abseil-cpp/absl/flags/internal/flag.h +FILE: ../../../third_party/abseil-cpp/absl/flags/internal/flag_msvc.inc +FILE: ../../../third_party/abseil-cpp/absl/flags/internal/parse.h +FILE: ../../../third_party/abseil-cpp/absl/flags/internal/path_util.h +FILE: ../../../third_party/abseil-cpp/absl/flags/internal/path_util_test.cc +FILE: ../../../third_party/abseil-cpp/absl/flags/internal/private_handle_accessor.cc +FILE: ../../../third_party/abseil-cpp/absl/flags/internal/private_handle_accessor.h +FILE: ../../../third_party/abseil-cpp/absl/flags/internal/program_name.cc +FILE: ../../../third_party/abseil-cpp/absl/flags/internal/program_name.h +FILE: ../../../third_party/abseil-cpp/absl/flags/internal/program_name_test.cc +FILE: ../../../third_party/abseil-cpp/absl/flags/internal/registry.h +FILE: ../../../third_party/abseil-cpp/absl/flags/internal/sequence_lock.h +FILE: ../../../third_party/abseil-cpp/absl/flags/internal/sequence_lock_test.cc +FILE: ../../../third_party/abseil-cpp/absl/flags/internal/usage.cc +FILE: ../../../third_party/abseil-cpp/absl/flags/internal/usage.h +FILE: ../../../third_party/abseil-cpp/absl/flags/internal/usage_test.cc +FILE: ../../../third_party/abseil-cpp/absl/flags/marshalling.cc +FILE: ../../../third_party/abseil-cpp/absl/flags/marshalling.h +FILE: ../../../third_party/abseil-cpp/absl/flags/marshalling_test.cc +FILE: ../../../third_party/abseil-cpp/absl/flags/parse.cc +FILE: ../../../third_party/abseil-cpp/absl/flags/parse.h +FILE: ../../../third_party/abseil-cpp/absl/flags/parse_test.cc +FILE: ../../../third_party/abseil-cpp/absl/flags/reflection.cc +FILE: ../../../third_party/abseil-cpp/absl/flags/reflection.h +FILE: ../../../third_party/abseil-cpp/absl/flags/reflection_test.cc +FILE: ../../../third_party/abseil-cpp/absl/flags/usage.cc +FILE: ../../../third_party/abseil-cpp/absl/flags/usage.h +FILE: ../../../third_party/abseil-cpp/absl/flags/usage_config.cc +FILE: ../../../third_party/abseil-cpp/absl/flags/usage_config.h +FILE: ../../../third_party/abseil-cpp/absl/flags/usage_config_test.cc +FILE: ../../../third_party/abseil-cpp/absl/functional/BUILD.bazel +FILE: ../../../third_party/abseil-cpp/absl/functional/any_invocable.h +FILE: ../../../third_party/abseil-cpp/absl/functional/any_invocable_test.cc +FILE: ../../../third_party/abseil-cpp/absl/functional/bind_front.h +FILE: ../../../third_party/abseil-cpp/absl/functional/bind_front_test.cc +FILE: ../../../third_party/abseil-cpp/absl/functional/function_ref.h +FILE: ../../../third_party/abseil-cpp/absl/functional/function_ref_test.cc +FILE: ../../../third_party/abseil-cpp/absl/functional/function_type_benchmark.cc +FILE: ../../../third_party/abseil-cpp/absl/functional/internal/any_invocable.h +FILE: ../../../third_party/abseil-cpp/absl/functional/internal/front_binder.h +FILE: ../../../third_party/abseil-cpp/absl/functional/internal/function_ref.h +FILE: ../../../third_party/abseil-cpp/absl/hash/BUILD.bazel +FILE: ../../../third_party/abseil-cpp/absl/hash/hash.h +FILE: ../../../third_party/abseil-cpp/absl/hash/hash_benchmark.cc +FILE: ../../../third_party/abseil-cpp/absl/hash/hash_test.cc +FILE: ../../../third_party/abseil-cpp/absl/hash/hash_testing.h +FILE: ../../../third_party/abseil-cpp/absl/hash/internal/city.cc +FILE: ../../../third_party/abseil-cpp/absl/hash/internal/city.h +FILE: ../../../third_party/abseil-cpp/absl/hash/internal/city_test.cc +FILE: ../../../third_party/abseil-cpp/absl/hash/internal/hash.cc +FILE: ../../../third_party/abseil-cpp/absl/hash/internal/hash.h +FILE: ../../../third_party/abseil-cpp/absl/hash/internal/low_level_hash.cc +FILE: ../../../third_party/abseil-cpp/absl/hash/internal/low_level_hash.h +FILE: ../../../third_party/abseil-cpp/absl/hash/internal/low_level_hash_test.cc +FILE: ../../../third_party/abseil-cpp/absl/hash/internal/print_hash_of.cc +FILE: ../../../third_party/abseil-cpp/absl/hash/internal/spy_hash_state.h +FILE: ../../../third_party/abseil-cpp/absl/memory/BUILD.bazel +FILE: ../../../third_party/abseil-cpp/absl/memory/memory.h +FILE: ../../../third_party/abseil-cpp/absl/memory/memory_exception_safety_test.cc +FILE: ../../../third_party/abseil-cpp/absl/memory/memory_test.cc +FILE: ../../../third_party/abseil-cpp/absl/meta/BUILD.bazel +FILE: ../../../third_party/abseil-cpp/absl/meta/type_traits.h +FILE: ../../../third_party/abseil-cpp/absl/meta/type_traits_test.cc +FILE: ../../../third_party/abseil-cpp/absl/numeric/BUILD.bazel +FILE: ../../../third_party/abseil-cpp/absl/numeric/bits.h +FILE: ../../../third_party/abseil-cpp/absl/numeric/bits_benchmark.cc +FILE: ../../../third_party/abseil-cpp/absl/numeric/bits_test.cc +FILE: ../../../third_party/abseil-cpp/absl/numeric/int128.cc +FILE: ../../../third_party/abseil-cpp/absl/numeric/int128.h +FILE: ../../../third_party/abseil-cpp/absl/numeric/int128_benchmark.cc +FILE: ../../../third_party/abseil-cpp/absl/numeric/int128_have_intrinsic.inc +FILE: ../../../third_party/abseil-cpp/absl/numeric/int128_no_intrinsic.inc +FILE: ../../../third_party/abseil-cpp/absl/numeric/int128_stream_test.cc +FILE: ../../../third_party/abseil-cpp/absl/numeric/int128_test.cc +FILE: ../../../third_party/abseil-cpp/absl/numeric/internal/bits.h +FILE: ../../../third_party/abseil-cpp/absl/numeric/internal/representation.h +FILE: ../../../third_party/abseil-cpp/absl/profiling/BUILD.bazel +FILE: ../../../third_party/abseil-cpp/absl/profiling/internal/exponential_biased.cc +FILE: ../../../third_party/abseil-cpp/absl/profiling/internal/exponential_biased.h +FILE: ../../../third_party/abseil-cpp/absl/profiling/internal/exponential_biased_test.cc +FILE: ../../../third_party/abseil-cpp/absl/profiling/internal/periodic_sampler.cc +FILE: ../../../third_party/abseil-cpp/absl/profiling/internal/periodic_sampler.h +FILE: ../../../third_party/abseil-cpp/absl/profiling/internal/periodic_sampler_benchmark.cc +FILE: ../../../third_party/abseil-cpp/absl/profiling/internal/periodic_sampler_test.cc +FILE: ../../../third_party/abseil-cpp/absl/profiling/internal/sample_recorder.h +FILE: ../../../third_party/abseil-cpp/absl/profiling/internal/sample_recorder_test.cc +FILE: ../../../third_party/abseil-cpp/absl/random/BUILD.bazel +FILE: ../../../third_party/abseil-cpp/absl/random/benchmarks.cc +FILE: ../../../third_party/abseil-cpp/absl/random/bernoulli_distribution.h +FILE: ../../../third_party/abseil-cpp/absl/random/bernoulli_distribution_test.cc +FILE: ../../../third_party/abseil-cpp/absl/random/beta_distribution.h +FILE: ../../../third_party/abseil-cpp/absl/random/beta_distribution_test.cc +FILE: ../../../third_party/abseil-cpp/absl/random/bit_gen_ref.h +FILE: ../../../third_party/abseil-cpp/absl/random/bit_gen_ref_test.cc +FILE: ../../../third_party/abseil-cpp/absl/random/discrete_distribution.cc +FILE: ../../../third_party/abseil-cpp/absl/random/discrete_distribution.h +FILE: ../../../third_party/abseil-cpp/absl/random/discrete_distribution_test.cc +FILE: ../../../third_party/abseil-cpp/absl/random/distributions.h +FILE: ../../../third_party/abseil-cpp/absl/random/distributions_test.cc +FILE: ../../../third_party/abseil-cpp/absl/random/examples_test.cc +FILE: ../../../third_party/abseil-cpp/absl/random/exponential_distribution.h +FILE: ../../../third_party/abseil-cpp/absl/random/exponential_distribution_test.cc +FILE: ../../../third_party/abseil-cpp/absl/random/gaussian_distribution.h +FILE: ../../../third_party/abseil-cpp/absl/random/gaussian_distribution_test.cc +FILE: ../../../third_party/abseil-cpp/absl/random/generators_test.cc +FILE: ../../../third_party/abseil-cpp/absl/random/internal/BUILD.bazel +FILE: ../../../third_party/abseil-cpp/absl/random/internal/chi_square.cc +FILE: ../../../third_party/abseil-cpp/absl/random/internal/chi_square.h +FILE: ../../../third_party/abseil-cpp/absl/random/internal/chi_square_test.cc +FILE: ../../../third_party/abseil-cpp/absl/random/internal/distribution_caller.h +FILE: ../../../third_party/abseil-cpp/absl/random/internal/distribution_test_util.cc +FILE: ../../../third_party/abseil-cpp/absl/random/internal/distribution_test_util.h +FILE: ../../../third_party/abseil-cpp/absl/random/internal/distribution_test_util_test.cc +FILE: ../../../third_party/abseil-cpp/absl/random/internal/explicit_seed_seq.h +FILE: ../../../third_party/abseil-cpp/absl/random/internal/explicit_seed_seq_test.cc +FILE: ../../../third_party/abseil-cpp/absl/random/internal/fast_uniform_bits.h +FILE: ../../../third_party/abseil-cpp/absl/random/internal/fast_uniform_bits_test.cc +FILE: ../../../third_party/abseil-cpp/absl/random/internal/fastmath.h +FILE: ../../../third_party/abseil-cpp/absl/random/internal/fastmath_test.cc +FILE: ../../../third_party/abseil-cpp/absl/random/internal/gaussian_distribution_gentables.cc +FILE: ../../../third_party/abseil-cpp/absl/random/internal/generate_real.h +FILE: ../../../third_party/abseil-cpp/absl/random/internal/generate_real_test.cc +FILE: ../../../third_party/abseil-cpp/absl/random/internal/iostream_state_saver.h +FILE: ../../../third_party/abseil-cpp/absl/random/internal/iostream_state_saver_test.cc +FILE: ../../../third_party/abseil-cpp/absl/random/internal/mock_helpers.h +FILE: ../../../third_party/abseil-cpp/absl/random/internal/mock_overload_set.h +FILE: ../../../third_party/abseil-cpp/absl/random/internal/nanobenchmark.cc +FILE: ../../../third_party/abseil-cpp/absl/random/internal/nanobenchmark.h +FILE: ../../../third_party/abseil-cpp/absl/random/internal/nanobenchmark_test.cc +FILE: ../../../third_party/abseil-cpp/absl/random/internal/nonsecure_base.h +FILE: ../../../third_party/abseil-cpp/absl/random/internal/nonsecure_base_test.cc +FILE: ../../../third_party/abseil-cpp/absl/random/internal/pcg_engine.h +FILE: ../../../third_party/abseil-cpp/absl/random/internal/pcg_engine_test.cc +FILE: ../../../third_party/abseil-cpp/absl/random/internal/platform.h +FILE: ../../../third_party/abseil-cpp/absl/random/internal/pool_urbg.cc +FILE: ../../../third_party/abseil-cpp/absl/random/internal/pool_urbg.h +FILE: ../../../third_party/abseil-cpp/absl/random/internal/pool_urbg_test.cc +FILE: ../../../third_party/abseil-cpp/absl/random/internal/randen.cc +FILE: ../../../third_party/abseil-cpp/absl/random/internal/randen.h +FILE: ../../../third_party/abseil-cpp/absl/random/internal/randen_benchmarks.cc +FILE: ../../../third_party/abseil-cpp/absl/random/internal/randen_detect.cc +FILE: ../../../third_party/abseil-cpp/absl/random/internal/randen_detect.h +FILE: ../../../third_party/abseil-cpp/absl/random/internal/randen_engine.h +FILE: ../../../third_party/abseil-cpp/absl/random/internal/randen_engine_test.cc +FILE: ../../../third_party/abseil-cpp/absl/random/internal/randen_hwaes.cc +FILE: ../../../third_party/abseil-cpp/absl/random/internal/randen_hwaes.h +FILE: ../../../third_party/abseil-cpp/absl/random/internal/randen_hwaes_test.cc +FILE: ../../../third_party/abseil-cpp/absl/random/internal/randen_round_keys.cc +FILE: ../../../third_party/abseil-cpp/absl/random/internal/randen_slow.cc +FILE: ../../../third_party/abseil-cpp/absl/random/internal/randen_slow.h +FILE: ../../../third_party/abseil-cpp/absl/random/internal/randen_slow_test.cc +FILE: ../../../third_party/abseil-cpp/absl/random/internal/randen_test.cc +FILE: ../../../third_party/abseil-cpp/absl/random/internal/randen_traits.h +FILE: ../../../third_party/abseil-cpp/absl/random/internal/salted_seed_seq.h +FILE: ../../../third_party/abseil-cpp/absl/random/internal/salted_seed_seq_test.cc +FILE: ../../../third_party/abseil-cpp/absl/random/internal/seed_material.cc +FILE: ../../../third_party/abseil-cpp/absl/random/internal/seed_material.h +FILE: ../../../third_party/abseil-cpp/absl/random/internal/seed_material_test.cc +FILE: ../../../third_party/abseil-cpp/absl/random/internal/sequence_urbg.h +FILE: ../../../third_party/abseil-cpp/absl/random/internal/traits.h +FILE: ../../../third_party/abseil-cpp/absl/random/internal/traits_test.cc +FILE: ../../../third_party/abseil-cpp/absl/random/internal/uniform_helper.h +FILE: ../../../third_party/abseil-cpp/absl/random/internal/uniform_helper_test.cc +FILE: ../../../third_party/abseil-cpp/absl/random/internal/wide_multiply.h +FILE: ../../../third_party/abseil-cpp/absl/random/internal/wide_multiply_test.cc +FILE: ../../../third_party/abseil-cpp/absl/random/log_uniform_int_distribution.h +FILE: ../../../third_party/abseil-cpp/absl/random/log_uniform_int_distribution_test.cc +FILE: ../../../third_party/abseil-cpp/absl/random/mock_distributions.h +FILE: ../../../third_party/abseil-cpp/absl/random/mock_distributions_test.cc +FILE: ../../../third_party/abseil-cpp/absl/random/mocking_bit_gen.h +FILE: ../../../third_party/abseil-cpp/absl/random/mocking_bit_gen_test.cc +FILE: ../../../third_party/abseil-cpp/absl/random/poisson_distribution.h +FILE: ../../../third_party/abseil-cpp/absl/random/poisson_distribution_test.cc +FILE: ../../../third_party/abseil-cpp/absl/random/random.h +FILE: ../../../third_party/abseil-cpp/absl/random/seed_gen_exception.cc +FILE: ../../../third_party/abseil-cpp/absl/random/seed_gen_exception.h +FILE: ../../../third_party/abseil-cpp/absl/random/seed_sequences.cc +FILE: ../../../third_party/abseil-cpp/absl/random/seed_sequences.h +FILE: ../../../third_party/abseil-cpp/absl/random/seed_sequences_test.cc +FILE: ../../../third_party/abseil-cpp/absl/random/uniform_int_distribution.h +FILE: ../../../third_party/abseil-cpp/absl/random/uniform_int_distribution_test.cc +FILE: ../../../third_party/abseil-cpp/absl/random/uniform_real_distribution.h +FILE: ../../../third_party/abseil-cpp/absl/random/uniform_real_distribution_test.cc +FILE: ../../../third_party/abseil-cpp/absl/random/zipf_distribution.h +FILE: ../../../third_party/abseil-cpp/absl/random/zipf_distribution_test.cc +FILE: ../../../third_party/abseil-cpp/absl/status/BUILD.bazel +FILE: ../../../third_party/abseil-cpp/absl/status/internal/status_internal.h +FILE: ../../../third_party/abseil-cpp/absl/status/internal/statusor_internal.h +FILE: ../../../third_party/abseil-cpp/absl/status/status.cc +FILE: ../../../third_party/abseil-cpp/absl/status/status.h +FILE: ../../../third_party/abseil-cpp/absl/status/status_payload_printer.cc +FILE: ../../../third_party/abseil-cpp/absl/status/status_payload_printer.h +FILE: ../../../third_party/abseil-cpp/absl/status/status_test.cc +FILE: ../../../third_party/abseil-cpp/absl/status/statusor.cc +FILE: ../../../third_party/abseil-cpp/absl/status/statusor.h +FILE: ../../../third_party/abseil-cpp/absl/status/statusor_test.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/BUILD.bazel +FILE: ../../../third_party/abseil-cpp/absl/strings/ascii.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/ascii.h +FILE: ../../../third_party/abseil-cpp/absl/strings/ascii_benchmark.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/ascii_test.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/charconv.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/charconv.h +FILE: ../../../third_party/abseil-cpp/absl/strings/charconv_benchmark.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/charconv_test.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/cord.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/cord.h +FILE: ../../../third_party/abseil-cpp/absl/strings/cord_analysis.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/cord_analysis.h +FILE: ../../../third_party/abseil-cpp/absl/strings/cord_buffer.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/cord_buffer.h +FILE: ../../../third_party/abseil-cpp/absl/strings/cord_buffer_test.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/cord_ring_reader_test.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/cord_ring_test.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/cord_test.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/cord_test_helpers.h +FILE: ../../../third_party/abseil-cpp/absl/strings/cordz_test.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/cordz_test_helpers.h +FILE: ../../../third_party/abseil-cpp/absl/strings/escaping.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/escaping.h +FILE: ../../../third_party/abseil-cpp/absl/strings/escaping_benchmark.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/escaping_test.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/char_map.h +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/char_map_benchmark.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/char_map_test.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/charconv_bigint.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/charconv_bigint.h +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/charconv_bigint_test.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/charconv_parse.h +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/charconv_parse_test.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cord_data_edge.h +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cord_data_edge_test.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cord_internal.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cord_internal.h +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.h +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.h +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator_test.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.h +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_reader_test.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_test.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cord_rep_consume.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cord_rep_consume.h +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cord_rep_crc.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cord_rep_crc.h +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cord_rep_crc_test.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cord_rep_flat.h +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.h +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cord_rep_ring_reader.h +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cord_rep_test_util.h +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cordz_functions.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cordz_functions.h +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cordz_functions_test.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cordz_handle.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cordz_handle.h +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cordz_handle_test.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cordz_info.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cordz_info.h +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cordz_info_statistics_test.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cordz_info_test.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cordz_sample_token.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cordz_sample_token.h +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cordz_sample_token_test.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cordz_statistics.h +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cordz_update_scope.h +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cordz_update_scope_test.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cordz_update_tracker.h +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/cordz_update_tracker_test.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/escaping.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/escaping.h +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/escaping_test_common.h +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/memutil.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/memutil.h +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/memutil_benchmark.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/memutil_test.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/numbers_test_common.h +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/ostringstream.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/ostringstream.h +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/ostringstream_benchmark.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/ostringstream_test.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/pow10_helper.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/pow10_helper.h +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/pow10_helper_test.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/resize_uninitialized.h +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/resize_uninitialized_test.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/stl_type_traits.h +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/str_format/arg_test.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/str_format/bind_test.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/str_format/checker_test.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/str_format/convert_test.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/str_format/extension.h +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/str_format/extension_test.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.h +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/str_format/output.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/str_format/output.h +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/str_format/output_test.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/str_format/parser_test.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/str_join_internal.h +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/string_constant.h +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/string_constant_test.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/utf8.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/utf8.h +FILE: ../../../third_party/abseil-cpp/absl/strings/internal/utf8_test.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/match.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/match.h +FILE: ../../../third_party/abseil-cpp/absl/strings/match_test.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/numbers.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/numbers.h +FILE: ../../../third_party/abseil-cpp/absl/strings/numbers_benchmark.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/numbers_test.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/str_cat.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/str_cat.h +FILE: ../../../third_party/abseil-cpp/absl/strings/str_cat_benchmark.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/str_cat_test.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/str_format.h +FILE: ../../../third_party/abseil-cpp/absl/strings/str_format_test.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/str_join.h +FILE: ../../../third_party/abseil-cpp/absl/strings/str_join_benchmark.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/str_join_test.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/str_replace.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/str_replace.h +FILE: ../../../third_party/abseil-cpp/absl/strings/str_replace_benchmark.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/str_replace_test.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/str_split.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/str_split.h +FILE: ../../../third_party/abseil-cpp/absl/strings/str_split_benchmark.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/str_split_test.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/string_view.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/string_view.h +FILE: ../../../third_party/abseil-cpp/absl/strings/string_view_benchmark.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/string_view_test.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/strip.h +FILE: ../../../third_party/abseil-cpp/absl/strings/strip_test.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/substitute.cc +FILE: ../../../third_party/abseil-cpp/absl/strings/substitute.h +FILE: ../../../third_party/abseil-cpp/absl/strings/substitute_test.cc +FILE: ../../../third_party/abseil-cpp/absl/synchronization/BUILD.bazel +FILE: ../../../third_party/abseil-cpp/absl/synchronization/barrier.cc +FILE: ../../../third_party/abseil-cpp/absl/synchronization/barrier.h +FILE: ../../../third_party/abseil-cpp/absl/synchronization/barrier_test.cc +FILE: ../../../third_party/abseil-cpp/absl/synchronization/blocking_counter.cc +FILE: ../../../third_party/abseil-cpp/absl/synchronization/blocking_counter.h +FILE: ../../../third_party/abseil-cpp/absl/synchronization/blocking_counter_benchmark.cc +FILE: ../../../third_party/abseil-cpp/absl/synchronization/blocking_counter_test.cc +FILE: ../../../third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc +FILE: ../../../third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.h +FILE: ../../../third_party/abseil-cpp/absl/synchronization/internal/futex.h +FILE: ../../../third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc +FILE: ../../../third_party/abseil-cpp/absl/synchronization/internal/graphcycles.h +FILE: ../../../third_party/abseil-cpp/absl/synchronization/internal/graphcycles_benchmark.cc +FILE: ../../../third_party/abseil-cpp/absl/synchronization/internal/graphcycles_test.cc +FILE: ../../../third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +FILE: ../../../third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc +FILE: ../../../third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +FILE: ../../../third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem_test.cc +FILE: ../../../third_party/abseil-cpp/absl/synchronization/internal/thread_pool.h +FILE: ../../../third_party/abseil-cpp/absl/synchronization/internal/waiter.cc +FILE: ../../../third_party/abseil-cpp/absl/synchronization/internal/waiter.h +FILE: ../../../third_party/abseil-cpp/absl/synchronization/lifetime_test.cc +FILE: ../../../third_party/abseil-cpp/absl/synchronization/mutex.cc +FILE: ../../../third_party/abseil-cpp/absl/synchronization/mutex.h +FILE: ../../../third_party/abseil-cpp/absl/synchronization/mutex_benchmark.cc +FILE: ../../../third_party/abseil-cpp/absl/synchronization/mutex_test.cc +FILE: ../../../third_party/abseil-cpp/absl/synchronization/notification.cc +FILE: ../../../third_party/abseil-cpp/absl/synchronization/notification.h +FILE: ../../../third_party/abseil-cpp/absl/synchronization/notification_test.cc +FILE: ../../../third_party/abseil-cpp/absl/time/BUILD.bazel +FILE: ../../../third_party/abseil-cpp/absl/time/civil_time.cc +FILE: ../../../third_party/abseil-cpp/absl/time/civil_time.h +FILE: ../../../third_party/abseil-cpp/absl/time/civil_time_benchmark.cc +FILE: ../../../third_party/abseil-cpp/absl/time/civil_time_test.cc +FILE: ../../../third_party/abseil-cpp/absl/time/clock.cc +FILE: ../../../third_party/abseil-cpp/absl/time/clock.h +FILE: ../../../third_party/abseil-cpp/absl/time/clock_benchmark.cc +FILE: ../../../third_party/abseil-cpp/absl/time/clock_test.cc +FILE: ../../../third_party/abseil-cpp/absl/time/duration.cc +FILE: ../../../third_party/abseil-cpp/absl/time/duration_benchmark.cc +FILE: ../../../third_party/abseil-cpp/absl/time/duration_test.cc +FILE: ../../../third_party/abseil-cpp/absl/time/format.cc +FILE: ../../../third_party/abseil-cpp/absl/time/format_benchmark.cc +FILE: ../../../third_party/abseil-cpp/absl/time/format_test.cc +FILE: ../../../third_party/abseil-cpp/absl/time/internal/cctz/BUILD.bazel +FILE: ../../../third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time.h +FILE: ../../../third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +FILE: ../../../third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h +FILE: ../../../third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/zone_info_source.h +FILE: ../../../third_party/abseil-cpp/absl/time/internal/cctz/src/cctz_benchmark.cc +FILE: ../../../third_party/abseil-cpp/absl/time/internal/cctz/src/civil_time_detail.cc +FILE: ../../../third_party/abseil-cpp/absl/time/internal/cctz/src/civil_time_test.cc +FILE: ../../../third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.cc +FILE: ../../../third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.h +FILE: ../../../third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +FILE: ../../../third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format_test.cc +FILE: ../../../third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.cc +FILE: ../../../third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.h +FILE: ../../../third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.cc +FILE: ../../../third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.h +FILE: ../../../third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc +FILE: ../../../third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.h +FILE: ../../../third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +FILE: ../../../third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.h +FILE: ../../../third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +FILE: ../../../third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup_test.cc +FILE: ../../../third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_posix.cc +FILE: ../../../third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_posix.h +FILE: ../../../third_party/abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc +FILE: ../../../third_party/abseil-cpp/absl/time/internal/get_current_time_chrono.inc +FILE: ../../../third_party/abseil-cpp/absl/time/internal/test_util.cc +FILE: ../../../third_party/abseil-cpp/absl/time/internal/test_util.h +FILE: ../../../third_party/abseil-cpp/absl/time/time.cc +FILE: ../../../third_party/abseil-cpp/absl/time/time.h +FILE: ../../../third_party/abseil-cpp/absl/time/time_benchmark.cc +FILE: ../../../third_party/abseil-cpp/absl/time/time_test.cc +FILE: ../../../third_party/abseil-cpp/absl/time/time_zone_test.cc +FILE: ../../../third_party/abseil-cpp/absl/types/BUILD.bazel +FILE: ../../../third_party/abseil-cpp/absl/types/any.h +FILE: ../../../third_party/abseil-cpp/absl/types/any_exception_safety_test.cc +FILE: ../../../third_party/abseil-cpp/absl/types/any_test.cc +FILE: ../../../third_party/abseil-cpp/absl/types/bad_any_cast.cc +FILE: ../../../third_party/abseil-cpp/absl/types/bad_any_cast.h +FILE: ../../../third_party/abseil-cpp/absl/types/bad_optional_access.cc +FILE: ../../../third_party/abseil-cpp/absl/types/bad_optional_access.h +FILE: ../../../third_party/abseil-cpp/absl/types/bad_variant_access.cc +FILE: ../../../third_party/abseil-cpp/absl/types/bad_variant_access.h +FILE: ../../../third_party/abseil-cpp/absl/types/compare.h +FILE: ../../../third_party/abseil-cpp/absl/types/compare_test.cc +FILE: ../../../third_party/abseil-cpp/absl/types/internal/conformance_aliases.h +FILE: ../../../third_party/abseil-cpp/absl/types/internal/conformance_archetype.h +FILE: ../../../third_party/abseil-cpp/absl/types/internal/conformance_profile.h +FILE: ../../../third_party/abseil-cpp/absl/types/internal/conformance_testing.h +FILE: ../../../third_party/abseil-cpp/absl/types/internal/conformance_testing_helpers.h +FILE: ../../../third_party/abseil-cpp/absl/types/internal/conformance_testing_test.cc +FILE: ../../../third_party/abseil-cpp/absl/types/internal/optional.h +FILE: ../../../third_party/abseil-cpp/absl/types/internal/parentheses.h +FILE: ../../../third_party/abseil-cpp/absl/types/internal/span.h +FILE: ../../../third_party/abseil-cpp/absl/types/internal/transform_args.h +FILE: ../../../third_party/abseil-cpp/absl/types/internal/variant.h +FILE: ../../../third_party/abseil-cpp/absl/types/optional.h +FILE: ../../../third_party/abseil-cpp/absl/types/optional_exception_safety_test.cc +FILE: ../../../third_party/abseil-cpp/absl/types/optional_test.cc +FILE: ../../../third_party/abseil-cpp/absl/types/span.h +FILE: ../../../third_party/abseil-cpp/absl/types/span_test.cc +FILE: ../../../third_party/abseil-cpp/absl/types/variant.h +FILE: ../../../third_party/abseil-cpp/absl/types/variant_benchmark.cc +FILE: ../../../third_party/abseil-cpp/absl/types/variant_exception_safety_test.cc +FILE: ../../../third_party/abseil-cpp/absl/types/variant_test.cc +FILE: ../../../third_party/abseil-cpp/absl/utility/BUILD.bazel +FILE: ../../../third_party/abseil-cpp/absl/utility/utility.h +FILE: ../../../third_party/abseil-cpp/absl/utility/utility_test.cc +FILE: ../../../third_party/abseil-cpp/ci/absl_alternate_options.h +FILE: ../../../third_party/angle/include/CL/cl.h +FILE: ../../../third_party/angle/include/CL/cl_d3d10.h +FILE: ../../../third_party/angle/include/CL/cl_d3d11.h +FILE: ../../../third_party/angle/include/CL/cl_dx9_media_sharing.h +FILE: ../../../third_party/angle/include/CL/cl_dx9_media_sharing_intel.h +FILE: ../../../third_party/angle/include/CL/cl_egl.h +FILE: ../../../third_party/angle/include/CL/cl_ext.h +FILE: ../../../third_party/angle/include/CL/cl_ext_intel.h +FILE: ../../../third_party/angle/include/CL/cl_gl.h +FILE: ../../../third_party/angle/include/CL/cl_gl_ext.h +FILE: ../../../third_party/angle/include/CL/cl_half.h +FILE: ../../../third_party/angle/include/CL/cl_icd.h +FILE: ../../../third_party/angle/include/CL/cl_layer.h +FILE: ../../../third_party/angle/include/CL/cl_platform.h +FILE: ../../../third_party/angle/include/CL/cl_va_api_media_sharing_intel.h +FILE: ../../../third_party/angle/include/CL/cl_version.h +FILE: ../../../third_party/angle/include/CL/opencl.h +FILE: ../../../third_party/angle/include/EGL/egl.h +FILE: ../../../third_party/angle/include/EGL/eglext.h +FILE: ../../../third_party/angle/include/EGL/eglplatform.h +FILE: ../../../third_party/angle/include/GLES/egl.h +FILE: ../../../third_party/angle/include/GLES/glplatform.h +FILE: ../../../third_party/angle/include/GLES2/gl2platform.h +FILE: ../../../third_party/angle/include/GLES3/gl3platform.h +FILE: ../../../third_party/angle/scripts/gl.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/layout/fragment.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-af/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-am/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-ar/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-as/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-az/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-b+sr+Latn/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-be/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-bg/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-bn/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-bs/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-ca/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-cs/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-da/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-de/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-el/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-en-rAU/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-en-rCA/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-en-rGB/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-en-rIN/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-en-rXC/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-es-rUS/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-es/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-et/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-eu/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-fa/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-fi/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-fr-rCA/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-fr/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-gl/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-gu/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-hi/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-hr/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-hu/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-hy/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-in/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-is/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-it/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-iw/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-ja/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-ka/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-kk/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-km/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-kn/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-ko/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-ky/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-lo/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-lt/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-lv/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-mk/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-ml/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-mn/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-mr/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-ms/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-my/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-nb/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-ne/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-nl/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-or/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-pa/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-pl/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-pt-rPT/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-pt/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-ro/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-ru/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-si/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-sk/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-sl/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-sq/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-sr/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-sv/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-sw/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-ta/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-te/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-th/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-tl/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-tr/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-uk/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-ur/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-uz/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-vi/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-zh-rCN/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-zh-rHK/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-zh-rTW/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values-zu/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values/dimens.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values/drivers.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values/global_settings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values/intents.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values/preference_keys.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/values/strings.xml +FILE: ../../../third_party/angle/src/android_system_settings/res/xml/main.xml +FILE: ../../../third_party/angle/src/android_system_settings/src/com/android/angle/AndroidManifest.xml +FILE: ../../../third_party/angle/src/android_system_settings/src/com/android/angle/EmptyMainActivity.java +FILE: ../../../third_party/angle/src/android_system_settings/src/com/android/angle/MainActivity.java +FILE: ../../../third_party/angle/src/android_system_settings/src/com/android/angle/common/GlobalSettings.java +FILE: ../../../third_party/angle/src/android_system_settings/src/com/android/angle/common/MainFragment.java +FILE: ../../../third_party/angle/src/android_system_settings/src/com/android/angle/common/Receiver.java +FILE: ../../../third_party/angle/src/android_system_settings/src/com/android/angle/common/SearchProvider.java +FILE: ../../../third_party/angle/src/common/vulkan/vk_google_filtering_precision.h +FILE: ../../../third_party/angle/util/android/third_party/android_native_app_glue.c +FILE: ../../../third_party/angle/util/android/third_party/android_native_app_glue.h +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/METADATA +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/aead_aes_siv_cmac_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/aegis128L_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/aegis128_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/aegis256_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/aes_cbc_pkcs5_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/aes_ccm_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/aes_cmac_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/aes_eax_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/aes_gcm_siv_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/aes_gcm_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/aes_siv_cmac_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/chacha20_poly1305_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/dsa_2048_224_sha224_p1363_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/dsa_2048_224_sha224_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/dsa_2048_224_sha256_p1363_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/dsa_2048_224_sha256_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/dsa_2048_256_sha256_p1363_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/dsa_2048_256_sha256_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/dsa_3072_256_sha256_p1363_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/dsa_3072_256_sha256_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/dsa_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdh_brainpoolP224r1_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdh_brainpoolP256r1_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdh_brainpoolP320r1_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdh_brainpoolP384r1_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdh_brainpoolP512r1_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdh_secp224r1_ecpoint_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdh_secp224r1_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdh_secp256k1_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdh_secp256r1_ecpoint_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdh_secp256r1_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdh_secp384r1_ecpoint_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdh_secp384r1_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdh_secp521r1_ecpoint_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdh_secp521r1_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdh_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdh_webcrypto_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_brainpoolP224r1_sha224_p1363_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_brainpoolP224r1_sha224_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_brainpoolP256r1_sha256_p1363_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_brainpoolP256r1_sha256_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_brainpoolP320r1_sha384_p1363_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_brainpoolP320r1_sha384_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_brainpoolP384r1_sha384_p1363_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_brainpoolP384r1_sha384_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_brainpoolP512r1_sha512_p1363_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_brainpoolP512r1_sha512_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_secp224r1_sha224_p1363_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_secp224r1_sha224_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_secp224r1_sha256_p1363_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_secp224r1_sha256_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_secp224r1_sha3_224_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_secp224r1_sha3_256_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_secp224r1_sha3_512_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_secp224r1_sha512_p1363_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_secp224r1_sha512_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_secp256k1_sha256_p1363_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_secp256k1_sha256_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_secp256k1_sha3_256_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_secp256k1_sha3_512_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_secp256k1_sha512_p1363_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_secp256k1_sha512_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_secp256r1_sha256_p1363_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_secp256r1_sha256_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_secp256r1_sha3_256_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_secp256r1_sha3_512_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_secp256r1_sha512_p1363_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_secp256r1_sha512_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_secp384r1_sha384_p1363_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_secp384r1_sha384_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_secp384r1_sha3_384_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_secp384r1_sha3_512_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_secp384r1_sha512_p1363_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_secp384r1_sha512_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_secp521r1_sha3_512_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_secp521r1_sha512_p1363_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_secp521r1_sha512_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ecdsa_webcrypto_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/ed448_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/eddsa_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/gmac_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/hkdf_sha1_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/hkdf_sha256_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/hkdf_sha384_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/hkdf_sha512_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/hmac_sha1_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/hmac_sha224_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/hmac_sha256_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/hmac_sha384_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/hmac_sha3_224_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/hmac_sha3_256_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/hmac_sha3_384_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/hmac_sha3_512_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/hmac_sha512_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/kw_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/kwp_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/primality_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_oaep_2048_sha1_mgf1sha1_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_oaep_2048_sha224_mgf1sha1_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_oaep_2048_sha224_mgf1sha224_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_oaep_2048_sha256_mgf1sha1_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_oaep_2048_sha256_mgf1sha256_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_oaep_2048_sha384_mgf1sha1_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_oaep_2048_sha384_mgf1sha384_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_oaep_2048_sha512_mgf1sha1_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_oaep_2048_sha512_mgf1sha512_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_oaep_3072_sha256_mgf1sha1_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_oaep_3072_sha256_mgf1sha256_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_oaep_3072_sha512_mgf1sha1_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_oaep_3072_sha512_mgf1sha512_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_oaep_4096_sha256_mgf1sha1_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_oaep_4096_sha256_mgf1sha256_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_oaep_4096_sha512_mgf1sha1_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_oaep_4096_sha512_mgf1sha512_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_oaep_misc_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_pkcs1_2048_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_pkcs1_3072_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_pkcs1_4096_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_pss_2048_sha1_mgf1_20_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_pss_2048_sha256_mgf1_0_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_pss_2048_sha256_mgf1_32_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_pss_2048_sha512_256_mgf1_28_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_pss_2048_sha512_256_mgf1_32_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_pss_3072_sha256_mgf1_32_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_pss_4096_sha256_mgf1_32_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_pss_4096_sha512_mgf1_32_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_pss_misc_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_sig_gen_misc_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_signature_2048_sha224_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_signature_2048_sha256_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_signature_2048_sha384_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_signature_2048_sha3_224_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_signature_2048_sha3_256_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_signature_2048_sha3_384_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_signature_2048_sha3_512_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_signature_2048_sha512_224_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_signature_2048_sha512_256_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_signature_2048_sha512_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_signature_3072_sha256_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_signature_3072_sha384_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_signature_3072_sha3_256_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_signature_3072_sha3_384_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_signature_3072_sha3_512_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_signature_3072_sha512_256_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_signature_3072_sha512_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_signature_4096_sha384_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_signature_4096_sha512_256_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_signature_4096_sha512_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/rsa_signature_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/vmac_128_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/vmac_64_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/x25519_asn_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/x25519_jwk_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/x25519_pem_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/x25519_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/x448_asn_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/x448_jwk_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/x448_pem_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/x448_test.json +FILE: ../../../third_party/boringssl/src/third_party/wycheproof_testvectors/xchacha20_poly1305_test.json +FILE: ../../../third_party/expat/expat/fuzz/xml_parse_fuzzer.c +FILE: ../../../third_party/expat/expat/fuzz/xml_parsebuffer_fuzzer.c +FILE: ../../../third_party/flatbuffers/.bazelci/presubmit.yml +FILE: ../../../third_party/flatbuffers/.editorconfig +FILE: ../../../third_party/flatbuffers/.eslintrc.js +FILE: ../../../third_party/flatbuffers/BUILD.bazel +FILE: ../../../third_party/flatbuffers/CMake/CMakeLists_legacy.cmake.in +FILE: ../../../third_party/flatbuffers/CMake/FlatbuffersConfigVersion.cmake.in +FILE: ../../../third_party/flatbuffers/CMake/flatbuffers.pc.in +FILE: ../../../third_party/flatbuffers/WORKSPACE +FILE: ../../../third_party/flatbuffers/android/AndroidManifest.xml +FILE: ../../../third_party/flatbuffers/android/app/proguard-rules.pro +FILE: ../../../third_party/flatbuffers/android/app/src/main/AndroidManifest.xml +FILE: ../../../third_party/flatbuffers/android/app/src/main/cpp/animals.cpp +FILE: ../../../third_party/flatbuffers/android/app/src/main/cpp/generated/animal_generated.h +FILE: ../../../third_party/flatbuffers/android/app/src/main/fbs/animal.fbs +FILE: ../../../third_party/flatbuffers/android/app/src/main/java/com/flatbuffers/app/MainActivity.kt +FILE: ../../../third_party/flatbuffers/android/app/src/main/java/generated/com/fbs/app/Animal.kt +FILE: ../../../third_party/flatbuffers/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml +FILE: ../../../third_party/flatbuffers/android/app/src/main/res/drawable/ic_launcher_background.xml +FILE: ../../../third_party/flatbuffers/android/app/src/main/res/layout/activity_main.xml +FILE: ../../../third_party/flatbuffers/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +FILE: ../../../third_party/flatbuffers/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml +FILE: ../../../third_party/flatbuffers/android/app/src/main/res/mipmap-hdpi/ic_launcher.png +FILE: ../../../third_party/flatbuffers/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png +FILE: ../../../third_party/flatbuffers/android/app/src/main/res/mipmap-mdpi/ic_launcher.png +FILE: ../../../third_party/flatbuffers/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png +FILE: ../../../third_party/flatbuffers/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png +FILE: ../../../third_party/flatbuffers/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png +FILE: ../../../third_party/flatbuffers/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png +FILE: ../../../third_party/flatbuffers/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png +FILE: ../../../third_party/flatbuffers/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png +FILE: ../../../third_party/flatbuffers/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png +FILE: ../../../third_party/flatbuffers/android/app/src/main/res/values/colors.xml +FILE: ../../../third_party/flatbuffers/android/app/src/main/res/values/strings.xml +FILE: ../../../third_party/flatbuffers/android/app/src/main/res/values/styles.xml +FILE: ../../../third_party/flatbuffers/android/gradle.properties +FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/META-INF/MANIFEST.MF +FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/gradle-wrapper-classpath.properties +FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/AbstractCommandLineConverter.class +FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/AbstractPropertiesCommandLineConverter.class +FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineArgumentException.class +FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineConverter.class +FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineOption.class +FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineParser$1.class +FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineParser$AfterFirstSubCommand.class +FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineParser$AfterOptions.class +FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineParser$BeforeFirstSubCommand.class +FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineParser$CaseInsensitiveStringComparator.class +FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineParser$KnownOptionParserState.class +FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineParser$MissingOptionArgState.class +FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineParser$OptionAwareParserState.class +FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineParser$OptionComparator.class +FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineParser$OptionParserState.class +FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineParser$OptionString.class +FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineParser$OptionStringComparator.class +FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineParser$ParserState.class +FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineParser$UnknownOptionParserState.class +FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineParser.class +FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/ParsedCommandLine.class +FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/ParsedCommandLineOption.class +FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/ProjectPropertiesCommandLineConverter.class +FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/SystemPropertiesCommandLineConverter.class +FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/BootstrapMainStarter$1.class +FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/BootstrapMainStarter.class +FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/Download$1.class +FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/Download$DefaultDownloadProgressListener.class +FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/Download$ProxyAuthenticator.class +FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/Download.class +FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/DownloadProgressListener.class +FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/ExclusiveFileAccessManager.class +FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/GradleUserHomeLookup.class +FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/GradleWrapperMain.class +FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/IDownload.class +FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/Install$1.class +FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/Install$InstallCheck.class +FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/Install.class +FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/Logger.class +FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/PathAssembler$LocalDistribution.class +FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/PathAssembler.class +FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/SystemPropertiesHandler.class +FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/WrapperConfiguration.class +FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/WrapperExecutor.class +FILE: ../../../third_party/flatbuffers/android/gradle/wrapper/gradle-wrapper.properties +FILE: ../../../third_party/flatbuffers/android/gradlew +FILE: ../../../third_party/flatbuffers/benchmarks/cpp/bench.h +FILE: ../../../third_party/flatbuffers/benchmarks/cpp/benchmark_main.cpp +FILE: ../../../third_party/flatbuffers/benchmarks/cpp/flatbuffers/bench.fbs +FILE: ../../../third_party/flatbuffers/benchmarks/cpp/flatbuffers/bench_generated.h +FILE: ../../../third_party/flatbuffers/benchmarks/cpp/flatbuffers/fb_bench.cpp +FILE: ../../../third_party/flatbuffers/benchmarks/cpp/flatbuffers/fb_bench.h +FILE: ../../../third_party/flatbuffers/benchmarks/cpp/raw/raw_bench.cpp +FILE: ../../../third_party/flatbuffers/benchmarks/cpp/raw/raw_bench.h +FILE: ../../../third_party/flatbuffers/build_defs.bzl +FILE: ../../../third_party/flatbuffers/composer.json +FILE: ../../../third_party/flatbuffers/conan/test_package/test_package.cpp +FILE: ../../../third_party/flatbuffers/dart/example/example.dart +FILE: ../../../third_party/flatbuffers/docs/footer.html +FILE: ../../../third_party/flatbuffers/docs/header.html +FILE: ../../../third_party/flatbuffers/docs/images/fpl_logo_small.png +FILE: ../../../third_party/flatbuffers/docs/images/ftv2mnode.png +FILE: ../../../third_party/flatbuffers/docs/images/ftv2pnode.png +FILE: ../../../third_party/flatbuffers/docs/source/doxygen_layout.xml +FILE: ../../../third_party/flatbuffers/docs/source/groups +FILE: ../../../third_party/flatbuffers/go/BUILD.bazel +FILE: ../../../third_party/flatbuffers/go/builder.go +FILE: ../../../third_party/flatbuffers/go/doc.go +FILE: ../../../third_party/flatbuffers/go/encode.go +FILE: ../../../third_party/flatbuffers/go/grpc.go +FILE: ../../../third_party/flatbuffers/go/lib.go +FILE: ../../../third_party/flatbuffers/go/sizes.go +FILE: ../../../third_party/flatbuffers/go/struct.go +FILE: ../../../third_party/flatbuffers/go/table.go +FILE: ../../../third_party/flatbuffers/grpc/boringssl.patch +FILE: ../../../third_party/flatbuffers/grpc/examples/go/greeter/client/go.mod +FILE: ../../../third_party/flatbuffers/grpc/examples/go/greeter/client/main.go +FILE: ../../../third_party/flatbuffers/grpc/examples/go/greeter/models/Greeter_grpc.go +FILE: ../../../third_party/flatbuffers/grpc/examples/go/greeter/models/HelloReply.go +FILE: ../../../third_party/flatbuffers/grpc/examples/go/greeter/models/HelloRequest.go +FILE: ../../../third_party/flatbuffers/grpc/examples/go/greeter/models/go.mod +FILE: ../../../third_party/flatbuffers/grpc/examples/go/greeter/server/go.mod +FILE: ../../../third_party/flatbuffers/grpc/examples/go/greeter/server/main.go +FILE: ../../../third_party/flatbuffers/grpc/examples/greeter.fbs +FILE: ../../../third_party/flatbuffers/grpc/examples/swift/Greeter/Package.swift +FILE: ../../../third_party/flatbuffers/grpc/examples/swift/Greeter/Sources/Model/greeter.grpc.swift +FILE: ../../../third_party/flatbuffers/grpc/examples/swift/Greeter/Sources/Model/greeter_generated.swift +FILE: ../../../third_party/flatbuffers/grpc/examples/swift/Greeter/Sources/client/main.swift +FILE: ../../../third_party/flatbuffers/grpc/examples/swift/Greeter/Sources/server/main.swift +FILE: ../../../third_party/flatbuffers/grpc/examples/ts/greeter/package.json +FILE: ../../../third_party/flatbuffers/grpc/examples/ts/greeter/src/client.ts +FILE: ../../../third_party/flatbuffers/grpc/examples/ts/greeter/src/greeter.ts +FILE: ../../../third_party/flatbuffers/grpc/examples/ts/greeter/src/greeter_grpc.d.ts +FILE: ../../../third_party/flatbuffers/grpc/examples/ts/greeter/src/greeter_grpc.js +FILE: ../../../third_party/flatbuffers/grpc/examples/ts/greeter/src/models/hello-reply.ts +FILE: ../../../third_party/flatbuffers/grpc/examples/ts/greeter/src/models/hello-request.ts +FILE: ../../../third_party/flatbuffers/grpc/examples/ts/greeter/src/server.ts +FILE: ../../../third_party/flatbuffers/grpc/examples/ts/greeter/tsconfig.json +FILE: ../../../third_party/flatbuffers/grpc/flatbuffers-java-grpc/src/main/java/com/google/flatbuffers/grpc/FlatbuffersUtils.java +FILE: ../../../third_party/flatbuffers/grpc/samples/greeter/client.cpp +FILE: ../../../third_party/flatbuffers/grpc/samples/greeter/greeter.fbs +FILE: ../../../third_party/flatbuffers/grpc/samples/greeter/server.cpp +FILE: ../../../third_party/flatbuffers/grpc/src/compiler/BUILD.bazel +FILE: ../../../third_party/flatbuffers/grpc/src/compiler/cpp_generator.cc +FILE: ../../../third_party/flatbuffers/grpc/src/compiler/cpp_generator.h +FILE: ../../../third_party/flatbuffers/grpc/src/compiler/go_generator.cc +FILE: ../../../third_party/flatbuffers/grpc/src/compiler/go_generator.h +FILE: ../../../third_party/flatbuffers/grpc/src/compiler/java_generator.cc +FILE: ../../../third_party/flatbuffers/grpc/src/compiler/java_generator.h +FILE: ../../../third_party/flatbuffers/grpc/src/compiler/python_generator.cc +FILE: ../../../third_party/flatbuffers/grpc/src/compiler/python_generator.h +FILE: ../../../third_party/flatbuffers/grpc/src/compiler/schema_interface.h +FILE: ../../../third_party/flatbuffers/grpc/src/compiler/swift_generator.cc +FILE: ../../../third_party/flatbuffers/grpc/src/compiler/swift_generator.h +FILE: ../../../third_party/flatbuffers/grpc/src/compiler/ts_generator.cc +FILE: ../../../third_party/flatbuffers/grpc/src/compiler/ts_generator.h +FILE: ../../../third_party/flatbuffers/include/flatbuffers/allocator.h +FILE: ../../../third_party/flatbuffers/include/flatbuffers/array.h +FILE: ../../../third_party/flatbuffers/include/flatbuffers/base.h +FILE: ../../../third_party/flatbuffers/include/flatbuffers/bfbs_generator.h +FILE: ../../../third_party/flatbuffers/include/flatbuffers/buffer.h +FILE: ../../../third_party/flatbuffers/include/flatbuffers/buffer_ref.h +FILE: ../../../third_party/flatbuffers/include/flatbuffers/code_generators.h +FILE: ../../../third_party/flatbuffers/include/flatbuffers/default_allocator.h +FILE: ../../../third_party/flatbuffers/include/flatbuffers/detached_buffer.h +FILE: ../../../third_party/flatbuffers/include/flatbuffers/flatbuffer_builder.h +FILE: ../../../third_party/flatbuffers/include/flatbuffers/flatbuffers.h +FILE: ../../../third_party/flatbuffers/include/flatbuffers/flatc.h +FILE: ../../../third_party/flatbuffers/include/flatbuffers/flex_flat_util.h +FILE: ../../../third_party/flatbuffers/include/flatbuffers/flexbuffers.h +FILE: ../../../third_party/flatbuffers/include/flatbuffers/grpc.h +FILE: ../../../third_party/flatbuffers/include/flatbuffers/hash.h +FILE: ../../../third_party/flatbuffers/include/flatbuffers/idl.h +FILE: ../../../third_party/flatbuffers/include/flatbuffers/minireflect.h +FILE: ../../../third_party/flatbuffers/include/flatbuffers/pch/flatc_pch.h +FILE: ../../../third_party/flatbuffers/include/flatbuffers/pch/pch.h +FILE: ../../../third_party/flatbuffers/include/flatbuffers/reflection.h +FILE: ../../../third_party/flatbuffers/include/flatbuffers/reflection_generated.h +FILE: ../../../third_party/flatbuffers/include/flatbuffers/registry.h +FILE: ../../../third_party/flatbuffers/include/flatbuffers/stl_emulation.h +FILE: ../../../third_party/flatbuffers/include/flatbuffers/string.h +FILE: ../../../third_party/flatbuffers/include/flatbuffers/struct.h +FILE: ../../../third_party/flatbuffers/include/flatbuffers/table.h +FILE: ../../../third_party/flatbuffers/include/flatbuffers/util.h +FILE: ../../../third_party/flatbuffers/include/flatbuffers/vector.h +FILE: ../../../third_party/flatbuffers/include/flatbuffers/vector_downward.h +FILE: ../../../third_party/flatbuffers/include/flatbuffers/verifier.h +FILE: ../../../third_party/flatbuffers/java/com/google/flatbuffers/ArrayReadWriteBuf.java +FILE: ../../../third_party/flatbuffers/java/com/google/flatbuffers/BaseVector.java +FILE: ../../../third_party/flatbuffers/java/com/google/flatbuffers/BooleanVector.java +FILE: ../../../third_party/flatbuffers/java/com/google/flatbuffers/ByteBufferReadWriteBuf.java +FILE: ../../../third_party/flatbuffers/java/com/google/flatbuffers/ByteBufferUtil.java +FILE: ../../../third_party/flatbuffers/java/com/google/flatbuffers/ByteVector.java +FILE: ../../../third_party/flatbuffers/java/com/google/flatbuffers/Constants.java +FILE: ../../../third_party/flatbuffers/java/com/google/flatbuffers/DoubleVector.java +FILE: ../../../third_party/flatbuffers/java/com/google/flatbuffers/FlatBufferBuilder.java +FILE: ../../../third_party/flatbuffers/java/com/google/flatbuffers/FlexBuffers.java +FILE: ../../../third_party/flatbuffers/java/com/google/flatbuffers/FlexBuffersBuilder.java +FILE: ../../../third_party/flatbuffers/java/com/google/flatbuffers/FloatVector.java +FILE: ../../../third_party/flatbuffers/java/com/google/flatbuffers/IntVector.java +FILE: ../../../third_party/flatbuffers/java/com/google/flatbuffers/LongVector.java +FILE: ../../../third_party/flatbuffers/java/com/google/flatbuffers/ReadBuf.java +FILE: ../../../third_party/flatbuffers/java/com/google/flatbuffers/ReadWriteBuf.java +FILE: ../../../third_party/flatbuffers/java/com/google/flatbuffers/ShortVector.java +FILE: ../../../third_party/flatbuffers/java/com/google/flatbuffers/StringVector.java +FILE: ../../../third_party/flatbuffers/java/com/google/flatbuffers/Struct.java +FILE: ../../../third_party/flatbuffers/java/com/google/flatbuffers/Table.java +FILE: ../../../third_party/flatbuffers/java/com/google/flatbuffers/UnionVector.java +FILE: ../../../third_party/flatbuffers/java/com/google/flatbuffers/Utf8.java +FILE: ../../../third_party/flatbuffers/java/com/google/flatbuffers/Utf8Old.java +FILE: ../../../third_party/flatbuffers/java/com/google/flatbuffers/Utf8Safe.java +FILE: ../../../third_party/flatbuffers/kotlin/benchmark/build.gradle.kts +FILE: ../../../third_party/flatbuffers/kotlin/benchmark/src/jvmMain/java/com/google/flatbuffers/ArrayReadWriteBuf.java +FILE: ../../../third_party/flatbuffers/kotlin/benchmark/src/jvmMain/java/com/google/flatbuffers/BaseVector.java +FILE: ../../../third_party/flatbuffers/kotlin/benchmark/src/jvmMain/java/com/google/flatbuffers/BooleanVector.java +FILE: ../../../third_party/flatbuffers/kotlin/benchmark/src/jvmMain/java/com/google/flatbuffers/ByteBufferReadWriteBuf.java +FILE: ../../../third_party/flatbuffers/kotlin/benchmark/src/jvmMain/java/com/google/flatbuffers/ByteBufferUtil.java +FILE: ../../../third_party/flatbuffers/kotlin/benchmark/src/jvmMain/java/com/google/flatbuffers/ByteVector.java +FILE: ../../../third_party/flatbuffers/kotlin/benchmark/src/jvmMain/java/com/google/flatbuffers/Constants.java +FILE: ../../../third_party/flatbuffers/kotlin/benchmark/src/jvmMain/java/com/google/flatbuffers/DoubleVector.java +FILE: ../../../third_party/flatbuffers/kotlin/benchmark/src/jvmMain/java/com/google/flatbuffers/FlatBufferBuilder.java +FILE: ../../../third_party/flatbuffers/kotlin/benchmark/src/jvmMain/java/com/google/flatbuffers/FlexBuffers.java +FILE: ../../../third_party/flatbuffers/kotlin/benchmark/src/jvmMain/java/com/google/flatbuffers/FlexBuffersBuilder.java +FILE: ../../../third_party/flatbuffers/kotlin/benchmark/src/jvmMain/java/com/google/flatbuffers/FloatVector.java +FILE: ../../../third_party/flatbuffers/kotlin/benchmark/src/jvmMain/java/com/google/flatbuffers/IntVector.java +FILE: ../../../third_party/flatbuffers/kotlin/benchmark/src/jvmMain/java/com/google/flatbuffers/LongVector.java +FILE: ../../../third_party/flatbuffers/kotlin/benchmark/src/jvmMain/java/com/google/flatbuffers/ReadBuf.java +FILE: ../../../third_party/flatbuffers/kotlin/benchmark/src/jvmMain/java/com/google/flatbuffers/ReadWriteBuf.java +FILE: ../../../third_party/flatbuffers/kotlin/benchmark/src/jvmMain/java/com/google/flatbuffers/ShortVector.java +FILE: ../../../third_party/flatbuffers/kotlin/benchmark/src/jvmMain/java/com/google/flatbuffers/StringVector.java +FILE: ../../../third_party/flatbuffers/kotlin/benchmark/src/jvmMain/java/com/google/flatbuffers/Struct.java +FILE: ../../../third_party/flatbuffers/kotlin/benchmark/src/jvmMain/java/com/google/flatbuffers/Table.java +FILE: ../../../third_party/flatbuffers/kotlin/benchmark/src/jvmMain/java/com/google/flatbuffers/UnionVector.java +FILE: ../../../third_party/flatbuffers/kotlin/benchmark/src/jvmMain/java/com/google/flatbuffers/Utf8.java +FILE: ../../../third_party/flatbuffers/kotlin/benchmark/src/jvmMain/java/com/google/flatbuffers/Utf8Old.java +FILE: ../../../third_party/flatbuffers/kotlin/benchmark/src/jvmMain/java/com/google/flatbuffers/Utf8Safe.java +FILE: ../../../third_party/flatbuffers/kotlin/benchmark/src/jvmMain/kotlin/com/google/flatbuffers/kotlin/benchmark/FlexBuffersBenchmark.kt +FILE: ../../../third_party/flatbuffers/kotlin/benchmark/src/jvmMain/kotlin/com/google/flatbuffers/kotlin/benchmark/JsonBenchmark.kt +FILE: ../../../third_party/flatbuffers/kotlin/benchmark/src/jvmMain/kotlin/com/google/flatbuffers/kotlin/benchmark/UTF8Benchmark.kt +FILE: ../../../third_party/flatbuffers/kotlin/build.gradle.kts +FILE: ../../../third_party/flatbuffers/kotlin/flatbuffers-kotlin/build.gradle.kts +FILE: ../../../third_party/flatbuffers/kotlin/flatbuffers-kotlin/src/commonMain/kotlin/com/google/flatbuffers/kotlin/Buffers.kt +FILE: ../../../third_party/flatbuffers/kotlin/flatbuffers-kotlin/src/commonMain/kotlin/com/google/flatbuffers/kotlin/ByteArray.kt +FILE: ../../../third_party/flatbuffers/kotlin/flatbuffers-kotlin/src/commonMain/kotlin/com/google/flatbuffers/kotlin/FlexBuffers.kt +FILE: ../../../third_party/flatbuffers/kotlin/flatbuffers-kotlin/src/commonMain/kotlin/com/google/flatbuffers/kotlin/FlexBuffersBuilder.kt +FILE: ../../../third_party/flatbuffers/kotlin/flatbuffers-kotlin/src/commonMain/kotlin/com/google/flatbuffers/kotlin/FlexBuffersInternals.kt +FILE: ../../../third_party/flatbuffers/kotlin/flatbuffers-kotlin/src/commonMain/kotlin/com/google/flatbuffers/kotlin/JSON.kt +FILE: ../../../third_party/flatbuffers/kotlin/flatbuffers-kotlin/src/commonMain/kotlin/com/google/flatbuffers/kotlin/Utf8.kt +FILE: ../../../third_party/flatbuffers/kotlin/flatbuffers-kotlin/src/commonTest/kotlin/com/google/flatbuffers/kotlin/ByteArrayTest.kt +FILE: ../../../third_party/flatbuffers/kotlin/flatbuffers-kotlin/src/commonTest/kotlin/com/google/flatbuffers/kotlin/FlexBuffersTest.kt +FILE: ../../../third_party/flatbuffers/kotlin/flatbuffers-kotlin/src/commonTest/kotlin/com/google/flatbuffers/kotlin/JSONTest.kt +FILE: ../../../third_party/flatbuffers/kotlin/flatbuffers-kotlin/src/jsMain/kotlin/com/google/flatbuffers/kotlin/ByteArray.kt +FILE: ../../../third_party/flatbuffers/kotlin/flatbuffers-kotlin/src/jvmMain/kotlin/com/google/flatbuffers/kotlin/ByteArray.kt +FILE: ../../../third_party/flatbuffers/kotlin/flatbuffers-kotlin/src/jvmTest/kotlin/com/google/flatbuffers/kotlin/Utf8Test.kt +FILE: ../../../third_party/flatbuffers/kotlin/flatbuffers-kotlin/src/nativeMain/kotlin/com/google/flatbuffers/kotlin/ByteArray.kt +FILE: ../../../third_party/flatbuffers/kotlin/gradle.properties +FILE: ../../../third_party/flatbuffers/kotlin/gradle/libs.versions.toml +FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/META-INF/MANIFEST.MF +FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/gradle-wrapper-classpath.properties +FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/AbstractCommandLineConverter.class +FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/AbstractPropertiesCommandLineConverter.class +FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineArgumentException.class +FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineConverter.class +FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineOption.class +FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineParser$1.class +FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineParser$AfterFirstSubCommand.class +FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineParser$AfterOptions.class +FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineParser$BeforeFirstSubCommand.class +FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineParser$CaseInsensitiveStringComparator.class +FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineParser$KnownOptionParserState.class +FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineParser$MissingOptionArgState.class +FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineParser$OptionAwareParserState.class +FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineParser$OptionComparator.class +FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineParser$OptionParserState.class +FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineParser$OptionString.class +FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineParser$OptionStringComparator.class +FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineParser$ParserState.class +FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineParser$UnknownOptionParserState.class +FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineParser.class +FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/ParsedCommandLine.class +FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/ParsedCommandLineOption.class +FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/ProjectPropertiesCommandLineConverter.class +FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/SystemPropertiesCommandLineConverter.class +FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/BootstrapMainStarter$1.class +FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/BootstrapMainStarter.class +FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/Download$1.class +FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/Download$DefaultDownloadProgressListener.class +FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/Download$ProxyAuthenticator.class +FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/Download.class +FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/DownloadProgressListener.class +FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/ExclusiveFileAccessManager.class +FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/GradleUserHomeLookup.class +FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/GradleWrapperMain.class +FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/IDownload.class +FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/Install$1.class +FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/Install$InstallCheck.class +FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/Install.class +FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/Logger.class +FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/PathAssembler$LocalDistribution.class +FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/PathAssembler.class +FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/SystemPropertiesHandler.class +FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/WrapperConfiguration.class +FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/WrapperExecutor.class +FILE: ../../../third_party/flatbuffers/kotlin/gradle/wrapper/gradle-wrapper.properties +FILE: ../../../third_party/flatbuffers/kotlin/settings.gradle.kts +FILE: ../../../third_party/flatbuffers/kotlin/spotless/spotless.kt +FILE: ../../../third_party/flatbuffers/lobster/flatbuffers.lobster +FILE: ../../../third_party/flatbuffers/lua/flatbuffers.lua +FILE: ../../../third_party/flatbuffers/lua/flatbuffers/binaryarray.lua +FILE: ../../../third_party/flatbuffers/lua/flatbuffers/builder.lua +FILE: ../../../third_party/flatbuffers/lua/flatbuffers/compat.lua +FILE: ../../../third_party/flatbuffers/lua/flatbuffers/compat_5_1.lua +FILE: ../../../third_party/flatbuffers/lua/flatbuffers/compat_5_3.lua +FILE: ../../../third_party/flatbuffers/lua/flatbuffers/compat_luajit.lua +FILE: ../../../third_party/flatbuffers/lua/flatbuffers/numTypes.lua +FILE: ../../../third_party/flatbuffers/lua/flatbuffers/view.lua +FILE: ../../../third_party/flatbuffers/net/FlatBuffers/ByteBuffer.cs +FILE: ../../../third_party/flatbuffers/net/FlatBuffers/ByteBufferUtil.cs +FILE: ../../../third_party/flatbuffers/net/FlatBuffers/FlatBufferBuilder.cs +FILE: ../../../third_party/flatbuffers/net/FlatBuffers/FlatBufferConstants.cs +FILE: ../../../third_party/flatbuffers/net/FlatBuffers/FlatBuffers.csproj +FILE: ../../../third_party/flatbuffers/net/FlatBuffers/FlatBuffers.net35.csproj +FILE: ../../../third_party/flatbuffers/net/FlatBuffers/IFlatbufferObject.cs +FILE: ../../../third_party/flatbuffers/net/FlatBuffers/Offset.cs +FILE: ../../../third_party/flatbuffers/net/FlatBuffers/Properties/AssemblyInfo.cs +FILE: ../../../third_party/flatbuffers/net/FlatBuffers/Struct.cs +FILE: ../../../third_party/flatbuffers/net/FlatBuffers/Table.cs +FILE: ../../../third_party/flatbuffers/package.json +FILE: ../../../third_party/flatbuffers/php/ByteBuffer.php +FILE: ../../../third_party/flatbuffers/php/Constants.php +FILE: ../../../third_party/flatbuffers/php/FlatbufferBuilder.php +FILE: ../../../third_party/flatbuffers/php/Struct.php +FILE: ../../../third_party/flatbuffers/php/Table.php +FILE: ../../../third_party/flatbuffers/python/setup.cfg +FILE: ../../../third_party/flatbuffers/reflection/BUILD.bazel +FILE: ../../../third_party/flatbuffers/reflection/reflection.fbs +FILE: ../../../third_party/flatbuffers/rust/flatbuffers/Cargo.toml +FILE: ../../../third_party/flatbuffers/rust/flatbuffers/src/array.rs +FILE: ../../../third_party/flatbuffers/rust/flatbuffers/src/builder.rs +FILE: ../../../third_party/flatbuffers/rust/flatbuffers/src/endian_scalar.rs +FILE: ../../../third_party/flatbuffers/rust/flatbuffers/src/follow.rs +FILE: ../../../third_party/flatbuffers/rust/flatbuffers/src/get_root.rs +FILE: ../../../third_party/flatbuffers/rust/flatbuffers/src/lib.rs +FILE: ../../../third_party/flatbuffers/rust/flatbuffers/src/primitives.rs +FILE: ../../../third_party/flatbuffers/rust/flatbuffers/src/push.rs +FILE: ../../../third_party/flatbuffers/rust/flatbuffers/src/table.rs +FILE: ../../../third_party/flatbuffers/rust/flatbuffers/src/vector.rs +FILE: ../../../third_party/flatbuffers/rust/flatbuffers/src/verifier.rs +FILE: ../../../third_party/flatbuffers/rust/flatbuffers/src/vtable.rs +FILE: ../../../third_party/flatbuffers/rust/flatbuffers/src/vtable_writer.rs +FILE: ../../../third_party/flatbuffers/rust/flexbuffers/Cargo.toml +FILE: ../../../third_party/flatbuffers/rust/flexbuffers/src/bitwidth.rs +FILE: ../../../third_party/flatbuffers/rust/flexbuffers/src/buffer.rs +FILE: ../../../third_party/flatbuffers/rust/flexbuffers/src/builder/map.rs +FILE: ../../../third_party/flatbuffers/rust/flexbuffers/src/builder/mod.rs +FILE: ../../../third_party/flatbuffers/rust/flexbuffers/src/builder/push.rs +FILE: ../../../third_party/flatbuffers/rust/flexbuffers/src/builder/ser.rs +FILE: ../../../third_party/flatbuffers/rust/flexbuffers/src/builder/value.rs +FILE: ../../../third_party/flatbuffers/rust/flexbuffers/src/builder/vector.rs +FILE: ../../../third_party/flatbuffers/rust/flexbuffers/src/flexbuffer_type.rs +FILE: ../../../third_party/flatbuffers/rust/flexbuffers/src/lib.rs +FILE: ../../../third_party/flatbuffers/rust/flexbuffers/src/reader/de.rs +FILE: ../../../third_party/flatbuffers/rust/flexbuffers/src/reader/iter.rs +FILE: ../../../third_party/flatbuffers/rust/flexbuffers/src/reader/map.rs +FILE: ../../../third_party/flatbuffers/rust/flexbuffers/src/reader/mod.rs +FILE: ../../../third_party/flatbuffers/rust/flexbuffers/src/reader/serialize.rs +FILE: ../../../third_party/flatbuffers/rust/flexbuffers/src/reader/vector.rs +FILE: ../../../third_party/flatbuffers/samples/SampleBinary.cs +FILE: ../../../third_party/flatbuffers/samples/SampleBinary.java +FILE: ../../../third_party/flatbuffers/samples/SampleBinary.kt +FILE: ../../../third_party/flatbuffers/samples/SampleBinary.php +FILE: ../../../third_party/flatbuffers/samples/lua/MyGame/Sample/Color.lua +FILE: ../../../third_party/flatbuffers/samples/lua/MyGame/Sample/Equipment.lua +FILE: ../../../third_party/flatbuffers/samples/lua/MyGame/Sample/Monster.lua +FILE: ../../../third_party/flatbuffers/samples/lua/MyGame/Sample/Vec3.lua +FILE: ../../../third_party/flatbuffers/samples/lua/MyGame/Sample/Weapon.lua +FILE: ../../../third_party/flatbuffers/samples/monster.bfbs +FILE: ../../../third_party/flatbuffers/samples/monster.fbs +FILE: ../../../third_party/flatbuffers/samples/monster_generated.h +FILE: ../../../third_party/flatbuffers/samples/monster_generated.lobster +FILE: ../../../third_party/flatbuffers/samples/monster_generated.swift +FILE: ../../../third_party/flatbuffers/samples/monsterdata.json +FILE: ../../../third_party/flatbuffers/samples/rust_generated/mod.rs +FILE: ../../../third_party/flatbuffers/samples/rust_generated/my_game/sample/color_generated.rs +FILE: ../../../third_party/flatbuffers/samples/rust_generated/my_game/sample/equipment_generated.rs +FILE: ../../../third_party/flatbuffers/samples/rust_generated/my_game/sample/monster_generated.rs +FILE: ../../../third_party/flatbuffers/samples/rust_generated/my_game/sample/vec_3_generated.rs +FILE: ../../../third_party/flatbuffers/samples/rust_generated/my_game/sample/weapon_generated.rs +FILE: ../../../third_party/flatbuffers/samples/sample_bfbs.cpp +FILE: ../../../third_party/flatbuffers/samples/sample_binary.cpp +FILE: ../../../third_party/flatbuffers/samples/sample_binary.go +FILE: ../../../third_party/flatbuffers/samples/sample_binary.lobster +FILE: ../../../third_party/flatbuffers/samples/sample_binary.lua +FILE: ../../../third_party/flatbuffers/samples/sample_binary.rs +FILE: ../../../third_party/flatbuffers/samples/sample_binary.swift +FILE: ../../../third_party/flatbuffers/samples/sample_flexbuffers.rs +FILE: ../../../third_party/flatbuffers/samples/sample_flexbuffers_serde.rs +FILE: ../../../third_party/flatbuffers/samples/sample_text.cpp +FILE: ../../../third_party/flatbuffers/samples/sample_text.lobster +FILE: ../../../third_party/flatbuffers/src/BUILD.bazel +FILE: ../../../third_party/flatbuffers/src/annotated_binary_text_gen.cpp +FILE: ../../../third_party/flatbuffers/src/annotated_binary_text_gen.h +FILE: ../../../third_party/flatbuffers/src/bfbs_gen.h +FILE: ../../../third_party/flatbuffers/src/bfbs_gen_lua.cpp +FILE: ../../../third_party/flatbuffers/src/bfbs_gen_lua.h +FILE: ../../../third_party/flatbuffers/src/bfbs_namer.h +FILE: ../../../third_party/flatbuffers/src/binary_annotator.cpp +FILE: ../../../third_party/flatbuffers/src/binary_annotator.h +FILE: ../../../third_party/flatbuffers/src/code_generators.cpp +FILE: ../../../third_party/flatbuffers/src/flatc.cpp +FILE: ../../../third_party/flatbuffers/src/flatc_main.cpp +FILE: ../../../third_party/flatbuffers/src/flathash.cpp +FILE: ../../../third_party/flatbuffers/src/idl_gen_cpp.cpp +FILE: ../../../third_party/flatbuffers/src/idl_gen_csharp.cpp +FILE: ../../../third_party/flatbuffers/src/idl_gen_dart.cpp +FILE: ../../../third_party/flatbuffers/src/idl_gen_fbs.cpp +FILE: ../../../third_party/flatbuffers/src/idl_gen_go.cpp +FILE: ../../../third_party/flatbuffers/src/idl_gen_grpc.cpp +FILE: ../../../third_party/flatbuffers/src/idl_gen_java.cpp +FILE: ../../../third_party/flatbuffers/src/idl_gen_json_schema.cpp +FILE: ../../../third_party/flatbuffers/src/idl_gen_kotlin.cpp +FILE: ../../../third_party/flatbuffers/src/idl_gen_lobster.cpp +FILE: ../../../third_party/flatbuffers/src/idl_gen_lua.cpp +FILE: ../../../third_party/flatbuffers/src/idl_gen_php.cpp +FILE: ../../../third_party/flatbuffers/src/idl_gen_python.cpp +FILE: ../../../third_party/flatbuffers/src/idl_gen_rust.cpp +FILE: ../../../third_party/flatbuffers/src/idl_gen_swift.cpp +FILE: ../../../third_party/flatbuffers/src/idl_gen_text.cpp +FILE: ../../../third_party/flatbuffers/src/idl_gen_ts.cpp +FILE: ../../../third_party/flatbuffers/src/idl_namer.h +FILE: ../../../third_party/flatbuffers/src/idl_parser.cpp +FILE: ../../../third_party/flatbuffers/src/namer.h +FILE: ../../../third_party/flatbuffers/src/reflection.cpp +FILE: ../../../third_party/flatbuffers/src/util.cpp +FILE: ../../../third_party/flatbuffers/swift/BUILD.bazel +FILE: ../../../third_party/flatbuffers/swift/FlatBuffers.podspec +FILE: ../../../third_party/flatbuffers/swift/Package.swift +FILE: ../../../third_party/flatbuffers/swift/Package@swift-5.5.swift +FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/ByteBuffer.swift +FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/Constants.swift +FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/Documentation.docc/Resources/code/fbs/monster_step_1.fbs +FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/Documentation.docc/Resources/code/fbs/monster_step_2.fbs +FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/Documentation.docc/Resources/code/fbs/monster_step_3.fbs +FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/Documentation.docc/Resources/code/fbs/monster_step_4.fbs +FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/Documentation.docc/Resources/code/fbs/monster_step_5.fbs +FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/Documentation.docc/Resources/code/fbs/monster_step_6.fbs +FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/Documentation.docc/Resources/code/fbs/monster_step_7.fbs +FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/Documentation.docc/Resources/code/swift/swift_code_1.swift +FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/Documentation.docc/Resources/code/swift/swift_code_10.swift +FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/Documentation.docc/Resources/code/swift/swift_code_11.swift +FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/Documentation.docc/Resources/code/swift/swift_code_12.swift +FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/Documentation.docc/Resources/code/swift/swift_code_13.swift +FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/Documentation.docc/Resources/code/swift/swift_code_2.swift +FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/Documentation.docc/Resources/code/swift/swift_code_3.swift +FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/Documentation.docc/Resources/code/swift/swift_code_4.swift +FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/Documentation.docc/Resources/code/swift/swift_code_5.swift +FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/Documentation.docc/Resources/code/swift/swift_code_6.swift +FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/Documentation.docc/Resources/code/swift/swift_code_7.swift +FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/Documentation.docc/Resources/code/swift/swift_code_8.swift +FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/Documentation.docc/Resources/code/swift/swift_code_9.swift +FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/Documentation.docc/Resources/images/tutorial_cover_image_1.png +FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/Documentation.docc/Tutorials/Tutorial_Table_of_Contents.tutorial +FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/Documentation.docc/Tutorials/create_your_first_buffer.tutorial +FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/Documentation.docc/Tutorials/creating_flatbuffer_schema.tutorial +FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/Documentation.docc/Tutorials/reading_bytebuffer.tutorial +FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/Enum.swift +FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/FlatBufferBuilder.swift +FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/FlatBufferObject.swift +FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/FlatBuffersUtils.swift +FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/FlatbuffersErrors.swift +FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/Int+extension.swift +FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/Message.swift +FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/Mutable.swift +FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/NativeObject.swift +FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/Offset.swift +FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/Root.swift +FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/String+extension.swift +FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/Struct.swift +FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/Table.swift +FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/TableVerifier.swift +FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/VeriferOptions.swift +FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/Verifiable.swift +FILE: ../../../third_party/flatbuffers/swift/Sources/FlatBuffers/Verifier.swift +FILE: ../../../third_party/flatbuffers/ts/BUILD.bazel +FILE: ../../../third_party/flatbuffers/ts/builder.ts +FILE: ../../../third_party/flatbuffers/ts/byte-buffer.ts +FILE: ../../../third_party/flatbuffers/ts/constants.ts +FILE: ../../../third_party/flatbuffers/ts/encoding.ts +FILE: ../../../third_party/flatbuffers/ts/flexbuffers.ts +FILE: ../../../third_party/flatbuffers/ts/flexbuffers/bit-width-util.ts +FILE: ../../../third_party/flatbuffers/ts/flexbuffers/bit-width.ts +FILE: ../../../third_party/flatbuffers/ts/flexbuffers/builder.ts +FILE: ../../../third_party/flatbuffers/ts/flexbuffers/flexbuffers-util.ts +FILE: ../../../third_party/flatbuffers/ts/flexbuffers/reference-util.ts +FILE: ../../../third_party/flatbuffers/ts/flexbuffers/reference.ts +FILE: ../../../third_party/flatbuffers/ts/flexbuffers/stack-value.ts +FILE: ../../../third_party/flatbuffers/ts/flexbuffers/value-type-util.ts +FILE: ../../../third_party/flatbuffers/ts/flexbuffers/value-type.ts +FILE: ../../../third_party/flatbuffers/ts/index.ts +FILE: ../../../third_party/flatbuffers/ts/types.ts +FILE: ../../../third_party/flatbuffers/ts/utils.ts +FILE: ../../../third_party/flatbuffers/tsconfig.json +FILE: ../../../third_party/flatbuffers/tsconfig.mjs.json +FILE: ../../../third_party/flatbuffers/typescript.bzl +FILE: ../../../third_party/flatbuffers/yarn.lock +FILE: ../../../third_party/fuchsia-vulkan/cmake/cmake_uninstall.cmake.in +FILE: ../../../third_party/fuchsia-vulkan/include/vk_video/vulkan_video_codec_h264std.h +FILE: ../../../third_party/fuchsia-vulkan/include/vk_video/vulkan_video_codec_h264std_decode.h +FILE: ../../../third_party/fuchsia-vulkan/include/vk_video/vulkan_video_codec_h264std_encode.h +FILE: ../../../third_party/fuchsia-vulkan/include/vk_video/vulkan_video_codec_h265std.h +FILE: ../../../third_party/fuchsia-vulkan/include/vk_video/vulkan_video_codec_h265std_decode.h +FILE: ../../../third_party/fuchsia-vulkan/include/vk_video/vulkan_video_codec_h265std_encode.h +FILE: ../../../third_party/fuchsia-vulkan/include/vk_video/vulkan_video_codecs_common.h +FILE: ../../../third_party/fuchsia-vulkan/include/vulkan/vk_icd.h +FILE: ../../../third_party/fuchsia-vulkan/include/vulkan/vk_layer.h +FILE: ../../../third_party/fuchsia-vulkan/include/vulkan/vk_platform.h +FILE: ../../../third_party/fuchsia-vulkan/include/vulkan/vk_sdk_platform.h +FILE: ../../../third_party/fuchsia-vulkan/include/vulkan/vulkan.h +FILE: ../../../third_party/fuchsia-vulkan/include/vulkan/vulkan.hpp +FILE: ../../../third_party/fuchsia-vulkan/include/vulkan/vulkan_android.h +FILE: ../../../third_party/fuchsia-vulkan/include/vulkan/vulkan_beta.h +FILE: ../../../third_party/fuchsia-vulkan/include/vulkan/vulkan_core.h +FILE: ../../../third_party/fuchsia-vulkan/include/vulkan/vulkan_directfb.h +FILE: ../../../third_party/fuchsia-vulkan/include/vulkan/vulkan_enums.hpp +FILE: ../../../third_party/fuchsia-vulkan/include/vulkan/vulkan_fuchsia.h +FILE: ../../../third_party/fuchsia-vulkan/include/vulkan/vulkan_funcs.hpp +FILE: ../../../third_party/fuchsia-vulkan/include/vulkan/vulkan_ggp.h +FILE: ../../../third_party/fuchsia-vulkan/include/vulkan/vulkan_handles.hpp +FILE: ../../../third_party/fuchsia-vulkan/include/vulkan/vulkan_ios.h +FILE: ../../../third_party/fuchsia-vulkan/include/vulkan/vulkan_macos.h +FILE: ../../../third_party/fuchsia-vulkan/include/vulkan/vulkan_metal.h +FILE: ../../../third_party/fuchsia-vulkan/include/vulkan/vulkan_raii.hpp +FILE: ../../../third_party/fuchsia-vulkan/include/vulkan/vulkan_screen.h +FILE: ../../../third_party/fuchsia-vulkan/include/vulkan/vulkan_structs.hpp +FILE: ../../../third_party/fuchsia-vulkan/include/vulkan/vulkan_vi.h +FILE: ../../../third_party/fuchsia-vulkan/include/vulkan/vulkan_wayland.h +FILE: ../../../third_party/fuchsia-vulkan/include/vulkan/vulkan_win32.h +FILE: ../../../third_party/fuchsia-vulkan/include/vulkan/vulkan_xcb.h +FILE: ../../../third_party/fuchsia-vulkan/include/vulkan/vulkan_xlib.h +FILE: ../../../third_party/fuchsia-vulkan/include/vulkan/vulkan_xlib_xrandr.h +FILE: ../../../third_party/fuchsia-vulkan/registry/validusage.json +FILE: ../../../third_party/fuchsia-vulkan/registry/vk.xml +FILE: ../../../third_party/khronos/EGL/egl.h +FILE: ../../../third_party/khronos/EGL/eglext.h +FILE: ../../../third_party/khronos/EGL/eglplatform.h +FILE: ../../../third_party/khronos/GLES2/gl2platform.h +FILE: ../../../third_party/khronos/GLES3/gl3platform.h +FILE: ../../../third_party/libwebp/gradlew +FILE: ../../../third_party/pkg/quiver/lib/async.dart +FILE: ../../../third_party/pkg/quiver/lib/cache.dart +FILE: ../../../third_party/pkg/quiver/lib/check.dart +FILE: ../../../third_party/pkg/quiver/lib/collection.dart +FILE: ../../../third_party/pkg/quiver/lib/core.dart +FILE: ../../../third_party/pkg/quiver/lib/io.dart +FILE: ../../../third_party/pkg/quiver/lib/iterables.dart +FILE: ../../../third_party/pkg/quiver/lib/mirrors.dart +FILE: ../../../third_party/pkg/quiver/lib/pattern.dart +FILE: ../../../third_party/pkg/quiver/lib/src/async/collect.dart +FILE: ../../../third_party/pkg/quiver/lib/src/async/concat.dart +FILE: ../../../third_party/pkg/quiver/lib/src/async/countdown_timer.dart +FILE: ../../../third_party/pkg/quiver/lib/src/async/enumerate.dart +FILE: ../../../third_party/pkg/quiver/lib/src/async/future_stream.dart +FILE: ../../../third_party/pkg/quiver/lib/src/async/iteration.dart +FILE: ../../../third_party/pkg/quiver/lib/src/async/metronome.dart +FILE: ../../../third_party/pkg/quiver/lib/src/async/stream_buffer.dart +FILE: ../../../third_party/pkg/quiver/lib/src/async/stream_router.dart +FILE: ../../../third_party/pkg/quiver/lib/src/async/string.dart +FILE: ../../../third_party/pkg/quiver/lib/src/cache/cache.dart +FILE: ../../../third_party/pkg/quiver/lib/src/cache/map_cache.dart +FILE: ../../../third_party/pkg/quiver/lib/src/collection/bimap.dart +FILE: ../../../third_party/pkg/quiver/lib/src/collection/delegates/iterable.dart +FILE: ../../../third_party/pkg/quiver/lib/src/collection/delegates/list.dart +FILE: ../../../third_party/pkg/quiver/lib/src/collection/delegates/map.dart +FILE: ../../../third_party/pkg/quiver/lib/src/collection/delegates/queue.dart +FILE: ../../../third_party/pkg/quiver/lib/src/collection/delegates/set.dart +FILE: ../../../third_party/pkg/quiver/lib/src/collection/lru_map.dart +FILE: ../../../third_party/pkg/quiver/lib/src/collection/multimap.dart +FILE: ../../../third_party/pkg/quiver/lib/src/collection/treeset.dart +FILE: ../../../third_party/pkg/quiver/lib/src/core/hash.dart +FILE: ../../../third_party/pkg/quiver/lib/src/core/optional.dart +FILE: ../../../third_party/pkg/quiver/lib/src/iterables/concat.dart +FILE: ../../../third_party/pkg/quiver/lib/src/iterables/count.dart +FILE: ../../../third_party/pkg/quiver/lib/src/iterables/cycle.dart +FILE: ../../../third_party/pkg/quiver/lib/src/iterables/enumerate.dart +FILE: ../../../third_party/pkg/quiver/lib/src/iterables/generating_iterable.dart +FILE: ../../../third_party/pkg/quiver/lib/src/iterables/infinite_iterable.dart +FILE: ../../../third_party/pkg/quiver/lib/src/iterables/merge.dart +FILE: ../../../third_party/pkg/quiver/lib/src/iterables/min_max.dart +FILE: ../../../third_party/pkg/quiver/lib/src/iterables/partition.dart +FILE: ../../../third_party/pkg/quiver/lib/src/iterables/range.dart +FILE: ../../../third_party/pkg/quiver/lib/src/iterables/zip.dart +FILE: ../../../third_party/pkg/quiver/lib/src/time/clock.dart +FILE: ../../../third_party/pkg/quiver/lib/src/time/duration_unit_constants.dart +FILE: ../../../third_party/pkg/quiver/lib/src/time/util.dart +FILE: ../../../third_party/pkg/quiver/lib/strings.dart +FILE: ../../../third_party/pkg/quiver/lib/time.dart +FILE: ../../../third_party/vulkan-deps/vulkan-headers/src/include/vk_video/vulkan_video_codec_h264std.h +FILE: ../../../third_party/vulkan-deps/vulkan-headers/src/include/vk_video/vulkan_video_codec_h264std_decode.h +FILE: ../../../third_party/vulkan-deps/vulkan-headers/src/include/vk_video/vulkan_video_codec_h264std_encode.h +FILE: ../../../third_party/vulkan-deps/vulkan-headers/src/include/vk_video/vulkan_video_codec_h265std.h +FILE: ../../../third_party/vulkan-deps/vulkan-headers/src/include/vk_video/vulkan_video_codec_h265std_decode.h +FILE: ../../../third_party/vulkan-deps/vulkan-headers/src/include/vk_video/vulkan_video_codec_h265std_encode.h +FILE: ../../../third_party/vulkan-deps/vulkan-headers/src/include/vk_video/vulkan_video_codecs_common.h +FILE: ../../../third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vk_icd.h +FILE: ../../../third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vk_layer.h +FILE: ../../../third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vk_platform.h +FILE: ../../../third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vk_sdk_platform.h +FILE: ../../../third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan.h +FILE: ../../../third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan.hpp +FILE: ../../../third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_android.h +FILE: ../../../third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_beta.h +FILE: ../../../third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_core.h +FILE: ../../../third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_directfb.h +FILE: ../../../third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_enums.hpp +FILE: ../../../third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_format_traits.hpp +FILE: ../../../third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_fuchsia.h +FILE: ../../../third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_funcs.hpp +FILE: ../../../third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_ggp.h +FILE: ../../../third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_handles.hpp +FILE: ../../../third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_hash.hpp +FILE: ../../../third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_ios.h +FILE: ../../../third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_macos.h +FILE: ../../../third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_metal.h +FILE: ../../../third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_raii.hpp +FILE: ../../../third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_screen.h +FILE: ../../../third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_structs.hpp +FILE: ../../../third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_to_string.hpp +FILE: ../../../third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_vi.h +FILE: ../../../third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_wayland.h +FILE: ../../../third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_win32.h +FILE: ../../../third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_xcb.h +FILE: ../../../third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_xlib.h +FILE: ../../../third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_xlib_xrandr.h +FILE: ../../../third_party/wuffs/release/c/wuffs-v0.2.c +FILE: ../../../third_party/wuffs/release/c/wuffs-v0.3.c ---------------------------------------------------------------------------------------------------- -Copyright (c) IBM Corporation, 2000-2016. All rights reserved. +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - * Neither the name of Google Inc. nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. +1. Definitions. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. -==================================================================================================== -LIBRARY: json -ORIGIN: ../../../third_party/json/LICENSE.MIT -TYPE: LicenseType.mit -FILE: ../../../third_party/json/.clang-tidy -FILE: ../../../third_party/json/.lgtm.yml -FILE: ../../../third_party/json/BUILD.bazel -FILE: ../../../third_party/json/CITATION.cff -FILE: ../../../third_party/json/WORKSPACE.bazel -FILE: ../../../third_party/json/cmake/config.cmake.in -FILE: ../../../third_party/json/cmake/nlohmann_jsonConfigVersion.cmake.in -FILE: ../../../third_party/json/cmake/pkg-config.pc.in -FILE: ../../../third_party/json/include/nlohmann/detail/json_custom_base_class.hpp -FILE: ../../../third_party/json/meson.build -FILE: ../../../third_party/json/nlohmann_json.natvis -FILE: ../../../third_party/json/tools/amalgamate/config_json.json -FILE: ../../../third_party/json/tools/amalgamate/config_json_fwd.json -FILE: ../../../third_party/json/tools/generate_natvis/nlohmann_json.natvis.j2 -FILE: ../../../third_party/json/tools/macro_builder/main.cpp -FILE: ../../../third_party/json/tools/serve_header/demo.png -FILE: ../../../third_party/json/tools/serve_header/serve_header.yml.example -FILE: ../../../third_party/json/wsjcpp.yml ----------------------------------------------------------------------------------------------------- -MIT License + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. -Copyright (c) 2013-2022 Niels Lohmann + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. -==================================================================================================== + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. -==================================================================================================== -LIBRARY: khronos -ORIGIN: ../../../third_party/khronos/GLES3/gl31.h -TYPE: LicenseType.unknown -FILE: ../../../third_party/khronos/GLES3/gl31.h -FILE: ../../../third_party/khronos/GLES3/gl32.h ----------------------------------------------------------------------------------------------------- -Copyright (c) 2013-2016 The Khronos Group Inc. + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and/or associated documentation files (the -"Materials"), to deal in the Materials without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Materials, and to -permit persons to whom the Materials are furnished to do so, subject to -the following conditions: + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Materials. + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." -THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. -==================================================================================================== + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. -==================================================================================================== -LIBRARY: khronos -ORIGIN: ../../../third_party/khronos/KHR/khrplatform.h -TYPE: LicenseType.unknown -FILE: ../../../third_party/khronos/KHR/khrplatform.h ----------------------------------------------------------------------------------------------------- -Copyright (c) 2008-2009 The Khronos Group Inc. +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and/or associated documentation files (the -"Materials"), to deal in the Materials without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Materials, and to -permit persons to whom the Materials are furnished to do so, subject to -the following conditions: +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Materials. +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: -THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. -==================================================================================================== + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and -==================================================================================================== -LIBRARY: khronos -ORIGIN: ../../../third_party/khronos/LICENSE -TYPE: LicenseType.mit -FILE: ../../../third_party/khronos/DEPS -FILE: ../../../third_party/khronos/DIR_METADATA ----------------------------------------------------------------------------------------------------- -Copyright (c) 2007-2010 The Khronos Group Inc. + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and/or associated documentation files (the -"Materials"), to deal in the Materials without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Materials, and to -permit persons to whom the Materials are furnished to do so, subject to -the following conditions: + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Materials. + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. -THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. -SGI FREE SOFTWARE LICENSE B (Version 2.0, Sept. 18, 2008) +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. -Copyright (C) 1992 Silicon Graphics, Inc. All Rights Reserved. +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. -The above copyright notice including the dates of first publication and either -this permission notice or a reference to http://oss.sgi.com/projects/FreeB -shall be included in all copies or substantial portions of the Software. +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL SILICON -GRAPHICS, INC. BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. -Except as contained in this notice, the name of Silicon Graphics, Inc. shall -not be used in advertising or otherwise to promote the sale, use or other -dealings in this Software without prior written authorization from Silicon -Graphics, Inc. -==================================================================================================== +END OF TERMS AND CONDITIONS -==================================================================================================== -LIBRARY: khronos -ORIGIN: ../../../third_party/khronos/noninclude/GL/glxext.h -TYPE: LicenseType.unknown -FILE: ../../../third_party/khronos/noninclude/GL/glxext.h ----------------------------------------------------------------------------------------------------- -Copyright (c) 2007-2012 The Khronos Group Inc. +APPENDIX: How to apply the Apache License to your work. -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and/or associated documentation files (the -"Materials"), to deal in the Materials without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Materials, and to -permit persons to whom the Materials are furnished to do so, subject to -the following conditions: + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Materials. +Copyright [yyyy] [name of copyright owner] -THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. ==================================================================================================== ==================================================================================================== @@ -23733,2624 +3309,21417 @@ FILE: ../../../third_party/libcxxabi/src/stdlib_new_delete.cpp FILE: ../../../third_party/libcxxabi/src/stdlib_stdexcept.cpp FILE: ../../../third_party/libcxxabi/src/stdlib_typeinfo.cpp ---------------------------------------------------------------------------------------------------- -Apache License -Version 2.0, January 2004 -http://www.apache.org/licenses +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +--- LLVM Exceptions to the Apache 2.0 License ---- + +As an exception, if, as a result of your compiling your source code, portions +of this Software are embedded into an Object form of such source code, you +may redistribute such embedded portions in such Object form without complying +with the conditions of Sections 4(a), 4(b) and 4(d) of the License. + +In addition, if you combine or link compiled forms of this Software with +software that is licensed under the GPLv2 ("Combined Software") and if a +court of competent jurisdiction determines that the patent provision (Section +3), the indemnity provision (Section 9) or other Section of the License +conflicts with the conditions of the GPLv2, you may retroactively and +prospectively choose to deem waived or otherwise exclude such Section(s) of +the License, but only in their entirety and only with respect to the Combined +Software. +==================================================================================================== + +==================================================================================================== +LIBRARY: abseil-cpp +ORIGIN: ../../../third_party/abseil-cpp/LICENSE +TYPE: LicenseType.apache +FILE: ../../../third_party/abseil-cpp/CMake/Googletest/CMakeLists.txt.in +FILE: ../../../third_party/abseil-cpp/CMake/abslConfig.cmake.in +FILE: ../../../third_party/abseil-cpp/DIR_METADATA +FILE: ../../../third_party/abseil-cpp/absl/copts/GENERATED_copts.bzl +FILE: ../../../third_party/abseil-cpp/absl/copts/configure_copts.bzl +FILE: ../../../third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +FILE: ../../../third_party/abseil-cpp/absl/debugging/internal/stacktrace_unimplemented-inl.inc +FILE: ../../../third_party/abseil-cpp/absl/flags/flag_benchmark.lds +FILE: ../../../third_party/abseil-cpp/absl/random/gaussian_distribution.cc +FILE: ../../../third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +FILE: ../../../third_party/abseil-cpp/absl/time/internal/get_current_time_posix.inc +FILE: ../../../third_party/abseil-cpp/absl/time/internal/zoneinfo.inc +FILE: ../../../third_party/abseil-cpp/patches/0001-Turn-on-hardened-mode.patch +FILE: ../../../third_party/abseil-cpp/patches/0002-delete-unprefixed-annotations.patch +FILE: ../../../third_party/abseil-cpp/patches/0003-delete-static-initializer-in-stacktrace.patch +FILE: ../../../third_party/abseil-cpp/symbols_arm64_dbg.def +FILE: ../../../third_party/abseil-cpp/symbols_arm64_rel.def +FILE: ../../../third_party/abseil-cpp/symbols_x64_dbg.def +FILE: ../../../third_party/abseil-cpp/symbols_x64_rel.def +FILE: ../../../third_party/abseil-cpp/symbols_x64_rel_asan.def +FILE: ../../../third_party/abseil-cpp/symbols_x86_dbg.def +FILE: ../../../third_party/abseil-cpp/symbols_x86_rel.def +---------------------------------------------------------------------------------------------------- +Apache License +Version 2.0, January 2004 +https://www.apache.org/licenses + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + https://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +==================================================================================================== + +==================================================================================================== +LIBRARY: boringssl +ORIGIN: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/internal.h +TYPE: LicenseType.bsd +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/internal.h +FILE: ../../../third_party/boringssl/src/crypto/obj/obj_dat.h +FILE: ../../../third_party/boringssl/src/include/openssl/bn.h +FILE: ../../../third_party/boringssl/src/include/openssl/nid.h +FILE: ../../../third_party/boringssl/src/include/openssl/pem.h +---------------------------------------------------------------------------------------------------- +Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com) +All rights reserved. + +This package is an SSL implementation written +by Eric Young (eay@cryptsoft.com). +The implementation was written so as to conform with Netscapes SSL. + +This library is free for commercial and non-commercial use as long as +the following conditions are aheared to. The following conditions +apply to all code found in this distribution, be it the RC4, RSA, +lhash, DES, etc., code; not just the SSL code. The SSL documentation +included with this distribution is covered by the same copyright terms +except that the holder is Tim Hudson (tjh@cryptsoft.com). + +Copyright remains Eric Young's, and as such any Copyright notices in +the code are not to be removed. +If this package is used in a product, Eric Young should be given attribution +as the author of the parts of the library used. +This can be in the form of a textual message at program startup or +in documentation (online or textual) provided with the package. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +3. All advertising materials mentioning features or use of this software + must display the following acknowledgement: + "This product includes cryptographic software written by + Eric Young (eay@cryptsoft.com)" + The word 'cryptographic' can be left out if the rouines from the library + being used are not cryptographic related :-). +4. If you include any Windows specific code (or a derivative thereof) from + the apps directory (application code) you must include an acknowledgement: + "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + +THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + +The licence and distribution terms for any publically available version or +derivative of this code cannot be changed. i.e. this code cannot simply be +copied and put under another distribution licence +[including the GNU Public Licence.] +==================================================================================================== + +==================================================================================================== +LIBRARY: boringssl +ORIGIN: ../../../third_party/boringssl/src/crypto/asn1/a_bitstr.c +TYPE: LicenseType.bsd +FILE: ../../../third_party/boringssl/src/crypto/asn1/a_bitstr.c +FILE: ../../../third_party/boringssl/src/crypto/asn1/a_bool.c +FILE: ../../../third_party/boringssl/src/crypto/asn1/a_d2i_fp.c +FILE: ../../../third_party/boringssl/src/crypto/asn1/a_dup.c +FILE: ../../../third_party/boringssl/src/crypto/asn1/a_enum.c +FILE: ../../../third_party/boringssl/src/crypto/asn1/a_gentm.c +FILE: ../../../third_party/boringssl/src/crypto/asn1/a_i2d_fp.c +FILE: ../../../third_party/boringssl/src/crypto/asn1/a_int.c +FILE: ../../../third_party/boringssl/src/crypto/asn1/a_mbstr.c +FILE: ../../../third_party/boringssl/src/crypto/asn1/a_object.c +FILE: ../../../third_party/boringssl/src/crypto/asn1/a_octet.c +FILE: ../../../third_party/boringssl/src/crypto/asn1/a_print.c +FILE: ../../../third_party/boringssl/src/crypto/asn1/a_strex.c +FILE: ../../../third_party/boringssl/src/crypto/asn1/a_strnid.c +FILE: ../../../third_party/boringssl/src/crypto/asn1/a_time.c +FILE: ../../../third_party/boringssl/src/crypto/asn1/a_type.c +FILE: ../../../third_party/boringssl/src/crypto/asn1/a_utctm.c +FILE: ../../../third_party/boringssl/src/crypto/asn1/a_utf8.c +FILE: ../../../third_party/boringssl/src/crypto/asn1/asn1_lib.c +FILE: ../../../third_party/boringssl/src/crypto/asn1/asn1_par.c +FILE: ../../../third_party/boringssl/src/crypto/asn1/asn_pack.c +FILE: ../../../third_party/boringssl/src/crypto/asn1/f_enum.c +FILE: ../../../third_party/boringssl/src/crypto/asn1/f_int.c +FILE: ../../../third_party/boringssl/src/crypto/asn1/f_string.c +FILE: ../../../third_party/boringssl/src/crypto/asn1/tasn_dec.c +FILE: ../../../third_party/boringssl/src/crypto/asn1/tasn_enc.c +FILE: ../../../third_party/boringssl/src/crypto/asn1/tasn_fre.c +FILE: ../../../third_party/boringssl/src/crypto/asn1/tasn_new.c +FILE: ../../../third_party/boringssl/src/crypto/asn1/tasn_typ.c +FILE: ../../../third_party/boringssl/src/crypto/asn1/tasn_utl.c +FILE: ../../../third_party/boringssl/src/crypto/base64/base64.c +FILE: ../../../third_party/boringssl/src/crypto/bio/bio.c +FILE: ../../../third_party/boringssl/src/crypto/bio/bio_mem.c +FILE: ../../../third_party/boringssl/src/crypto/bio/connect.c +FILE: ../../../third_party/boringssl/src/crypto/bio/fd.c +FILE: ../../../third_party/boringssl/src/crypto/bio/file.c +FILE: ../../../third_party/boringssl/src/crypto/bio/hexdump.c +FILE: ../../../third_party/boringssl/src/crypto/bio/internal.h +FILE: ../../../third_party/boringssl/src/crypto/bio/printf.c +FILE: ../../../third_party/boringssl/src/crypto/bio/socket.c +FILE: ../../../third_party/boringssl/src/crypto/bn_extra/convert.c +FILE: ../../../third_party/boringssl/src/crypto/buf/buf.c +FILE: ../../../third_party/boringssl/src/crypto/cipher_extra/cipher_extra.c +FILE: ../../../third_party/boringssl/src/crypto/cipher_extra/derive_key.c +FILE: ../../../third_party/boringssl/src/crypto/cipher_extra/e_null.c +FILE: ../../../third_party/boringssl/src/crypto/cipher_extra/e_rc2.c +FILE: ../../../third_party/boringssl/src/crypto/cipher_extra/e_rc4.c +FILE: ../../../third_party/boringssl/src/crypto/cipher_extra/internal.h +FILE: ../../../third_party/boringssl/src/crypto/conf/conf.c +FILE: ../../../third_party/boringssl/src/crypto/conf/conf_def.h +FILE: ../../../third_party/boringssl/src/crypto/cpu-intel.c +FILE: ../../../third_party/boringssl/src/crypto/dh_extra/dh_test.cc +FILE: ../../../third_party/boringssl/src/crypto/digest_extra/digest_extra.c +FILE: ../../../third_party/boringssl/src/crypto/dsa/dsa.c +FILE: ../../../third_party/boringssl/src/crypto/dsa/dsa_test.cc +FILE: ../../../third_party/boringssl/src/crypto/err/err.c +FILE: ../../../third_party/boringssl/src/crypto/evp/evp.c +FILE: ../../../third_party/boringssl/src/crypto/evp/evp_asn1.c +FILE: ../../../third_party/boringssl/src/crypto/evp/evp_ctx.c +FILE: ../../../third_party/boringssl/src/crypto/evp/internal.h +FILE: ../../../third_party/boringssl/src/crypto/evp/sign.c +FILE: ../../../third_party/boringssl/src/crypto/ex_data.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/add.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/bn.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/bn_test.cc +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/bytes.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/cmp.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/div.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/exponentiation.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/gcd.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/generic.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/montgomery.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/mul.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/prime.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/random.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/shift.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/cipher/cipher.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/cipher/e_des.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/cipher/internal.h +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/des/des.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/des/internal.h +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/dh/check.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/dh/dh.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/digest/digest.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/digest/digests.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/digest/internal.h +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/hmac/hmac.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/md4/md4.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/md5/md5.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/rsa/blinding.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/rsa/internal.h +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/rsa/rsa.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/rsa/rsa_impl.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/sha/sha1-altivec.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/sha/sha1.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/sha/sha256.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/sha/sha512.c +FILE: ../../../third_party/boringssl/src/crypto/hmac_extra/hmac_test.cc +FILE: ../../../third_party/boringssl/src/crypto/internal.h +FILE: ../../../third_party/boringssl/src/crypto/lhash/internal.h +FILE: ../../../third_party/boringssl/src/crypto/lhash/lhash.c +FILE: ../../../third_party/boringssl/src/crypto/mem.c +FILE: ../../../third_party/boringssl/src/crypto/obj/obj.c +FILE: ../../../third_party/boringssl/src/crypto/obj/obj_xref.c +FILE: ../../../third_party/boringssl/src/crypto/pem/pem_all.c +FILE: ../../../third_party/boringssl/src/crypto/pem/pem_info.c +FILE: ../../../third_party/boringssl/src/crypto/pem/pem_lib.c +FILE: ../../../third_party/boringssl/src/crypto/pem/pem_oth.c +FILE: ../../../third_party/boringssl/src/crypto/pem/pem_pk8.c +FILE: ../../../third_party/boringssl/src/crypto/pem/pem_pkey.c +FILE: ../../../third_party/boringssl/src/crypto/rc4/rc4.c +FILE: ../../../third_party/boringssl/src/crypto/rsa_extra/rsa_test.cc +FILE: ../../../third_party/boringssl/src/crypto/stack/stack.c +FILE: ../../../third_party/boringssl/src/crypto/thread.c +FILE: ../../../third_party/boringssl/src/crypto/x509/a_digest.c +FILE: ../../../third_party/boringssl/src/crypto/x509/a_sign.c +FILE: ../../../third_party/boringssl/src/crypto/x509/a_verify.c +FILE: ../../../third_party/boringssl/src/crypto/x509/algorithm.c +FILE: ../../../third_party/boringssl/src/crypto/x509/asn1_gen.c +FILE: ../../../third_party/boringssl/src/crypto/x509/by_dir.c +FILE: ../../../third_party/boringssl/src/crypto/x509/by_file.c +FILE: ../../../third_party/boringssl/src/crypto/x509/i2d_pr.c +FILE: ../../../third_party/boringssl/src/crypto/x509/name_print.c +FILE: ../../../third_party/boringssl/src/crypto/x509/t_crl.c +FILE: ../../../third_party/boringssl/src/crypto/x509/t_req.c +FILE: ../../../third_party/boringssl/src/crypto/x509/t_x509.c +FILE: ../../../third_party/boringssl/src/crypto/x509/t_x509a.c +FILE: ../../../third_party/boringssl/src/crypto/x509/x509.c +FILE: ../../../third_party/boringssl/src/crypto/x509/x509_att.c +FILE: ../../../third_party/boringssl/src/crypto/x509/x509_cmp.c +FILE: ../../../third_party/boringssl/src/crypto/x509/x509_d2.c +FILE: ../../../third_party/boringssl/src/crypto/x509/x509_def.c +FILE: ../../../third_party/boringssl/src/crypto/x509/x509_ext.c +FILE: ../../../third_party/boringssl/src/crypto/x509/x509_lu.c +FILE: ../../../third_party/boringssl/src/crypto/x509/x509_obj.c +FILE: ../../../third_party/boringssl/src/crypto/x509/x509_req.c +FILE: ../../../third_party/boringssl/src/crypto/x509/x509_set.c +FILE: ../../../third_party/boringssl/src/crypto/x509/x509_txt.c +FILE: ../../../third_party/boringssl/src/crypto/x509/x509_v3.c +FILE: ../../../third_party/boringssl/src/crypto/x509/x509_vfy.c +FILE: ../../../third_party/boringssl/src/crypto/x509/x509name.c +FILE: ../../../third_party/boringssl/src/crypto/x509/x509rset.c +FILE: ../../../third_party/boringssl/src/crypto/x509/x_all.c +FILE: ../../../third_party/boringssl/src/crypto/x509/x_attrib.c +FILE: ../../../third_party/boringssl/src/crypto/x509/x_crl.c +FILE: ../../../third_party/boringssl/src/crypto/x509/x_exten.c +FILE: ../../../third_party/boringssl/src/crypto/x509/x_info.c +FILE: ../../../third_party/boringssl/src/crypto/x509/x_name.c +FILE: ../../../third_party/boringssl/src/crypto/x509/x_pkey.c +FILE: ../../../third_party/boringssl/src/crypto/x509/x_pubkey.c +FILE: ../../../third_party/boringssl/src/crypto/x509/x_req.c +FILE: ../../../third_party/boringssl/src/crypto/x509/x_sig.c +FILE: ../../../third_party/boringssl/src/crypto/x509/x_spki.c +FILE: ../../../third_party/boringssl/src/crypto/x509/x_val.c +FILE: ../../../third_party/boringssl/src/crypto/x509/x_x509.c +FILE: ../../../third_party/boringssl/src/decrepit/bio/base64_bio.c +FILE: ../../../third_party/boringssl/src/decrepit/blowfish/blowfish.c +FILE: ../../../third_party/boringssl/src/decrepit/cast/cast.c +FILE: ../../../third_party/boringssl/src/decrepit/cast/cast_tables.c +FILE: ../../../third_party/boringssl/src/decrepit/cast/internal.h +FILE: ../../../third_party/boringssl/src/decrepit/des/cfb64ede.c +FILE: ../../../third_party/boringssl/src/decrepit/macros.h +FILE: ../../../third_party/boringssl/src/decrepit/rc4/rc4_decrepit.c +FILE: ../../../third_party/boringssl/src/decrepit/ripemd/ripemd.c +FILE: ../../../third_party/boringssl/src/decrepit/rsa/rsa_decrepit.c +FILE: ../../../third_party/boringssl/src/decrepit/ssl/ssl_decrepit.c +FILE: ../../../third_party/boringssl/src/include/openssl/asn1.h +FILE: ../../../third_party/boringssl/src/include/openssl/base64.h +FILE: ../../../third_party/boringssl/src/include/openssl/bio.h +FILE: ../../../third_party/boringssl/src/include/openssl/blowfish.h +FILE: ../../../third_party/boringssl/src/include/openssl/buf.h +FILE: ../../../third_party/boringssl/src/include/openssl/cast.h +FILE: ../../../third_party/boringssl/src/include/openssl/cipher.h +FILE: ../../../third_party/boringssl/src/include/openssl/conf.h +FILE: ../../../third_party/boringssl/src/include/openssl/cpu.h +FILE: ../../../third_party/boringssl/src/include/openssl/des.h +FILE: ../../../third_party/boringssl/src/include/openssl/dh.h +FILE: ../../../third_party/boringssl/src/include/openssl/digest.h +FILE: ../../../third_party/boringssl/src/include/openssl/dsa.h +FILE: ../../../third_party/boringssl/src/include/openssl/err.h +FILE: ../../../third_party/boringssl/src/include/openssl/evp.h +FILE: ../../../third_party/boringssl/src/include/openssl/evp_errors.h +FILE: ../../../third_party/boringssl/src/include/openssl/ex_data.h +FILE: ../../../third_party/boringssl/src/include/openssl/hmac.h +FILE: ../../../third_party/boringssl/src/include/openssl/lhash.h +FILE: ../../../third_party/boringssl/src/include/openssl/md4.h +FILE: ../../../third_party/boringssl/src/include/openssl/md5.h +FILE: ../../../third_party/boringssl/src/include/openssl/mem.h +FILE: ../../../third_party/boringssl/src/include/openssl/obj.h +FILE: ../../../third_party/boringssl/src/include/openssl/rc4.h +FILE: ../../../third_party/boringssl/src/include/openssl/ripemd.h +FILE: ../../../third_party/boringssl/src/include/openssl/rsa.h +FILE: ../../../third_party/boringssl/src/include/openssl/sha.h +FILE: ../../../third_party/boringssl/src/include/openssl/ssl.h +FILE: ../../../third_party/boringssl/src/include/openssl/ssl3.h +FILE: ../../../third_party/boringssl/src/include/openssl/stack.h +FILE: ../../../third_party/boringssl/src/include/openssl/thread.h +FILE: ../../../third_party/boringssl/src/include/openssl/tls1.h +FILE: ../../../third_party/boringssl/src/include/openssl/type_check.h +FILE: ../../../third_party/boringssl/src/include/openssl/x509.h +FILE: ../../../third_party/boringssl/src/include/openssl/x509_vfy.h +FILE: ../../../third_party/boringssl/src/ssl/d1_both.cc +FILE: ../../../third_party/boringssl/src/ssl/d1_pkt.cc +FILE: ../../../third_party/boringssl/src/ssl/d1_srtp.cc +FILE: ../../../third_party/boringssl/src/ssl/dtls_record.cc +FILE: ../../../third_party/boringssl/src/ssl/extensions.cc +FILE: ../../../third_party/boringssl/src/ssl/handshake.cc +FILE: ../../../third_party/boringssl/src/ssl/handshake_client.cc +FILE: ../../../third_party/boringssl/src/ssl/handshake_server.cc +FILE: ../../../third_party/boringssl/src/ssl/internal.h +FILE: ../../../third_party/boringssl/src/ssl/s3_both.cc +FILE: ../../../third_party/boringssl/src/ssl/s3_lib.cc +FILE: ../../../third_party/boringssl/src/ssl/s3_pkt.cc +FILE: ../../../third_party/boringssl/src/ssl/ssl_asn1.cc +FILE: ../../../third_party/boringssl/src/ssl/ssl_cert.cc +FILE: ../../../third_party/boringssl/src/ssl/ssl_cipher.cc +FILE: ../../../third_party/boringssl/src/ssl/ssl_file.cc +FILE: ../../../third_party/boringssl/src/ssl/ssl_lib.cc +FILE: ../../../third_party/boringssl/src/ssl/ssl_privkey.cc +FILE: ../../../third_party/boringssl/src/ssl/ssl_session.cc +FILE: ../../../third_party/boringssl/src/ssl/ssl_stat.cc +FILE: ../../../third_party/boringssl/src/ssl/ssl_transcript.cc +FILE: ../../../third_party/boringssl/src/ssl/ssl_x509.cc +FILE: ../../../third_party/boringssl/src/ssl/t1_enc.cc +FILE: ../../../third_party/boringssl/src/ssl/tls_method.cc +FILE: ../../../third_party/boringssl/src/ssl/tls_record.cc +---------------------------------------------------------------------------------------------------- +Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) +All rights reserved. + +This package is an SSL implementation written +by Eric Young (eay@cryptsoft.com). +The implementation was written so as to conform with Netscapes SSL. + +This library is free for commercial and non-commercial use as long as +the following conditions are aheared to. The following conditions +apply to all code found in this distribution, be it the RC4, RSA, +lhash, DES, etc., code; not just the SSL code. The SSL documentation +included with this distribution is covered by the same copyright terms +except that the holder is Tim Hudson (tjh@cryptsoft.com). + +Copyright remains Eric Young's, and as such any Copyright notices in +the code are not to be removed. +If this package is used in a product, Eric Young should be given attribution +as the author of the parts of the library used. +This can be in the form of a textual message at program startup or +in documentation (online or textual) provided with the package. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +3. All advertising materials mentioning features or use of this software + must display the following acknowledgement: + "This product includes cryptographic software written by + Eric Young (eay@cryptsoft.com)" + The word 'cryptographic' can be left out if the rouines from the library + being used are not cryptographic related :-). +4. If you include any Windows specific code (or a derivative thereof) from + the apps directory (application code) you must include an acknowledgement: + "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + +THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + +The licence and distribution terms for any publically available version or +derivative of this code cannot be changed. i.e. this code cannot simply be +copied and put under another distribution licence +[including the GNU Public Licence.] +==================================================================================================== + +==================================================================================================== +LIBRARY: freetype2 +LIBRARY: zlib +ORIGIN: ../../../third_party/freetype2/src/gzip/inffast.h + ../../../third_party/freetype2/src/gzip/zlib.h +TYPE: LicenseType.zlib +FILE: ../../../third_party/freetype2/src/gzip/inffast.h +FILE: ../../../third_party/zlib/inffast.h +---------------------------------------------------------------------------------------------------- +Copyright (C) 1995-2003, 2010 Mark Adler + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +==================================================================================================== + +==================================================================================================== +LIBRARY: zlib +ORIGIN: ../../../third_party/zlib/contrib/optimizations/inffast_chunk.h + ../../../third_party/zlib/zlib.h +TYPE: LicenseType.zlib +FILE: ../../../third_party/zlib/contrib/optimizations/inffast_chunk.h +---------------------------------------------------------------------------------------------------- +Copyright (C) 1995-2003, 2010 Mark Adler +Copyright (C) 2017 ARM, Inc. + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +==================================================================================================== + +==================================================================================================== +LIBRARY: zlib +ORIGIN: ../../../third_party/zlib/uncompr.c + ../../../third_party/zlib/zlib.h +TYPE: LicenseType.zlib +FILE: ../../../third_party/zlib/uncompr.c +---------------------------------------------------------------------------------------------------- +Copyright (C) 1995-2003, 2010, 2014, 2016 Jean-loup Gailly, Mark Adler + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +==================================================================================================== + +==================================================================================================== +LIBRARY: freetype2 +LIBRARY: zlib +ORIGIN: ../../../third_party/freetype2/src/gzip/inftrees.h + ../../../third_party/freetype2/src/gzip/zlib.h +TYPE: LicenseType.zlib +FILE: ../../../third_party/freetype2/src/gzip/inftrees.h +FILE: ../../../third_party/zlib/inftrees.h +---------------------------------------------------------------------------------------------------- +Copyright (C) 1995-2005, 2010 Mark Adler + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +==================================================================================================== + +==================================================================================================== +LIBRARY: zlib +ORIGIN: ../../../third_party/zlib/compress.c + ../../../third_party/zlib/zlib.h +TYPE: LicenseType.zlib +FILE: ../../../third_party/zlib/compress.c +---------------------------------------------------------------------------------------------------- +Copyright (C) 1995-2005, 2014, 2016 Jean-loup Gailly, Mark Adler + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +==================================================================================================== + +==================================================================================================== +LIBRARY: freetype2 +ORIGIN: ../../../third_party/freetype2/src/gzip/crc32.c + ../../../third_party/freetype2/src/gzip/zlib.h +TYPE: LicenseType.zlib +FILE: ../../../third_party/freetype2/src/gzip/crc32.c +---------------------------------------------------------------------------------------------------- +Copyright (C) 1995-2006, 2010, 2011, 2012, 2016 Mark Adler + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +==================================================================================================== + +==================================================================================================== +LIBRARY: freetype2 +LIBRARY: zlib +ORIGIN: ../../../third_party/freetype2/src/gzip/adler32.c + ../../../third_party/freetype2/src/gzip/zlib.h +TYPE: LicenseType.zlib +FILE: ../../../third_party/freetype2/src/gzip/adler32.c +FILE: ../../../third_party/zlib/adler32.c +---------------------------------------------------------------------------------------------------- +Copyright (C) 1995-2011, 2016 Mark Adler + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +==================================================================================================== + +==================================================================================================== +LIBRARY: freetype2 +LIBRARY: zlib +ORIGIN: ../../../third_party/freetype2/src/gzip/ftzconf.h + ../../../third_party/freetype2/src/gzip/zlib.h +TYPE: LicenseType.zlib +FILE: ../../../third_party/freetype2/src/gzip/ftzconf.h +FILE: ../../../third_party/freetype2/src/gzip/zutil.h +FILE: ../../../third_party/zlib/zconf.h +---------------------------------------------------------------------------------------------------- +Copyright (C) 1995-2016 Jean-loup Gailly, Mark Adler + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +==================================================================================================== + +==================================================================================================== +LIBRARY: freetype2 +ORIGIN: ../../../third_party/freetype2/src/gzip/infback.c + ../../../third_party/freetype2/src/gzip/zlib.h +TYPE: LicenseType.zlib +FILE: ../../../third_party/freetype2/src/gzip/infback.c +FILE: ../../../third_party/freetype2/src/gzip/inflate.c +FILE: ../../../third_party/freetype2/src/gzip/inflate.h +---------------------------------------------------------------------------------------------------- +Copyright (C) 1995-2016 Mark Adler + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +==================================================================================================== + +==================================================================================================== +LIBRARY: freetype2 +LIBRARY: zlib +ORIGIN: ../../../third_party/freetype2/src/gzip/zutil.c + ../../../third_party/freetype2/src/gzip/zlib.h +TYPE: LicenseType.zlib +FILE: ../../../third_party/freetype2/src/gzip/zutil.c +FILE: ../../../third_party/zlib/zutil.c +---------------------------------------------------------------------------------------------------- +Copyright (C) 1995-2017 Jean-loup Gailly + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +==================================================================================================== + +==================================================================================================== +LIBRARY: freetype2 +ORIGIN: ../../../third_party/freetype2/src/gzip/zlib.h +TYPE: LicenseType.zlib +FILE: ../../../third_party/freetype2/src/gzip/crc32.h +FILE: ../../../third_party/freetype2/src/gzip/inffixed.h +FILE: ../../../third_party/freetype2/src/gzip/patches/freetype-zlib.diff +FILE: ../../../third_party/freetype2/src/gzip/zlib.h +---------------------------------------------------------------------------------------------------- +Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +==================================================================================================== + +==================================================================================================== +LIBRARY: freetype2 +LIBRARY: zlib +ORIGIN: ../../../third_party/freetype2/src/gzip/inffast.c + ../../../third_party/freetype2/src/gzip/zlib.h +TYPE: LicenseType.zlib +FILE: ../../../third_party/freetype2/src/gzip/inffast.c +FILE: ../../../third_party/freetype2/src/gzip/inftrees.c +FILE: ../../../third_party/zlib/contrib/optimizations/inffast_chunk.c +FILE: ../../../third_party/zlib/inffast.c +---------------------------------------------------------------------------------------------------- +Copyright (C) 1995-2017 Mark Adler + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +==================================================================================================== + +==================================================================================================== +LIBRARY: zlib +ORIGIN: ../../../third_party/zlib/deflate.h + ../../../third_party/zlib/zlib.h +TYPE: LicenseType.zlib +FILE: ../../../third_party/zlib/deflate.h +---------------------------------------------------------------------------------------------------- +Copyright (C) 1995-2018 Jean-loup Gailly + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +==================================================================================================== + +==================================================================================================== +LIBRARY: zlib +ORIGIN: ../../../third_party/zlib/inflate.h + ../../../third_party/zlib/zlib.h +TYPE: LicenseType.zlib +FILE: ../../../third_party/zlib/inflate.h +---------------------------------------------------------------------------------------------------- +Copyright (C) 1995-2019 Mark Adler + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +==================================================================================================== + +==================================================================================================== +LIBRARY: zlib +ORIGIN: ../../../third_party/zlib/trees.c + ../../../third_party/zlib/zlib.h +TYPE: LicenseType.zlib +FILE: ../../../third_party/zlib/trees.c +---------------------------------------------------------------------------------------------------- +Copyright (C) 1995-2021 Jean-loup Gailly +detect_data_type() function provided freely by Cosmin Truta, 2006 + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +==================================================================================================== + +==================================================================================================== +LIBRARY: zlib +ORIGIN: ../../../third_party/zlib/zlib.h +TYPE: LicenseType.zlib +FILE: ../../../third_party/zlib/deflate.c +FILE: ../../../third_party/zlib/zlib.h +---------------------------------------------------------------------------------------------------- +Copyright (C) 1995-2022 Jean-loup Gailly and Mark Adler + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +==================================================================================================== + +==================================================================================================== +LIBRARY: zlib +ORIGIN: ../../../third_party/zlib/zutil.h + ../../../third_party/zlib/zlib.h +TYPE: LicenseType.zlib +FILE: ../../../third_party/zlib/zutil.h +---------------------------------------------------------------------------------------------------- +Copyright (C) 1995-2022 Jean-loup Gailly, Mark Adler + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +==================================================================================================== + +==================================================================================================== +LIBRARY: zlib +ORIGIN: ../../../third_party/zlib/contrib/optimizations/inflate.c + ../../../third_party/zlib/zlib.h +TYPE: LicenseType.zlib +FILE: ../../../third_party/zlib/contrib/optimizations/inflate.c +FILE: ../../../third_party/zlib/crc32.c +FILE: ../../../third_party/zlib/infback.c +FILE: ../../../third_party/zlib/inflate.c +FILE: ../../../third_party/zlib/inftrees.c +---------------------------------------------------------------------------------------------------- +Copyright (C) 1995-2022 Mark Adler + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +==================================================================================================== + +==================================================================================================== +LIBRARY: zlib +ORIGIN: ../../../third_party/zlib/contrib/minizip/zip.h +TYPE: LicenseType.zlib +FILE: ../../../third_party/zlib/contrib/minizip/zip.h +---------------------------------------------------------------------------------------------------- +Copyright (C) 1998-2010 Gilles Vollant (minizip) ( http://www.winimage.com/zLibDll/minizip.html ) + +Modifications for Zip64 support +Copyright (C) 2009-2010 Mathias Svensson ( http://result42.com ) + +For more info read MiniZip_info.txt + +Condition of use and distribution are the same than zlib : + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +==================================================================================================== + +==================================================================================================== +LIBRARY: zlib +ORIGIN: ../../../third_party/zlib/contrib/minizip/unzip.h +TYPE: LicenseType.zlib +FILE: ../../../third_party/zlib/contrib/minizip/unzip.h +---------------------------------------------------------------------------------------------------- +Copyright (C) 1998-2010 Gilles Vollant (minizip) ( http://www.winimage.com/zLibDll/minizip.html ) + +Modifications of Unzip for Zip64 +Copyright (C) 2007-2008 Even Rouault + +Modifications for Zip64 support on both zip and unzip +Copyright (C) 2009-2010 Mathias Svensson ( http://result42.com ) + +For more info read MiniZip_info.txt + +Condition of use and distribution are the same than zlib : + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +==================================================================================================== + +==================================================================================================== +LIBRARY: libjpeg-turbo +ORIGIN: ../../../third_party/libjpeg-turbo/simd/jccolext-sse2.asm + ../../../third_party/libjpeg-turbo/simd/jsimdext.inc +TYPE: LicenseType.zlib +FILE: ../../../third_party/libjpeg-turbo/simd/jccolext-sse2.asm +---------------------------------------------------------------------------------------------------- +Copyright (C) 1999-2006, MIYASAKA Masaru. + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +==================================================================================================== + +==================================================================================================== +LIBRARY: freetype2 +ORIGIN: ../../../third_party/freetype2/src/pcf/pcf.h +TYPE: LicenseType.mit +FILE: ../../../third_party/freetype2/src/pcf/pcf.h +---------------------------------------------------------------------------------------------------- +Copyright (C) 2000, 2001, 2002, 2003, 2006, 2010 by +Francesco Zappa Nardelli + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +==================================================================================================== + +==================================================================================================== +LIBRARY: freetype2 +ORIGIN: ../../../third_party/freetype2/src/pcf/pcfdrivr.c +TYPE: LicenseType.mit +FILE: ../../../third_party/freetype2/src/pcf/pcfdrivr.c +---------------------------------------------------------------------------------------------------- +Copyright (C) 2000-2004, 2006-2011, 2013, 2014 by +Francesco Zappa Nardelli + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +==================================================================================================== + +==================================================================================================== +LIBRARY: freetype2 +ORIGIN: ../../../third_party/freetype2/src/bdf/bdf.c +TYPE: LicenseType.mit +FILE: ../../../third_party/freetype2/src/bdf/bdf.c +---------------------------------------------------------------------------------------------------- +Copyright (C) 2001, 2002 by +Francesco Zappa Nardelli + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +==================================================================================================== + +==================================================================================================== +LIBRARY: freetype2 +ORIGIN: ../../../third_party/freetype2/src/bdf/bdfdrivr.h +TYPE: LicenseType.mit +FILE: ../../../third_party/freetype2/src/bdf/bdfdrivr.h +---------------------------------------------------------------------------------------------------- +Copyright (C) 2001, 2002, 2003, 2004 by +Francesco Zappa Nardelli + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +==================================================================================================== + +==================================================================================================== +LIBRARY: freetype2 +ORIGIN: ../../../third_party/freetype2/src/bdf/bdfdrivr.c +TYPE: LicenseType.mit +FILE: ../../../third_party/freetype2/src/bdf/bdfdrivr.c +---------------------------------------------------------------------------------------------------- +Copyright (C) 2001-2008, 2011, 2013, 2014 by +Francesco Zappa Nardelli + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +==================================================================================================== + +==================================================================================================== +LIBRARY: freetype2 +ORIGIN: ../../../third_party/freetype2/src/gzip/gzguts.h + ../../../third_party/freetype2/src/gzip/zlib.h +TYPE: LicenseType.zlib +FILE: ../../../third_party/freetype2/src/gzip/gzguts.h +---------------------------------------------------------------------------------------------------- +Copyright (C) 2004, 2005, 2010, 2011, 2012, 2013, 2016 Mark Adler + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +==================================================================================================== + +==================================================================================================== +LIBRARY: zlib +ORIGIN: ../../../third_party/zlib/gzclose.c + ../../../third_party/zlib/zlib.h +TYPE: LicenseType.zlib +FILE: ../../../third_party/zlib/gzclose.c +---------------------------------------------------------------------------------------------------- +Copyright (C) 2004, 2010 Mark Adler + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +==================================================================================================== + +==================================================================================================== +LIBRARY: zlib +ORIGIN: ../../../third_party/zlib/gzread.c + ../../../third_party/zlib/zlib.h +TYPE: LicenseType.zlib +FILE: ../../../third_party/zlib/gzread.c +---------------------------------------------------------------------------------------------------- +Copyright (C) 2004-2017 Mark Adler + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +==================================================================================================== + +==================================================================================================== +LIBRARY: zlib +ORIGIN: ../../../third_party/zlib/gzguts.h + ../../../third_party/zlib/zlib.h +TYPE: LicenseType.zlib +FILE: ../../../third_party/zlib/gzguts.h +FILE: ../../../third_party/zlib/gzlib.c +FILE: ../../../third_party/zlib/gzwrite.c +---------------------------------------------------------------------------------------------------- +Copyright (C) 2004-2019 Mark Adler + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +==================================================================================================== + +==================================================================================================== +LIBRARY: angle +ORIGIN: ../../../third_party/angle/src/third_party/systeminfo/SystemInfo.cpp +TYPE: LicenseType.bsd +FILE: ../../../third_party/angle/src/third_party/systeminfo/SystemInfo.cpp +FILE: ../../../third_party/angle/src/third_party/systeminfo/SystemInfo.h +---------------------------------------------------------------------------------------------------- +Copyright (C) 2009 Apple Inc. All Rights Reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY +EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: libjpeg-turbo +ORIGIN: ../../../third_party/libjpeg-turbo/simd/jccolext-sse2-64.asm + ../../../third_party/libjpeg-turbo/simd/jsimdext.inc +TYPE: LicenseType.zlib +FILE: ../../../third_party/libjpeg-turbo/simd/jccolext-sse2-64.asm +FILE: ../../../third_party/libjpeg-turbo/simd/jccolor-sse2-64.asm +FILE: ../../../third_party/libjpeg-turbo/simd/jccolor-sse2.asm +---------------------------------------------------------------------------------------------------- +Copyright (C) 2009, D. R. Commander. + +Based on the x86 SIMD extension for IJG JPEG library +Copyright (C) 1999-2006, MIYASAKA Masaru. + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +==================================================================================================== + +==================================================================================================== +LIBRARY: libjpeg-turbo +ORIGIN: ../../../third_party/libjpeg-turbo/simd/jchuff-sse2-64.asm + ../../../third_party/libjpeg-turbo/simd/jsimdext.inc +TYPE: LicenseType.zlib +FILE: ../../../third_party/libjpeg-turbo/simd/jchuff-sse2-64.asm +FILE: ../../../third_party/libjpeg-turbo/simd/jchuff-sse2.asm +---------------------------------------------------------------------------------------------------- +Copyright (C) 2009-2011, 2014-2016, D. R. Commander. +Copyright (C) 2015, Matthieu Darbois. + +Based on the x86 SIMD extension for IJG JPEG library +Copyright (C) 1999-2006, MIYASAKA Masaru. + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +==================================================================================================== + +==================================================================================================== +LIBRARY: libjpeg-turbo +ORIGIN: ../../../third_party/libjpeg-turbo/simd/jsimd_arm64_neon.S +TYPE: LicenseType.zlib +FILE: ../../../third_party/libjpeg-turbo/simd/jsimd_arm64_neon.S +---------------------------------------------------------------------------------------------------- +Copyright (C) 2009-2011, Nokia Corporation and/or its subsidiary(-ies). +All Rights Reserved. +Author: Siarhei Siamashka +Copyright (C) 2013-2014, Linaro Limited. All Rights Reserved. +Author: Ragesh Radhakrishnan +Copyright (C) 2014-2016, D. R. Commander. All Rights Reserved. +Copyright (C) 2015-2016, Matthieu Darbois. All Rights Reserved. +Copyright (C) 2016, Siarhei Siamashka. All Rights Reserved. + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +==================================================================================================== + +==================================================================================================== +LIBRARY: libjpeg-turbo +ORIGIN: ../../../third_party/libjpeg-turbo/simd/jsimd_arm_neon.S +TYPE: LicenseType.zlib +FILE: ../../../third_party/libjpeg-turbo/simd/jsimd_arm_neon.S +---------------------------------------------------------------------------------------------------- +Copyright (C) 2009-2011, Nokia Corporation and/or its subsidiary(-ies). +All Rights Reserved. +Author: Siarhei Siamashka +Copyright (C) 2014, Siarhei Siamashka. All Rights Reserved. +Copyright (C) 2014, Linaro Limited. All Rights Reserved. +Copyright (C) 2015, D. R. Commander. All Rights Reserved. +Copyright (C) 2015-2016, Matthieu Darbois. All Rights Reserved. + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +==================================================================================================== + +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-gobject-enums.cc.tmpl +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-gobject-enums.cc.tmpl +FILE: ../../../third_party/harfbuzz/src/hb-gobject-structs.h +FILE: ../../../third_party/harfbuzz/src/hb-gobject.h +---------------------------------------------------------------------------------------------------- +Copyright (C) 2011 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== + +==================================================================================================== +LIBRARY: libjpeg-turbo +ORIGIN: ../../../third_party/libjpeg-turbo/simd/jcgray-sse2-64.asm + ../../../third_party/libjpeg-turbo/simd/jsimdext.inc +TYPE: LicenseType.zlib +FILE: ../../../third_party/libjpeg-turbo/simd/jcgray-sse2-64.asm +FILE: ../../../third_party/libjpeg-turbo/simd/jcgray-sse2.asm +FILE: ../../../third_party/libjpeg-turbo/simd/jcgryext-sse2-64.asm +FILE: ../../../third_party/libjpeg-turbo/simd/jcgryext-sse2.asm +---------------------------------------------------------------------------------------------------- +Copyright (C) 2011, D. R. Commander. + +Based on the x86 SIMD extension for IJG JPEG library +Copyright (C) 1999-2006, MIYASAKA Masaru. + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +==================================================================================================== + +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-ucd.cc +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-ucd.cc +---------------------------------------------------------------------------------------------------- +Copyright (C) 2012 Grigori Goronzy + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +==================================================================================================== + +==================================================================================================== +LIBRARY: xxhash +ORIGIN: ../../../third_party/angle/src/common/third_party/xxhash/xxhash.c +TYPE: LicenseType.bsd +FILE: ../../../third_party/angle/src/common/third_party/xxhash/xxhash.c +---------------------------------------------------------------------------------------------------- +Copyright (C) 2012-2016, Yann Collet + +BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php) + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +* Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. +* Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: xxhash +ORIGIN: ../../../third_party/angle/src/common/third_party/xxhash/xxhash.h +TYPE: LicenseType.bsd +FILE: ../../../third_party/angle/src/common/third_party/xxhash/xxhash.h +---------------------------------------------------------------------------------------------------- +Copyright (C) 2012-2016, Yann Collet. + +BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php) + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-gobject-enums.h.tmpl +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-gobject-enums.h.tmpl +---------------------------------------------------------------------------------------------------- +Copyright (C) 2013 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== + +==================================================================================================== +LIBRARY: zlib +ORIGIN: ../../../third_party/zlib/crc_folding.c + ../../../third_party/zlib/zlib.h +TYPE: LicenseType.zlib +FILE: ../../../third_party/zlib/crc_folding.c +---------------------------------------------------------------------------------------------------- +Copyright (C) 2013 Intel Corporation. All rights reserved. +Authors: + Wajdi Feghali + Jim Guilford + Vinodh Gopal + Erdinc Ozturk + Jim Kukunas + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +==================================================================================================== + +==================================================================================================== +LIBRARY: libjpeg-turbo +ORIGIN: ../../../third_party/libjpeg-turbo/simd/jsimd_mips_dspr2_asm.h +TYPE: LicenseType.zlib +FILE: ../../../third_party/libjpeg-turbo/simd/jsimd_mips_dspr2_asm.h +---------------------------------------------------------------------------------------------------- +Copyright (C) 2013, MIPS Technologies, Inc., California. +All Rights Reserved. +Authors: Teodora Novkovic (teodora.novkovic@imgtec.com) + Darko Laus (darko.laus@imgtec.com) +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +==================================================================================================== + +==================================================================================================== +LIBRARY: libjpeg-turbo +ORIGIN: ../../../third_party/libjpeg-turbo/simd/jsimd_mips_dspr2.S +TYPE: LicenseType.zlib +FILE: ../../../third_party/libjpeg-turbo/simd/jsimd_mips_dspr2.S +---------------------------------------------------------------------------------------------------- +Copyright (C) 2013-2014, MIPS Technologies, Inc., California. +All Rights Reserved. +Authors: Teodora Novkovic (teodora.novkovic@imgtec.com) + Darko Laus (darko.laus@imgtec.com) +Copyright (C) 2015, D. R. Commander. All Rights Reserved. +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +==================================================================================================== + +==================================================================================================== +LIBRARY: libjpeg-turbo +ORIGIN: ../../../third_party/libjpeg-turbo/simd/jccolor-altivec.c +TYPE: LicenseType.zlib +FILE: ../../../third_party/libjpeg-turbo/simd/jccolor-altivec.c +FILE: ../../../third_party/libjpeg-turbo/simd/jcgray-altivec.c +FILE: ../../../third_party/libjpeg-turbo/simd/jfdctfst-altivec.c +FILE: ../../../third_party/libjpeg-turbo/simd/jfdctint-altivec.c +---------------------------------------------------------------------------------------------------- +Copyright (C) 2014, D. R. Commander. All Rights Reserved. + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +==================================================================================================== + +==================================================================================================== +LIBRARY: libjpeg-turbo +ORIGIN: ../../../third_party/libjpeg-turbo/simd/jidctfst-altivec.c +TYPE: LicenseType.zlib +FILE: ../../../third_party/libjpeg-turbo/simd/jidctfst-altivec.c +FILE: ../../../third_party/libjpeg-turbo/simd/jidctint-altivec.c +FILE: ../../../third_party/libjpeg-turbo/simd/jquanti-altivec.c +FILE: ../../../third_party/libjpeg-turbo/simd/jsimd_altivec.h +---------------------------------------------------------------------------------------------------- +Copyright (C) 2014-2015, D. R. Commander. All Rights Reserved. + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +==================================================================================================== + +==================================================================================================== +LIBRARY: libjpeg-turbo +ORIGIN: ../../../third_party/libjpeg-turbo/simd/jccolext-altivec.c +TYPE: LicenseType.zlib +FILE: ../../../third_party/libjpeg-turbo/simd/jccolext-altivec.c +FILE: ../../../third_party/libjpeg-turbo/simd/jcgryext-altivec.c +---------------------------------------------------------------------------------------------------- +Copyright (C) 2014-2015, D. R. Commander. All Rights Reserved. +Copyright (C) 2014, Jay Foad. All Rights Reserved. + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +==================================================================================================== + +==================================================================================================== +LIBRARY: libjpeg-turbo +ORIGIN: ../../../third_party/libjpeg-turbo/simd/jcsample-altivec.c +TYPE: LicenseType.zlib +FILE: ../../../third_party/libjpeg-turbo/simd/jcsample-altivec.c +FILE: ../../../third_party/libjpeg-turbo/simd/jdcolext-altivec.c +FILE: ../../../third_party/libjpeg-turbo/simd/jdcolor-altivec.c +FILE: ../../../third_party/libjpeg-turbo/simd/jdmerge-altivec.c +FILE: ../../../third_party/libjpeg-turbo/simd/jdmrgext-altivec.c +FILE: ../../../third_party/libjpeg-turbo/simd/jdsample-altivec.c +---------------------------------------------------------------------------------------------------- +Copyright (C) 2015, D. R. Commander. All Rights Reserved. + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +==================================================================================================== + +==================================================================================================== +LIBRARY: icu +ORIGIN: ../../../third_party/icu/LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/icu/DIR_METADATA +FILE: ../../../third_party/icu/android/icudtl.dat +FILE: ../../../third_party/icu/cast/brkitr.patch +FILE: ../../../third_party/icu/cast/icudtl.dat +FILE: ../../../third_party/icu/chromeos/icudtl.dat +FILE: ../../../third_party/icu/chromeos/icudtl.dat.hash +FILE: ../../../third_party/icu/common/icudtb.dat +FILE: ../../../third_party/icu/common/icudtl.dat +FILE: ../../../third_party/icu/flutter/brkitr.patch +FILE: ../../../third_party/icu/flutter/icudtl.dat +FILE: ../../../third_party/icu/fuzzers/fuzzer_utils.h +FILE: ../../../third_party/icu/fuzzers/icu_appendable_fuzzer.cc +FILE: ../../../third_party/icu/fuzzers/icu_break_iterator_fuzzer.cc +FILE: ../../../third_party/icu/fuzzers/icu_break_iterator_utf32_fuzzer.cc +FILE: ../../../third_party/icu/fuzzers/icu_number_format_fuzzer.cc +FILE: ../../../third_party/icu/fuzzers/icu_to_case_fuzzer.cc +FILE: ../../../third_party/icu/fuzzers/icu_ucasemap_fuzzer.cc +FILE: ../../../third_party/icu/ios/icudtl.dat +FILE: ../../../third_party/icu/patches/AliasDataBuilder-readAlias.patch +FILE: ../../../third_party/icu/patches/DateIntervalFormatnormalizeHourMetacharacters.patch +FILE: ../../../third_party/icu/patches/ardatepattern.patch +FILE: ../../../third_party/icu/patches/atomic_template_instantiation.patch +FILE: ../../../third_party/icu/patches/calendar-get-out-of-bound.patch +FILE: ../../../third_party/icu/patches/calendar-get-out-of-bound2.patch +FILE: ../../../third_party/icu/patches/calendar_return_error_early.patch +FILE: ../../../third_party/icu/patches/cjdict.patch +FILE: ../../../third_party/icu/patches/collationdatabuilder.patch +FILE: ../../../third_party/icu/patches/configure.patch +FILE: ../../../third_party/icu/patches/cxx20enum.patch +FILE: ../../../third_party/icu/patches/data_symb.patch +FILE: ../../../third_party/icu/patches/formatted_string_builder.patch +FILE: ../../../third_party/icu/patches/fuchsia.patch +FILE: ../../../third_party/icu/patches/gb_table.patch +FILE: ../../../third_party/icu/patches/iso2022jp.patch +FILE: ../../../third_party/icu/patches/isvalidenum.patch +FILE: ../../../third_party/icu/patches/khmer-dictbe.patch +FILE: ../../../third_party/icu/patches/locale1.patch +FILE: ../../../third_party/icu/patches/locale_google.patch +FILE: ../../../third_party/icu/patches/number_range_format.patch +FILE: ../../../third_party/icu/patches/restrace.patch +FILE: ../../../third_party/icu/patches/rmATOMIC_VAR_INIT.patch +FILE: ../../../third_party/icu/patches/timezone-rawoffset.patch +FILE: ../../../third_party/icu/patches/unused-var-unary-operators.patch +FILE: ../../../third_party/icu/patches/wordbrk.patch +FILE: ../../../third_party/icu/patches/wpo.patch +FILE: ../../../third_party/icu/source/data/in/coll/ucadata-implicithan.icu +FILE: ../../../third_party/icu/source/data/in/coll/ucadata-unihan.icu +FILE: ../../../third_party/icu/source/data/in/nfc.nrm +FILE: ../../../third_party/icu/source/data/in/nfkc.nrm +FILE: ../../../third_party/icu/source/data/in/nfkc_cf.nrm +FILE: ../../../third_party/icu/source/data/in/pnames.icu +FILE: ../../../third_party/icu/source/data/in/ubidi.icu +FILE: ../../../third_party/icu/source/data/in/ucase.icu +FILE: ../../../third_party/icu/source/data/in/uemoji.icu +FILE: ../../../third_party/icu/source/data/in/ulayout.icu +FILE: ../../../third_party/icu/source/data/in/unames.icu +FILE: ../../../third_party/icu/source/data/in/uprops.icu +FILE: ../../../third_party/icu/source/data/in/uts46.nrm +FILE: ../../../third_party/icu/source/data/mappings/big5-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/euc-jp-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/euc-kr-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/gb18030.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm866-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-10-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-13-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-14-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-15-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-16-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-2-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-3-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-4-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-5-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-6-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-7-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-8-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/koi8-r-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/koi8-u-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/macintosh-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/shift_jis-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1250-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1251-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1252-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1253-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1254-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1255-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1256-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1257-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1258-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-874-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-936-2000.ucm +FILE: ../../../third_party/icu/source/data/mappings/x-mac-cyrillic-html.ucm +FILE: ../../../third_party/icu/source/extra/scrptrun/srtest.dsp +FILE: ../../../third_party/icu/source/extra/scrptrun/srtest.dsw +FILE: ../../../third_party/icu/source/tools/tzcode/asctime.c +FILE: ../../../third_party/icu/source/tools/tzcode/ialloc.c +FILE: ../../../third_party/icu/source/tools/tzcode/localtime.c +FILE: ../../../third_party/icu/source/tools/tzcode/private.h +FILE: ../../../third_party/icu/source/tools/tzcode/scheck.c +FILE: ../../../third_party/icu/source/tools/tzcode/tzfile.h +FILE: ../../../third_party/icu/source/tools/tzcode/tzselect.ksh +FILE: ../../../third_party/icu/source/tools/tzcode/zdump.c +FILE: ../../../third_party/icu/source/tools/tzcode/zic.c +FILE: ../../../third_party/icu/tzres/metaZones.res +FILE: ../../../third_party/icu/tzres/timezoneTypes.res +FILE: ../../../third_party/icu/tzres/zoneinfo64.res +---------------------------------------------------------------------------------------------------- +Copyright (C) 2016 and later: Unicode, Inc. and others. +License & terms of use: http://www.unicode.org/copyright.html +Copyright (c) 2015 International Business Machines Corporation +and others. All Rights Reserved. + +Project: https://github.com/rober42539/lao-dictionary +Dictionary: https://github.com/rober42539/lao-dictionary/laodict.txt +License: https://github.com/rober42539/lao-dictionary/LICENSE.txt + (copied below) + + This file is derived from the above dictionary version of Nov 22, 2020 + + Copyright (C) 2013 Brian Eugene Wilson, Robert Martin Campbell. + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. Redistributions in binary + form must reproduce the above copyright notice, this list of conditions and + the following disclaimer in the documentation and/or other materials + provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: zlib +ORIGIN: ../../../third_party/zlib/contrib/optimizations/chunkcopy.h + ../../../LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/zlib/contrib/optimizations/chunkcopy.h +---------------------------------------------------------------------------------------------------- +Copyright (C) 2017 ARM, Inc. +Copyright 2017 The Chromium Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: libtess2 +ORIGIN: ../../../third_party/libtess2/Include/tesselator.h +TYPE: LicenseType.mit +FILE: ../../../third_party/libtess2/Include/tesselator.h +FILE: ../../../third_party/libtess2/Source/bucketalloc.c +FILE: ../../../third_party/libtess2/Source/bucketalloc.h +FILE: ../../../third_party/libtess2/Source/dict.c +FILE: ../../../third_party/libtess2/Source/dict.h +FILE: ../../../third_party/libtess2/Source/geom.c +FILE: ../../../third_party/libtess2/Source/geom.h +FILE: ../../../third_party/libtess2/Source/mesh.c +FILE: ../../../third_party/libtess2/Source/mesh.h +FILE: ../../../third_party/libtess2/Source/priorityq.c +FILE: ../../../third_party/libtess2/Source/priorityq.h +FILE: ../../../third_party/libtess2/Source/sweep.c +FILE: ../../../third_party/libtess2/Source/sweep.h +FILE: ../../../third_party/libtess2/Source/tess.c +FILE: ../../../third_party/libtess2/Source/tess.h +---------------------------------------------------------------------------------------------------- +Copyright (C) [dates of first publication] Silicon Graphics, Inc. +All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice including the dates of first publication and either this +permission notice or a reference to http://oss.sgi.com/projects/FreeB/ shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL SILICON GRAPHICS, INC. +BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE +OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of Silicon Graphics, Inc. shall not +be used in advertising or otherwise to promote the sale, use or other dealings in +this Software without prior written authorization from Silicon Graphics, Inc. +==================================================================================================== + +==================================================================================================== +LIBRARY: libjpeg-turbo +ORIGIN: ../../../third_party/libjpeg-turbo/tjunittest.c +TYPE: LicenseType.bsd +FILE: ../../../third_party/libjpeg-turbo/tjunittest.c +---------------------------------------------------------------------------------------------------- +Copyright (C)2009-2014 D. R. Commander. All Rights Reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +- Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. +- Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. +- Neither the name of the libjpeg-turbo Project nor the names of its + contributors may be used to endorse or promote products derived from this + software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS", +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: libjpeg-turbo +ORIGIN: ../../../third_party/libjpeg-turbo/turbojpeg.h +TYPE: LicenseType.bsd +FILE: ../../../third_party/libjpeg-turbo/turbojpeg.h +---------------------------------------------------------------------------------------------------- +Copyright (C)2009-2015 D. R. Commander. All Rights Reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +- Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. +- Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. +- Neither the name of the libjpeg-turbo Project nor the names of its + contributors may be used to endorse or promote products derived from this + software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS", +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: libjpeg-turbo +ORIGIN: ../../../third_party/libjpeg-turbo/turbojpeg.c +TYPE: LicenseType.bsd +FILE: ../../../third_party/libjpeg-turbo/jconfig.h +FILE: ../../../third_party/libjpeg-turbo/jconfig.h.in +FILE: ../../../third_party/libjpeg-turbo/jconfigint.h +FILE: ../../../third_party/libjpeg-turbo/jconfigint.h.in +FILE: ../../../third_party/libjpeg-turbo/jpeg_nbits_table.h +FILE: ../../../third_party/libjpeg-turbo/libjpeg.map.in +FILE: ../../../third_party/libjpeg-turbo/simd/jpeg_nbits_table.inc +FILE: ../../../third_party/libjpeg-turbo/simd/jsimdcfg.inc +FILE: ../../../third_party/libjpeg-turbo/simd/jsimdcfg.inc.h +FILE: ../../../third_party/libjpeg-turbo/tjbench.c +FILE: ../../../third_party/libjpeg-turbo/turbojpeg-mapfile +FILE: ../../../third_party/libjpeg-turbo/turbojpeg-mapfile.jni +FILE: ../../../third_party/libjpeg-turbo/turbojpeg.c +---------------------------------------------------------------------------------------------------- +Copyright (C)2009-2016 D. R. Commander. All Rights Reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +- Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. +- Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. +- Neither the name of the libjpeg-turbo Project nor the names of its + contributors may be used to endorse or promote products derived from this + software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS", +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: libjpeg-turbo +ORIGIN: ../../../third_party/libjpeg-turbo/bmp.h +TYPE: LicenseType.bsd +FILE: ../../../third_party/libjpeg-turbo/bmp.h +FILE: ../../../third_party/libjpeg-turbo/jcstest.c +FILE: ../../../third_party/libjpeg-turbo/tjutil.c +FILE: ../../../third_party/libjpeg-turbo/tjutil.h +---------------------------------------------------------------------------------------------------- +Copyright (C)2011 D. R. Commander. All Rights Reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +- Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. +- Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. +- Neither the name of the libjpeg-turbo Project nor the names of its + contributors may be used to endorse or promote products derived from this + software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS", +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: libjpeg-turbo +ORIGIN: ../../../third_party/libjpeg-turbo/bmp.c +TYPE: LicenseType.bsd +FILE: ../../../third_party/libjpeg-turbo/bmp.c +---------------------------------------------------------------------------------------------------- +Copyright (C)2011, 2015 D. R. Commander. All Rights Reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +- Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. +- Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. +- Neither the name of the libjpeg-turbo Project nor the names of its + contributors may be used to endorse or promote products derived from this + software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS", +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: libjpeg-turbo +ORIGIN: ../../../third_party/libjpeg-turbo/turbojpeg-jni.c +TYPE: LicenseType.bsd +FILE: ../../../third_party/libjpeg-turbo/turbojpeg-jni.c +---------------------------------------------------------------------------------------------------- +Copyright (C)2011-2016 D. R. Commander. All Rights Reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +- Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. +- Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. +- Neither the name of the libjpeg-turbo Project nor the names of its + contributors may be used to endorse or promote products derived from this + software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS", +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: icu +ORIGIN: ../../../third_party/icu/LICENSE +TYPE: LicenseType.icu +FILE: ../../../third_party/icu/DIR_METADATA +FILE: ../../../third_party/icu/android/icudtl.dat +FILE: ../../../third_party/icu/cast/brkitr.patch +FILE: ../../../third_party/icu/cast/icudtl.dat +FILE: ../../../third_party/icu/chromeos/icudtl.dat +FILE: ../../../third_party/icu/chromeos/icudtl.dat.hash +FILE: ../../../third_party/icu/common/icudtb.dat +FILE: ../../../third_party/icu/common/icudtl.dat +FILE: ../../../third_party/icu/flutter/brkitr.patch +FILE: ../../../third_party/icu/flutter/icudtl.dat +FILE: ../../../third_party/icu/fuzzers/fuzzer_utils.h +FILE: ../../../third_party/icu/fuzzers/icu_appendable_fuzzer.cc +FILE: ../../../third_party/icu/fuzzers/icu_break_iterator_fuzzer.cc +FILE: ../../../third_party/icu/fuzzers/icu_break_iterator_utf32_fuzzer.cc +FILE: ../../../third_party/icu/fuzzers/icu_number_format_fuzzer.cc +FILE: ../../../third_party/icu/fuzzers/icu_to_case_fuzzer.cc +FILE: ../../../third_party/icu/fuzzers/icu_ucasemap_fuzzer.cc +FILE: ../../../third_party/icu/ios/icudtl.dat +FILE: ../../../third_party/icu/patches/AliasDataBuilder-readAlias.patch +FILE: ../../../third_party/icu/patches/DateIntervalFormatnormalizeHourMetacharacters.patch +FILE: ../../../third_party/icu/patches/ardatepattern.patch +FILE: ../../../third_party/icu/patches/atomic_template_instantiation.patch +FILE: ../../../third_party/icu/patches/calendar-get-out-of-bound.patch +FILE: ../../../third_party/icu/patches/calendar-get-out-of-bound2.patch +FILE: ../../../third_party/icu/patches/calendar_return_error_early.patch +FILE: ../../../third_party/icu/patches/cjdict.patch +FILE: ../../../third_party/icu/patches/collationdatabuilder.patch +FILE: ../../../third_party/icu/patches/configure.patch +FILE: ../../../third_party/icu/patches/cxx20enum.patch +FILE: ../../../third_party/icu/patches/data_symb.patch +FILE: ../../../third_party/icu/patches/formatted_string_builder.patch +FILE: ../../../third_party/icu/patches/fuchsia.patch +FILE: ../../../third_party/icu/patches/gb_table.patch +FILE: ../../../third_party/icu/patches/iso2022jp.patch +FILE: ../../../third_party/icu/patches/isvalidenum.patch +FILE: ../../../third_party/icu/patches/khmer-dictbe.patch +FILE: ../../../third_party/icu/patches/locale1.patch +FILE: ../../../third_party/icu/patches/locale_google.patch +FILE: ../../../third_party/icu/patches/number_range_format.patch +FILE: ../../../third_party/icu/patches/restrace.patch +FILE: ../../../third_party/icu/patches/rmATOMIC_VAR_INIT.patch +FILE: ../../../third_party/icu/patches/timezone-rawoffset.patch +FILE: ../../../third_party/icu/patches/unused-var-unary-operators.patch +FILE: ../../../third_party/icu/patches/wordbrk.patch +FILE: ../../../third_party/icu/patches/wpo.patch +FILE: ../../../third_party/icu/source/data/in/coll/ucadata-implicithan.icu +FILE: ../../../third_party/icu/source/data/in/coll/ucadata-unihan.icu +FILE: ../../../third_party/icu/source/data/in/nfc.nrm +FILE: ../../../third_party/icu/source/data/in/nfkc.nrm +FILE: ../../../third_party/icu/source/data/in/nfkc_cf.nrm +FILE: ../../../third_party/icu/source/data/in/pnames.icu +FILE: ../../../third_party/icu/source/data/in/ubidi.icu +FILE: ../../../third_party/icu/source/data/in/ucase.icu +FILE: ../../../third_party/icu/source/data/in/uemoji.icu +FILE: ../../../third_party/icu/source/data/in/ulayout.icu +FILE: ../../../third_party/icu/source/data/in/unames.icu +FILE: ../../../third_party/icu/source/data/in/uprops.icu +FILE: ../../../third_party/icu/source/data/in/uts46.nrm +FILE: ../../../third_party/icu/source/data/mappings/big5-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/euc-jp-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/euc-kr-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/gb18030.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm866-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-10-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-13-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-14-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-15-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-16-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-2-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-3-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-4-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-5-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-6-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-7-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-8-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/koi8-r-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/koi8-u-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/macintosh-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/shift_jis-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1250-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1251-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1252-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1253-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1254-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1255-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1256-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1257-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1258-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-874-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-936-2000.ucm +FILE: ../../../third_party/icu/source/data/mappings/x-mac-cyrillic-html.ucm +FILE: ../../../third_party/icu/source/extra/scrptrun/srtest.dsp +FILE: ../../../third_party/icu/source/extra/scrptrun/srtest.dsw +FILE: ../../../third_party/icu/source/tools/tzcode/asctime.c +FILE: ../../../third_party/icu/source/tools/tzcode/ialloc.c +FILE: ../../../third_party/icu/source/tools/tzcode/localtime.c +FILE: ../../../third_party/icu/source/tools/tzcode/private.h +FILE: ../../../third_party/icu/source/tools/tzcode/scheck.c +FILE: ../../../third_party/icu/source/tools/tzcode/tzfile.h +FILE: ../../../third_party/icu/source/tools/tzcode/tzselect.ksh +FILE: ../../../third_party/icu/source/tools/tzcode/zdump.c +FILE: ../../../third_party/icu/source/tools/tzcode/zic.c +FILE: ../../../third_party/icu/tzres/metaZones.res +FILE: ../../../third_party/icu/tzres/timezoneTypes.res +FILE: ../../../third_party/icu/tzres/zoneinfo64.res +---------------------------------------------------------------------------------------------------- +Copyright (c) 1995-2016 International Business Machines Corporation and others +All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, and/or sell copies of the Software, and to permit persons +to whom the Software is furnished to do so, provided that the above +copyright notice(s) and this permission notice appear in all copies of +the Software and that both the above copyright notice(s) and this +permission notice appear in supporting documentation. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY +SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER +RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF +CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN +CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +Except as contained in this notice, the name of a copyright holder +shall not be used in advertising or otherwise to promote the sale, use +or other dealings in this Software without prior written authorization +of the copyright holder. + +All trademarks and registered trademarks mentioned herein are the +property of their respective owners. +==================================================================================================== + +==================================================================================================== +LIBRARY: expat +ORIGIN: ../../../third_party/expat/expat/lib/expat_external.h +TYPE: LicenseType.mit +FILE: ../../../third_party/expat/expat/lib/expat_external.h +---------------------------------------------------------------------------------------------------- +Copyright (c) 1997-2000 Thai Open Source Software Center Ltd +Copyright (c) 2000 Clark Cooper +Copyright (c) 2000-2004 Fred L. Drake, Jr. +Copyright (c) 2001-2002 Greg Stein +Copyright (c) 2002-2006 Karl Waclawek +Copyright (c) 2016 Cristian Rodríguez +Copyright (c) 2016-2019 Sebastian Pipping +Copyright (c) 2017 Rhodri James +Copyright (c) 2018 Yury Gribov +Licensed under the MIT license: + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the +following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. +==================================================================================================== + +==================================================================================================== +LIBRARY: expat +ORIGIN: ../../../third_party/expat/expat/lib/expat.h +TYPE: LicenseType.mit +FILE: ../../../third_party/expat/expat/lib/expat.h +---------------------------------------------------------------------------------------------------- +Copyright (c) 1997-2000 Thai Open Source Software Center Ltd +Copyright (c) 2000 Clark Cooper +Copyright (c) 2000-2005 Fred L. Drake, Jr. +Copyright (c) 2001-2002 Greg Stein +Copyright (c) 2002-2016 Karl Waclawek +Copyright (c) 2016-2021 Sebastian Pipping +Copyright (c) 2016 Cristian Rodríguez +Copyright (c) 2016 Thomas Beutlich +Copyright (c) 2017 Rhodri James +Licensed under the MIT license: + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the +following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. +==================================================================================================== + +==================================================================================================== +LIBRARY: expat +ORIGIN: ../../../third_party/expat/expat/lib/xmlparse.c +TYPE: LicenseType.mit +FILE: ../../../third_party/expat/expat/lib/xmlparse.c +---------------------------------------------------------------------------------------------------- +Copyright (c) 1997-2000 Thai Open Source Software Center Ltd +Copyright (c) 2000 Clark Cooper +Copyright (c) 2000-2006 Fred L. Drake, Jr. +Copyright (c) 2001-2002 Greg Stein +Copyright (c) 2002-2016 Karl Waclawek +Copyright (c) 2005-2009 Steven Solie +Copyright (c) 2016 Eric Rahm +Copyright (c) 2016-2021 Sebastian Pipping +Copyright (c) 2016 Gaurav +Copyright (c) 2016 Thomas Beutlich +Copyright (c) 2016 Gustavo Grieco +Copyright (c) 2016 Pascal Cuoq +Copyright (c) 2016 Ed Schouten +Copyright (c) 2017-2018 Rhodri James +Copyright (c) 2017 Václav Slavík +Copyright (c) 2017 Viktor Szakats +Copyright (c) 2017 Chanho Park +Copyright (c) 2017 Rolf Eike Beer +Copyright (c) 2017 Hans Wennborg +Copyright (c) 2018 Anton Maklakov +Copyright (c) 2018 Benjamin Peterson +Copyright (c) 2018 Marco Maggi +Copyright (c) 2018 Mariusz Zaborski +Copyright (c) 2019 David Loffredo +Copyright (c) 2019-2020 Ben Wagner +Copyright (c) 2019 Vadim Zeitlin +Licensed under the MIT license: + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the +following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. +==================================================================================================== + +==================================================================================================== +LIBRARY: expat +ORIGIN: ../../../third_party/expat/expat/xmlwf/unixfilemap.c +TYPE: LicenseType.mit +FILE: ../../../third_party/expat/expat/xmlwf/unixfilemap.c +---------------------------------------------------------------------------------------------------- +Copyright (c) 1997-2000 Thai Open Source Software Center Ltd +Copyright (c) 2000 Clark Cooper +Copyright (c) 2001-2002 Fred L. Drake, Jr. +Copyright (c) 2006 Karl Waclawek +Copyright (c) 2016-2017 Sebastian Pipping +Copyright (c) 2017 Rhodri James +Licensed under the MIT license: + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the +following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. +==================================================================================================== + +==================================================================================================== +LIBRARY: expat +ORIGIN: ../../../third_party/expat/expat/lib/xmltok.c +TYPE: LicenseType.mit +FILE: ../../../third_party/expat/expat/lib/xmltok.c +---------------------------------------------------------------------------------------------------- +Copyright (c) 1997-2000 Thai Open Source Software Center Ltd +Copyright (c) 2000 Clark Cooper +Copyright (c) 2001-2003 Fred L. Drake, Jr. +Copyright (c) 2002 Greg Stein +Copyright (c) 2002-2016 Karl Waclawek +Copyright (c) 2005-2009 Steven Solie +Copyright (c) 2016-2021 Sebastian Pipping +Copyright (c) 2016 Pascal Cuoq +Copyright (c) 2016 Don Lewis +Copyright (c) 2017 Rhodri James +Copyright (c) 2017 Alexander Bluhm +Copyright (c) 2017 Benbuck Nason +Copyright (c) 2017 José Gutiérrez de la Concha +Copyright (c) 2019 David Loffredo +Licensed under the MIT license: + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the +following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. +==================================================================================================== + +==================================================================================================== +LIBRARY: expat +ORIGIN: ../../../third_party/expat/expat/xmlwf/xmlwf.c +TYPE: LicenseType.mit +FILE: ../../../third_party/expat/expat/xmlwf/xmlwf.c +---------------------------------------------------------------------------------------------------- +Copyright (c) 1997-2000 Thai Open Source Software Center Ltd +Copyright (c) 2000 Clark Cooper +Copyright (c) 2001-2003 Fred L. Drake, Jr. +Copyright (c) 2004-2009 Karl Waclawek +Copyright (c) 2005-2007 Steven Solie +Copyright (c) 2016-2021 Sebastian Pipping +Copyright (c) 2017 Rhodri James +Copyright (c) 2019 David Loffredo +Copyright (c) 2020 Joe Orton +Copyright (c) 2020 Kleber Tarcísio +Copyright (c) 2021 Tim Bray +Licensed under the MIT license: + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the +following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. +==================================================================================================== + +==================================================================================================== +LIBRARY: expat +ORIGIN: ../../../third_party/expat/expat/xmlwf/readfilemap.c +TYPE: LicenseType.mit +FILE: ../../../third_party/expat/expat/xmlwf/readfilemap.c +---------------------------------------------------------------------------------------------------- +Copyright (c) 1997-2000 Thai Open Source Software Center Ltd +Copyright (c) 2000 Clark Cooper +Copyright (c) 2001-2004 Fred L. Drake, Jr. +Copyright (c) 2002-2009 Karl Waclawek +Copyright (c) 2016-2017 Sebastian Pipping +Copyright (c) 2017 Rhodri James +Copyright (c) 2017 Franek Korta +Licensed under the MIT license: + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the +following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. +==================================================================================================== + +==================================================================================================== +LIBRARY: expat +ORIGIN: ../../../third_party/expat/expat/lib/xmltok.h +TYPE: LicenseType.mit +FILE: ../../../third_party/expat/expat/lib/xmltok.h +---------------------------------------------------------------------------------------------------- +Copyright (c) 1997-2000 Thai Open Source Software Center Ltd +Copyright (c) 2000 Clark Cooper +Copyright (c) 2002 Fred L. Drake, Jr. +Copyright (c) 2002-2005 Karl Waclawek +Copyright (c) 2016-2017 Sebastian Pipping +Copyright (c) 2017 Rhodri James +Licensed under the MIT license: + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the +following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. +==================================================================================================== + +==================================================================================================== +LIBRARY: expat +ORIGIN: ../../../third_party/expat/expat/lib/xmltok_impl.c +TYPE: LicenseType.mit +FILE: ../../../third_party/expat/expat/lib/xmltok_impl.c +---------------------------------------------------------------------------------------------------- +Copyright (c) 1997-2000 Thai Open Source Software Center Ltd +Copyright (c) 2000 Clark Cooper +Copyright (c) 2002 Fred L. Drake, Jr. +Copyright (c) 2002-2016 Karl Waclawek +Copyright (c) 2016-2021 Sebastian Pipping +Copyright (c) 2017 Rhodri James +Copyright (c) 2018 Benjamin Peterson +Copyright (c) 2018 Anton Maklakov +Copyright (c) 2019 David Loffredo +Copyright (c) 2020 Boris Kolpackov +Licensed under the MIT license: + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the +following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. +==================================================================================================== + +==================================================================================================== +LIBRARY: expat +ORIGIN: ../../../third_party/expat/expat/xmlwf/xmlfile.h +TYPE: LicenseType.mit +FILE: ../../../third_party/expat/expat/xmlwf/xmlfile.h +---------------------------------------------------------------------------------------------------- +Copyright (c) 1997-2000 Thai Open Source Software Center Ltd +Copyright (c) 2000 Clark Cooper +Copyright (c) 2002 Fred L. Drake, Jr. +Copyright (c) 2005 Karl Waclawek +Copyright (c) 2016-2019 Sebastian Pipping +Licensed under the MIT license: + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the +following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. +==================================================================================================== + +==================================================================================================== +LIBRARY: expat +ORIGIN: ../../../third_party/expat/expat/xmlwf/codepage.c +TYPE: LicenseType.mit +FILE: ../../../third_party/expat/expat/xmlwf/codepage.c +---------------------------------------------------------------------------------------------------- +Copyright (c) 1997-2000 Thai Open Source Software Center Ltd +Copyright (c) 2000 Clark Cooper +Copyright (c) 2002 Fred L. Drake, Jr. +Copyright (c) 2005-2006 Karl Waclawek +Copyright (c) 2016-2019 Sebastian Pipping +Copyright (c) 2019 David Loffredo +Licensed under the MIT license: + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the +following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. +==================================================================================================== + +==================================================================================================== +LIBRARY: expat +ORIGIN: ../../../third_party/expat/expat/gennmtab/gennmtab.c +TYPE: LicenseType.mit +FILE: ../../../third_party/expat/expat/gennmtab/gennmtab.c +FILE: ../../../third_party/expat/expat/xmlwf/codepage.h +FILE: ../../../third_party/expat/expat/xmlwf/filemap.h +FILE: ../../../third_party/expat/expat/xmlwf/win32filemap.c +---------------------------------------------------------------------------------------------------- +Copyright (c) 1997-2000 Thai Open Source Software Center Ltd +Copyright (c) 2000 Clark Cooper +Copyright (c) 2002 Fred L. Drake, Jr. +Copyright (c) 2016-2017 Sebastian Pipping +Licensed under the MIT license: + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the +following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. +==================================================================================================== + +==================================================================================================== +LIBRARY: expat +ORIGIN: ../../../third_party/expat/expat/lib/asciitab.h +TYPE: LicenseType.mit +FILE: ../../../third_party/expat/expat/lib/asciitab.h +FILE: ../../../third_party/expat/expat/lib/iasciitab.h +FILE: ../../../third_party/expat/expat/lib/latin1tab.h +FILE: ../../../third_party/expat/expat/lib/utf8tab.h +---------------------------------------------------------------------------------------------------- +Copyright (c) 1997-2000 Thai Open Source Software Center Ltd +Copyright (c) 2000 Clark Cooper +Copyright (c) 2002 Fred L. Drake, Jr. +Copyright (c) 2017 Sebastian Pipping +Licensed under the MIT license: + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the +following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. +==================================================================================================== + +==================================================================================================== +LIBRARY: expat +ORIGIN: ../../../third_party/expat/expat/lib/xmltok_ns.c +TYPE: LicenseType.mit +FILE: ../../../third_party/expat/expat/lib/xmltok_ns.c +---------------------------------------------------------------------------------------------------- +Copyright (c) 1997-2000 Thai Open Source Software Center Ltd +Copyright (c) 2000 Clark Cooper +Copyright (c) 2002 Greg Stein +Copyright (c) 2002 Fred L. Drake, Jr. +Copyright (c) 2002-2006 Karl Waclawek +Copyright (c) 2017 Sebastian Pipping +Licensed under the MIT license: + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the +following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. +==================================================================================================== + +==================================================================================================== +LIBRARY: expat +ORIGIN: ../../../third_party/expat/expat/lib/xmlrole.c +TYPE: LicenseType.mit +FILE: ../../../third_party/expat/expat/lib/xmlrole.c +---------------------------------------------------------------------------------------------------- +Copyright (c) 1997-2000 Thai Open Source Software Center Ltd +Copyright (c) 2000 Clark Cooper +Copyright (c) 2002 Greg Stein +Copyright (c) 2002-2006 Karl Waclawek +Copyright (c) 2002-2003 Fred L. Drake, Jr. +Copyright (c) 2005-2009 Steven Solie +Copyright (c) 2016-2021 Sebastian Pipping +Copyright (c) 2017 Rhodri James +Copyright (c) 2019 David Loffredo +Licensed under the MIT license: + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the +following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. +==================================================================================================== + +==================================================================================================== +LIBRARY: expat +ORIGIN: ../../../third_party/expat/expat/lib/xmlrole.h +TYPE: LicenseType.mit +FILE: ../../../third_party/expat/expat/lib/xmlrole.h +---------------------------------------------------------------------------------------------------- +Copyright (c) 1997-2000 Thai Open Source Software Center Ltd +Copyright (c) 2000 Clark Cooper +Copyright (c) 2002 Karl Waclawek +Copyright (c) 2002 Fred L. Drake, Jr. +Copyright (c) 2017 Sebastian Pipping +Licensed under the MIT license: + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the +following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. +==================================================================================================== + +==================================================================================================== +LIBRARY: expat +ORIGIN: ../../../third_party/expat/expat/xmlwf/xmlfile.c +TYPE: LicenseType.mit +FILE: ../../../third_party/expat/expat/xmlwf/xmlfile.c +---------------------------------------------------------------------------------------------------- +Copyright (c) 1997-2000 Thai Open Source Software Center Ltd +Copyright (c) 2000 Clark Cooper +Copyright (c) 2002-2003 Fred L. Drake, Jr. +Copyright (c) 2004-2006 Karl Waclawek +Copyright (c) 2005-2007 Steven Solie +Copyright (c) 2016-2021 Sebastian Pipping +Copyright (c) 2017 Rhodri James +Copyright (c) 2019 David Loffredo +Licensed under the MIT license: + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the +following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. +==================================================================================================== + +==================================================================================================== +LIBRARY: expat +ORIGIN: ../../../third_party/expat/expat/lib/xmltok_impl.h +TYPE: LicenseType.mit +FILE: ../../../third_party/expat/expat/lib/xmltok_impl.h +---------------------------------------------------------------------------------------------------- +Copyright (c) 1997-2000 Thai Open Source Software Center Ltd +Copyright (c) 2000 Clark Cooper +Copyright (c) 2017-2019 Sebastian Pipping +Licensed under the MIT license: + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the +following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. +==================================================================================================== + +==================================================================================================== +LIBRARY: expat +ORIGIN: ../../../third_party/expat/expat/examples/elements.c +TYPE: LicenseType.mit +FILE: ../../../third_party/expat/expat/examples/elements.c +---------------------------------------------------------------------------------------------------- +Copyright (c) 1997-2000 Thai Open Source Software Center Ltd +Copyright (c) 2001-2003 Fred L. Drake, Jr. +Copyright (c) 2004-2006 Karl Waclawek +Copyright (c) 2005-2007 Steven Solie +Copyright (c) 2016-2019 Sebastian Pipping +Copyright (c) 2017 Rhodri James +Copyright (c) 2019 Zhongyuan Zhou +Licensed under the MIT license: + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the +following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. +==================================================================================================== + +==================================================================================================== +LIBRARY: expat +ORIGIN: ../../../third_party/expat/expat/xmlwf/ct.c +TYPE: LicenseType.mit +FILE: ../../../third_party/expat/expat/xmlwf/ct.c +FILE: ../../../third_party/expat/expat/xmlwf/xmlmime.h +---------------------------------------------------------------------------------------------------- +Copyright (c) 1997-2000 Thai Open Source Software Center Ltd +Copyright (c) 2002 Fred L. Drake, Jr. +Copyright (c) 2016-2017 Sebastian Pipping +Licensed under the MIT license: + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the +following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. +==================================================================================================== + +==================================================================================================== +LIBRARY: expat +ORIGIN: ../../../third_party/expat/expat/xmlwf/xmlmime.c +TYPE: LicenseType.mit +FILE: ../../../third_party/expat/expat/xmlwf/xmlmime.c +---------------------------------------------------------------------------------------------------- +Copyright (c) 1997-2000 Thai Open Source Software Center Ltd +Copyright (c) 2002 Fred L. Drake, Jr. +Copyright (c) 2016-2018 Sebastian Pipping +Copyright (c) 2018 Marco Maggi +Licensed under the MIT license: + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the +following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. +==================================================================================================== + +==================================================================================================== +LIBRARY: expat +ORIGIN: ../../../third_party/expat/expat/xmlwf/xmltchar.h +TYPE: LicenseType.mit +FILE: ../../../third_party/expat/expat/xmlwf/xmltchar.h +---------------------------------------------------------------------------------------------------- +Copyright (c) 1997-2000 Thai Open Source Software Center Ltd +Copyright (c) 2016-2021 Sebastian Pipping +Copyright (c) 2017 Rhodri James +Licensed under the MIT license: + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the +following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. +==================================================================================================== + +==================================================================================================== +LIBRARY: icu +ORIGIN: ../../../third_party/icu/source/data/mappings/iso-8859_14-1998.ucm +TYPE: LicenseType.unknown +FILE: ../../../third_party/icu/source/data/mappings/iso-8859_14-1998.ucm +---------------------------------------------------------------------------------------------------- +Copyright (c) 1998 - 1999 Unicode, Inc. All Rights reserved. + Copyright (C) 2002-2005, International Business Machines + Corporation and others. All Rights Reserved. + +This file is provided as-is by Unicode, Inc. (The Unicode Consortium). +No claims are made as to fitness for any particular purpose. No +warranties of any kind are expressed or implied. The recipient +agrees to determine applicability of information provided. If this +file has been provided on optical media by Unicode, Inc., the sole +remedy for any claim will be exchange of defective media within 90 +days of receipt. + +Unicode, Inc. hereby grants the right to freely use the information +supplied in this file in the creation of products supporting the +Unicode Standard, and to make copies of this file in any form for +internal or external distribution as long as this notice remains +attached. +==================================================================================================== + +==================================================================================================== +LIBRARY: expat +ORIGIN: ../../../third_party/expat/expat/COPYING +TYPE: LicenseType.mit +FILE: ../../../third_party/expat/expat/Changes +FILE: ../../../third_party/expat/expat/cmake/autotools/expat-config-version.cmake.in +FILE: ../../../third_party/expat/expat/cmake/autotools/expat-noconfig__linux.cmake.in +FILE: ../../../third_party/expat/expat/cmake/autotools/expat-noconfig__macos.cmake.in +FILE: ../../../third_party/expat/expat/cmake/autotools/expat-noconfig__windows.cmake.in +FILE: ../../../third_party/expat/expat/expat.pc.in +FILE: ../../../third_party/expat/expat/lib/libexpat.def +FILE: ../../../third_party/expat/expat/lib/libexpatw.def +FILE: ../../../third_party/expat/expat/lib/siphash.h +---------------------------------------------------------------------------------------------------- +Copyright (c) 1998-2000 Thai Open Source Software Center Ltd and Clark Cooper +Copyright (c) 2001-2019 Expat maintainers + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +==================================================================================================== + +==================================================================================================== +LIBRARY: boringssl +ORIGIN: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/jacobi.c +TYPE: LicenseType.bsd +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/jacobi.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/sqrt.c +---------------------------------------------------------------------------------------------------- +Copyright (c) 1998-2000 The OpenSSL Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + openssl-core@openssl.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.openssl.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: boringssl +ORIGIN: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/gcd.c +TYPE: LicenseType.bsd +FILE: ../../../third_party/boringssl/src/crypto/ex_data.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/gcd.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/prime.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/random.c +FILE: ../../../third_party/boringssl/src/crypto/internal.h +FILE: ../../../third_party/boringssl/src/include/openssl/base.h +FILE: ../../../third_party/boringssl/src/include/openssl/ex_data.h +---------------------------------------------------------------------------------------------------- +Copyright (c) 1998-2001 The OpenSSL Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + openssl-core@openssl.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.openssl.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: boringssl +ORIGIN: ../../../third_party/boringssl/src/crypto/pem/pem_all.c +TYPE: LicenseType.bsd +FILE: ../../../third_party/boringssl/src/crypto/pem/pem_all.c +FILE: ../../../third_party/boringssl/src/decrepit/dh/dh_decrepit.c +FILE: ../../../third_party/boringssl/src/decrepit/dsa/dsa_decrepit.c +FILE: ../../../third_party/boringssl/src/include/openssl/ssl3.h +FILE: ../../../third_party/boringssl/src/ssl/handshake.cc +FILE: ../../../third_party/boringssl/src/ssl/s3_both.cc +FILE: ../../../third_party/boringssl/src/ssl/s3_pkt.cc +FILE: ../../../third_party/boringssl/src/ssl/tls_record.cc +---------------------------------------------------------------------------------------------------- +Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + openssl-core@openssl.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.openssl.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: boringssl +ORIGIN: ../../../third_party/boringssl/src/crypto/bio/pair.c +TYPE: LicenseType.bsd +FILE: ../../../third_party/boringssl/src/crypto/bio/pair.c +---------------------------------------------------------------------------------------------------- +Copyright (c) 1998-2003 The OpenSSL Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + openssl-core@openssl.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.openssl.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: boringssl +ORIGIN: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/ctx.c +TYPE: LicenseType.bsd +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/ctx.c +---------------------------------------------------------------------------------------------------- +Copyright (c) 1998-2004 The OpenSSL Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + openssl-core@openssl.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.openssl.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: boringssl +ORIGIN: ../../../third_party/boringssl/src/crypto/ecdsa_extra/ecdsa_asn1.c +TYPE: LicenseType.bsd +FILE: ../../../third_party/boringssl/src/crypto/ecdsa_extra/ecdsa_asn1.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/ecdsa/ecdsa.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/ecdsa/ecdsa_test.cc +FILE: ../../../third_party/boringssl/src/include/openssl/ecdsa.h +---------------------------------------------------------------------------------------------------- +Copyright (c) 1998-2005 The OpenSSL Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + openssl-core@OpenSSL.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: boringssl +ORIGIN: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/exponentiation.c +TYPE: LicenseType.bsd +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/exponentiation.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/ec/ec.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/ec/ec_key.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/ec/ec_montgomery.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/ec/internal.h +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/ec/oct.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/ec/simple.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/ec/wnaf.c +FILE: ../../../third_party/boringssl/src/include/openssl/ec.h +FILE: ../../../third_party/boringssl/src/include/openssl/ec_key.h +FILE: ../../../third_party/boringssl/src/ssl/d1_both.cc +FILE: ../../../third_party/boringssl/src/ssl/d1_pkt.cc +FILE: ../../../third_party/boringssl/src/ssl/dtls_record.cc +---------------------------------------------------------------------------------------------------- +Copyright (c) 1998-2005 The OpenSSL Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + openssl-core@openssl.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.openssl.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: boringssl +ORIGIN: ../../../third_party/boringssl/src/crypto/err/err.c +TYPE: LicenseType.bsd +FILE: ../../../third_party/boringssl/src/crypto/err/err.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/internal.h +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/montgomery.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/rsa/blinding.c +FILE: ../../../third_party/boringssl/src/include/openssl/bn.h +FILE: ../../../third_party/boringssl/src/include/openssl/err.h +FILE: ../../../third_party/boringssl/src/include/openssl/tls1.h +FILE: ../../../third_party/boringssl/src/ssl/d1_srtp.cc +FILE: ../../../third_party/boringssl/src/ssl/ssl_session.cc +---------------------------------------------------------------------------------------------------- +Copyright (c) 1998-2006 The OpenSSL Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + openssl-core@openssl.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.openssl.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: boringssl +ORIGIN: ../../../third_party/boringssl/src/crypto/fipsmodule/tls/kdf.c +TYPE: LicenseType.bsd +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/tls/kdf.c +FILE: ../../../third_party/boringssl/src/decrepit/ssl/ssl_decrepit.c +FILE: ../../../third_party/boringssl/src/include/openssl/ssl.h +FILE: ../../../third_party/boringssl/src/ssl/extensions.cc +FILE: ../../../third_party/boringssl/src/ssl/handshake_client.cc +FILE: ../../../third_party/boringssl/src/ssl/handshake_server.cc +FILE: ../../../third_party/boringssl/src/ssl/internal.h +FILE: ../../../third_party/boringssl/src/ssl/s3_lib.cc +FILE: ../../../third_party/boringssl/src/ssl/ssl_cert.cc +FILE: ../../../third_party/boringssl/src/ssl/ssl_cipher.cc +FILE: ../../../third_party/boringssl/src/ssl/ssl_file.cc +FILE: ../../../third_party/boringssl/src/ssl/ssl_lib.cc +FILE: ../../../third_party/boringssl/src/ssl/ssl_transcript.cc +FILE: ../../../third_party/boringssl/src/ssl/ssl_x509.cc +FILE: ../../../third_party/boringssl/src/ssl/t1_enc.cc +---------------------------------------------------------------------------------------------------- +Copyright (c) 1998-2007 The OpenSSL Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + openssl-core@openssl.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.openssl.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: boringssl +ORIGIN: ../../../third_party/boringssl/src/include/openssl/arm_arch.h +TYPE: LicenseType.bsd +FILE: ../../../third_party/boringssl/src/include/openssl/arm_arch.h +---------------------------------------------------------------------------------------------------- +Copyright (c) 1998-2011 The OpenSSL Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + openssl-core@openssl.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.openssl.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: icu +ORIGIN: ../../../third_party/icu/LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/icu/DIR_METADATA +FILE: ../../../third_party/icu/android/icudtl.dat +FILE: ../../../third_party/icu/cast/brkitr.patch +FILE: ../../../third_party/icu/cast/icudtl.dat +FILE: ../../../third_party/icu/chromeos/icudtl.dat +FILE: ../../../third_party/icu/chromeos/icudtl.dat.hash +FILE: ../../../third_party/icu/common/icudtb.dat +FILE: ../../../third_party/icu/common/icudtl.dat +FILE: ../../../third_party/icu/flutter/brkitr.patch +FILE: ../../../third_party/icu/flutter/icudtl.dat +FILE: ../../../third_party/icu/fuzzers/fuzzer_utils.h +FILE: ../../../third_party/icu/fuzzers/icu_appendable_fuzzer.cc +FILE: ../../../third_party/icu/fuzzers/icu_break_iterator_fuzzer.cc +FILE: ../../../third_party/icu/fuzzers/icu_break_iterator_utf32_fuzzer.cc +FILE: ../../../third_party/icu/fuzzers/icu_number_format_fuzzer.cc +FILE: ../../../third_party/icu/fuzzers/icu_to_case_fuzzer.cc +FILE: ../../../third_party/icu/fuzzers/icu_ucasemap_fuzzer.cc +FILE: ../../../third_party/icu/ios/icudtl.dat +FILE: ../../../third_party/icu/patches/AliasDataBuilder-readAlias.patch +FILE: ../../../third_party/icu/patches/DateIntervalFormatnormalizeHourMetacharacters.patch +FILE: ../../../third_party/icu/patches/ardatepattern.patch +FILE: ../../../third_party/icu/patches/atomic_template_instantiation.patch +FILE: ../../../third_party/icu/patches/calendar-get-out-of-bound.patch +FILE: ../../../third_party/icu/patches/calendar-get-out-of-bound2.patch +FILE: ../../../third_party/icu/patches/calendar_return_error_early.patch +FILE: ../../../third_party/icu/patches/cjdict.patch +FILE: ../../../third_party/icu/patches/collationdatabuilder.patch +FILE: ../../../third_party/icu/patches/configure.patch +FILE: ../../../third_party/icu/patches/cxx20enum.patch +FILE: ../../../third_party/icu/patches/data_symb.patch +FILE: ../../../third_party/icu/patches/formatted_string_builder.patch +FILE: ../../../third_party/icu/patches/fuchsia.patch +FILE: ../../../third_party/icu/patches/gb_table.patch +FILE: ../../../third_party/icu/patches/iso2022jp.patch +FILE: ../../../third_party/icu/patches/isvalidenum.patch +FILE: ../../../third_party/icu/patches/khmer-dictbe.patch +FILE: ../../../third_party/icu/patches/locale1.patch +FILE: ../../../third_party/icu/patches/locale_google.patch +FILE: ../../../third_party/icu/patches/number_range_format.patch +FILE: ../../../third_party/icu/patches/restrace.patch +FILE: ../../../third_party/icu/patches/rmATOMIC_VAR_INIT.patch +FILE: ../../../third_party/icu/patches/timezone-rawoffset.patch +FILE: ../../../third_party/icu/patches/unused-var-unary-operators.patch +FILE: ../../../third_party/icu/patches/wordbrk.patch +FILE: ../../../third_party/icu/patches/wpo.patch +FILE: ../../../third_party/icu/source/data/in/coll/ucadata-implicithan.icu +FILE: ../../../third_party/icu/source/data/in/coll/ucadata-unihan.icu +FILE: ../../../third_party/icu/source/data/in/nfc.nrm +FILE: ../../../third_party/icu/source/data/in/nfkc.nrm +FILE: ../../../third_party/icu/source/data/in/nfkc_cf.nrm +FILE: ../../../third_party/icu/source/data/in/pnames.icu +FILE: ../../../third_party/icu/source/data/in/ubidi.icu +FILE: ../../../third_party/icu/source/data/in/ucase.icu +FILE: ../../../third_party/icu/source/data/in/uemoji.icu +FILE: ../../../third_party/icu/source/data/in/ulayout.icu +FILE: ../../../third_party/icu/source/data/in/unames.icu +FILE: ../../../third_party/icu/source/data/in/uprops.icu +FILE: ../../../third_party/icu/source/data/in/uts46.nrm +FILE: ../../../third_party/icu/source/data/mappings/big5-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/euc-jp-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/euc-kr-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/gb18030.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm866-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-10-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-13-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-14-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-15-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-16-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-2-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-3-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-4-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-5-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-6-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-7-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-8-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/koi8-r-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/koi8-u-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/macintosh-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/shift_jis-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1250-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1251-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1252-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1253-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1254-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1255-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1256-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1257-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1258-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-874-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-936-2000.ucm +FILE: ../../../third_party/icu/source/data/mappings/x-mac-cyrillic-html.ucm +FILE: ../../../third_party/icu/source/extra/scrptrun/srtest.dsp +FILE: ../../../third_party/icu/source/extra/scrptrun/srtest.dsw +FILE: ../../../third_party/icu/source/tools/tzcode/asctime.c +FILE: ../../../third_party/icu/source/tools/tzcode/ialloc.c +FILE: ../../../third_party/icu/source/tools/tzcode/localtime.c +FILE: ../../../third_party/icu/source/tools/tzcode/private.h +FILE: ../../../third_party/icu/source/tools/tzcode/scheck.c +FILE: ../../../third_party/icu/source/tools/tzcode/tzfile.h +FILE: ../../../third_party/icu/source/tools/tzcode/tzselect.ksh +FILE: ../../../third_party/icu/source/tools/tzcode/zdump.c +FILE: ../../../third_party/icu/source/tools/tzcode/zic.c +FILE: ../../../third_party/icu/tzres/metaZones.res +FILE: ../../../third_party/icu/tzres/timezoneTypes.res +FILE: ../../../third_party/icu/tzres/zoneinfo64.res +---------------------------------------------------------------------------------------------------- +Copyright (c) 1999 Computer Systems and Communication Lab, + Institute of Information Science, Academia + * Sinica. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. +. Neither the name of the Computer Systems and Communication Lab + nor the names of its contributors may be used to endorse or + promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: icu +ORIGIN: ../../../third_party/icu/LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/icu/DIR_METADATA +FILE: ../../../third_party/icu/android/icudtl.dat +FILE: ../../../third_party/icu/cast/brkitr.patch +FILE: ../../../third_party/icu/cast/icudtl.dat +FILE: ../../../third_party/icu/chromeos/icudtl.dat +FILE: ../../../third_party/icu/chromeos/icudtl.dat.hash +FILE: ../../../third_party/icu/common/icudtb.dat +FILE: ../../../third_party/icu/common/icudtl.dat +FILE: ../../../third_party/icu/flutter/brkitr.patch +FILE: ../../../third_party/icu/flutter/icudtl.dat +FILE: ../../../third_party/icu/fuzzers/fuzzer_utils.h +FILE: ../../../third_party/icu/fuzzers/icu_appendable_fuzzer.cc +FILE: ../../../third_party/icu/fuzzers/icu_break_iterator_fuzzer.cc +FILE: ../../../third_party/icu/fuzzers/icu_break_iterator_utf32_fuzzer.cc +FILE: ../../../third_party/icu/fuzzers/icu_number_format_fuzzer.cc +FILE: ../../../third_party/icu/fuzzers/icu_to_case_fuzzer.cc +FILE: ../../../third_party/icu/fuzzers/icu_ucasemap_fuzzer.cc +FILE: ../../../third_party/icu/ios/icudtl.dat +FILE: ../../../third_party/icu/patches/AliasDataBuilder-readAlias.patch +FILE: ../../../third_party/icu/patches/DateIntervalFormatnormalizeHourMetacharacters.patch +FILE: ../../../third_party/icu/patches/ardatepattern.patch +FILE: ../../../third_party/icu/patches/atomic_template_instantiation.patch +FILE: ../../../third_party/icu/patches/calendar-get-out-of-bound.patch +FILE: ../../../third_party/icu/patches/calendar-get-out-of-bound2.patch +FILE: ../../../third_party/icu/patches/calendar_return_error_early.patch +FILE: ../../../third_party/icu/patches/cjdict.patch +FILE: ../../../third_party/icu/patches/collationdatabuilder.patch +FILE: ../../../third_party/icu/patches/configure.patch +FILE: ../../../third_party/icu/patches/cxx20enum.patch +FILE: ../../../third_party/icu/patches/data_symb.patch +FILE: ../../../third_party/icu/patches/formatted_string_builder.patch +FILE: ../../../third_party/icu/patches/fuchsia.patch +FILE: ../../../third_party/icu/patches/gb_table.patch +FILE: ../../../third_party/icu/patches/iso2022jp.patch +FILE: ../../../third_party/icu/patches/isvalidenum.patch +FILE: ../../../third_party/icu/patches/khmer-dictbe.patch +FILE: ../../../third_party/icu/patches/locale1.patch +FILE: ../../../third_party/icu/patches/locale_google.patch +FILE: ../../../third_party/icu/patches/number_range_format.patch +FILE: ../../../third_party/icu/patches/restrace.patch +FILE: ../../../third_party/icu/patches/rmATOMIC_VAR_INIT.patch +FILE: ../../../third_party/icu/patches/timezone-rawoffset.patch +FILE: ../../../third_party/icu/patches/unused-var-unary-operators.patch +FILE: ../../../third_party/icu/patches/wordbrk.patch +FILE: ../../../third_party/icu/patches/wpo.patch +FILE: ../../../third_party/icu/source/data/in/coll/ucadata-implicithan.icu +FILE: ../../../third_party/icu/source/data/in/coll/ucadata-unihan.icu +FILE: ../../../third_party/icu/source/data/in/nfc.nrm +FILE: ../../../third_party/icu/source/data/in/nfkc.nrm +FILE: ../../../third_party/icu/source/data/in/nfkc_cf.nrm +FILE: ../../../third_party/icu/source/data/in/pnames.icu +FILE: ../../../third_party/icu/source/data/in/ubidi.icu +FILE: ../../../third_party/icu/source/data/in/ucase.icu +FILE: ../../../third_party/icu/source/data/in/uemoji.icu +FILE: ../../../third_party/icu/source/data/in/ulayout.icu +FILE: ../../../third_party/icu/source/data/in/unames.icu +FILE: ../../../third_party/icu/source/data/in/uprops.icu +FILE: ../../../third_party/icu/source/data/in/uts46.nrm +FILE: ../../../third_party/icu/source/data/mappings/big5-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/euc-jp-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/euc-kr-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/gb18030.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm866-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-10-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-13-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-14-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-15-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-16-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-2-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-3-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-4-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-5-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-6-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-7-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-8-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/koi8-r-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/koi8-u-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/macintosh-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/shift_jis-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1250-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1251-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1252-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1253-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1254-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1255-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1256-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1257-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1258-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-874-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-936-2000.ucm +FILE: ../../../third_party/icu/source/data/mappings/x-mac-cyrillic-html.ucm +FILE: ../../../third_party/icu/source/extra/scrptrun/srtest.dsp +FILE: ../../../third_party/icu/source/extra/scrptrun/srtest.dsw +FILE: ../../../third_party/icu/source/tools/tzcode/asctime.c +FILE: ../../../third_party/icu/source/tools/tzcode/ialloc.c +FILE: ../../../third_party/icu/source/tools/tzcode/localtime.c +FILE: ../../../third_party/icu/source/tools/tzcode/private.h +FILE: ../../../third_party/icu/source/tools/tzcode/scheck.c +FILE: ../../../third_party/icu/source/tools/tzcode/tzfile.h +FILE: ../../../third_party/icu/source/tools/tzcode/tzselect.ksh +FILE: ../../../third_party/icu/source/tools/tzcode/zdump.c +FILE: ../../../third_party/icu/source/tools/tzcode/zic.c +FILE: ../../../third_party/icu/tzres/metaZones.res +FILE: ../../../third_party/icu/tzres/timezoneTypes.res +FILE: ../../../third_party/icu/tzres/zoneinfo64.res +---------------------------------------------------------------------------------------------------- +Copyright (c) 1999 TaBE Project. +Copyright (c) 1999 Pai-Hsiang Hsiao. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. +. Neither the name of the TaBE Project nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: boringssl +ORIGIN: ../../../third_party/boringssl/src/crypto/evp/pbkdf.c +TYPE: LicenseType.bsd +FILE: ../../../third_party/boringssl/src/crypto/evp/pbkdf.c +FILE: ../../../third_party/boringssl/src/crypto/pkcs8/internal.h +FILE: ../../../third_party/boringssl/src/crypto/pkcs8/p5_pbev2.c +FILE: ../../../third_party/boringssl/src/crypto/pkcs8/pkcs8.c +FILE: ../../../third_party/boringssl/src/crypto/pkcs8/pkcs8_x509.c +FILE: ../../../third_party/boringssl/src/crypto/x509/x509_trs.c +FILE: ../../../third_party/boringssl/src/crypto/x509/x509spki.c +FILE: ../../../third_party/boringssl/src/crypto/x509/x_x509a.c +FILE: ../../../third_party/boringssl/src/crypto/x509v3/tab_test.cc +FILE: ../../../third_party/boringssl/src/crypto/x509v3/v3_akey.c +FILE: ../../../third_party/boringssl/src/crypto/x509v3/v3_akeya.c +FILE: ../../../third_party/boringssl/src/crypto/x509v3/v3_bcons.c +FILE: ../../../third_party/boringssl/src/crypto/x509v3/v3_bitst.c +FILE: ../../../third_party/boringssl/src/crypto/x509v3/v3_enum.c +FILE: ../../../third_party/boringssl/src/crypto/x509v3/v3_extku.c +FILE: ../../../third_party/boringssl/src/crypto/x509v3/v3_ia5.c +FILE: ../../../third_party/boringssl/src/crypto/x509v3/v3_info.c +FILE: ../../../third_party/boringssl/src/crypto/x509v3/v3_lib.c +FILE: ../../../third_party/boringssl/src/crypto/x509v3/v3_prn.c +FILE: ../../../third_party/boringssl/src/crypto/x509v3/v3_skey.c +FILE: ../../../third_party/boringssl/src/include/openssl/pkcs8.h +---------------------------------------------------------------------------------------------------- +Copyright (c) 1999 The OpenSSL Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + licensing@OpenSSL.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: icu +ORIGIN: ../../../third_party/icu/source/data/mappings/iso-8859_10-1998.ucm +TYPE: LicenseType.unknown +FILE: ../../../third_party/icu/source/data/mappings/iso-8859_10-1998.ucm +---------------------------------------------------------------------------------------------------- +Copyright (c) 1999 Unicode, Inc. All Rights reserved. + Copyright (C) 2002-2005, International Business Machines + Corporation and others. All Rights Reserved. + +This file is provided as-is by Unicode, Inc. (The Unicode Consortium). +No claims are made as to fitness for any particular purpose. No +warranties of any kind are expressed or implied. The recipient +agrees to determine applicability of information provided. If this +file has been provided on optical media by Unicode, Inc., the sole +remedy for any claim will be exchange of defective media within 90 +days of receipt. + +Unicode, Inc. hereby grants the right to freely use the information +supplied in this file in the creation of products supporting the +Unicode Standard, and to make copies of this file in any form for +internal or external distribution as long as this notice remains +attached. +==================================================================================================== + +==================================================================================================== +LIBRARY: expat +ORIGIN: ../../../third_party/expat/expat/lib/ascii.h +TYPE: LicenseType.mit +FILE: ../../../third_party/expat/expat/lib/ascii.h +---------------------------------------------------------------------------------------------------- +Copyright (c) 1999-2000 Thai Open Source Software Center Ltd +Copyright (c) 2000 Clark Cooper +Copyright (c) 2002 Fred L. Drake, Jr. +Copyright (c) 2007 Karl Waclawek +Copyright (c) 2017 Sebastian Pipping +Licensed under the MIT license: + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the +following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. +==================================================================================================== + +==================================================================================================== +LIBRARY: boringssl +ORIGIN: ../../../third_party/boringssl/src/crypto/x509v3/v3_conf.c +TYPE: LicenseType.bsd +FILE: ../../../third_party/boringssl/src/crypto/x509v3/v3_conf.c +---------------------------------------------------------------------------------------------------- +Copyright (c) 1999-2002 The OpenSSL Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + licensing@OpenSSL.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: boringssl +ORIGIN: ../../../third_party/boringssl/src/crypto/x509v3/v3_alt.c +TYPE: LicenseType.bsd +FILE: ../../../third_party/boringssl/src/crypto/x509v3/v3_alt.c +FILE: ../../../third_party/boringssl/src/crypto/x509v3/v3_utl.c +---------------------------------------------------------------------------------------------------- +Copyright (c) 1999-2003 The OpenSSL Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + licensing@OpenSSL.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: boringssl +ORIGIN: ../../../third_party/boringssl/src/crypto/x509v3/ext_dat.h +TYPE: LicenseType.bsd +FILE: ../../../third_party/boringssl/src/crypto/x509v3/ext_dat.h +FILE: ../../../third_party/boringssl/src/crypto/x509v3/v3_cpols.c +FILE: ../../../third_party/boringssl/src/crypto/x509v3/v3_int.c +FILE: ../../../third_party/boringssl/src/crypto/x509v3/v3_purp.c +FILE: ../../../third_party/boringssl/src/crypto/x509v3/v3name_test.cc +FILE: ../../../third_party/boringssl/src/include/openssl/x509v3.h +---------------------------------------------------------------------------------------------------- +Copyright (c) 1999-2004 The OpenSSL Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + licensing@OpenSSL.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: boringssl +ORIGIN: ../../../third_party/boringssl/src/ssl/d1_lib.cc +TYPE: LicenseType.bsd +FILE: ../../../third_party/boringssl/src/ssl/d1_lib.cc +FILE: ../../../third_party/boringssl/src/ssl/dtls_method.cc +---------------------------------------------------------------------------------------------------- +Copyright (c) 1999-2005 The OpenSSL Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + openssl-core@OpenSSL.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: boringssl +ORIGIN: ../../../third_party/boringssl/src/crypto/fipsmodule/digest/md32_common.h +TYPE: LicenseType.bsd +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/digest/md32_common.h +---------------------------------------------------------------------------------------------------- +Copyright (c) 1999-2007 The OpenSSL Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + licensing@OpenSSL.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: boringssl +ORIGIN: ../../../third_party/boringssl/src/crypto/x509v3/v3_crld.c +TYPE: LicenseType.bsd +FILE: ../../../third_party/boringssl/src/crypto/x509v3/v3_crld.c +FILE: ../../../third_party/boringssl/src/crypto/x509v3/v3_genn.c +---------------------------------------------------------------------------------------------------- +Copyright (c) 1999-2008 The OpenSSL Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + licensing@OpenSSL.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: expat +ORIGIN: ../../../third_party/expat/expat/examples/outline.c +TYPE: LicenseType.mit +FILE: ../../../third_party/expat/expat/examples/outline.c +---------------------------------------------------------------------------------------------------- +Copyright (c) 2000 Clark Cooper +Copyright (c) 2001-2003 Fred L. Drake, Jr. +Copyright (c) 2005-2007 Steven Solie +Copyright (c) 2005-2006 Karl Waclawek +Copyright (c) 2016-2019 Sebastian Pipping +Copyright (c) 2017 Rhodri James +Licensed under the MIT license: + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the +following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. +==================================================================================================== + +==================================================================================================== +LIBRARY: expat +ORIGIN: ../../../third_party/expat/expat/lib/winconfig.h +TYPE: LicenseType.mit +FILE: ../../../third_party/expat/expat/lib/winconfig.h +---------------------------------------------------------------------------------------------------- +Copyright (c) 2000 Clark Cooper +Copyright (c) 2002 Greg Stein +Copyright (c) 2005 Karl Waclawek +Copyright (c) 2017-2021 Sebastian Pipping +Licensed under the MIT license: + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the +following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. +==================================================================================================== + +==================================================================================================== +LIBRARY: expat +ORIGIN: ../../../third_party/expat/expat/lib/nametab.h +TYPE: LicenseType.mit +FILE: ../../../third_party/expat/expat/lib/nametab.h +---------------------------------------------------------------------------------------------------- +Copyright (c) 2000 Clark Cooper +Copyright (c) 2017 Sebastian Pipping +Licensed under the MIT license: + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the +following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. +==================================================================================================== + +==================================================================================================== +LIBRARY: boringssl +ORIGIN: ../../../third_party/boringssl/src/crypto/x509/x_algor.c +TYPE: LicenseType.bsd +FILE: ../../../third_party/boringssl/src/crypto/x509/x_algor.c +---------------------------------------------------------------------------------------------------- +Copyright (c) 2000 The OpenSSL Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + licensing@OpenSSL.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: boringssl +ORIGIN: ../../../third_party/boringssl/src/crypto/ecdh_extra/ecdh_extra.c +TYPE: LicenseType.bsd +FILE: ../../../third_party/boringssl/src/crypto/ecdh_extra/ecdh_extra.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/ecdh/ecdh.c +FILE: ../../../third_party/boringssl/src/include/openssl/ecdh.h +---------------------------------------------------------------------------------------------------- +Copyright (c) 2000-2002 The OpenSSL Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + licensing@OpenSSL.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: boringssl +ORIGIN: ../../../third_party/boringssl/src/crypto/ec_extra/ec_asn1.c +TYPE: LicenseType.bsd +FILE: ../../../third_party/boringssl/src/crypto/ec_extra/ec_asn1.c +---------------------------------------------------------------------------------------------------- +Copyright (c) 2000-2003 The OpenSSL Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + licensing@OpenSSL.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: boringssl +ORIGIN: ../../../third_party/boringssl/src/crypto/dh_extra/dh_asn1.c +TYPE: LicenseType.bsd +FILE: ../../../third_party/boringssl/src/crypto/dh_extra/dh_asn1.c +FILE: ../../../third_party/boringssl/src/crypto/dsa/dsa_asn1.c +FILE: ../../../third_party/boringssl/src/crypto/rsa_extra/rsa_asn1.c +FILE: ../../../third_party/boringssl/src/include/openssl/asn1t.h +---------------------------------------------------------------------------------------------------- +Copyright (c) 2000-2005 The OpenSSL Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + licensing@OpenSSL.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: expat +ORIGIN: ../../../third_party/expat/expat/win32/expat.iss +TYPE: LicenseType.mit +FILE: ../../../third_party/expat/expat/win32/expat.iss +---------------------------------------------------------------------------------------------------- +Copyright (c) 2001 Tim Peters +Copyright (c) 2001-2005 Fred L. Drake, Jr. +Copyright (c) 2006-2017 Karl Waclawek +Copyright (c) 2007-2021 Sebastian Pipping +Licensed under the MIT license: + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the +following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. +==================================================================================================== + +==================================================================================================== +LIBRARY: boringssl +ORIGIN: ../../../third_party/boringssl/src/crypto/asn1/time_support.c +TYPE: LicenseType.bsd +FILE: ../../../third_party/boringssl/src/crypto/asn1/time_support.c +FILE: ../../../third_party/boringssl/src/crypto/pem/pem_x509.c +FILE: ../../../third_party/boringssl/src/crypto/pem/pem_xaux.c +FILE: ../../../third_party/boringssl/src/crypto/x509/x509cset.c +---------------------------------------------------------------------------------------------------- +Copyright (c) 2001 The OpenSSL Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + licensing@OpenSSL.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: boringssl +ORIGIN: ../../../third_party/boringssl/src/crypto/fipsmodule/aes/key_wrap.c +TYPE: LicenseType.bsd +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/aes/key_wrap.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/cipher/e_aes.c +---------------------------------------------------------------------------------------------------- +Copyright (c) 2001-2011 The OpenSSL Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + openssl-core@openssl.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.openssl.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: icu +ORIGIN: ../../../third_party/icu/source/data/mappings/iso-8859_11-2001.ucm +TYPE: LicenseType.unknown +FILE: ../../../third_party/icu/source/data/mappings/iso-8859_11-2001.ucm +---------------------------------------------------------------------------------------------------- +Copyright (c) 2002 Unicode, Inc. All Rights reserved. + Copyright (C) 2002-2005, International Business Machines + Corporation and others. All Rights Reserved. + +This file is provided as-is by Unicode, Inc. (The Unicode Consortium). +No claims are made as to fitness for any particular purpose. No +warranties of any kind are expressed or implied. The recipient +agrees to determine applicability of information provided. If this +file has been provided on optical media by Unicode, Inc., the sole +remedy for any claim will be exchange of defective media within 90 +days of receipt. + +Unicode, Inc. hereby grants the right to freely use the information +supplied in this file in the creation of products supporting the +Unicode Standard, and to make copies of this file in any form for +internal or external distribution as long as this notice remains +attached. +==================================================================================================== + +==================================================================================================== +LIBRARY: expat +ORIGIN: ../../../third_party/expat/expat/lib/internal.h +TYPE: LicenseType.mit +FILE: ../../../third_party/expat/expat/lib/internal.h +---------------------------------------------------------------------------------------------------- +Copyright (c) 2002-2003 Fred L. Drake, Jr. +Copyright (c) 2002-2006 Karl Waclawek +Copyright (c) 2003 Greg Stein +Copyright (c) 2016-2021 Sebastian Pipping +Copyright (c) 2018 Yury Gribov +Copyright (c) 2019 David Loffredo +Licensed under the MIT license: + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the +following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. +==================================================================================================== + +==================================================================================================== +LIBRARY: glfw +ORIGIN: ../../../third_party/glfw/LICENSE.md +TYPE: LicenseType.zlib +FILE: ../../../third_party/glfw/.appveyor.yml +FILE: ../../../third_party/glfw/CMake/MacOSXBundleInfo.plist.in +FILE: ../../../third_party/glfw/cmake_uninstall.cmake.in +FILE: ../../../third_party/glfw/docs/Doxyfile.in +FILE: ../../../third_party/glfw/docs/DoxygenLayout.xml +FILE: ../../../third_party/glfw/docs/build.dox +FILE: ../../../third_party/glfw/docs/compat.dox +FILE: ../../../third_party/glfw/docs/compile.dox +FILE: ../../../third_party/glfw/docs/context.dox +FILE: ../../../third_party/glfw/docs/extra.less +FILE: ../../../third_party/glfw/docs/footer.html +FILE: ../../../third_party/glfw/docs/header.html +FILE: ../../../third_party/glfw/docs/input.dox +FILE: ../../../third_party/glfw/docs/internal.dox +FILE: ../../../third_party/glfw/docs/intro.dox +FILE: ../../../third_party/glfw/docs/main.dox +FILE: ../../../third_party/glfw/docs/monitor.dox +FILE: ../../../third_party/glfw/docs/moving.dox +FILE: ../../../third_party/glfw/docs/news.dox +FILE: ../../../third_party/glfw/docs/quick.dox +FILE: ../../../third_party/glfw/docs/spaces.svg +FILE: ../../../third_party/glfw/docs/vulkan.dox +FILE: ../../../third_party/glfw/docs/window.dox +FILE: ../../../third_party/glfw/include/GLFW/glfw3.h +FILE: ../../../third_party/glfw/include/GLFW/glfw3native.h +FILE: ../../../third_party/glfw/src/cocoa_monitor.m +FILE: ../../../third_party/glfw/src/context.c +FILE: ../../../third_party/glfw/src/egl_context.c +FILE: ../../../third_party/glfw/src/egl_context.h +FILE: ../../../third_party/glfw/src/glfw3.pc.in +FILE: ../../../third_party/glfw/src/glfw3Config.cmake.in +FILE: ../../../third_party/glfw/src/glx_context.c +FILE: ../../../third_party/glfw/src/glx_context.h +FILE: ../../../third_party/glfw/src/init.c +FILE: ../../../third_party/glfw/src/input.c +FILE: ../../../third_party/glfw/src/internal.h +FILE: ../../../third_party/glfw/src/linux_joystick.c +FILE: ../../../third_party/glfw/src/monitor.c +FILE: ../../../third_party/glfw/src/posix_thread.c +FILE: ../../../third_party/glfw/src/posix_thread.h +FILE: ../../../third_party/glfw/src/posix_time.c +FILE: ../../../third_party/glfw/src/posix_time.h +FILE: ../../../third_party/glfw/src/vulkan.c +FILE: ../../../third_party/glfw/src/wgl_context.c +FILE: ../../../third_party/glfw/src/wgl_context.h +FILE: ../../../third_party/glfw/src/win32_init.c +FILE: ../../../third_party/glfw/src/win32_joystick.c +FILE: ../../../third_party/glfw/src/win32_monitor.c +FILE: ../../../third_party/glfw/src/win32_platform.h +FILE: ../../../third_party/glfw/src/win32_thread.c +FILE: ../../../third_party/glfw/src/win32_time.c +FILE: ../../../third_party/glfw/src/win32_window.c +FILE: ../../../third_party/glfw/src/x11_init.c +FILE: ../../../third_party/glfw/src/x11_monitor.c +FILE: ../../../third_party/glfw/src/x11_platform.h +FILE: ../../../third_party/glfw/src/x11_window.c +FILE: ../../../third_party/glfw/src/xkb_unicode.c +---------------------------------------------------------------------------------------------------- +Copyright (c) 2002-2006 Marcus Geelnard +Copyright (c) 2006-2016 Camilla Löwy + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would + be appreciated but is not required. + +2. Altered source versions must be plainly marked as such, and must not + be misrepresented as being the original software. + +3. This notice may not be removed or altered from any source + distribution. +==================================================================================================== + +==================================================================================================== +LIBRARY: glfw +ORIGIN: ../../../third_party/glfw/src/window.c +TYPE: LicenseType.zlib +FILE: ../../../third_party/glfw/src/window.c +---------------------------------------------------------------------------------------------------- +Copyright (c) 2002-2006 Marcus Geelnard +Copyright (c) 2006-2016 Camilla Löwy +Copyright (c) 2012 Torsten Walluhn + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would + be appreciated but is not required. + +2. Altered source versions must be plainly marked as such, and must not + be misrepresented as being the original software. + +3. This notice may not be removed or altered from any source + distribution. +==================================================================================================== + +==================================================================================================== +LIBRARY: boringssl +ORIGIN: ../../../third_party/boringssl/src/crypto/fipsmodule/aes/aes.c +TYPE: LicenseType.bsd +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/aes/aes.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/aes/mode_wrappers.c +FILE: ../../../third_party/boringssl/src/include/openssl/aes.h +---------------------------------------------------------------------------------------------------- +Copyright (c) 2002-2006 The OpenSSL Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + openssl-core@openssl.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.openssl.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: boringssl +ORIGIN: ../../../third_party/boringssl/src/crypto/x509v3/v3_ncons.c +TYPE: LicenseType.bsd +FILE: ../../../third_party/boringssl/src/crypto/x509v3/v3_ncons.c +FILE: ../../../third_party/boringssl/src/crypto/x509v3/v3_pcons.c +FILE: ../../../third_party/boringssl/src/crypto/x509v3/v3_pmaps.c +---------------------------------------------------------------------------------------------------- +Copyright (c) 2003 The OpenSSL Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + licensing@OpenSSL.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: tcmalloc +ORIGIN: ../../../third_party/dart/third_party/tcmalloc/include/gperftools/tcmalloc.h +TYPE: LicenseType.bsd +FILE: ../../../third_party/dart/third_party/tcmalloc/include/gperftools/tcmalloc.h +---------------------------------------------------------------------------------------------------- +Copyright (c) 2003, Google Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: dart +ORIGIN: ../../../third_party/dart/sdk/lib/_internal/vm_shared/lib/bigint_patch.dart +TYPE: LicenseType.mit +FILE: ../../../third_party/dart/sdk/lib/_internal/vm_shared/lib/bigint_patch.dart +---------------------------------------------------------------------------------------------------- +Copyright (c) 2003-2005 Tom Wu +Copyright (c) 2012 Adam Singer (adam@solvr.io) +All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + +IN NO EVENT SHALL TOM WU BE LIABLE FOR ANY SPECIAL, INCIDENTAL, +INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER +RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF +THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT +OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +In addition, the following condition applies: + +All redistributions must retain an intact copy of this copyright notice +and disclaimer. +==================================================================================================== + +==================================================================================================== +LIBRARY: boringssl +ORIGIN: ../../../third_party/boringssl/src/crypto/x509v3/v3_pci.c +TYPE: LicenseType.bsd +FILE: ../../../third_party/boringssl/src/crypto/x509v3/v3_pci.c +FILE: ../../../third_party/boringssl/src/crypto/x509v3/v3_pcia.c +---------------------------------------------------------------------------------------------------- +Copyright (c) 2004 Kungliga Tekniska Högskolan +(Royal Institute of Technology, Stockholm, Sweden). +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +3. Neither the name of the Institute nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: boringssl +ORIGIN: ../../../third_party/boringssl/src/crypto/x509/x509_vpm.c +TYPE: LicenseType.bsd +FILE: ../../../third_party/boringssl/src/crypto/x509/x509_vpm.c +FILE: ../../../third_party/boringssl/src/crypto/x509v3/pcy_cache.c +FILE: ../../../third_party/boringssl/src/crypto/x509v3/pcy_data.c +FILE: ../../../third_party/boringssl/src/crypto/x509v3/pcy_int.h +FILE: ../../../third_party/boringssl/src/crypto/x509v3/pcy_lib.c +FILE: ../../../third_party/boringssl/src/crypto/x509v3/pcy_map.c +FILE: ../../../third_party/boringssl/src/crypto/x509v3/pcy_node.c +FILE: ../../../third_party/boringssl/src/crypto/x509v3/pcy_tree.c +---------------------------------------------------------------------------------------------------- +Copyright (c) 2004 The OpenSSL Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + licensing@OpenSSL.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: boringssl +ORIGIN: ../../../third_party/boringssl/src/crypto/fipsmodule/rsa/padding.c +TYPE: LicenseType.bsd +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/rsa/padding.c +---------------------------------------------------------------------------------------------------- +Copyright (c) 2005 The OpenSSL Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + licensing@OpenSSL.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: tcmalloc +ORIGIN: ../../../third_party/dart/third_party/tcmalloc/COPYING +TYPE: LicenseType.bsd +FILE: ../../../third_party/dart/third_party/tcmalloc/configure_command +FILE: ../../../third_party/dart/third_party/tcmalloc/include/config.h +---------------------------------------------------------------------------------------------------- +Copyright (c) 2005, Google Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: StackWalker +ORIGIN: ../../../third_party/angle/util/windows/third_party/StackWalker/src/StackWalker.h +TYPE: LicenseType.bsd +FILE: ../../../third_party/angle/util/windows/third_party/StackWalker/src/StackWalker.h +---------------------------------------------------------------------------------------------------- +Copyright (c) 2005-2009, Jochen Kalmbach +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +Redistributions of source code must retain the above copyright notice, +this list of conditions and the following disclaimer. +Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. +Neither the name of Jochen Kalmbach nor the names of its contributors may be +used to endorse or promote products derived from this software without +specific prior written permission. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: StackWalker +ORIGIN: ../../../third_party/angle/util/windows/third_party/StackWalker/src/StackWalker.cpp +TYPE: LicenseType.bsd +FILE: ../../../third_party/angle/util/windows/third_party/StackWalker/src/StackWalker.cpp +---------------------------------------------------------------------------------------------------- +Copyright (c) 2005-2013, Jochen Kalmbach +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +Redistributions of source code must retain the above copyright notice, +this list of conditions and the following disclaimer. +Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. +Neither the name of Jochen Kalmbach nor the names of its contributors may be +used to endorse or promote products derived from this software without +specific prior written permission. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: boringssl +ORIGIN: ../../../third_party/boringssl/src/crypto/asn1/internal.h +TYPE: LicenseType.bsd +FILE: ../../../third_party/boringssl/src/crypto/asn1/internal.h +FILE: ../../../third_party/boringssl/src/crypto/evp/p_dsa_asn1.c +FILE: ../../../third_party/boringssl/src/crypto/evp/p_ec.c +FILE: ../../../third_party/boringssl/src/crypto/evp/p_ec_asn1.c +FILE: ../../../third_party/boringssl/src/crypto/evp/p_rsa.c +FILE: ../../../third_party/boringssl/src/crypto/evp/p_rsa_asn1.c +FILE: ../../../third_party/boringssl/src/crypto/evp/print.c +FILE: ../../../third_party/boringssl/src/crypto/x509/rsa_pss.c +---------------------------------------------------------------------------------------------------- +Copyright (c) 2006 The OpenSSL Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + licensing@OpenSSL.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: boringssl +ORIGIN: ../../../third_party/boringssl/src/crypto/evp/digestsign.c +TYPE: LicenseType.bsd +FILE: ../../../third_party/boringssl/src/crypto/evp/digestsign.c +---------------------------------------------------------------------------------------------------- +Copyright (c) 2006,2007 The OpenSSL Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + licensing@OpenSSL.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: rapidjson +ORIGIN: ../../../third_party/rapidjson/include/rapidjson/msinttypes/inttypes.h +TYPE: LicenseType.bsd +FILE: ../../../third_party/rapidjson/include/rapidjson/msinttypes/inttypes.h +FILE: ../../../third_party/rapidjson/include/rapidjson/msinttypes/stdint.h +---------------------------------------------------------------------------------------------------- +Copyright (c) 2006-2013 Alexander Chemeris + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + 3. Neither the name of the product nor the names of its contributors may + be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: glfw +ORIGIN: ../../../third_party/glfw/src/cocoa_joystick.h +TYPE: LicenseType.zlib +FILE: ../../../third_party/glfw/src/cocoa_joystick.h +FILE: ../../../third_party/glfw/src/mappings.h +FILE: ../../../third_party/glfw/src/mappings.h.in +FILE: ../../../third_party/glfw/src/null_joystick.c +FILE: ../../../third_party/glfw/src/null_joystick.h +FILE: ../../../third_party/glfw/src/win32_joystick.h +---------------------------------------------------------------------------------------------------- +Copyright (c) 2006-2016 Camilla Löwy + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would + be appreciated but is not required. + +2. Altered source versions must be plainly marked as such, and must not + be misrepresented as being the original software. + +3. This notice may not be removed or altered from any source + distribution. +==================================================================================================== + +==================================================================================================== +LIBRARY: khronos +ORIGIN: ../../../third_party/khronos/LICENSE +TYPE: LicenseType.mit +FILE: ../../../third_party/khronos/DEPS +FILE: ../../../third_party/khronos/DIR_METADATA +---------------------------------------------------------------------------------------------------- +Copyright (c) 2007-2010 The Khronos Group Inc. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and/or associated documentation files (the +"Materials"), to deal in the Materials without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Materials, and to +permit persons to whom the Materials are furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Materials. + +THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. + +SGI FREE SOFTWARE LICENSE B (Version 2.0, Sept. 18, 2008) + +Copyright (C) 1992 Silicon Graphics, Inc. All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice including the dates of first publication and either +this permission notice or a reference to http://oss.sgi.com/projects/FreeB +shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL SILICON +GRAPHICS, INC. BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of Silicon Graphics, Inc. shall +not be used in advertising or otherwise to promote the sale, use or other +dealings in this Software without prior written authorization from Silicon +Graphics, Inc. +==================================================================================================== + +==================================================================================================== +LIBRARY: khronos +ORIGIN: ../../../third_party/khronos/noninclude/GL/glxext.h +TYPE: LicenseType.unknown +FILE: ../../../third_party/khronos/noninclude/GL/glxext.h +---------------------------------------------------------------------------------------------------- +Copyright (c) 2007-2012 The Khronos Group Inc. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and/or associated documentation files (the +"Materials"), to deal in the Materials without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Materials, and to +permit persons to whom the Materials are furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Materials. + +THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. +==================================================================================================== + +==================================================================================================== +LIBRARY: angle +ORIGIN: ../../../third_party/angle/src/third_party/libXNVCtrl/LICENSE +TYPE: LicenseType.mit +FILE: ../../../third_party/angle/src/third_party/libXNVCtrl/NVCtrl.c +FILE: ../../../third_party/angle/src/third_party/libXNVCtrl/NVCtrlLib.h +FILE: ../../../third_party/angle/src/third_party/libXNVCtrl/nv_control.h +---------------------------------------------------------------------------------------------------- +Copyright (c) 2008 NVIDIA, Corporation + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next +paragraph) shall be included in all copies or substantial portions of the +Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +==================================================================================================== + +==================================================================================================== +LIBRARY: boringssl +ORIGIN: ../../../third_party/boringssl/src/crypto/cipher_extra/e_aesccm.c +TYPE: LicenseType.bsd +FILE: ../../../third_party/boringssl/src/crypto/cipher_extra/e_aesccm.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/modes/cbc.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/modes/cfb.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/modes/ctr.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/modes/gcm.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/modes/gcm_test.cc +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/modes/internal.h +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/modes/ofb.c +---------------------------------------------------------------------------------------------------- +Copyright (c) 2008 The OpenSSL Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + openssl-core@openssl.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.openssl.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: khronos +ORIGIN: ../../../third_party/khronos/KHR/khrplatform.h +TYPE: LicenseType.unknown +FILE: ../../../third_party/khronos/KHR/khrplatform.h +---------------------------------------------------------------------------------------------------- +Copyright (c) 2008-2009 The Khronos Group Inc. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and/or associated documentation files (the +"Materials"), to deal in the Materials without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Materials, and to +permit persons to whom the Materials are furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Materials. + +THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. +==================================================================================================== + +==================================================================================================== +LIBRARY: angle +ORIGIN: ../../../third_party/angle/include/KHR/khrplatform.h +TYPE: LicenseType.unknown +FILE: ../../../third_party/angle/include/KHR/khrplatform.h +---------------------------------------------------------------------------------------------------- +Copyright (c) 2008-2018 The Khronos Group Inc. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and/or associated documentation files (the +"Materials"), to deal in the Materials without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Materials, and to +permit persons to whom the Materials are furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Materials. + +THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. +==================================================================================================== + +==================================================================================================== +LIBRARY: libtess2 +ORIGIN: ../../../third_party/libtess2/Contrib/nanosvg.c +TYPE: LicenseType.zlib +FILE: ../../../third_party/libtess2/Contrib/nanosvg.c +FILE: ../../../third_party/libtess2/Contrib/nanosvg.h +---------------------------------------------------------------------------------------------------- +Copyright (c) 2009 Mikko Mononen memon@inside.org + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +==================================================================================================== + +==================================================================================================== +LIBRARY: libcxx +LIBRARY: libcxxabi +ORIGIN: null +TYPE: LicenseType.mit +FILE: ../../../third_party/libcxx/.clang-tidy +FILE: ../../../third_party/libcxx/appveyor-reqs-install.cmd +FILE: ../../../third_party/libcxx/appveyor.yml +FILE: ../../../third_party/libcxx/benchmarks/GenerateInput.h +FILE: ../../../third_party/libcxx/benchmarks/algorithms.partition_point.bench.cpp +FILE: ../../../third_party/libcxx/benchmarks/filesystem.bench.cpp +FILE: ../../../third_party/libcxx/benchmarks/lit.site.cfg.py.in +FILE: ../../../third_party/libcxx/benchmarks/string.bench.cpp +FILE: ../../../third_party/libcxx/benchmarks/stringstream.bench.cpp +FILE: ../../../third_party/libcxx/benchmarks/unordered_set_operations.bench.cpp +FILE: ../../../third_party/libcxx/benchmarks/variant_visit_1.bench.cpp +FILE: ../../../third_party/libcxx/benchmarks/variant_visit_2.bench.cpp +FILE: ../../../third_party/libcxx/benchmarks/variant_visit_3.bench.cpp +FILE: ../../../third_party/libcxx/benchmarks/vector_operations.bench.cpp +FILE: ../../../third_party/libcxx/docs/AddingNewCIJobs.rst +FILE: ../../../third_party/libcxx/docs/BuildingLibcxx.rst +FILE: ../../../third_party/libcxx/docs/DesignDocs/ABIVersioning.rst +FILE: ../../../third_party/libcxx/docs/DesignDocs/AtomicDesign.rst +FILE: ../../../third_party/libcxx/docs/DesignDocs/CapturingConfigInfo.rst +FILE: ../../../third_party/libcxx/docs/DesignDocs/DebugMode.rst +FILE: ../../../third_party/libcxx/docs/DesignDocs/ExperimentalFeatures.rst +FILE: ../../../third_party/libcxx/docs/DesignDocs/ExtendedCXX03Support.rst +FILE: ../../../third_party/libcxx/docs/DesignDocs/FeatureTestMacros.rst +FILE: ../../../third_party/libcxx/docs/DesignDocs/FileTimeType.rst +FILE: ../../../third_party/libcxx/docs/DesignDocs/NoexceptPolicy.rst +FILE: ../../../third_party/libcxx/docs/DesignDocs/ThreadingSupportAPI.rst +FILE: ../../../third_party/libcxx/docs/DesignDocs/UniquePtrTrivialAbi.rst +FILE: ../../../third_party/libcxx/docs/DesignDocs/UnspecifiedBehaviorRandomization.rst +FILE: ../../../third_party/libcxx/docs/DesignDocs/VisibilityMacros.rst +FILE: ../../../third_party/libcxx/docs/FeatureTestMacroTable.rst +FILE: ../../../third_party/libcxx/docs/Helpers/Styles.rst +FILE: ../../../third_party/libcxx/docs/ReleaseNotes.rst +FILE: ../../../third_party/libcxx/docs/Status/Cxx14.rst +FILE: ../../../third_party/libcxx/docs/Status/Cxx14Issues.csv +FILE: ../../../third_party/libcxx/docs/Status/Cxx14Papers.csv +FILE: ../../../third_party/libcxx/docs/Status/Cxx17.rst +FILE: ../../../third_party/libcxx/docs/Status/Cxx17Issues.csv +FILE: ../../../third_party/libcxx/docs/Status/Cxx17Papers.csv +FILE: ../../../third_party/libcxx/docs/Status/Cxx20.rst +FILE: ../../../third_party/libcxx/docs/Status/Cxx20Issues.csv +FILE: ../../../third_party/libcxx/docs/Status/Cxx20Papers.csv +FILE: ../../../third_party/libcxx/docs/Status/Cxx2b.rst +FILE: ../../../third_party/libcxx/docs/Status/Cxx2bIssues.csv +FILE: ../../../third_party/libcxx/docs/Status/Cxx2bPapers.csv +FILE: ../../../third_party/libcxx/docs/Status/Format.rst +FILE: ../../../third_party/libcxx/docs/Status/FormatIssues.csv +FILE: ../../../third_party/libcxx/docs/Status/FormatPaper.csv +FILE: ../../../third_party/libcxx/docs/Status/Ranges.rst +FILE: ../../../third_party/libcxx/docs/Status/RangesAlgorithms.csv +FILE: ../../../third_party/libcxx/docs/Status/RangesIssues.csv +FILE: ../../../third_party/libcxx/docs/Status/RangesPaper.csv +FILE: ../../../third_party/libcxx/docs/Status/Spaceship.rst +FILE: ../../../third_party/libcxx/docs/Status/SpaceshipPapers.csv +FILE: ../../../third_party/libcxx/docs/Status/SpaceshipProjects.csv +FILE: ../../../third_party/libcxx/docs/Status/Zip.rst +FILE: ../../../third_party/libcxx/docs/Status/ZipProjects.csv +FILE: ../../../third_party/libcxx/docs/TestingLibcxx.rst +FILE: ../../../third_party/libcxx/docs/UsingLibcxx.rst +FILE: ../../../third_party/libcxx/docs/index.rst +FILE: ../../../third_party/libcxx/include/module.modulemap.in +FILE: ../../../third_party/libcxx/lib/abi/arm64-apple-darwin.libcxxabi.v1.stable.exceptions.nonew.debug.incomplete.abilist +FILE: ../../../third_party/libcxx/lib/abi/arm64-apple-darwin.libcxxabi.v1.stable.exceptions.nonew.nodebug.noincomplete.abilist +FILE: ../../../third_party/libcxx/lib/abi/powerpc-ibm-aix.libcxxabi.v1.stable.exceptions.nonew.debug.incomplete.abilist +FILE: ../../../third_party/libcxx/lib/abi/powerpc64-ibm-aix.libcxxabi.v1.stable.exceptions.nonew.debug.incomplete.abilist +FILE: ../../../third_party/libcxx/lib/abi/x86_64-apple-darwin.libcxxabi.v1.stable.exceptions.nonew.debug.incomplete.abilist +FILE: ../../../third_party/libcxx/lib/abi/x86_64-apple-darwin.libcxxabi.v1.stable.exceptions.nonew.nodebug.noincomplete.abilist +FILE: ../../../third_party/libcxx/lib/abi/x86_64-unknown-linux-gnu.libcxxabi.v1.stable.exceptions.nonew.debug.incomplete.abilist +FILE: ../../../third_party/libcxx/lib/abi/x86_64-unknown-linux-gnu.libcxxabi.v1.stable.exceptions.nonew.debug.noincomplete.abilist +FILE: ../../../third_party/libcxx/lib/abi/x86_64-unknown-linux-gnu.libcxxabi.v1.stable.exceptions.nonew.nodebug.incomplete.abilist +FILE: ../../../third_party/libcxx/lib/abi/x86_64-unknown-linux-gnu.libcxxabi.v1.stable.noexceptions.nonew.debug.incomplete.abilist +FILE: ../../../third_party/libcxx/lib/libc++abi.exp +FILE: ../../../third_party/libcxx/lib/libc++unexp.exp +FILE: ../../../third_party/libcxx/lib/notweak.exp +FILE: ../../../third_party/libcxx/lib/weak.exp +FILE: ../../../third_party/libcxx/src/chrono_system_time_init.h +FILE: ../../../third_party/libcxx/src/experimental/memory_resource_init_helper.h +FILE: ../../../third_party/libcxx/src/iostream_init.h +FILE: ../../../third_party/libcxxabi/fuzz/cxa_demangle_fuzzer.cpp +FILE: ../../../third_party/libcxxabi/lib/exceptions.exp +FILE: ../../../third_party/libcxxabi/lib/itanium-base.exp +FILE: ../../../third_party/libcxxabi/lib/new-delete.exp +FILE: ../../../third_party/libcxxabi/lib/personality-sjlj.exp +FILE: ../../../third_party/libcxxabi/lib/personality-v0.exp +---------------------------------------------------------------------------------------------------- +Copyright (c) 2009-2014 by the contributors listed in CREDITS.TXT + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +==================================================================================================== + +==================================================================================================== +LIBRARY: glfw +ORIGIN: ../../../third_party/glfw/src/cocoa_init.m +TYPE: LicenseType.zlib +FILE: ../../../third_party/glfw/src/cocoa_init.m +FILE: ../../../third_party/glfw/src/cocoa_platform.h +FILE: ../../../third_party/glfw/src/cocoa_time.c +FILE: ../../../third_party/glfw/src/cocoa_window.m +FILE: ../../../third_party/glfw/src/nsgl_context.h +FILE: ../../../third_party/glfw/src/nsgl_context.m +---------------------------------------------------------------------------------------------------- +Copyright (c) 2009-2016 Camilla Löwy + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would + be appreciated but is not required. + +2. Altered source versions must be plainly marked as such, and must not + be misrepresented as being the original software. + +3. This notice may not be removed or altered from any source + distribution. +==================================================================================================== + +==================================================================================================== +LIBRARY: glfw +ORIGIN: ../../../third_party/glfw/src/cocoa_joystick.m +TYPE: LicenseType.zlib +FILE: ../../../third_party/glfw/src/cocoa_joystick.m +---------------------------------------------------------------------------------------------------- +Copyright (c) 2009-2016 Camilla Löwy +Copyright (c) 2012 Torsten Walluhn + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would + be appreciated but is not required. + +2. Altered source versions must be plainly marked as such, and must not + be misrepresented as being the original software. + +3. This notice may not be removed or altered from any source + distribution. +==================================================================================================== + +==================================================================================================== +LIBRARY: colorama +ORIGIN: ../../../third_party/colorama/src/LICENSE.txt +TYPE: LicenseType.bsd +FILE: ../../../third_party/colorama/src/MANIFEST.in +FILE: ../../../third_party/colorama/src/screenshots/ubuntu-demo.png +FILE: ../../../third_party/colorama/src/screenshots/windows-demo.png +---------------------------------------------------------------------------------------------------- +Copyright (c) 2010 Jonathan Hartley +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of the copyright holders, nor those of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: angle +ORIGIN: ../../../third_party/angle/src/third_party/libXNVCtrl/NVCtrl.h +TYPE: LicenseType.mit +FILE: ../../../third_party/angle/src/third_party/libXNVCtrl/NVCtrl.h +---------------------------------------------------------------------------------------------------- +Copyright (c) 2010 NVIDIA, Corporation + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next +paragraph) shall be included in all copies or substantial portions of the +Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +==================================================================================================== + +==================================================================================================== +LIBRARY: boringssl +ORIGIN: ../../../third_party/boringssl/src/crypto/cmac/cmac.c +TYPE: LicenseType.bsd +FILE: ../../../third_party/boringssl/src/crypto/cmac/cmac.c +---------------------------------------------------------------------------------------------------- +Copyright (c) 2010 The OpenSSL Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + licensing@OpenSSL.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: libwebp +ORIGIN: ../../../third_party/libwebp/COPYING +TYPE: LicenseType.bsd +FILE: ../../../third_party/libwebp/Makefile.vc +FILE: ../../../third_party/libwebp/cmake/WebPConfig.cmake.in +FILE: ../../../third_party/libwebp/cmake/config.h.in +FILE: ../../../third_party/libwebp/doc/TODO +FILE: ../../../third_party/libwebp/doc/template.html +FILE: ../../../third_party/libwebp/extras/webp_quality.c +FILE: ../../../third_party/libwebp/gradle.properties +FILE: ../../../third_party/libwebp/makefile.unix +FILE: ../../../third_party/libwebp/src/demux/libwebpdemux.pc.in +FILE: ../../../third_party/libwebp/src/demux/libwebpdemux.rc +FILE: ../../../third_party/libwebp/src/libwebp.pc.in +FILE: ../../../third_party/libwebp/src/libwebp.rc +FILE: ../../../third_party/libwebp/src/libwebpdecoder.pc.in +FILE: ../../../third_party/libwebp/src/libwebpdecoder.rc +FILE: ../../../third_party/libwebp/src/mux/libwebpmux.pc.in +FILE: ../../../third_party/libwebp/src/mux/libwebpmux.rc +FILE: ../../../third_party/libwebp/webp_js/index.html +FILE: ../../../third_party/libwebp/webp_js/index_wasm.html +FILE: ../../../third_party/libwebp/webp_js/test_webp_js.webp +FILE: ../../../third_party/libwebp/webp_js/test_webp_wasm.webp +---------------------------------------------------------------------------------------------------- +Copyright (c) 2010, Google Inc. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + * Neither the name of Google nor the names of its contributors may + be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: dart +ORIGIN: ../../../third_party/dart/runtime/platform/splay-tree-inl.h + ../../../third_party/dart/LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/dart/runtime/platform/splay-tree-inl.h +FILE: ../../../third_party/dart/runtime/platform/splay-tree.h +---------------------------------------------------------------------------------------------------- +Copyright (c) 2010, the Dart project authors. Please see the AUTHORS file +for details. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: glfw +ORIGIN: ../../../third_party/glfw/src/glfw_config.h.in +TYPE: LicenseType.zlib +FILE: ../../../third_party/glfw/src/glfw_config.h.in +---------------------------------------------------------------------------------------------------- +Copyright (c) 2010-2016 Camilla Löwy + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would + be appreciated but is not required. + +2. Altered source versions must be plainly marked as such, and must not + be misrepresented as being the original software. + +3. This notice may not be removed or altered from any source + distribution. +==================================================================================================== + +==================================================================================================== +LIBRARY: base +LIBRARY: zlib +ORIGIN: ../../../third_party/angle/src/common/third_party/base/anglebase/containers/mru_cache.h + ../../../LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/angle/src/common/third_party/base/anglebase/containers/mru_cache.h +FILE: ../../../third_party/angle/src/common/third_party/base/anglebase/sha1.cc +FILE: ../../../third_party/angle/src/common/third_party/base/anglebase/sha1.h +FILE: ../../../third_party/zlib/google/zip.h +FILE: ../../../third_party/zlib/google/zip_internal.cc +FILE: ../../../third_party/zlib/google/zip_internal.h +FILE: ../../../third_party/zlib/google/zip_reader.h +FILE: ../../../third_party/zlib/google/zip_reader_unittest.cc +FILE: ../../../third_party/zlib/google/zip_unittest.cc +---------------------------------------------------------------------------------------------------- +Copyright (c) 2011 The Chromium Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: boringssl +ORIGIN: ../../../third_party/boringssl/src/crypto/dh_extra/params.c +TYPE: LicenseType.bsd +FILE: ../../../third_party/boringssl/src/crypto/dh_extra/params.c +---------------------------------------------------------------------------------------------------- +Copyright (c) 2011 The OpenSSL Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + licensing@OpenSSL.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: boringssl +ORIGIN: ../../../third_party/boringssl/src/decrepit/xts/xts.c +TYPE: LicenseType.bsd +FILE: ../../../third_party/boringssl/src/decrepit/xts/xts.c +---------------------------------------------------------------------------------------------------- +Copyright (c) 2011 The OpenSSL Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + openssl-core@openssl.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.openssl.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: dart +ORIGIN: ../../../third_party/dart/runtime/bin/process_test.cc + ../../../third_party/dart/LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/dart/runtime/bin/process_test.cc +FILE: ../../../third_party/dart/runtime/bin/snapshot_empty.cc +FILE: ../../../third_party/dart/runtime/bin/snapshot_in.cc +FILE: ../../../third_party/dart/runtime/include/dart_tools_api.h +FILE: ../../../third_party/dart/runtime/lib/double.cc +FILE: ../../../third_party/dart/runtime/lib/math.cc +FILE: ../../../third_party/dart/runtime/lib/mirrors.h +FILE: ../../../third_party/dart/runtime/lib/object.cc +FILE: ../../../third_party/dart/runtime/lib/string.cc +FILE: ../../../third_party/dart/runtime/vm/bitfield.h +FILE: ../../../third_party/dart/runtime/vm/code_patcher_ia32_test.cc +FILE: ../../../third_party/dart/runtime/vm/code_patcher_x64_test.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/assembler/disassembler.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/assembler/disassembler.h +FILE: ../../../third_party/dart/runtime/vm/compiler/assembler/disassembler_test.cc +FILE: ../../../third_party/dart/runtime/vm/cpu_ia32.cc +FILE: ../../../third_party/dart/runtime/vm/custom_isolate_test.cc +FILE: ../../../third_party/dart/runtime/vm/dart.h +FILE: ../../../third_party/dart/runtime/vm/dart_api_impl.h +FILE: ../../../third_party/dart/runtime/vm/dart_entry.cc +FILE: ../../../third_party/dart/runtime/vm/dart_entry.h +FILE: ../../../third_party/dart/runtime/vm/debugger_arm.cc +FILE: ../../../third_party/dart/runtime/vm/debugger_ia32.cc +FILE: ../../../third_party/dart/runtime/vm/debugger_x64.cc +FILE: ../../../third_party/dart/runtime/vm/double_conversion.cc +FILE: ../../../third_party/dart/runtime/vm/double_conversion.h +FILE: ../../../third_party/dart/runtime/vm/exceptions.cc +FILE: ../../../third_party/dart/runtime/vm/exceptions.h +FILE: ../../../third_party/dart/runtime/vm/handle_visitor.h +FILE: ../../../third_party/dart/runtime/vm/handles.h +FILE: ../../../third_party/dart/runtime/vm/heap/freelist.cc +FILE: ../../../third_party/dart/runtime/vm/heap/marker.cc +FILE: ../../../third_party/dart/runtime/vm/heap/marker.h +FILE: ../../../third_party/dart/runtime/vm/heap/pages.h +FILE: ../../../third_party/dart/runtime/vm/heap/scavenger.cc +FILE: ../../../third_party/dart/runtime/vm/heap/sweeper.cc +FILE: ../../../third_party/dart/runtime/vm/heap/sweeper.h +FILE: ../../../third_party/dart/runtime/vm/heap/verifier.h +FILE: ../../../third_party/dart/runtime/vm/longjump.cc +FILE: ../../../third_party/dart/runtime/vm/longjump_test.cc +FILE: ../../../third_party/dart/runtime/vm/memory_region.cc +FILE: ../../../third_party/dart/runtime/vm/message.cc +FILE: ../../../third_party/dart/runtime/vm/message.h +FILE: ../../../third_party/dart/runtime/vm/message_handler.cc +FILE: ../../../third_party/dart/runtime/vm/message_handler.h +FILE: ../../../third_party/dart/runtime/vm/native_entry.cc +FILE: ../../../third_party/dart/runtime/vm/native_entry.h +FILE: ../../../third_party/dart/runtime/vm/native_entry_test.cc +FILE: ../../../third_party/dart/runtime/vm/native_entry_test.h +FILE: ../../../third_party/dart/runtime/vm/native_function.h +FILE: ../../../third_party/dart/runtime/vm/object_store_test.cc +FILE: ../../../third_party/dart/runtime/vm/os.h +FILE: ../../../third_party/dart/runtime/vm/port.h +FILE: ../../../third_party/dart/runtime/vm/resolver.cc +FILE: ../../../third_party/dart/runtime/vm/resolver.h +FILE: ../../../third_party/dart/runtime/vm/runtime_entry.cc +FILE: ../../../third_party/dart/runtime/vm/runtime_entry.h +FILE: ../../../third_party/dart/runtime/vm/runtime_entry_arm.cc +FILE: ../../../third_party/dart/runtime/vm/runtime_entry_ia32.cc +FILE: ../../../third_party/dart/runtime/vm/runtime_entry_list.h +FILE: ../../../third_party/dart/runtime/vm/runtime_entry_x64.cc +FILE: ../../../third_party/dart/runtime/vm/stack_frame.h +FILE: ../../../third_party/dart/runtime/vm/stub_code.h +FILE: ../../../third_party/dart/runtime/vm/stub_code_ia32_test.cc +FILE: ../../../third_party/dart/runtime/vm/stub_code_x64_test.cc +FILE: ../../../third_party/dart/runtime/vm/timer.cc +FILE: ../../../third_party/dart/runtime/vm/timer.h +FILE: ../../../third_party/dart/runtime/vm/token.cc +FILE: ../../../third_party/dart/runtime/vm/unicode_data.cc +FILE: ../../../third_party/dart/runtime/vm/unicode_test.cc +FILE: ../../../third_party/dart/runtime/vm/unit_test.h +FILE: ../../../third_party/dart/runtime/vm/visitor.h +FILE: ../../../third_party/dart/sdk/lib/collection/queue.dart +FILE: ../../../third_party/dart/sdk/lib/core/comparable.dart +FILE: ../../../third_party/dart/sdk/lib/core/date_time.dart +FILE: ../../../third_party/dart/sdk/lib/core/duration.dart +FILE: ../../../third_party/dart/sdk/lib/core/function.dart +FILE: ../../../third_party/dart/sdk/lib/core/iterable.dart +FILE: ../../../third_party/dart/sdk/lib/core/map.dart +FILE: ../../../third_party/dart/sdk/lib/core/pattern.dart +FILE: ../../../third_party/dart/sdk/lib/core/set.dart +FILE: ../../../third_party/dart/sdk/lib/core/stopwatch.dart +FILE: ../../../third_party/dart/sdk/lib/core/string_buffer.dart +FILE: ../../../third_party/dart/sdk/lib/html/html_common/device.dart +FILE: ../../../third_party/dart/sdk/lib/html/html_common/filtered_element_list.dart +FILE: ../../../third_party/dart/sdk/lib/html/html_common/lists.dart +FILE: ../../../third_party/dart/sdk/lib/internal/iterable.dart +FILE: ../../../third_party/dart/sdk/lib/internal/sort.dart +FILE: ../../../third_party/dart/utils/peg/pegparser.dart +---------------------------------------------------------------------------------------------------- +Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file +for details. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: zlib +ORIGIN: ../../../third_party/zlib/google/zip.cc + ../../../LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/zlib/google/zip.cc +FILE: ../../../third_party/zlib/google/zip_reader.cc +---------------------------------------------------------------------------------------------------- +Copyright (c) 2012 The Chromium Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: boringssl +ORIGIN: ../../../third_party/boringssl/src/crypto/cipher_extra/tls_cbc.c +TYPE: LicenseType.bsd +FILE: ../../../third_party/boringssl/src/crypto/cipher_extra/tls_cbc.c +---------------------------------------------------------------------------------------------------- +Copyright (c) 2012 The OpenSSL Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + openssl-core@openssl.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.openssl.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: dart +ORIGIN: ../../../third_party/dart/runtime/bin/builtin.cc + ../../../third_party/dart/LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/dart/DEPS +FILE: ../../../third_party/dart/runtime/bin/builtin.cc +FILE: ../../../third_party/dart/runtime/bin/builtin.h +FILE: ../../../third_party/dart/runtime/bin/builtin_gen_snapshot.cc +FILE: ../../../third_party/dart/runtime/bin/builtin_in.cc +FILE: ../../../third_party/dart/runtime/bin/builtin_natives.cc +FILE: ../../../third_party/dart/runtime/bin/crashpad.cc +FILE: ../../../third_party/dart/runtime/bin/crypto.cc +FILE: ../../../third_party/dart/runtime/bin/crypto.h +FILE: ../../../third_party/dart/runtime/bin/crypto_android.cc +FILE: ../../../third_party/dart/runtime/bin/crypto_linux.cc +FILE: ../../../third_party/dart/runtime/bin/crypto_macos.cc +FILE: ../../../third_party/dart/runtime/bin/crypto_win.cc +FILE: ../../../third_party/dart/runtime/bin/dartutils.cc +FILE: ../../../third_party/dart/runtime/bin/dartutils.h +FILE: ../../../third_party/dart/runtime/bin/directory.cc +FILE: ../../../third_party/dart/runtime/bin/directory.h +FILE: ../../../third_party/dart/runtime/bin/directory_android.cc +FILE: ../../../third_party/dart/runtime/bin/directory_linux.cc +FILE: ../../../third_party/dart/runtime/bin/directory_macos.cc +FILE: ../../../third_party/dart/runtime/bin/directory_win.cc +FILE: ../../../third_party/dart/runtime/bin/eventhandler.cc +FILE: ../../../third_party/dart/runtime/bin/eventhandler.h +FILE: ../../../third_party/dart/runtime/bin/eventhandler_android.cc +FILE: ../../../third_party/dart/runtime/bin/eventhandler_android.h +FILE: ../../../third_party/dart/runtime/bin/eventhandler_linux.cc +FILE: ../../../third_party/dart/runtime/bin/eventhandler_linux.h +FILE: ../../../third_party/dart/runtime/bin/eventhandler_macos.cc +FILE: ../../../third_party/dart/runtime/bin/eventhandler_macos.h +FILE: ../../../third_party/dart/runtime/bin/eventhandler_test.cc +FILE: ../../../third_party/dart/runtime/bin/eventhandler_win.h +FILE: ../../../third_party/dart/runtime/bin/fdutils.h +FILE: ../../../third_party/dart/runtime/bin/fdutils_android.cc +FILE: ../../../third_party/dart/runtime/bin/fdutils_fuchsia.cc +FILE: ../../../third_party/dart/runtime/bin/fdutils_linux.cc +FILE: ../../../third_party/dart/runtime/bin/fdutils_macos.cc +FILE: ../../../third_party/dart/runtime/bin/file_android.cc +FILE: ../../../third_party/dart/runtime/bin/file_linux.cc +FILE: ../../../third_party/dart/runtime/bin/file_macos.cc +FILE: ../../../third_party/dart/runtime/bin/file_test.cc +FILE: ../../../third_party/dart/runtime/bin/file_win.cc +FILE: ../../../third_party/dart/runtime/bin/hashmap_test.cc +FILE: ../../../third_party/dart/runtime/bin/io_buffer.cc +FILE: ../../../third_party/dart/runtime/bin/io_buffer.h +FILE: ../../../third_party/dart/runtime/bin/io_natives.h +FILE: ../../../third_party/dart/runtime/bin/isolate_data.h +FILE: ../../../third_party/dart/runtime/bin/lockers.h +FILE: ../../../third_party/dart/runtime/bin/main.cc +FILE: ../../../third_party/dart/runtime/bin/platform.cc +FILE: ../../../third_party/dart/runtime/bin/platform.h +FILE: ../../../third_party/dart/runtime/bin/platform_android.cc +FILE: ../../../third_party/dart/runtime/bin/platform_linux.cc +FILE: ../../../third_party/dart/runtime/bin/platform_macos.cc +FILE: ../../../third_party/dart/runtime/bin/platform_win.cc +FILE: ../../../third_party/dart/runtime/bin/process.h +FILE: ../../../third_party/dart/runtime/bin/process_android.cc +FILE: ../../../third_party/dart/runtime/bin/process_linux.cc +FILE: ../../../third_party/dart/runtime/bin/process_macos.cc +FILE: ../../../third_party/dart/runtime/bin/process_win.cc +FILE: ../../../third_party/dart/runtime/bin/run_vm_tests.cc +FILE: ../../../third_party/dart/runtime/bin/secure_socket_unsupported.cc +FILE: ../../../third_party/dart/runtime/bin/socket_android.cc +FILE: ../../../third_party/dart/runtime/bin/socket_base_android.h +FILE: ../../../third_party/dart/runtime/bin/socket_base_linux.h +FILE: ../../../third_party/dart/runtime/bin/socket_base_macos.h +FILE: ../../../third_party/dart/runtime/bin/socket_base_win.h +FILE: ../../../third_party/dart/runtime/bin/thread.h +FILE: ../../../third_party/dart/runtime/bin/thread_android.cc +FILE: ../../../third_party/dart/runtime/bin/thread_android.h +FILE: ../../../third_party/dart/runtime/bin/thread_linux.cc +FILE: ../../../third_party/dart/runtime/bin/thread_linux.h +FILE: ../../../third_party/dart/runtime/bin/thread_macos.cc +FILE: ../../../third_party/dart/runtime/bin/thread_macos.h +FILE: ../../../third_party/dart/runtime/bin/thread_win.cc +FILE: ../../../third_party/dart/runtime/bin/thread_win.h +FILE: ../../../third_party/dart/runtime/bin/utils.h +FILE: ../../../third_party/dart/runtime/bin/utils_android.cc +FILE: ../../../third_party/dart/runtime/bin/utils_linux.cc +FILE: ../../../third_party/dart/runtime/bin/utils_macos.cc +FILE: ../../../third_party/dart/runtime/bin/utils_win.cc +FILE: ../../../third_party/dart/runtime/bin/utils_win.h +FILE: ../../../third_party/dart/runtime/include/dart_api.h +FILE: ../../../third_party/dart/runtime/lib/array.cc +FILE: ../../../third_party/dart/runtime/lib/bool.cc +FILE: ../../../third_party/dart/runtime/lib/date.cc +FILE: ../../../third_party/dart/runtime/lib/errors.cc +FILE: ../../../third_party/dart/runtime/lib/function.cc +FILE: ../../../third_party/dart/runtime/lib/growable_array.cc +FILE: ../../../third_party/dart/runtime/lib/identical.cc +FILE: ../../../third_party/dart/runtime/lib/integers.cc +FILE: ../../../third_party/dart/runtime/lib/isolate.cc +FILE: ../../../third_party/dart/runtime/lib/mirrors.cc +FILE: ../../../third_party/dart/runtime/lib/regexp.cc +FILE: ../../../third_party/dart/runtime/lib/stopwatch.cc +FILE: ../../../third_party/dart/runtime/platform/assert.cc +FILE: ../../../third_party/dart/runtime/platform/assert.h +FILE: ../../../third_party/dart/runtime/platform/floating_point.h +FILE: ../../../third_party/dart/runtime/platform/floating_point_win.cc +FILE: ../../../third_party/dart/runtime/platform/floating_point_win.h +FILE: ../../../third_party/dart/runtime/platform/globals.h +FILE: ../../../third_party/dart/runtime/platform/hashmap.cc +FILE: ../../../third_party/dart/runtime/platform/hashmap.h +FILE: ../../../third_party/dart/runtime/platform/syslog.h +FILE: ../../../third_party/dart/runtime/platform/syslog_android.cc +FILE: ../../../third_party/dart/runtime/platform/syslog_linux.cc +FILE: ../../../third_party/dart/runtime/platform/syslog_macos.cc +FILE: ../../../third_party/dart/runtime/platform/syslog_win.cc +FILE: ../../../third_party/dart/runtime/platform/text_buffer.cc +FILE: ../../../third_party/dart/runtime/platform/text_buffer.h +FILE: ../../../third_party/dart/runtime/platform/unicode.cc +FILE: ../../../third_party/dart/runtime/platform/unicode.h +FILE: ../../../third_party/dart/runtime/platform/utils.cc +FILE: ../../../third_party/dart/runtime/platform/utils.h +FILE: ../../../third_party/dart/runtime/platform/utils_android.cc +FILE: ../../../third_party/dart/runtime/platform/utils_android.h +FILE: ../../../third_party/dart/runtime/platform/utils_linux.cc +FILE: ../../../third_party/dart/runtime/platform/utils_linux.h +FILE: ../../../third_party/dart/runtime/platform/utils_macos.cc +FILE: ../../../third_party/dart/runtime/platform/utils_macos.h +FILE: ../../../third_party/dart/runtime/platform/utils_win.cc +FILE: ../../../third_party/dart/runtime/platform/utils_win.h +FILE: ../../../third_party/dart/runtime/vm/allocation.cc +FILE: ../../../third_party/dart/runtime/vm/allocation_test.cc +FILE: ../../../third_party/dart/runtime/vm/assert_test.cc +FILE: ../../../third_party/dart/runtime/vm/base_isolate.h +FILE: ../../../third_party/dart/runtime/vm/benchmark_test.cc +FILE: ../../../third_party/dart/runtime/vm/benchmark_test.h +FILE: ../../../third_party/dart/runtime/vm/bit_set.h +FILE: ../../../third_party/dart/runtime/vm/bit_vector.cc +FILE: ../../../third_party/dart/runtime/vm/bit_vector.h +FILE: ../../../third_party/dart/runtime/vm/bit_vector_test.cc +FILE: ../../../third_party/dart/runtime/vm/bitfield_test.cc +FILE: ../../../third_party/dart/runtime/vm/bitmap.cc +FILE: ../../../third_party/dart/runtime/vm/bitmap.h +FILE: ../../../third_party/dart/runtime/vm/bitmap_test.cc +FILE: ../../../third_party/dart/runtime/vm/boolfield.h +FILE: ../../../third_party/dart/runtime/vm/boolfield_test.cc +FILE: ../../../third_party/dart/runtime/vm/bootstrap.cc +FILE: ../../../third_party/dart/runtime/vm/bootstrap.h +FILE: ../../../third_party/dart/runtime/vm/bootstrap_natives.cc +FILE: ../../../third_party/dart/runtime/vm/bootstrap_natives.h +FILE: ../../../third_party/dart/runtime/vm/class_finalizer.h +FILE: ../../../third_party/dart/runtime/vm/class_finalizer_test.cc +FILE: ../../../third_party/dart/runtime/vm/class_table.cc +FILE: ../../../third_party/dart/runtime/vm/class_table.h +FILE: ../../../third_party/dart/runtime/vm/code_descriptors.cc +FILE: ../../../third_party/dart/runtime/vm/code_descriptors.h +FILE: ../../../third_party/dart/runtime/vm/code_descriptors_test.cc +FILE: ../../../third_party/dart/runtime/vm/code_observers.cc +FILE: ../../../third_party/dart/runtime/vm/code_observers.h +FILE: ../../../third_party/dart/runtime/vm/code_patcher.cc +FILE: ../../../third_party/dart/runtime/vm/code_patcher.h +FILE: ../../../third_party/dart/runtime/vm/code_patcher_ia32.cc +FILE: ../../../third_party/dart/runtime/vm/code_patcher_x64.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/aot/aot_call_specializer.h +FILE: ../../../third_party/dart/runtime/vm/compiler/assembler/assembler.h +FILE: ../../../third_party/dart/runtime/vm/compiler/assembler/assembler_base.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/assembler/assembler_ia32_test.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/assembler/assembler_x64_test.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/assembler/disassembler_x86.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/assembler/object_pool_builder.h +FILE: ../../../third_party/dart/runtime/vm/compiler/backend/constant_propagator.h +FILE: ../../../third_party/dart/runtime/vm/compiler/backend/flow_graph.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/backend/flow_graph_compiler.h +FILE: ../../../third_party/dart/runtime/vm/compiler/backend/flow_graph_test.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/backend/il_printer.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/backend/il_printer.h +FILE: ../../../third_party/dart/runtime/vm/compiler/backend/il_test.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/backend/inliner.h +FILE: ../../../third_party/dart/runtime/vm/compiler/cha.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/cha.h +FILE: ../../../third_party/dart/runtime/vm/compiler/cha_test.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/frontend/flow_graph_builder.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/frontend/flow_graph_builder.h +FILE: ../../../third_party/dart/runtime/vm/compiler/intrinsifier.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/intrinsifier.h +FILE: ../../../third_party/dart/runtime/vm/compiler/jit/compiler.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/jit/compiler.h +FILE: ../../../third_party/dart/runtime/vm/compiler_test.cc +FILE: ../../../third_party/dart/runtime/vm/cpu.h +FILE: ../../../third_party/dart/runtime/vm/cpu_arm.cc +FILE: ../../../third_party/dart/runtime/vm/cpu_test.cc +FILE: ../../../third_party/dart/runtime/vm/cpu_x64.cc +FILE: ../../../third_party/dart/runtime/vm/cpuinfo_linux.cc +FILE: ../../../third_party/dart/runtime/vm/cpuinfo_macos.cc +FILE: ../../../third_party/dart/runtime/vm/dart_api_impl_test.cc +FILE: ../../../third_party/dart/runtime/vm/dart_api_message.h +FILE: ../../../third_party/dart/runtime/vm/dart_api_state.h +FILE: ../../../third_party/dart/runtime/vm/datastream.h +FILE: ../../../third_party/dart/runtime/vm/debugger.cc +FILE: ../../../third_party/dart/runtime/vm/debugger.h +FILE: ../../../third_party/dart/runtime/vm/debugger_api_impl_test.cc +FILE: ../../../third_party/dart/runtime/vm/double_internals.h +FILE: ../../../third_party/dart/runtime/vm/exceptions_test.cc +FILE: ../../../third_party/dart/runtime/vm/flag_list.h +FILE: ../../../third_party/dart/runtime/vm/flags.cc +FILE: ../../../third_party/dart/runtime/vm/flags.h +FILE: ../../../third_party/dart/runtime/vm/flags_test.cc +FILE: ../../../third_party/dart/runtime/vm/globals.h +FILE: ../../../third_party/dart/runtime/vm/growable_array.h +FILE: ../../../third_party/dart/runtime/vm/growable_array_test.cc +FILE: ../../../third_party/dart/runtime/vm/handles.cc +FILE: ../../../third_party/dart/runtime/vm/handles_impl.h +FILE: ../../../third_party/dart/runtime/vm/handles_test.cc +FILE: ../../../third_party/dart/runtime/vm/hash_map.h +FILE: ../../../third_party/dart/runtime/vm/hash_map_test.cc +FILE: ../../../third_party/dart/runtime/vm/heap/freelist.h +FILE: ../../../third_party/dart/runtime/vm/heap/freelist_test.cc +FILE: ../../../third_party/dart/runtime/vm/heap/heap.cc +FILE: ../../../third_party/dart/runtime/vm/heap/heap.h +FILE: ../../../third_party/dart/runtime/vm/heap/heap_test.cc +FILE: ../../../third_party/dart/runtime/vm/heap/pages.cc +FILE: ../../../third_party/dart/runtime/vm/heap/pages_test.cc +FILE: ../../../third_party/dart/runtime/vm/heap/pointer_block.cc +FILE: ../../../third_party/dart/runtime/vm/heap/pointer_block.h +FILE: ../../../third_party/dart/runtime/vm/heap/scavenger.h +FILE: ../../../third_party/dart/runtime/vm/heap/verifier.cc +FILE: ../../../third_party/dart/runtime/vm/instructions_ia32.cc +FILE: ../../../third_party/dart/runtime/vm/instructions_ia32.h +FILE: ../../../third_party/dart/runtime/vm/instructions_ia32_test.cc +FILE: ../../../third_party/dart/runtime/vm/instructions_x64.cc +FILE: ../../../third_party/dart/runtime/vm/instructions_x64.h +FILE: ../../../third_party/dart/runtime/vm/instructions_x64_test.cc +FILE: ../../../third_party/dart/runtime/vm/isolate_test.cc +FILE: ../../../third_party/dart/runtime/vm/json_test.cc +FILE: ../../../third_party/dart/runtime/vm/lockers.h +FILE: ../../../third_party/dart/runtime/vm/megamorphic_cache_table.cc +FILE: ../../../third_party/dart/runtime/vm/megamorphic_cache_table.h +FILE: ../../../third_party/dart/runtime/vm/memory_region.h +FILE: ../../../third_party/dart/runtime/vm/memory_region_test.cc +FILE: ../../../third_party/dart/runtime/vm/message_handler_test.cc +FILE: ../../../third_party/dart/runtime/vm/message_test.cc +FILE: ../../../third_party/dart/runtime/vm/native_arguments.h +FILE: ../../../third_party/dart/runtime/vm/native_message_handler.cc +FILE: ../../../third_party/dart/runtime/vm/native_message_handler.h +FILE: ../../../third_party/dart/runtime/vm/object.cc +FILE: ../../../third_party/dart/runtime/vm/object.h +FILE: ../../../third_party/dart/runtime/vm/object_arm_test.cc +FILE: ../../../third_party/dart/runtime/vm/object_ia32_test.cc +FILE: ../../../third_party/dart/runtime/vm/object_set.h +FILE: ../../../third_party/dart/runtime/vm/object_store.h +FILE: ../../../third_party/dart/runtime/vm/object_test.cc +FILE: ../../../third_party/dart/runtime/vm/object_x64_test.cc +FILE: ../../../third_party/dart/runtime/vm/os_android.cc +FILE: ../../../third_party/dart/runtime/vm/os_linux.cc +FILE: ../../../third_party/dart/runtime/vm/os_macos.cc +FILE: ../../../third_party/dart/runtime/vm/os_thread.h +FILE: ../../../third_party/dart/runtime/vm/os_thread_android.cc +FILE: ../../../third_party/dart/runtime/vm/os_thread_android.h +FILE: ../../../third_party/dart/runtime/vm/os_thread_linux.cc +FILE: ../../../third_party/dart/runtime/vm/os_thread_linux.h +FILE: ../../../third_party/dart/runtime/vm/os_thread_macos.cc +FILE: ../../../third_party/dart/runtime/vm/os_thread_macos.h +FILE: ../../../third_party/dart/runtime/vm/os_thread_win.cc +FILE: ../../../third_party/dart/runtime/vm/os_thread_win.h +FILE: ../../../third_party/dart/runtime/vm/os_win.cc +FILE: ../../../third_party/dart/runtime/vm/parser.cc +FILE: ../../../third_party/dart/runtime/vm/parser.h +FILE: ../../../third_party/dart/runtime/vm/port.cc +FILE: ../../../third_party/dart/runtime/vm/port_test.cc +FILE: ../../../third_party/dart/runtime/vm/proccpuinfo.cc +FILE: ../../../third_party/dart/runtime/vm/proccpuinfo.h +FILE: ../../../third_party/dart/runtime/vm/raw_object.cc +FILE: ../../../third_party/dart/runtime/vm/raw_object.h +FILE: ../../../third_party/dart/runtime/vm/scopes.cc +FILE: ../../../third_party/dart/runtime/vm/scopes.h +FILE: ../../../third_party/dart/runtime/vm/scopes_test.cc +FILE: ../../../third_party/dart/runtime/vm/snapshot.cc +FILE: ../../../third_party/dart/runtime/vm/snapshot.h +FILE: ../../../third_party/dart/runtime/vm/snapshot_test.cc +FILE: ../../../third_party/dart/runtime/vm/stack_frame.cc +FILE: ../../../third_party/dart/runtime/vm/stack_frame_test.cc +FILE: ../../../third_party/dart/runtime/vm/stub_code.cc +FILE: ../../../third_party/dart/runtime/vm/symbols.cc +FILE: ../../../third_party/dart/runtime/vm/symbols.h +FILE: ../../../third_party/dart/runtime/vm/thread_pool.cc +FILE: ../../../third_party/dart/runtime/vm/thread_pool.h +FILE: ../../../third_party/dart/runtime/vm/thread_pool_test.cc +FILE: ../../../third_party/dart/runtime/vm/thread_test.cc +FILE: ../../../third_party/dart/runtime/vm/token.h +FILE: ../../../third_party/dart/runtime/vm/unicode.cc +FILE: ../../../third_party/dart/runtime/vm/unit_test.cc +FILE: ../../../third_party/dart/runtime/vm/utils_test.cc +FILE: ../../../third_party/dart/runtime/vm/version.h +FILE: ../../../third_party/dart/runtime/vm/version_in.cc +FILE: ../../../third_party/dart/runtime/vm/virtual_memory.cc +FILE: ../../../third_party/dart/runtime/vm/virtual_memory.h +FILE: ../../../third_party/dart/runtime/vm/virtual_memory_posix.cc +FILE: ../../../third_party/dart/runtime/vm/virtual_memory_test.cc +FILE: ../../../third_party/dart/runtime/vm/virtual_memory_win.cc +FILE: ../../../third_party/dart/runtime/vm/zone.cc +FILE: ../../../third_party/dart/runtime/vm/zone.h +FILE: ../../../third_party/dart/runtime/vm/zone_test.cc +FILE: ../../../third_party/dart/samples/samples.status +FILE: ../../../third_party/dart/sdk/lib/_http/crypto.dart +FILE: ../../../third_party/dart/sdk/lib/_http/http_date.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/patch/async_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/patch/core_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/patch/isolate_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/patch/math_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/private/foreign_helper.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/private/interceptors.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/private/isolate_helper.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/private/js_array.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/private/js_number.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/private/js_string.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/private/native_helper.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/private/regexp_helper.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/private/string_helper.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/js_runtime/lib/async_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/js_runtime/lib/constant_map.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/js_runtime/lib/core_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/js_runtime/lib/foreign_helper.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/js_runtime/lib/interceptors.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/js_runtime/lib/isolate_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/js_runtime/lib/js_array.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/js_runtime/lib/js_number.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/js_runtime/lib/js_string.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/js_runtime/lib/math_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/js_runtime/lib/native_helper.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/js_runtime/lib/regexp_helper.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/js_runtime/lib/string_helper.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/sdk_library_metadata/lib/libraries.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm/bin/builtin.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm/bin/common_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm/bin/directory_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm/bin/eventhandler_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm/bin/file_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm/bin/platform_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm/bin/secure_socket_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/array.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/date_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/double.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/double_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/empty_source.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/errors_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/expando_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/function_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/growable_array.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/identical_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/immutable_map.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/integers.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/invocation_mirror_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/isolate_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/math_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/mirrors_impl.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/mirrors_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/object_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/print_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/regexp_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/stopwatch_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/string_buffer_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/string_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/timer_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/type_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/weak_property.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm_shared/lib/array_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm_shared/lib/bool_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm_shared/lib/integers_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm_shared/lib/map_patch.dart +FILE: ../../../third_party/dart/sdk/lib/async/async.dart +FILE: ../../../third_party/dart/sdk/lib/async/async_error.dart +FILE: ../../../third_party/dart/sdk/lib/async/broadcast_stream_controller.dart +FILE: ../../../third_party/dart/sdk/lib/async/future.dart +FILE: ../../../third_party/dart/sdk/lib/async/future_impl.dart +FILE: ../../../third_party/dart/sdk/lib/async/stream_controller.dart +FILE: ../../../third_party/dart/sdk/lib/async/stream_impl.dart +FILE: ../../../third_party/dart/sdk/lib/async/stream_pipe.dart +FILE: ../../../third_party/dart/sdk/lib/async/timer.dart +FILE: ../../../third_party/dart/sdk/lib/collection/collection.dart +FILE: ../../../third_party/dart/sdk/lib/collection/iterable.dart +FILE: ../../../third_party/dart/sdk/lib/collection/iterator.dart +FILE: ../../../third_party/dart/sdk/lib/collection/maps.dart +FILE: ../../../third_party/dart/sdk/lib/collection/splay_tree.dart +FILE: ../../../third_party/dart/sdk/lib/core/bool.dart +FILE: ../../../third_party/dart/sdk/lib/core/core.dart +FILE: ../../../third_party/dart/sdk/lib/core/double.dart +FILE: ../../../third_party/dart/sdk/lib/core/errors.dart +FILE: ../../../third_party/dart/sdk/lib/core/exceptions.dart +FILE: ../../../third_party/dart/sdk/lib/core/identical.dart +FILE: ../../../third_party/dart/sdk/lib/core/int.dart +FILE: ../../../third_party/dart/sdk/lib/core/invocation.dart +FILE: ../../../third_party/dart/sdk/lib/core/iterator.dart +FILE: ../../../third_party/dart/sdk/lib/core/list.dart +FILE: ../../../third_party/dart/sdk/lib/core/num.dart +FILE: ../../../third_party/dart/sdk/lib/core/object.dart +FILE: ../../../third_party/dart/sdk/lib/core/print.dart +FILE: ../../../third_party/dart/sdk/lib/core/regexp.dart +FILE: ../../../third_party/dart/sdk/lib/core/string.dart +FILE: ../../../third_party/dart/sdk/lib/core/type.dart +FILE: ../../../third_party/dart/sdk/lib/core/uri.dart +FILE: ../../../third_party/dart/sdk/lib/core/weak.dart +FILE: ../../../third_party/dart/sdk/lib/html/dart2js/html_dart2js.dart +FILE: ../../../third_party/dart/sdk/lib/html/dartium/nativewrappers.dart +FILE: ../../../third_party/dart/sdk/lib/html/html_common/conversions.dart +FILE: ../../../third_party/dart/sdk/lib/html/html_common/css_class_set.dart +FILE: ../../../third_party/dart/sdk/lib/html/html_common/html_common_dart2js.dart +FILE: ../../../third_party/dart/sdk/lib/html/html_common/metadata.dart +FILE: ../../../third_party/dart/sdk/lib/indexed_db/dart2js/indexed_db_dart2js.dart +FILE: ../../../third_party/dart/sdk/lib/internal/async_cast.dart +FILE: ../../../third_party/dart/sdk/lib/internal/cast.dart +FILE: ../../../third_party/dart/sdk/lib/internal/internal.dart +FILE: ../../../third_party/dart/sdk/lib/io/common.dart +FILE: ../../../third_party/dart/sdk/lib/io/directory.dart +FILE: ../../../third_party/dart/sdk/lib/io/directory_impl.dart +FILE: ../../../third_party/dart/sdk/lib/io/eventhandler.dart +FILE: ../../../third_party/dart/sdk/lib/io/io.dart +FILE: ../../../third_party/dart/sdk/lib/io/platform.dart +FILE: ../../../third_party/dart/sdk/lib/io/platform_impl.dart +FILE: ../../../third_party/dart/sdk/lib/io/secure_server_socket.dart +FILE: ../../../third_party/dart/sdk/lib/isolate/isolate.dart +FILE: ../../../third_party/dart/sdk/lib/math/math.dart +FILE: ../../../third_party/dart/sdk/lib/math/random.dart +FILE: ../../../third_party/dart/sdk/lib/svg/dart2js/svg_dart2js.dart +FILE: ../../../third_party/dart/sdk/lib/web_audio/dart2js/web_audio_dart2js.dart +FILE: ../../../third_party/dart/sdk/lib/web_gl/dart2js/web_gl_dart2js.dart +FILE: ../../../third_party/dart/sdk/lib/web_sql/dart2js/web_sql_dart2js.dart +---------------------------------------------------------------------------------------------------- +Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file +for details. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: angle +ORIGIN: ../../../third_party/angle/src/third_party/trace_event/trace_event.h + ../../../LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/angle/src/third_party/trace_event/trace_event.h +---------------------------------------------------------------------------------------------------- +Copyright (c) 2013 The Chromium Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: boringssl +ORIGIN: ../../../third_party/boringssl/src/crypto/x509/internal.h +TYPE: LicenseType.bsd +FILE: ../../../third_party/boringssl/src/crypto/x509/internal.h +---------------------------------------------------------------------------------------------------- +Copyright (c) 2013 The OpenSSL Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + licensing@OpenSSL.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: dart +ORIGIN: ../../../third_party/dart/runtime/bin/eventhandler_win.cc + ../../../third_party/dart/LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/dart/WATCHLISTS +FILE: ../../../third_party/dart/runtime/bin/eventhandler_win.cc +FILE: ../../../third_party/dart/runtime/bin/file.cc +FILE: ../../../third_party/dart/runtime/bin/file.h +FILE: ../../../third_party/dart/runtime/bin/file_system_watcher.cc +FILE: ../../../third_party/dart/runtime/bin/file_system_watcher.h +FILE: ../../../third_party/dart/runtime/bin/file_system_watcher_android.cc +FILE: ../../../third_party/dart/runtime/bin/file_system_watcher_linux.cc +FILE: ../../../third_party/dart/runtime/bin/file_system_watcher_macos.cc +FILE: ../../../third_party/dart/runtime/bin/file_system_watcher_win.cc +FILE: ../../../third_party/dart/runtime/bin/filter.cc +FILE: ../../../third_party/dart/runtime/bin/filter.h +FILE: ../../../third_party/dart/runtime/bin/gen_snapshot.cc +FILE: ../../../third_party/dart/runtime/bin/io_natives.cc +FILE: ../../../third_party/dart/runtime/bin/io_service.cc +FILE: ../../../third_party/dart/runtime/bin/io_service.h +FILE: ../../../third_party/dart/runtime/bin/io_service_no_ssl.cc +FILE: ../../../third_party/dart/runtime/bin/io_service_no_ssl.h +FILE: ../../../third_party/dart/runtime/bin/process.cc +FILE: ../../../third_party/dart/runtime/bin/socket.cc +FILE: ../../../third_party/dart/runtime/bin/socket.h +FILE: ../../../third_party/dart/runtime/bin/socket_base_linux.cc +FILE: ../../../third_party/dart/runtime/bin/socket_base_macos.cc +FILE: ../../../third_party/dart/runtime/bin/socket_base_win.cc +FILE: ../../../third_party/dart/runtime/bin/socket_linux.cc +FILE: ../../../third_party/dart/runtime/bin/socket_macos.cc +FILE: ../../../third_party/dart/runtime/bin/socket_win.cc +FILE: ../../../third_party/dart/runtime/bin/stdio.cc +FILE: ../../../third_party/dart/runtime/bin/stdio.h +FILE: ../../../third_party/dart/runtime/bin/stdio_android.cc +FILE: ../../../third_party/dart/runtime/bin/stdio_linux.cc +FILE: ../../../third_party/dart/runtime/bin/stdio_macos.cc +FILE: ../../../third_party/dart/runtime/bin/stdio_win.cc +FILE: ../../../third_party/dart/runtime/bin/vmservice_impl.cc +FILE: ../../../third_party/dart/runtime/bin/vmservice_impl.h +FILE: ../../../third_party/dart/runtime/include/dart_native_api.h +FILE: ../../../third_party/dart/runtime/lib/invocation_mirror.h +FILE: ../../../third_party/dart/runtime/lib/libgen_in.cc +FILE: ../../../third_party/dart/runtime/lib/simd128.cc +FILE: ../../../third_party/dart/runtime/lib/stacktrace.cc +FILE: ../../../third_party/dart/runtime/lib/typed_data.cc +FILE: ../../../third_party/dart/runtime/lib/uri.cc +FILE: ../../../third_party/dart/runtime/observatory/lib/src/app/application.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/app/location_manager.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/class_instances.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/class_ref.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/class_view.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/code_ref.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/code_view.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/context_ref.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/context_view.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/cpu_profile.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/cpu_profile/virtual_tree.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/cpu_profile_table.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/curly_block.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/error_view.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/eval_box.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/field_ref.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/field_view.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/flag_list.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/function_ref.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/function_view.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/heap_snapshot.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/helpers/any_ref.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/icdata_ref.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/icdata_view.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/instance_ref.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/instance_view.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/isolate_ref.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/isolate_view.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/json_view.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/library_ref.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/library_view.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/local_var_descriptors_ref.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/megamorphiccache_ref.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/native_memory_profiler.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/object_common.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/object_view.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/objectpool_ref.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/objectstore_view.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/observatory_application.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/pc_descriptors_ref.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/sample_buffer_control.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/script_inset.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/script_ref.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/script_view.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/sentinel_value.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/sentinel_view.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/source_inset.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/stack_trace_tree_config.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/type_arguments_ref.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/unknown_ref.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/vm_view.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/tracer.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/app/application.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/app/location_manager.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/class_instances.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/class_ref.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/class_view.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/code_ref.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/code_view.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/context_ref.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/context_view.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/cpu_profile.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/cpu_profile/virtual_tree.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/cpu_profile_table.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/curly_block.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/error_view.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/eval_box.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/field_ref.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/field_view.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/flag_list.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/function_ref.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/function_view.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/heap_snapshot.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/helpers/any_ref.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/icdata_ref.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/icdata_view.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/instance_ref.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/instance_view.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/isolate_ref.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/isolate_view.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/json_view.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/library_ref.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/library_view.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/local_var_descriptors_ref.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/megamorphiccache_ref.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/native_memory_profiler.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/object_common.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/object_view.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/objectpool_ref.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/objectstore_view.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/observatory_application.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/pc_descriptors_ref.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/sample_buffer_control.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/script_inset.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/script_ref.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/script_view.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/sentinel_value.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/sentinel_view.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/source_inset.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/stack_trace_tree_config.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/type_arguments_ref.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/unknown_ref.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/vm_view.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/tracer.dart +FILE: ../../../third_party/dart/runtime/platform/atomic.h +FILE: ../../../third_party/dart/runtime/platform/signal_blocker.h +FILE: ../../../third_party/dart/runtime/vm/allocation.h +FILE: ../../../third_party/dart/runtime/vm/class_finalizer.cc +FILE: ../../../third_party/dart/runtime/vm/code_patcher_arm.cc +FILE: ../../../third_party/dart/runtime/vm/code_patcher_arm_test.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/aot/aot_call_specializer.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/assembler/assembler_arm.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/assembler/assembler_arm.h +FILE: ../../../third_party/dart/runtime/vm/compiler/assembler/assembler_arm64_test.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/assembler/assembler_arm_test.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/assembler/assembler_ia32.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/assembler/assembler_ia32.h +FILE: ../../../third_party/dart/runtime/vm/compiler/assembler/assembler_test.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/assembler/assembler_x64.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/assembler/assembler_x64.h +FILE: ../../../third_party/dart/runtime/vm/compiler/assembler/disassembler_arm.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/backend/block_scheduler.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/backend/block_scheduler.h +FILE: ../../../third_party/dart/runtime/vm/compiler/backend/constant_propagator.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/backend/flow_graph.h +FILE: ../../../third_party/dart/runtime/vm/compiler/backend/flow_graph_compiler.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/backend/flow_graph_compiler_arm.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/backend/flow_graph_compiler_ia32.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/backend/flow_graph_compiler_x64.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/backend/il.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/backend/il.h +FILE: ../../../third_party/dart/runtime/vm/compiler/backend/il_arm.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/backend/il_ia32.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/backend/il_x64.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/backend/inliner.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/backend/linearscan.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/backend/linearscan.h +FILE: ../../../third_party/dart/runtime/vm/compiler/backend/locations.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/backend/locations.h +FILE: ../../../third_party/dart/runtime/vm/compiler/backend/type_propagator.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/backend/type_propagator.h +FILE: ../../../third_party/dart/runtime/vm/compiler/jit/jit_call_specializer.cc +FILE: ../../../third_party/dart/runtime/vm/constants_arm.h +FILE: ../../../third_party/dart/runtime/vm/constants_ia32.h +FILE: ../../../third_party/dart/runtime/vm/constants_x64.h +FILE: ../../../third_party/dart/runtime/vm/dart.cc +FILE: ../../../third_party/dart/runtime/vm/dart_api_impl.cc +FILE: ../../../third_party/dart/runtime/vm/deferred_objects.cc +FILE: ../../../third_party/dart/runtime/vm/deferred_objects.h +FILE: ../../../third_party/dart/runtime/vm/deopt_instructions.cc +FILE: ../../../third_party/dart/runtime/vm/deopt_instructions.h +FILE: ../../../third_party/dart/runtime/vm/guard_field_test.cc +FILE: ../../../third_party/dart/runtime/vm/heap/weak_table.cc +FILE: ../../../third_party/dart/runtime/vm/heap/weak_table.h +FILE: ../../../third_party/dart/runtime/vm/instructions.h +FILE: ../../../third_party/dart/runtime/vm/instructions_arm.cc +FILE: ../../../third_party/dart/runtime/vm/instructions_arm.h +FILE: ../../../third_party/dart/runtime/vm/instructions_arm_test.cc +FILE: ../../../third_party/dart/runtime/vm/isolate.cc +FILE: ../../../third_party/dart/runtime/vm/isolate.h +FILE: ../../../third_party/dart/runtime/vm/json_stream.cc +FILE: ../../../third_party/dart/runtime/vm/json_stream.h +FILE: ../../../third_party/dart/runtime/vm/native_api_impl.cc +FILE: ../../../third_party/dart/runtime/vm/native_symbol.h +FILE: ../../../third_party/dart/runtime/vm/native_symbol_android.cc +FILE: ../../../third_party/dart/runtime/vm/native_symbol_linux.cc +FILE: ../../../third_party/dart/runtime/vm/native_symbol_macos.cc +FILE: ../../../third_party/dart/runtime/vm/native_symbol_win.cc +FILE: ../../../third_party/dart/runtime/vm/object_id_ring.cc +FILE: ../../../third_party/dart/runtime/vm/object_id_ring.h +FILE: ../../../third_party/dart/runtime/vm/object_id_ring_test.cc +FILE: ../../../third_party/dart/runtime/vm/object_store.cc +FILE: ../../../third_party/dart/runtime/vm/os_test.cc +FILE: ../../../third_party/dart/runtime/vm/profiler.cc +FILE: ../../../third_party/dart/runtime/vm/profiler.h +FILE: ../../../third_party/dart/runtime/vm/profiler_test.cc +FILE: ../../../third_party/dart/runtime/vm/random.cc +FILE: ../../../third_party/dart/runtime/vm/random.h +FILE: ../../../third_party/dart/runtime/vm/reusable_handles.h +FILE: ../../../third_party/dart/runtime/vm/service.cc +FILE: ../../../third_party/dart/runtime/vm/service.h +FILE: ../../../third_party/dart/runtime/vm/service_isolate.h +FILE: ../../../third_party/dart/runtime/vm/service_test.cc +FILE: ../../../third_party/dart/runtime/vm/signal_handler.h +FILE: ../../../third_party/dart/runtime/vm/signal_handler_android.cc +FILE: ../../../third_party/dart/runtime/vm/signal_handler_linux.cc +FILE: ../../../third_party/dart/runtime/vm/signal_handler_macos.cc +FILE: ../../../third_party/dart/runtime/vm/signal_handler_win.cc +FILE: ../../../third_party/dart/runtime/vm/simulator.h +FILE: ../../../third_party/dart/runtime/vm/simulator_arm.cc +FILE: ../../../third_party/dart/runtime/vm/simulator_arm.h +FILE: ../../../third_party/dart/runtime/vm/stack_frame_arm.h +FILE: ../../../third_party/dart/runtime/vm/stack_frame_ia32.h +FILE: ../../../third_party/dart/runtime/vm/stack_frame_x64.h +FILE: ../../../third_party/dart/runtime/vm/stub_code_arm_test.cc +FILE: ../../../third_party/dart/runtime/vm/tags.h +FILE: ../../../third_party/dart/runtime/vm/thread_interrupter.cc +FILE: ../../../third_party/dart/runtime/vm/thread_interrupter.h +FILE: ../../../third_party/dart/runtime/vm/thread_interrupter_android.cc +FILE: ../../../third_party/dart/runtime/vm/thread_interrupter_linux.cc +FILE: ../../../third_party/dart/runtime/vm/thread_interrupter_macos.cc +FILE: ../../../third_party/dart/runtime/vm/thread_interrupter_win.cc +FILE: ../../../third_party/dart/sdk/lib/_http/http.dart +FILE: ../../../third_party/dart/sdk/lib/_http/http_headers.dart +FILE: ../../../third_party/dart/sdk/lib/_http/http_impl.dart +FILE: ../../../third_party/dart/sdk/lib/_http/http_parser.dart +FILE: ../../../third_party/dart/sdk/lib/_http/http_session.dart +FILE: ../../../third_party/dart/sdk/lib/_http/websocket.dart +FILE: ../../../third_party/dart/sdk/lib/_http/websocket_impl.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/patch/collection_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/patch/convert_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/patch/internal_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/patch/io_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/patch/typed_data_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/private/annotations.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/private/js_helper.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/private/js_primitives.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/private/js_rti.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/private/mirror_helper.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/private/native_typed_data.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/js_runtime/lib/annotations.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/js_runtime/lib/collection_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/js_runtime/lib/convert_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/js_runtime/lib/internal_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/js_runtime/lib/io_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/js_runtime/lib/js_helper.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/js_runtime/lib/js_names.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/js_runtime/lib/js_primitives.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/js_runtime/lib/native_typed_data.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/js_runtime/lib/typed_data_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm/bin/file_system_entity_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm/bin/filter_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm/bin/io_service_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm/bin/process_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm/bin/socket_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm/bin/stdio_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm/bin/vmservice_io.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm/bin/vmservice_server.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/core_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/deferred_load_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/function.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/internal_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/mirror_reference.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/schedule_microtask_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/stacktrace.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/symbol_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/timer_impl.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/typed_data_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/uri_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm_shared/lib/collection_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm_shared/lib/null_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/io_patch.dart +FILE: ../../../third_party/dart/sdk/lib/async/deferred_load.dart +FILE: ../../../third_party/dart/sdk/lib/async/schedule_microtask.dart +FILE: ../../../third_party/dart/sdk/lib/async/stream.dart +FILE: ../../../third_party/dart/sdk/lib/async/stream_transformers.dart +FILE: ../../../third_party/dart/sdk/lib/async/zone.dart +FILE: ../../../third_party/dart/sdk/lib/collection/collections.dart +FILE: ../../../third_party/dart/sdk/lib/collection/hash_map.dart +FILE: ../../../third_party/dart/sdk/lib/collection/hash_set.dart +FILE: ../../../third_party/dart/sdk/lib/collection/linked_hash_map.dart +FILE: ../../../third_party/dart/sdk/lib/collection/linked_hash_set.dart +FILE: ../../../third_party/dart/sdk/lib/collection/linked_list.dart +FILE: ../../../third_party/dart/sdk/lib/collection/list.dart +FILE: ../../../third_party/dart/sdk/lib/convert/ascii.dart +FILE: ../../../third_party/dart/sdk/lib/convert/byte_conversion.dart +FILE: ../../../third_party/dart/sdk/lib/convert/chunked_conversion.dart +FILE: ../../../third_party/dart/sdk/lib/convert/codec.dart +FILE: ../../../third_party/dart/sdk/lib/convert/convert.dart +FILE: ../../../third_party/dart/sdk/lib/convert/converter.dart +FILE: ../../../third_party/dart/sdk/lib/convert/encoding.dart +FILE: ../../../third_party/dart/sdk/lib/convert/html_escape.dart +FILE: ../../../third_party/dart/sdk/lib/convert/json.dart +FILE: ../../../third_party/dart/sdk/lib/convert/latin1.dart +FILE: ../../../third_party/dart/sdk/lib/convert/line_splitter.dart +FILE: ../../../third_party/dart/sdk/lib/convert/string_conversion.dart +FILE: ../../../third_party/dart/sdk/lib/convert/utf.dart +FILE: ../../../third_party/dart/sdk/lib/core/annotations.dart +FILE: ../../../third_party/dart/sdk/lib/core/null.dart +FILE: ../../../third_party/dart/sdk/lib/core/stacktrace.dart +FILE: ../../../third_party/dart/sdk/lib/core/string_sink.dart +FILE: ../../../third_party/dart/sdk/lib/core/symbol.dart +FILE: ../../../third_party/dart/sdk/lib/internal/bytes_builder.dart +FILE: ../../../third_party/dart/sdk/lib/internal/list.dart +FILE: ../../../third_party/dart/sdk/lib/internal/print.dart +FILE: ../../../third_party/dart/sdk/lib/internal/symbol.dart +FILE: ../../../third_party/dart/sdk/lib/io/data_transformer.dart +FILE: ../../../third_party/dart/sdk/lib/io/file.dart +FILE: ../../../third_party/dart/sdk/lib/io/file_impl.dart +FILE: ../../../third_party/dart/sdk/lib/io/file_system_entity.dart +FILE: ../../../third_party/dart/sdk/lib/io/io_service.dart +FILE: ../../../third_party/dart/sdk/lib/io/io_sink.dart +FILE: ../../../third_party/dart/sdk/lib/io/link.dart +FILE: ../../../third_party/dart/sdk/lib/io/secure_socket.dart +FILE: ../../../third_party/dart/sdk/lib/io/socket.dart +FILE: ../../../third_party/dart/sdk/lib/io/stdio.dart +FILE: ../../../third_party/dart/sdk/lib/io/string_transformer.dart +FILE: ../../../third_party/dart/sdk/lib/js/js.dart +FILE: ../../../third_party/dart/sdk/lib/math/point.dart +FILE: ../../../third_party/dart/sdk/lib/math/rectangle.dart +FILE: ../../../third_party/dart/sdk/lib/mirrors/mirrors.dart +FILE: ../../../third_party/dart/sdk/lib/typed_data/typed_data.dart +FILE: ../../../third_party/dart/sdk/lib/vmservice/client.dart +FILE: ../../../third_party/dart/sdk/lib/vmservice/constants.dart +FILE: ../../../third_party/dart/sdk/lib/vmservice/message.dart +FILE: ../../../third_party/dart/sdk/lib/vmservice/message_router.dart +FILE: ../../../third_party/dart/sdk/lib/vmservice/running_isolate.dart +FILE: ../../../third_party/dart/sdk/lib/vmservice/running_isolates.dart +FILE: ../../../third_party/dart/sdk/lib/web_gl/dart2js/web_gl_dart2js.dart +FILE: ../../../third_party/dart/utils/compiler/create_snapshot_entry.dart +---------------------------------------------------------------------------------------------------- +Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file +for details. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: angle +LIBRARY: khronos +ORIGIN: ../../../third_party/angle/src/third_party/khronos/GL/wglext.h +TYPE: LicenseType.unknown +FILE: ../../../third_party/angle/src/third_party/khronos/GL/wglext.h +FILE: ../../../third_party/khronos/noninclude/GL/glext.h +FILE: ../../../third_party/khronos/noninclude/GL/wglext.h +---------------------------------------------------------------------------------------------------- +Copyright (c) 2013-2014 The Khronos Group Inc. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and/or associated documentation files (the +"Materials"), to deal in the Materials without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Materials, and to +permit persons to whom the Materials are furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Materials. + +THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. +==================================================================================================== + +==================================================================================================== +LIBRARY: khronos +ORIGIN: ../../../third_party/khronos/GLES3/gl31.h +TYPE: LicenseType.unknown +FILE: ../../../third_party/khronos/GLES3/gl31.h +FILE: ../../../third_party/khronos/GLES3/gl32.h +---------------------------------------------------------------------------------------------------- +Copyright (c) 2013-2016 The Khronos Group Inc. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and/or associated documentation files (the +"Materials"), to deal in the Materials without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Materials, and to +permit persons to whom the Materials are furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Materials. + +THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. +==================================================================================================== + +==================================================================================================== +LIBRARY: angle +ORIGIN: ../../../third_party/angle/include/GLES/glext.h +TYPE: LicenseType.unknown +FILE: ../../../third_party/angle/include/GLES/glext.h +---------------------------------------------------------------------------------------------------- +Copyright (c) 2013-2017 The Khronos Group Inc. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and/or associated documentation files (the +"Materials"), to deal in the Materials without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Materials, and to +permit persons to whom the Materials are furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Materials. + +THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. +==================================================================================================== + +==================================================================================================== +LIBRARY: angle +LIBRARY: khronos +ORIGIN: ../../../third_party/angle/include/GLES/gl.h +TYPE: LicenseType.unknown +FILE: ../../../third_party/angle/include/GLES/gl.h +FILE: ../../../third_party/angle/include/WGL/wgl.h +FILE: ../../../third_party/khronos/GLES2/gl2.h +FILE: ../../../third_party/khronos/GLES2/gl2ext.h +FILE: ../../../third_party/khronos/GLES3/gl3.h +---------------------------------------------------------------------------------------------------- +Copyright (c) 2013-2018 The Khronos Group Inc. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and/or associated documentation files (the +"Materials"), to deal in the Materials without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Materials, and to +permit persons to whom the Materials are furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Materials. + +THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. +==================================================================================================== + +==================================================================================================== +LIBRARY: icu +ORIGIN: ../../../third_party/icu/LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/icu/DIR_METADATA +FILE: ../../../third_party/icu/android/icudtl.dat +FILE: ../../../third_party/icu/cast/brkitr.patch +FILE: ../../../third_party/icu/cast/icudtl.dat +FILE: ../../../third_party/icu/chromeos/icudtl.dat +FILE: ../../../third_party/icu/chromeos/icudtl.dat.hash +FILE: ../../../third_party/icu/common/icudtb.dat +FILE: ../../../third_party/icu/common/icudtl.dat +FILE: ../../../third_party/icu/flutter/brkitr.patch +FILE: ../../../third_party/icu/flutter/icudtl.dat +FILE: ../../../third_party/icu/fuzzers/fuzzer_utils.h +FILE: ../../../third_party/icu/fuzzers/icu_appendable_fuzzer.cc +FILE: ../../../third_party/icu/fuzzers/icu_break_iterator_fuzzer.cc +FILE: ../../../third_party/icu/fuzzers/icu_break_iterator_utf32_fuzzer.cc +FILE: ../../../third_party/icu/fuzzers/icu_number_format_fuzzer.cc +FILE: ../../../third_party/icu/fuzzers/icu_to_case_fuzzer.cc +FILE: ../../../third_party/icu/fuzzers/icu_ucasemap_fuzzer.cc +FILE: ../../../third_party/icu/ios/icudtl.dat +FILE: ../../../third_party/icu/patches/AliasDataBuilder-readAlias.patch +FILE: ../../../third_party/icu/patches/DateIntervalFormatnormalizeHourMetacharacters.patch +FILE: ../../../third_party/icu/patches/ardatepattern.patch +FILE: ../../../third_party/icu/patches/atomic_template_instantiation.patch +FILE: ../../../third_party/icu/patches/calendar-get-out-of-bound.patch +FILE: ../../../third_party/icu/patches/calendar-get-out-of-bound2.patch +FILE: ../../../third_party/icu/patches/calendar_return_error_early.patch +FILE: ../../../third_party/icu/patches/cjdict.patch +FILE: ../../../third_party/icu/patches/collationdatabuilder.patch +FILE: ../../../third_party/icu/patches/configure.patch +FILE: ../../../third_party/icu/patches/cxx20enum.patch +FILE: ../../../third_party/icu/patches/data_symb.patch +FILE: ../../../third_party/icu/patches/formatted_string_builder.patch +FILE: ../../../third_party/icu/patches/fuchsia.patch +FILE: ../../../third_party/icu/patches/gb_table.patch +FILE: ../../../third_party/icu/patches/iso2022jp.patch +FILE: ../../../third_party/icu/patches/isvalidenum.patch +FILE: ../../../third_party/icu/patches/khmer-dictbe.patch +FILE: ../../../third_party/icu/patches/locale1.patch +FILE: ../../../third_party/icu/patches/locale_google.patch +FILE: ../../../third_party/icu/patches/number_range_format.patch +FILE: ../../../third_party/icu/patches/restrace.patch +FILE: ../../../third_party/icu/patches/rmATOMIC_VAR_INIT.patch +FILE: ../../../third_party/icu/patches/timezone-rawoffset.patch +FILE: ../../../third_party/icu/patches/unused-var-unary-operators.patch +FILE: ../../../third_party/icu/patches/wordbrk.patch +FILE: ../../../third_party/icu/patches/wpo.patch +FILE: ../../../third_party/icu/source/data/in/coll/ucadata-implicithan.icu +FILE: ../../../third_party/icu/source/data/in/coll/ucadata-unihan.icu +FILE: ../../../third_party/icu/source/data/in/nfc.nrm +FILE: ../../../third_party/icu/source/data/in/nfkc.nrm +FILE: ../../../third_party/icu/source/data/in/nfkc_cf.nrm +FILE: ../../../third_party/icu/source/data/in/pnames.icu +FILE: ../../../third_party/icu/source/data/in/ubidi.icu +FILE: ../../../third_party/icu/source/data/in/ucase.icu +FILE: ../../../third_party/icu/source/data/in/uemoji.icu +FILE: ../../../third_party/icu/source/data/in/ulayout.icu +FILE: ../../../third_party/icu/source/data/in/unames.icu +FILE: ../../../third_party/icu/source/data/in/uprops.icu +FILE: ../../../third_party/icu/source/data/in/uts46.nrm +FILE: ../../../third_party/icu/source/data/mappings/big5-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/euc-jp-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/euc-kr-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/gb18030.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm866-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-10-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-13-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-14-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-15-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-16-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-2-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-3-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-4-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-5-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-6-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-7-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-8-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/koi8-r-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/koi8-u-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/macintosh-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/shift_jis-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1250-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1251-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1252-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1253-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1254-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1255-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1256-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1257-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1258-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-874-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-936-2000.ucm +FILE: ../../../third_party/icu/source/data/mappings/x-mac-cyrillic-html.ucm +FILE: ../../../third_party/icu/source/extra/scrptrun/srtest.dsp +FILE: ../../../third_party/icu/source/extra/scrptrun/srtest.dsw +FILE: ../../../third_party/icu/source/tools/tzcode/asctime.c +FILE: ../../../third_party/icu/source/tools/tzcode/ialloc.c +FILE: ../../../third_party/icu/source/tools/tzcode/localtime.c +FILE: ../../../third_party/icu/source/tools/tzcode/private.h +FILE: ../../../third_party/icu/source/tools/tzcode/scheck.c +FILE: ../../../third_party/icu/source/tools/tzcode/tzfile.h +FILE: ../../../third_party/icu/source/tools/tzcode/tzselect.ksh +FILE: ../../../third_party/icu/source/tools/tzcode/zdump.c +FILE: ../../../third_party/icu/source/tools/tzcode/zic.c +FILE: ../../../third_party/icu/tzres/metaZones.res +FILE: ../../../third_party/icu/tzres/timezoneTypes.res +FILE: ../../../third_party/icu/tzres/zoneinfo64.res +---------------------------------------------------------------------------------------------------- +Copyright (c) 2014 International Business Machines Corporation +and others. All Rights Reserved. + +This list is part of a project hosted at: + github.com/kanyawtech/myanmar-karen-word-lists + +Copyright (c) 2013, LeRoy Benjamin Sharon +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: Redistributions of source code must retain the above +copyright notice, this list of conditions and the following +disclaimer. Redistributions in binary form must reproduce the +above copyright notice, this list of conditions and the following +disclaimer in the documentation and/or other materials provided +with the distribution. + + Neither the name Myanmar Karen Word Lists, nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND +CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS +BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED +TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR +TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF +THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: glfw +ORIGIN: ../../../third_party/glfw/src/linux_joystick.h +TYPE: LicenseType.zlib +FILE: ../../../third_party/glfw/src/linux_joystick.h +FILE: ../../../third_party/glfw/src/wl_init.c +FILE: ../../../third_party/glfw/src/wl_monitor.c +FILE: ../../../third_party/glfw/src/wl_platform.h +FILE: ../../../third_party/glfw/src/wl_window.c +FILE: ../../../third_party/glfw/src/xkb_unicode.h +---------------------------------------------------------------------------------------------------- +Copyright (c) 2014 Jonas Ådahl + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would + be appreciated but is not required. + +2. Altered source versions must be plainly marked as such, and must not + be misrepresented as being the original software. + +3. This notice may not be removed or altered from any source + distribution. +==================================================================================================== + +==================================================================================================== +LIBRARY: boringssl +ORIGIN: ../../../third_party/boringssl/src/crypto/constant_time_test.cc +TYPE: LicenseType.bsd +FILE: ../../../third_party/boringssl/src/crypto/constant_time_test.cc +---------------------------------------------------------------------------------------------------- +Copyright (c) 2014 The OpenSSL Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +3. All advertising materials mentioning features or use of this software + must display the following acknowledgement: + "This product includes cryptographic software written by + Eric Young (eay@cryptsoft.com)" + The word 'cryptographic' can be left out if the rouines from the library + being used are not cryptographic related :-). +4. If you include any Windows specific code (or a derivative thereof) from + the apps directory (application code) you must include an acknowledgement: + "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + +THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + +The licence and distribution terms for any publically available version or +derivative of this code cannot be changed. i.e. this code cannot simply be +copied and put under another distribution licence +[including the GNU Public Licence.] +==================================================================================================== + +==================================================================================================== +LIBRARY: dart +ORIGIN: ../../../third_party/dart/runtime/observatory/web/third_party/webcomponents.min.js +TYPE: LicenseType.bsd +FILE: ../../../third_party/dart/runtime/observatory/web/third_party/webcomponents.min.js +FILE: ../../../third_party/dart/runtime/observatory_2/web/third_party/webcomponents.min.js +---------------------------------------------------------------------------------------------------- +Copyright (c) 2014 The Polymer Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: boringssl +ORIGIN: ../../../third_party/boringssl/src/crypto/base64/base64_test.cc +TYPE: LicenseType.unknown +FILE: ../../../third_party/boringssl/src/crypto/base64/base64_test.cc +FILE: ../../../third_party/boringssl/src/crypto/bio/bio_test.cc +FILE: ../../../third_party/boringssl/src/crypto/bio/socket_helper.c +FILE: ../../../third_party/boringssl/src/crypto/bytestring/ber.c +FILE: ../../../third_party/boringssl/src/crypto/bytestring/bytestring_test.cc +FILE: ../../../third_party/boringssl/src/crypto/bytestring/cbb.c +FILE: ../../../third_party/boringssl/src/crypto/bytestring/cbs.c +FILE: ../../../third_party/boringssl/src/crypto/bytestring/internal.h +FILE: ../../../third_party/boringssl/src/crypto/chacha/chacha.c +FILE: ../../../third_party/boringssl/src/crypto/cipher_extra/aead_test.cc +FILE: ../../../third_party/boringssl/src/crypto/cipher_extra/e_chacha20poly1305.c +FILE: ../../../third_party/boringssl/src/crypto/cipher_extra/e_tls.c +FILE: ../../../third_party/boringssl/src/crypto/cpu-arm.c +FILE: ../../../third_party/boringssl/src/crypto/crypto.c +FILE: ../../../third_party/boringssl/src/crypto/digest_extra/digest_test.cc +FILE: ../../../third_party/boringssl/src/crypto/engine/engine.c +FILE: ../../../third_party/boringssl/src/crypto/err/err_test.cc +FILE: ../../../third_party/boringssl/src/crypto/evp/evp_extra_test.cc +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/cipher/aead.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/ec/ec_test.cc +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/rand/rand.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/rand/urandom.c +FILE: ../../../third_party/boringssl/src/crypto/hkdf/hkdf.c +FILE: ../../../third_party/boringssl/src/crypto/hkdf/hkdf_test.cc +FILE: ../../../third_party/boringssl/src/crypto/lhash/lhash_test.cc +FILE: ../../../third_party/boringssl/src/crypto/pkcs7/pkcs7.c +FILE: ../../../third_party/boringssl/src/crypto/pkcs7/pkcs7_test.cc +FILE: ../../../third_party/boringssl/src/crypto/pkcs8/pkcs12_test.cc +FILE: ../../../third_party/boringssl/src/crypto/poly1305/poly1305.c +FILE: ../../../third_party/boringssl/src/crypto/poly1305/poly1305_arm.c +FILE: ../../../third_party/boringssl/src/crypto/poly1305/poly1305_vec.c +FILE: ../../../third_party/boringssl/src/crypto/rand_extra/windows.c +FILE: ../../../third_party/boringssl/src/include/openssl/aead.h +FILE: ../../../third_party/boringssl/src/include/openssl/bytestring.h +FILE: ../../../third_party/boringssl/src/include/openssl/chacha.h +FILE: ../../../third_party/boringssl/src/include/openssl/crypto.h +FILE: ../../../third_party/boringssl/src/include/openssl/engine.h +FILE: ../../../third_party/boringssl/src/include/openssl/hkdf.h +FILE: ../../../third_party/boringssl/src/include/openssl/objects.h +FILE: ../../../third_party/boringssl/src/include/openssl/opensslconf.h +FILE: ../../../third_party/boringssl/src/include/openssl/opensslv.h +FILE: ../../../third_party/boringssl/src/include/openssl/ossl_typ.h +FILE: ../../../third_party/boringssl/src/include/openssl/pkcs12.h +FILE: ../../../third_party/boringssl/src/include/openssl/pkcs7.h +FILE: ../../../third_party/boringssl/src/include/openssl/poly1305.h +FILE: ../../../third_party/boringssl/src/include/openssl/rand.h +FILE: ../../../third_party/boringssl/src/include/openssl/safestack.h +FILE: ../../../third_party/boringssl/src/ssl/ssl_test.cc +FILE: ../../../third_party/boringssl/src/tool/args.cc +FILE: ../../../third_party/boringssl/src/tool/client.cc +FILE: ../../../third_party/boringssl/src/tool/const.cc +FILE: ../../../third_party/boringssl/src/tool/digest.cc +FILE: ../../../third_party/boringssl/src/tool/internal.h +FILE: ../../../third_party/boringssl/src/tool/pkcs12.cc +FILE: ../../../third_party/boringssl/src/tool/server.cc +FILE: ../../../third_party/boringssl/src/tool/speed.cc +FILE: ../../../third_party/boringssl/src/tool/tool.cc +FILE: ../../../third_party/boringssl/src/tool/transport_common.cc +FILE: ../../../third_party/boringssl/src/tool/transport_common.h +FILE: ../../../third_party/boringssl/src/util/make_errors.go +---------------------------------------------------------------------------------------------------- +Copyright (c) 2014, Google Inc. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY +SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION +OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN +CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +==================================================================================================== + +==================================================================================================== +LIBRARY: dart +ORIGIN: ../../../third_party/dart/runtime/lib/profiler.cc + ../../../third_party/dart/LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/dart/runtime/lib/profiler.cc +FILE: ../../../third_party/dart/runtime/observatory/bin/shell.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/app.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/object_graph.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/service.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/service_common.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/service_html.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/service_io.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/app/page.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/app/settings.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/app/view_model.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/allocation_profile.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/class_tree.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/debugger.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/heap_map.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/isolate_reconnect.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/metrics.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/vm_connect.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/service/object.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/utils.dart +FILE: ../../../third_party/dart/runtime/observatory/web/main.dart +FILE: ../../../third_party/dart/runtime/observatory_2/bin/shell.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/app.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/object_graph.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/service.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/service_common.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/service_html.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/service_io.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/app/page.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/app/settings.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/app/view_model.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/allocation_profile.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/class_tree.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/debugger.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/heap_map.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/isolate_reconnect.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/metrics.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/vm_connect.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/service/object.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/utils.dart +FILE: ../../../third_party/dart/runtime/observatory_2/web/main.dart +FILE: ../../../third_party/dart/runtime/platform/address_sanitizer.h +FILE: ../../../third_party/dart/runtime/platform/memory_sanitizer.h +FILE: ../../../third_party/dart/runtime/platform/safe_stack.h +FILE: ../../../third_party/dart/runtime/tools/verbose_gc_to_bmu.dart +FILE: ../../../third_party/dart/runtime/vm/bit_set_test.cc +FILE: ../../../third_party/dart/runtime/vm/code_patcher_arm64.cc +FILE: ../../../third_party/dart/runtime/vm/code_patcher_arm64_test.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/assembler/assembler_arm64.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/assembler/assembler_arm64.h +FILE: ../../../third_party/dart/runtime/vm/compiler/assembler/disassembler_arm64.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/backend/flow_graph_compiler_arm64.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/backend/il_arm64.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/backend/range_analysis.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/backend/range_analysis.h +FILE: ../../../third_party/dart/runtime/vm/compiler/backend/range_analysis_test.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/method_recognizer.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/method_recognizer.h +FILE: ../../../third_party/dart/runtime/vm/constants_arm64.h +FILE: ../../../third_party/dart/runtime/vm/cpu_arm.h +FILE: ../../../third_party/dart/runtime/vm/cpu_arm64.cc +FILE: ../../../third_party/dart/runtime/vm/cpu_arm64.h +FILE: ../../../third_party/dart/runtime/vm/cpu_ia32.h +FILE: ../../../third_party/dart/runtime/vm/cpu_x64.h +FILE: ../../../third_party/dart/runtime/vm/cpuid.cc +FILE: ../../../third_party/dart/runtime/vm/cpuid.h +FILE: ../../../third_party/dart/runtime/vm/cpuinfo.h +FILE: ../../../third_party/dart/runtime/vm/cpuinfo_android.cc +FILE: ../../../third_party/dart/runtime/vm/cpuinfo_test.cc +FILE: ../../../third_party/dart/runtime/vm/cpuinfo_win.cc +FILE: ../../../third_party/dart/runtime/vm/debugger_arm64.cc +FILE: ../../../third_party/dart/runtime/vm/hash_table.h +FILE: ../../../third_party/dart/runtime/vm/hash_table_test.cc +FILE: ../../../third_party/dart/runtime/vm/heap/scavenger_test.cc +FILE: ../../../third_party/dart/runtime/vm/heap/spaces.h +FILE: ../../../third_party/dart/runtime/vm/heap/weak_code.cc +FILE: ../../../third_party/dart/runtime/vm/heap/weak_code.h +FILE: ../../../third_party/dart/runtime/vm/instructions_arm64.cc +FILE: ../../../third_party/dart/runtime/vm/instructions_arm64.h +FILE: ../../../third_party/dart/runtime/vm/instructions_arm64_test.cc +FILE: ../../../third_party/dart/runtime/vm/metrics.cc +FILE: ../../../third_party/dart/runtime/vm/metrics.h +FILE: ../../../third_party/dart/runtime/vm/metrics_test.cc +FILE: ../../../third_party/dart/runtime/vm/object_arm64_test.cc +FILE: ../../../third_party/dart/runtime/vm/object_graph.cc +FILE: ../../../third_party/dart/runtime/vm/object_graph.h +FILE: ../../../third_party/dart/runtime/vm/object_graph_test.cc +FILE: ../../../third_party/dart/runtime/vm/regexp.cc +FILE: ../../../third_party/dart/runtime/vm/regexp.h +FILE: ../../../third_party/dart/runtime/vm/regexp_assembler.cc +FILE: ../../../third_party/dart/runtime/vm/regexp_assembler.h +FILE: ../../../third_party/dart/runtime/vm/regexp_assembler_ir.cc +FILE: ../../../third_party/dart/runtime/vm/regexp_assembler_ir.h +FILE: ../../../third_party/dart/runtime/vm/regexp_ast.cc +FILE: ../../../third_party/dart/runtime/vm/regexp_ast.h +FILE: ../../../third_party/dart/runtime/vm/regexp_parser.cc +FILE: ../../../third_party/dart/runtime/vm/regexp_parser.h +FILE: ../../../third_party/dart/runtime/vm/regexp_test.cc +FILE: ../../../third_party/dart/runtime/vm/report.cc +FILE: ../../../third_party/dart/runtime/vm/report.h +FILE: ../../../third_party/dart/runtime/vm/ring_buffer.h +FILE: ../../../third_party/dart/runtime/vm/ring_buffer_test.cc +FILE: ../../../third_party/dart/runtime/vm/runtime_entry_arm64.cc +FILE: ../../../third_party/dart/runtime/vm/simulator_arm64.cc +FILE: ../../../third_party/dart/runtime/vm/simulator_arm64.h +FILE: ../../../third_party/dart/runtime/vm/stack_frame_arm64.h +FILE: ../../../third_party/dart/runtime/vm/stub_code_arm64_test.cc +FILE: ../../../third_party/dart/runtime/vm/tags.cc +FILE: ../../../third_party/dart/runtime/vm/unibrow-inl.h +FILE: ../../../third_party/dart/runtime/vm/unibrow.cc +FILE: ../../../third_party/dart/runtime/vm/unibrow.h +FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/private/preambles/d8.js +FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/private/preambles/jsshell.js +FILE: ../../../third_party/dart/sdk/lib/_internal/js_runtime/lib/linked_hash_map.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/js_runtime/lib/synced/embedded_names.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/lib_prefix.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/profiler.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm_shared/lib/convert_patch.dart +FILE: ../../../third_party/dart/sdk/lib/collection/set.dart +FILE: ../../../third_party/dart/sdk/lib/core/sink.dart +FILE: ../../../third_party/dart/sdk/lib/developer/profiler.dart +FILE: ../../../third_party/dart/sdk/lib/io/process.dart +FILE: ../../../third_party/dart/sdk/lib/io/service_object.dart +FILE: ../../../third_party/dart/sdk/lib/isolate/capability.dart +---------------------------------------------------------------------------------------------------- +Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file +for details. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: boringssl +ORIGIN: ../../../third_party/boringssl/src/crypto/cipher_extra/cipher_test.cc +TYPE: LicenseType.bsd +FILE: ../../../third_party/boringssl/src/crypto/cipher_extra/cipher_test.cc +FILE: ../../../third_party/boringssl/src/crypto/evp/evp_test.cc +---------------------------------------------------------------------------------------------------- +Copyright (c) 2015 The OpenSSL Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + licensing@OpenSSL.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: boringssl +ORIGIN: ../../../third_party/boringssl/src/crypto/bn_extra/bn_asn1.c +TYPE: LicenseType.unknown +FILE: ../../../third_party/boringssl/err_data.c +FILE: ../../../third_party/boringssl/src/crypto/bn_extra/bn_asn1.c +FILE: ../../../third_party/boringssl/src/crypto/cmac/cmac_test.cc +FILE: ../../../third_party/boringssl/src/crypto/conf/internal.h +FILE: ../../../third_party/boringssl/src/crypto/curve25519/asm/x25519-asm-arm.S +FILE: ../../../third_party/boringssl/src/crypto/curve25519/ed25519_test.cc +FILE: ../../../third_party/boringssl/src/crypto/curve25519/x25519_test.cc +FILE: ../../../third_party/boringssl/src/crypto/err/err_data_generate.go +FILE: ../../../third_party/boringssl/src/crypto/evp/pbkdf_test.cc +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/aes/aes_test.cc +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/ec/p224-64.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/ec/util.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/rand/internal.h +FILE: ../../../third_party/boringssl/src/crypto/pkcs8/pkcs8_test.cc +FILE: ../../../third_party/boringssl/src/crypto/poly1305/poly1305_test.cc +FILE: ../../../third_party/boringssl/src/crypto/refcount_c11.c +FILE: ../../../third_party/boringssl/src/crypto/refcount_lock.c +FILE: ../../../third_party/boringssl/src/crypto/refcount_test.cc +FILE: ../../../third_party/boringssl/src/crypto/thread_none.c +FILE: ../../../third_party/boringssl/src/crypto/thread_pthread.c +FILE: ../../../third_party/boringssl/src/crypto/thread_test.cc +FILE: ../../../third_party/boringssl/src/crypto/thread_win.c +FILE: ../../../third_party/boringssl/src/include/openssl/buffer.h +FILE: ../../../third_party/boringssl/src/include/openssl/cmac.h +FILE: ../../../third_party/boringssl/src/include/openssl/curve25519.h +FILE: ../../../third_party/boringssl/src/include/openssl/dtls1.h +FILE: ../../../third_party/boringssl/src/include/openssl/srtp.h +FILE: ../../../third_party/boringssl/src/ssl/ssl_aead_ctx.cc +FILE: ../../../third_party/boringssl/src/ssl/ssl_buffer.cc +FILE: ../../../third_party/boringssl/src/ssl/ssl_key_share.cc +FILE: ../../../third_party/boringssl/src/tool/ciphers.cc +FILE: ../../../third_party/boringssl/src/tool/generate_ed25519.cc +FILE: ../../../third_party/boringssl/src/tool/genrsa.cc +FILE: ../../../third_party/boringssl/src/tool/rand.cc +FILE: ../../../third_party/boringssl/src/util/all_tests.go +FILE: ../../../third_party/boringssl/src/util/bot/DEPS +---------------------------------------------------------------------------------------------------- +Copyright (c) 2015, Google Inc. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY +SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION +OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN +CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +==================================================================================================== + +==================================================================================================== +LIBRARY: dart +ORIGIN: ../../../third_party/dart/runtime/bin/address_sanitizer.cc + ../../../third_party/dart/LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/dart/runtime/bin/address_sanitizer.cc +FILE: ../../../third_party/dart/runtime/bin/dart_io_api_impl.cc +FILE: ../../../third_party/dart/runtime/bin/observatory_assets_empty.cc +FILE: ../../../third_party/dart/runtime/include/bin/dart_io_api.h +FILE: ../../../third_party/dart/runtime/lib/developer.cc +FILE: ../../../third_party/dart/runtime/lib/timeline.cc +FILE: ../../../third_party/dart/runtime/lib/vmservice.cc +FILE: ../../../third_party/dart/runtime/observatory/lib/allocation_profile.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/cli.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/debugger.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/sample_profile.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/allocation_profile/allocation_profile.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/cli/command.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/debugger/debugger.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/debugger/debugger_location.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/heap_snapshot.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/logging.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/logging_list.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/megamorphiccache_view.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/objectpool_view.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/persistent_handles.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/ports.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/timeline_page.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/sample_profile/sample_profile.dart +FILE: ../../../third_party/dart/runtime/observatory/web/timeline.js +FILE: ../../../third_party/dart/runtime/observatory_2/lib/allocation_profile.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/cli.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/debugger.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/sample_profile.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/allocation_profile/allocation_profile.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/cli/command.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/debugger/debugger.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/debugger/debugger_location.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/heap_snapshot.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/logging.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/logging_list.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/megamorphiccache_view.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/objectpool_view.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/persistent_handles.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/ports.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/timeline_page.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/sample_profile/sample_profile.dart +FILE: ../../../third_party/dart/runtime/observatory_2/web/timeline.js +FILE: ../../../third_party/dart/runtime/vm/atomic_test.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/aot/precompiler.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/aot/precompiler.h +FILE: ../../../third_party/dart/runtime/vm/log.cc +FILE: ../../../third_party/dart/runtime/vm/log.h +FILE: ../../../third_party/dart/runtime/vm/log_test.cc +FILE: ../../../third_party/dart/runtime/vm/os_thread.cc +FILE: ../../../third_party/dart/runtime/vm/profiler_service.cc +FILE: ../../../third_party/dart/runtime/vm/profiler_service.h +FILE: ../../../third_party/dart/runtime/vm/program_visitor.cc +FILE: ../../../third_party/dart/runtime/vm/program_visitor.h +FILE: ../../../third_party/dart/runtime/vm/regexp_assembler_bytecode.cc +FILE: ../../../third_party/dart/runtime/vm/regexp_assembler_bytecode.h +FILE: ../../../third_party/dart/runtime/vm/regexp_assembler_bytecode_inl.h +FILE: ../../../third_party/dart/runtime/vm/regexp_bytecodes.h +FILE: ../../../third_party/dart/runtime/vm/regexp_interpreter.cc +FILE: ../../../third_party/dart/runtime/vm/regexp_interpreter.h +FILE: ../../../third_party/dart/runtime/vm/scope_timer.h +FILE: ../../../third_party/dart/runtime/vm/service_event.cc +FILE: ../../../third_party/dart/runtime/vm/service_event.h +FILE: ../../../third_party/dart/runtime/vm/service_isolate.cc +FILE: ../../../third_party/dart/runtime/vm/source_report.cc +FILE: ../../../third_party/dart/runtime/vm/source_report.h +FILE: ../../../third_party/dart/runtime/vm/source_report_test.cc +FILE: ../../../third_party/dart/runtime/vm/thread.cc +FILE: ../../../third_party/dart/runtime/vm/thread.h +FILE: ../../../third_party/dart/runtime/vm/thread_barrier.h +FILE: ../../../third_party/dart/runtime/vm/thread_barrier_test.cc +FILE: ../../../third_party/dart/runtime/vm/thread_registry.cc +FILE: ../../../third_party/dart/runtime/vm/thread_registry.h +FILE: ../../../third_party/dart/runtime/vm/timeline.cc +FILE: ../../../third_party/dart/runtime/vm/timeline.h +FILE: ../../../third_party/dart/runtime/vm/timeline_test.cc +FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/patch/developer_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/classes.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/errors.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/operations.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/rtti.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/runtime.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/types.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/utils.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/private/debugger.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/js_runtime/lib/developer_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/js_runtime/lib/preambles/d8.js +FILE: ../../../third_party/dart/sdk/lib/_internal/js_runtime/lib/preambles/jsshell.js +FILE: ../../../third_party/dart/sdk/lib/_internal/js_runtime/lib/synced/async_await_error_codes.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/async_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/developer.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/timeline.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm_shared/lib/compact_hash.dart +FILE: ../../../third_party/dart/sdk/lib/convert/base64.dart +FILE: ../../../third_party/dart/sdk/lib/developer/developer.dart +FILE: ../../../third_party/dart/sdk/lib/developer/extension.dart +FILE: ../../../third_party/dart/sdk/lib/developer/timeline.dart +FILE: ../../../third_party/dart/sdk/lib/io/io_resource_info.dart +FILE: ../../../third_party/dart/sdk/lib/io/security_context.dart +FILE: ../../../third_party/dart/sdk/lib/js/_js_annotations.dart +FILE: ../../../third_party/dart/sdk/lib/vmservice/asset.dart +FILE: ../../../third_party/dart/sdk/lib/vmservice/vmservice.dart +---------------------------------------------------------------------------------------------------- +Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file +for details. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: glfw +ORIGIN: ../../../third_party/glfw/src/null_init.c +TYPE: LicenseType.zlib +FILE: ../../../third_party/glfw/src/null_init.c +FILE: ../../../third_party/glfw/src/null_monitor.c +FILE: ../../../third_party/glfw/src/null_platform.h +FILE: ../../../third_party/glfw/src/null_window.c +FILE: ../../../third_party/glfw/src/osmesa_context.c +FILE: ../../../third_party/glfw/src/osmesa_context.h +---------------------------------------------------------------------------------------------------- +Copyright (c) 2016 Google Inc. +Copyright (c) 2006-2016 Camilla Löwy + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would + be appreciated but is not required. + +2. Altered source versions must be plainly marked as such, and must not + be misrepresented as being the original software. + +3. This notice may not be removed or altered from any source + distribution. +==================================================================================================== + +==================================================================================================== +LIBRARY: boringssl +ORIGIN: ../../../third_party/boringssl/src/crypto/asn1/asn1_test.cc +TYPE: LicenseType.unknown +FILE: ../../../third_party/boringssl/src/crypto/asn1/asn1_test.cc +FILE: ../../../third_party/boringssl/src/crypto/bytestring/asn1_compat.c +FILE: ../../../third_party/boringssl/src/crypto/chacha/chacha_test.cc +FILE: ../../../third_party/boringssl/src/crypto/cpu-aarch64-linux.c +FILE: ../../../third_party/boringssl/src/crypto/cpu-arm-linux.c +FILE: ../../../third_party/boringssl/src/crypto/cpu-ppc64le.c +FILE: ../../../third_party/boringssl/src/crypto/curve25519/spake25519.c +FILE: ../../../third_party/boringssl/src/crypto/curve25519/spake25519_test.cc +FILE: ../../../third_party/boringssl/src/crypto/ecdh_extra/ecdh_test.cc +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/check_bn_tests.go +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/ec/p256-x86_64_test.cc +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/modes/polyval.c +FILE: ../../../third_party/boringssl/src/crypto/obj/obj_test.cc +FILE: ../../../third_party/boringssl/src/crypto/obj/objects.go +FILE: ../../../third_party/boringssl/src/crypto/poly1305/internal.h +FILE: ../../../third_party/boringssl/src/crypto/pool/internal.h +FILE: ../../../third_party/boringssl/src/crypto/pool/pool.c +FILE: ../../../third_party/boringssl/src/crypto/pool/pool_test.cc +FILE: ../../../third_party/boringssl/src/crypto/rand_extra/deterministic.c +FILE: ../../../third_party/boringssl/src/crypto/x509/x509_test.cc +FILE: ../../../third_party/boringssl/src/decrepit/evp/dss1.c +FILE: ../../../third_party/boringssl/src/decrepit/evp/evp_do_all.c +FILE: ../../../third_party/boringssl/src/decrepit/obj/obj_decrepit.c +FILE: ../../../third_party/boringssl/src/decrepit/ripemd/ripemd_test.cc +FILE: ../../../third_party/boringssl/src/decrepit/x509/x509_decrepit.c +FILE: ../../../third_party/boringssl/src/include/openssl/asn1_mac.h +FILE: ../../../third_party/boringssl/src/include/openssl/obj_mac.h +FILE: ../../../third_party/boringssl/src/include/openssl/pool.h +FILE: ../../../third_party/boringssl/src/ssl/tls13_both.cc +FILE: ../../../third_party/boringssl/src/ssl/tls13_client.cc +FILE: ../../../third_party/boringssl/src/ssl/tls13_enc.cc +FILE: ../../../third_party/boringssl/src/ssl/tls13_server.cc +FILE: ../../../third_party/boringssl/src/util/BUILD.toplevel +FILE: ../../../third_party/boringssl/src/util/diff_asm.go +FILE: ../../../third_party/boringssl/src/util/run_android_tests.go +---------------------------------------------------------------------------------------------------- +Copyright (c) 2016, Google Inc. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY +SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION +OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN +CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +==================================================================================================== + +==================================================================================================== +LIBRARY: dart +ORIGIN: ../../../third_party/dart/runtime/bin/crypto_fuchsia.cc + ../../../third_party/dart/LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/dart/runtime/bin/crypto_fuchsia.cc +FILE: ../../../third_party/dart/runtime/bin/crypto_test.cc +FILE: ../../../third_party/dart/runtime/bin/directory_fuchsia.cc +FILE: ../../../third_party/dart/runtime/bin/directory_test.cc +FILE: ../../../third_party/dart/runtime/bin/eventhandler_fuchsia.cc +FILE: ../../../third_party/dart/runtime/bin/eventhandler_fuchsia.h +FILE: ../../../third_party/dart/runtime/bin/file_fuchsia.cc +FILE: ../../../third_party/dart/runtime/bin/file_support.cc +FILE: ../../../third_party/dart/runtime/bin/file_system_watcher_fuchsia.cc +FILE: ../../../third_party/dart/runtime/bin/loader.cc +FILE: ../../../third_party/dart/runtime/bin/loader.h +FILE: ../../../third_party/dart/runtime/bin/platform_fuchsia.cc +FILE: ../../../third_party/dart/runtime/bin/process_fuchsia.cc +FILE: ../../../third_party/dart/runtime/bin/reference_counting.h +FILE: ../../../third_party/dart/runtime/bin/root_certificates_unsupported.cc +FILE: ../../../third_party/dart/runtime/bin/socket_base_fuchsia.cc +FILE: ../../../third_party/dart/runtime/bin/socket_base_fuchsia.h +FILE: ../../../third_party/dart/runtime/bin/socket_fuchsia.cc +FILE: ../../../third_party/dart/runtime/bin/stdio_fuchsia.cc +FILE: ../../../third_party/dart/runtime/bin/thread_fuchsia.cc +FILE: ../../../third_party/dart/runtime/bin/thread_fuchsia.h +FILE: ../../../third_party/dart/runtime/bin/utils_fuchsia.cc +FILE: ../../../third_party/dart/runtime/lib/stacktrace.h +FILE: ../../../third_party/dart/runtime/observatory/lib/event.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/models.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/repositories.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/app/notification.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/class_allocation_profile.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/containers/virtual_collection.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/containers/virtual_tree.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/error_ref.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/general_error.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/helpers/custom_element.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/helpers/nav_bar.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/helpers/nav_menu.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/helpers/rendering_queue.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/helpers/rendering_scheduler.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/helpers/uris.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/inbound_references.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/isolate/counter_chart.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/isolate/location.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/isolate/run_state.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/isolate/shared_summary.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/isolate/summary.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/metric/details.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/metric/graph.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/nav/class_menu.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/nav/isolate_menu.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/nav/library_menu.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/nav/menu_item.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/nav/notify.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/nav/notify_event.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/nav/notify_exception.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/nav/refresh.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/nav/top_menu.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/nav/vm_menu.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/retaining_path.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/source_link.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/strongly_reachable_instances.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/vm_connect_target.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/exceptions.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/allocation_profile.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/breakpoint.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/class.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/code.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/context.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/error.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/event.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/extension_data.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/field.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/flag.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/frame.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/function.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/guarded.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/heap_space.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/icdata.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/inbound_references.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/instance.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/isolate.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/library.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/local_var_descriptors.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/map_association.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/megamorphiccache.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/metric.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/notification.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/object.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/objectpool.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/objectstore.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/pc_descriptors.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/persistent_handles.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/ports.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/retaining_path.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/sample_profile.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/script.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/sentinel.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/source_location.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/target.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/timeline_event.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/type_arguments.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/unknown.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/vm.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/repositories/allocation_profile.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/repositories/breakpoint.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/repositories/class.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/repositories/context.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/repositories/editor.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/repositories/eval.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/repositories/event.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/repositories/field.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/repositories/flag.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/repositories/function.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/repositories/heap_snapshot.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/repositories/icdata.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/repositories/inbound_references.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/repositories/instance.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/repositories/isolate.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/repositories/library.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/repositories/megamorphiccache.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/repositories/metric.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/repositories/notification.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/repositories/object.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/repositories/objectpool.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/repositories/objectstore.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/repositories/persistent_handles.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/repositories/ports.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/repositories/reachable_size.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/repositories/retained_size.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/repositories/retaining_path.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/repositories/sample_profile.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/repositories/script.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/repositories/strongly_reachable_instances.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/repositories/target.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/repositories/type_arguments.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/allocation_profile.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/breakpoint.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/class.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/context.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/editor.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/eval.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/event.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/field.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/flag.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/function.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/heap_snapshot.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/icdata.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/inbound_references.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/instance.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/isolate.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/library.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/megamorphiccache.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/metric.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/notification.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/object.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/objectpool.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/objectstore.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/persistent_handles.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/ports.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/reachable_size.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/retained_size.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/retaining_path.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/sample_profile.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/script.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/settings.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/strongly_reachable_instances.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/target.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/type_arguments.dart +FILE: ../../../third_party/dart/runtime/observatory/web/timeline_message_handler.js +FILE: ../../../third_party/dart/runtime/observatory_2/lib/event.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/models.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/repositories.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/app/notification.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/class_allocation_profile.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/containers/virtual_collection.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/containers/virtual_tree.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/error_ref.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/general_error.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/helpers/custom_element.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/helpers/nav_bar.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/helpers/nav_menu.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/helpers/rendering_queue.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/helpers/rendering_scheduler.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/helpers/tag.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/helpers/uris.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/inbound_references.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/isolate/counter_chart.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/isolate/location.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/isolate/run_state.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/isolate/shared_summary.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/isolate/summary.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/metric/details.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/metric/graph.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/nav/class_menu.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/nav/isolate_menu.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/nav/library_menu.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/nav/menu_item.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/nav/notify.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/nav/notify_event.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/nav/notify_exception.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/nav/refresh.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/nav/top_menu.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/nav/vm_menu.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/retaining_path.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/source_link.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/strongly_reachable_instances.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/vm_connect_target.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/exceptions.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/allocation_profile.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/breakpoint.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/class.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/code.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/context.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/error.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/event.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/extension_data.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/field.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/flag.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/frame.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/function.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/guarded.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/heap_space.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/icdata.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/inbound_references.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/instance.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/isolate.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/library.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/local_var_descriptors.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/map_association.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/megamorphiccache.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/metric.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/notification.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/object.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/objectpool.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/objectstore.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/pc_descriptors.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/persistent_handles.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/ports.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/retaining_path.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/sample_profile.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/script.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/sentinel.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/source_location.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/target.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/timeline_event.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/type_arguments.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/unknown.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/vm.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/repositories/allocation_profile.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/repositories/breakpoint.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/repositories/class.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/repositories/context.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/repositories/editor.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/repositories/eval.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/repositories/event.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/repositories/field.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/repositories/flag.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/repositories/function.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/repositories/heap_snapshot.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/repositories/icdata.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/repositories/inbound_references.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/repositories/instance.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/repositories/isolate.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/repositories/library.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/repositories/megamorphiccache.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/repositories/metric.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/repositories/notification.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/repositories/object.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/repositories/objectpool.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/repositories/objectstore.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/repositories/persistent_handles.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/repositories/ports.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/repositories/reachable_size.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/repositories/retained_size.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/repositories/retaining_path.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/repositories/sample_profile.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/repositories/script.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/repositories/strongly_reachable_instances.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/repositories/target.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/repositories/type_arguments.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/allocation_profile.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/breakpoint.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/class.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/context.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/editor.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/eval.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/event.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/field.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/flag.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/function.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/heap_snapshot.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/icdata.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/inbound_references.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/instance.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/isolate.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/library.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/megamorphiccache.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/metric.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/notification.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/object.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/objectpool.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/objectstore.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/persistent_handles.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/ports.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/reachable_size.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/retained_size.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/retaining_path.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/sample_profile.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/script.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/settings.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/strongly_reachable_instances.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/target.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/type_arguments.dart +FILE: ../../../third_party/dart/runtime/observatory_2/web/timeline_message_handler.js +FILE: ../../../third_party/dart/runtime/platform/syslog_fuchsia.cc +FILE: ../../../third_party/dart/runtime/platform/utils_fuchsia.cc +FILE: ../../../third_party/dart/runtime/platform/utils_fuchsia.h +FILE: ../../../third_party/dart/runtime/vm/app_snapshot.cc +FILE: ../../../third_party/dart/runtime/vm/app_snapshot.h +FILE: ../../../third_party/dart/runtime/vm/canonical_tables.h +FILE: ../../../third_party/dart/runtime/vm/compiler/backend/branch_optimizer.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/backend/branch_optimizer.h +FILE: ../../../third_party/dart/runtime/vm/compiler/backend/redundancy_elimination.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/backend/redundancy_elimination.h +FILE: ../../../third_party/dart/runtime/vm/compiler/frontend/kernel_binary_flowgraph.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/frontend/kernel_to_il.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/frontend/kernel_to_il.h +FILE: ../../../third_party/dart/runtime/vm/cpuinfo_fuchsia.cc +FILE: ../../../third_party/dart/runtime/vm/dart_api_state.cc +FILE: ../../../third_party/dart/runtime/vm/heap/become.cc +FILE: ../../../third_party/dart/runtime/vm/heap/become.h +FILE: ../../../third_party/dart/runtime/vm/heap/safepoint.cc +FILE: ../../../third_party/dart/runtime/vm/heap/safepoint.h +FILE: ../../../third_party/dart/runtime/vm/isolate_reload.cc +FILE: ../../../third_party/dart/runtime/vm/isolate_reload.h +FILE: ../../../third_party/dart/runtime/vm/isolate_reload_test.cc +FILE: ../../../third_party/dart/runtime/vm/kernel.cc +FILE: ../../../third_party/dart/runtime/vm/kernel.h +FILE: ../../../third_party/dart/runtime/vm/kernel_binary.cc +FILE: ../../../third_party/dart/runtime/vm/kernel_isolate.cc +FILE: ../../../third_party/dart/runtime/vm/kernel_isolate.h +FILE: ../../../third_party/dart/runtime/vm/kernel_loader.cc +FILE: ../../../third_party/dart/runtime/vm/kernel_loader.h +FILE: ../../../third_party/dart/runtime/vm/lockers.cc +FILE: ../../../third_party/dart/runtime/vm/native_symbol_fuchsia.cc +FILE: ../../../third_party/dart/runtime/vm/object_reload.cc +FILE: ../../../third_party/dart/runtime/vm/object_service.cc +FILE: ../../../third_party/dart/runtime/vm/os_fuchsia.cc +FILE: ../../../third_party/dart/runtime/vm/os_thread_fuchsia.cc +FILE: ../../../third_party/dart/runtime/vm/os_thread_fuchsia.h +FILE: ../../../third_party/dart/runtime/vm/signal_handler_fuchsia.cc +FILE: ../../../third_party/dart/runtime/vm/thread_interrupter_fuchsia.cc +FILE: ../../../third_party/dart/runtime/vm/token_position.cc +FILE: ../../../third_party/dart/runtime/vm/token_position.h +FILE: ../../../third_party/dart/runtime/vm/uri.cc +FILE: ../../../third_party/dart/runtime/vm/uri.h +FILE: ../../../third_party/dart/runtime/vm/uri_test.cc +FILE: ../../../third_party/dart/runtime/vm/virtual_memory_fuchsia.cc +FILE: ../../../third_party/dart/sdk/lib/developer/service.dart +FILE: ../../../third_party/dart/sdk/lib/js_util/js_util.dart +FILE: ../../../third_party/dart/sdk/lib/vmservice/devfs.dart +---------------------------------------------------------------------------------------------------- +Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file +for details. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: expat +ORIGIN: ../../../third_party/expat/appveyor.yml +TYPE: LicenseType.mit +FILE: ../../../third_party/expat/appveyor.yml +---------------------------------------------------------------------------------------------------- +Copyright (c) 2017 José Gutiérrez de la Concha +Copyright (c) 2017-2021 Sebastian Pipping +Copyright (c) 2017 Franek Korta +Licensed under the MIT license: + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the +following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. +==================================================================================================== + +==================================================================================================== +LIBRARY: boringssl +ORIGIN: ../../../third_party/boringssl/src/crypto/buf/buf_test.cc +TYPE: LicenseType.unknown +FILE: ../../../third_party/boringssl/crypto_test_data.cc +FILE: ../../../third_party/boringssl/src/crypto/buf/buf_test.cc +FILE: ../../../third_party/boringssl/src/crypto/cipher_extra/e_aesctrhmac.c +FILE: ../../../third_party/boringssl/src/crypto/cipher_extra/e_aesgcmsiv.c +FILE: ../../../third_party/boringssl/src/crypto/compiler_test.cc +FILE: ../../../third_party/boringssl/src/crypto/err/internal.h +FILE: ../../../third_party/boringssl/src/crypto/evp/p_ed25519.c +FILE: ../../../third_party/boringssl/src/crypto/evp/p_ed25519_asn1.c +FILE: ../../../third_party/boringssl/src/crypto/evp/scrypt_test.cc +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/aes/internal.h +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/bcm.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/bn_test_to_fuzzer.go +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/delocate.h +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/rand/ctrdrbg.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/rand/ctrdrbg_test.cc +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/self_check/fips.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/self_check/self_check.c +FILE: ../../../third_party/boringssl/src/crypto/pkcs7/internal.h +FILE: ../../../third_party/boringssl/src/crypto/pkcs7/pkcs7_x509.c +FILE: ../../../third_party/boringssl/src/crypto/rand_extra/forkunsafe.c +FILE: ../../../third_party/boringssl/src/crypto/rand_extra/fuchsia.c +FILE: ../../../third_party/boringssl/src/crypto/rand_extra/rand_extra.c +FILE: ../../../third_party/boringssl/src/decrepit/cfb/cfb.c +FILE: ../../../third_party/boringssl/src/decrepit/cfb/cfb_test.cc +FILE: ../../../third_party/boringssl/src/include/openssl/is_boringssl.h +FILE: ../../../third_party/boringssl/src/include/openssl/span.h +FILE: ../../../third_party/boringssl/src/ssl/span_test.cc +FILE: ../../../third_party/boringssl/src/ssl/ssl_versions.cc +FILE: ../../../third_party/boringssl/src/tool/file.cc +FILE: ../../../third_party/boringssl/src/tool/sign.cc +FILE: ../../../third_party/boringssl/src/util/ar/ar.go +FILE: ../../../third_party/boringssl/src/util/check_imported_libraries.go +FILE: ../../../third_party/boringssl/src/util/convert_comments.go +FILE: ../../../third_party/boringssl/src/util/embed_test_data.go +FILE: ../../../third_party/boringssl/src/util/fipstools/break-hash.go +FILE: ../../../third_party/boringssl/src/util/fipstools/cavp/cavp_aes_gcm_test.cc +FILE: ../../../third_party/boringssl/src/util/fipstools/cavp/cavp_aes_test.cc +FILE: ../../../third_party/boringssl/src/util/fipstools/cavp/cavp_ctr_drbg_test.cc +FILE: ../../../third_party/boringssl/src/util/fipstools/cavp/cavp_ecdsa2_keypair_test.cc +FILE: ../../../third_party/boringssl/src/util/fipstools/cavp/cavp_ecdsa2_pkv_test.cc +FILE: ../../../third_party/boringssl/src/util/fipstools/cavp/cavp_ecdsa2_siggen_test.cc +FILE: ../../../third_party/boringssl/src/util/fipstools/cavp/cavp_ecdsa2_sigver_test.cc +FILE: ../../../third_party/boringssl/src/util/fipstools/cavp/cavp_hmac_test.cc +FILE: ../../../third_party/boringssl/src/util/fipstools/cavp/cavp_keywrap_test.cc +FILE: ../../../third_party/boringssl/src/util/fipstools/cavp/cavp_main.cc +FILE: ../../../third_party/boringssl/src/util/fipstools/cavp/cavp_rsa2_keygen_test.cc +FILE: ../../../third_party/boringssl/src/util/fipstools/cavp/cavp_rsa2_siggen_test.cc +FILE: ../../../third_party/boringssl/src/util/fipstools/cavp/cavp_rsa2_sigver_test.cc +FILE: ../../../third_party/boringssl/src/util/fipstools/cavp/cavp_sha_monte_test.cc +FILE: ../../../third_party/boringssl/src/util/fipstools/cavp/cavp_sha_test.cc +FILE: ../../../third_party/boringssl/src/util/fipstools/cavp/cavp_tdes_test.cc +FILE: ../../../third_party/boringssl/src/util/fipstools/cavp/cavp_test_util.cc +FILE: ../../../third_party/boringssl/src/util/fipstools/cavp/cavp_test_util.h +FILE: ../../../third_party/boringssl/src/util/fipstools/cavp/test_fips.c +FILE: ../../../third_party/boringssl/src/util/fipstools/delocate/delocate.go +FILE: ../../../third_party/boringssl/src/util/fipstools/delocate/delocate.peg +FILE: ../../../third_party/boringssl/src/util/fipstools/delocate/delocate_test.go +FILE: ../../../third_party/boringssl/src/util/fipstools/fipscommon/const.go +FILE: ../../../third_party/boringssl/src/util/fipstools/inject_hash/inject_hash.go +---------------------------------------------------------------------------------------------------- +Copyright (c) 2017, Google Inc. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY +SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION +OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN +CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +==================================================================================================== + +==================================================================================================== +LIBRARY: dart +ORIGIN: ../../../third_party/dart/runtime/bin/cli.cc + ../../../third_party/dart/LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/dart/runtime/bin/cli.cc +FILE: ../../../third_party/dart/runtime/bin/dfe.cc +FILE: ../../../third_party/dart/runtime/bin/dfe.h +FILE: ../../../third_party/dart/runtime/bin/error_exit.cc +FILE: ../../../third_party/dart/runtime/bin/error_exit.h +FILE: ../../../third_party/dart/runtime/bin/gzip.cc +FILE: ../../../third_party/dart/runtime/bin/gzip.h +FILE: ../../../third_party/dart/runtime/bin/isolate_data.cc +FILE: ../../../third_party/dart/runtime/bin/main_options.cc +FILE: ../../../third_party/dart/runtime/bin/main_options.h +FILE: ../../../third_party/dart/runtime/bin/namespace.cc +FILE: ../../../third_party/dart/runtime/bin/namespace.h +FILE: ../../../third_party/dart/runtime/bin/namespace_android.cc +FILE: ../../../third_party/dart/runtime/bin/namespace_fuchsia.cc +FILE: ../../../third_party/dart/runtime/bin/namespace_linux.cc +FILE: ../../../third_party/dart/runtime/bin/namespace_macos.cc +FILE: ../../../third_party/dart/runtime/bin/namespace_win.cc +FILE: ../../../third_party/dart/runtime/bin/options.cc +FILE: ../../../third_party/dart/runtime/bin/options.h +FILE: ../../../third_party/dart/runtime/bin/secure_socket_filter.cc +FILE: ../../../third_party/dart/runtime/bin/secure_socket_filter.h +FILE: ../../../third_party/dart/runtime/bin/secure_socket_utils.cc +FILE: ../../../third_party/dart/runtime/bin/secure_socket_utils.h +FILE: ../../../third_party/dart/runtime/bin/security_context.cc +FILE: ../../../third_party/dart/runtime/bin/security_context.h +FILE: ../../../third_party/dart/runtime/bin/security_context_android.cc +FILE: ../../../third_party/dart/runtime/bin/security_context_fuchsia.cc +FILE: ../../../third_party/dart/runtime/bin/security_context_linux.cc +FILE: ../../../third_party/dart/runtime/bin/security_context_macos.cc +FILE: ../../../third_party/dart/runtime/bin/security_context_win.cc +FILE: ../../../third_party/dart/runtime/bin/snapshot_utils.cc +FILE: ../../../third_party/dart/runtime/bin/snapshot_utils.h +FILE: ../../../third_party/dart/runtime/bin/socket_base.cc +FILE: ../../../third_party/dart/runtime/bin/socket_base.h +FILE: ../../../third_party/dart/runtime/bin/sync_socket.cc +FILE: ../../../third_party/dart/runtime/bin/sync_socket.h +FILE: ../../../third_party/dart/runtime/bin/sync_socket_android.cc +FILE: ../../../third_party/dart/runtime/bin/sync_socket_fuchsia.cc +FILE: ../../../third_party/dart/runtime/bin/sync_socket_linux.cc +FILE: ../../../third_party/dart/runtime/bin/sync_socket_macos.cc +FILE: ../../../third_party/dart/runtime/bin/sync_socket_win.cc +FILE: ../../../third_party/dart/runtime/lib/async.cc +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/containers/search_bar.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/nav/reload.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/singletargetcache_ref.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/singletargetcache_view.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/subtypetestcache_ref.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/subtypetestcache_view.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/unlinkedcall_ref.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/unlinkedcall_view.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/service.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/single_target_cache.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/subtype_test_cache.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/timeline.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/unlinked_call.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/repositories/single_target_cache.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/repositories/subtype_test_cache.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/repositories/timeline.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/repositories/unlinked_call.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/repositories/vm.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/single_target_cache.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/subtype_test_cache.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/timeline.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/unlinked_call.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/vm.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/containers/search_bar.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/nav/reload.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/singletargetcache_ref.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/singletargetcache_view.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/subtypetestcache_ref.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/subtypetestcache_view.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/timeline/dashboard.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/unlinkedcall_ref.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/unlinkedcall_view.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/service.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/single_target_cache.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/subtype_test_cache.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/timeline.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/unlinked_call.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/repositories/single_target_cache.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/repositories/subtype_test_cache.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/repositories/timeline.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/repositories/unlinked_call.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/repositories/vm.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/single_target_cache.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/subtype_test_cache.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/timeline.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/unlinked_call.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/vm.dart +FILE: ../../../third_party/dart/runtime/platform/allocation.h +FILE: ../../../third_party/dart/runtime/platform/growable_array.h +FILE: ../../../third_party/dart/runtime/vm/compiler/assembler/assembler_riscv.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/assembler/assembler_riscv.h +FILE: ../../../third_party/dart/runtime/vm/compiler/assembler/assembler_riscv_test.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/assembler/disassembler_riscv.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/backend/locations_helpers.h +FILE: ../../../third_party/dart/runtime/vm/compiler/backend/locations_helpers_arm.h +FILE: ../../../third_party/dart/runtime/vm/compiler/backend/locations_helpers_test.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/call_specializer.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/call_specializer.h +FILE: ../../../third_party/dart/runtime/vm/compiler/frontend/kernel_binary_flowgraph.h +FILE: ../../../third_party/dart/runtime/vm/compiler/frontend/prologue_builder.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/frontend/prologue_builder.h +FILE: ../../../third_party/dart/runtime/vm/compiler/jit/jit_call_specializer.h +FILE: ../../../third_party/dart/runtime/vm/constants_riscv.cc +FILE: ../../../third_party/dart/runtime/vm/constants_riscv.h +FILE: ../../../third_party/dart/runtime/vm/constants_x86.h +FILE: ../../../third_party/dart/runtime/vm/debugger_api_impl_test.h +FILE: ../../../third_party/dart/runtime/vm/dwarf.cc +FILE: ../../../third_party/dart/runtime/vm/dwarf.h +FILE: ../../../third_party/dart/runtime/vm/fixed_cache.h +FILE: ../../../third_party/dart/runtime/vm/fixed_cache_test.cc +FILE: ../../../third_party/dart/runtime/vm/gdb_helpers.cc +FILE: ../../../third_party/dart/runtime/vm/heap/compactor.cc +FILE: ../../../third_party/dart/runtime/vm/heap/compactor.h +FILE: ../../../third_party/dart/runtime/vm/image_snapshot.cc +FILE: ../../../third_party/dart/runtime/vm/image_snapshot.h +FILE: ../../../third_party/dart/runtime/vm/json_writer.cc +FILE: ../../../third_party/dart/runtime/vm/json_writer.h +FILE: ../../../third_party/dart/runtime/vm/kernel_binary.h +FILE: ../../../third_party/dart/runtime/vm/malloc_hooks.h +FILE: ../../../third_party/dart/runtime/vm/malloc_hooks_arm.cc +FILE: ../../../third_party/dart/runtime/vm/malloc_hooks_arm64.cc +FILE: ../../../third_party/dart/runtime/vm/malloc_hooks_ia32.cc +FILE: ../../../third_party/dart/runtime/vm/malloc_hooks_tcmalloc.cc +FILE: ../../../third_party/dart/runtime/vm/malloc_hooks_test.cc +FILE: ../../../third_party/dart/runtime/vm/malloc_hooks_unsupported.cc +FILE: ../../../third_party/dart/runtime/vm/malloc_hooks_x64.cc +FILE: ../../../third_party/dart/runtime/vm/mixin_test.cc +FILE: ../../../third_party/dart/runtime/vm/simulator_riscv.cc +FILE: ../../../third_party/dart/runtime/vm/simulator_riscv.h +FILE: ../../../third_party/dart/runtime/vm/stack_trace.cc +FILE: ../../../third_party/dart/runtime/vm/stack_trace.h +FILE: ../../../third_party/dart/runtime/vm/timeline_android.cc +FILE: ../../../third_party/dart/runtime/vm/timeline_fuchsia.cc +FILE: ../../../third_party/dart/runtime/vm/timeline_linux.cc +FILE: ../../../third_party/dart/runtime/vm/zone_text_buffer.cc +FILE: ../../../third_party/dart/runtime/vm/zone_text_buffer.h +FILE: ../../../third_party/dart/sdk/lib/_http/overrides.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/private/custom_hash_map.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/private/identity_hash_map.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/private/linked_hash_map.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/private/profile.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm/bin/cli_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm/bin/namespace_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm/bin/sync_socket_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/class_id_fasta.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm_shared/lib/bigint_patch.dart +FILE: ../../../third_party/dart/sdk/lib/cli/cli.dart +FILE: ../../../third_party/dart/sdk/lib/cli/wait_for.dart +FILE: ../../../third_party/dart/sdk/lib/core/bigint.dart +FILE: ../../../third_party/dart/sdk/lib/internal/linked_list.dart +FILE: ../../../third_party/dart/sdk/lib/internal/patch.dart +FILE: ../../../third_party/dart/sdk/lib/io/embedder_config.dart +FILE: ../../../third_party/dart/sdk/lib/io/namespace_impl.dart +FILE: ../../../third_party/dart/sdk/lib/io/overrides.dart +FILE: ../../../third_party/dart/sdk/lib/io/sync_socket.dart +FILE: ../../../third_party/dart/sdk/lib/vmservice/named_lookup.dart +FILE: ../../../third_party/dart/utils/bazel/kernel_worker.dart +---------------------------------------------------------------------------------------------------- +Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file +for details. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: boringssl +ORIGIN: ../../../third_party/boringssl/src/crypto/hrss/asm/poly_rq_mul.S +TYPE: LicenseType.unknown +FILE: ../../../third_party/boringssl/src/crypto/hrss/asm/poly_rq_mul.S +---------------------------------------------------------------------------------------------------- +Copyright (c) 2017, the HRSS authors. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY +SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION +OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN +CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +==================================================================================================== + +==================================================================================================== +LIBRARY: ffx_spd +ORIGIN: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/src/third_party/ffx_spd/ffx_a.h +TYPE: LicenseType.mit +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/src/third_party/ffx_spd/ffx_a.h +---------------------------------------------------------------------------------------------------- +Copyright (c) 2017-2019 Advanced Micro Devices, Inc. All rights reserved. +Copyright (c) <2014> + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation +files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, +modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the +Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE +WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +==================================================================================================== + +==================================================================================================== +LIBRARY: ffx_spd +ORIGIN: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/src/third_party/ffx_spd/ffx_spd.h +TYPE: LicenseType.mit +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/src/third_party/ffx_spd/ffx_spd.h +---------------------------------------------------------------------------------------------------- +Copyright (c) 2017-2020 Advanced Micro Devices, Inc. All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation +files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, +modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the +Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE +WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +==================================================================================================== + +==================================================================================================== +LIBRARY: vulkan_memory_allocator +ORIGIN: ../../../third_party/vulkan_memory_allocator/include/vk_mem_alloc.h +TYPE: LicenseType.mit +FILE: ../../../third_party/vulkan_memory_allocator/include/vk_mem_alloc.h +---------------------------------------------------------------------------------------------------- +Copyright (c) 2017-2022 Advanced Micro Devices, Inc. All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +==================================================================================================== + +==================================================================================================== +LIBRARY: boringssl +ORIGIN: ../../../third_party/boringssl/src/crypto/bytestring/unicode.c +TYPE: LicenseType.unknown +FILE: ../../../third_party/boringssl/src/crypto/abi_self_test.cc +FILE: ../../../third_party/boringssl/src/crypto/bytestring/unicode.c +FILE: ../../../third_party/boringssl/src/crypto/chacha/internal.h +FILE: ../../../third_party/boringssl/src/crypto/cpu-aarch64-fuchsia.c +FILE: ../../../third_party/boringssl/src/crypto/cpu-arm-linux.h +FILE: ../../../third_party/boringssl/src/crypto/cpu-arm-linux_test.cc +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/div_extra.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/gcd_extra.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/ec/felem.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/ec/make_ec_scalar_base_mult_tests.go +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/ec/make_p256-x86_64-tests.go +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/ec/scalar.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/ec/simple_mul.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/md5/internal.h +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/md5/md5_test.cc +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/sha/internal.h +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/sha/sha_test.cc +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/tls/internal.h +FILE: ../../../third_party/boringssl/src/crypto/hrss/hrss.c +FILE: ../../../third_party/boringssl/src/crypto/hrss/hrss_test.cc +FILE: ../../../third_party/boringssl/src/crypto/hrss/internal.h +FILE: ../../../third_party/boringssl/src/crypto/impl_dispatch_test.cc +FILE: ../../../third_party/boringssl/src/crypto/pem/pem_test.cc +FILE: ../../../third_party/boringssl/src/crypto/rand_extra/rand_test.cc +FILE: ../../../third_party/boringssl/src/crypto/self_test.cc +FILE: ../../../third_party/boringssl/src/crypto/stack/stack_test.cc +FILE: ../../../third_party/boringssl/src/crypto/x509v3/internal.h +FILE: ../../../third_party/boringssl/src/include/openssl/e_os2.h +FILE: ../../../third_party/boringssl/src/include/openssl/hrss.h +FILE: ../../../third_party/boringssl/src/ssl/handoff.cc +FILE: ../../../third_party/boringssl/src/util/ar/ar_test.go +FILE: ../../../third_party/boringssl/src/util/check_filenames.go +FILE: ../../../third_party/boringssl/src/util/convert_wycheproof.go +FILE: ../../../third_party/boringssl/src/util/fipstools/cavp/cavp_kas_test.cc +FILE: ../../../third_party/boringssl/src/util/fipstools/cavp/cavp_tlskdf_test.cc +FILE: ../../../third_party/boringssl/src/util/godeps.go +FILE: ../../../third_party/boringssl/src/util/make_prefix_headers.go +FILE: ../../../third_party/boringssl/src/util/read_symbols.go +FILE: ../../../third_party/boringssl/src/util/testresult/testresult.go +---------------------------------------------------------------------------------------------------- +Copyright (c) 2018, Google Inc. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY +SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION +OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN +CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +==================================================================================================== + +==================================================================================================== +LIBRARY: boringssl +ORIGIN: ../../../third_party/boringssl/src/crypto/cpu-aarch64-win.c +TYPE: LicenseType.unknown +FILE: ../../../third_party/boringssl/src/crypto/cpu-aarch64-win.c +---------------------------------------------------------------------------------------------------- +Copyright (c) 2018, Google Inc. +Copyright (c) 2020, Arm Ltd. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY +SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION +OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN +CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +==================================================================================================== + +==================================================================================================== +LIBRARY: dart +ORIGIN: ../../../third_party/dart/runtime/bin/crashpad.h + ../../../third_party/dart/LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/dart/runtime/bin/crashpad.h +FILE: ../../../third_party/dart/runtime/bin/dart_embedder_api_impl.cc +FILE: ../../../third_party/dart/runtime/bin/typed_data_utils.cc +FILE: ../../../third_party/dart/runtime/bin/typed_data_utils.h +FILE: ../../../third_party/dart/runtime/include/dart_embedder_api.h +FILE: ../../../third_party/dart/runtime/tools/dartfuzz/dartfuzz.dart +FILE: ../../../third_party/dart/runtime/tools/dartfuzz/dartfuzz_test.dart +FILE: ../../../third_party/dart/runtime/vm/base64.cc +FILE: ../../../third_party/dart/runtime/vm/base64.h +FILE: ../../../third_party/dart/runtime/vm/base64_test.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/backend/code_statistics.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/backend/code_statistics.h +FILE: ../../../third_party/dart/runtime/vm/compiler/backend/compile_type.h +FILE: ../../../third_party/dart/runtime/vm/compiler/backend/loops.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/backend/loops.h +FILE: ../../../third_party/dart/runtime/vm/compiler/backend/loops_test.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/backend/redundancy_elimination_test.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/backend/slot.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/backend/slot.h +FILE: ../../../third_party/dart/runtime/vm/compiler/compiler_pass.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/compiler_pass.h +FILE: ../../../third_party/dart/runtime/vm/compiler/compiler_state.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/compiler_state.h +FILE: ../../../third_party/dart/runtime/vm/compiler/frontend/base_flow_graph_builder.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/frontend/base_flow_graph_builder.h +FILE: ../../../third_party/dart/runtime/vm/compiler/frontend/constant_reader.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/frontend/constant_reader.h +FILE: ../../../third_party/dart/runtime/vm/compiler/frontend/kernel_fingerprints.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/frontend/kernel_fingerprints.h +FILE: ../../../third_party/dart/runtime/vm/compiler/frontend/kernel_translation_helper.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/frontend/kernel_translation_helper.h +FILE: ../../../third_party/dart/runtime/vm/compiler/frontend/scope_builder.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/frontend/scope_builder.h +FILE: ../../../third_party/dart/runtime/vm/compiler/relocation.h +FILE: ../../../third_party/dart/runtime/vm/constants.h +FILE: ../../../third_party/dart/runtime/vm/datastream.cc +FILE: ../../../third_party/dart/runtime/vm/finalizable_data.h +FILE: ../../../third_party/dart/runtime/vm/hash.h +FILE: ../../../third_party/dart/runtime/vm/raw_object_fields.cc +FILE: ../../../third_party/dart/runtime/vm/raw_object_fields.h +FILE: ../../../third_party/dart/runtime/vm/reverse_pc_lookup_cache.cc +FILE: ../../../third_party/dart/runtime/vm/reverse_pc_lookup_cache.h +FILE: ../../../third_party/dart/runtime/vm/type_testing_stubs.cc +FILE: ../../../third_party/dart/runtime/vm/type_testing_stubs.h +FILE: ../../../third_party/dart/runtime/vm/v8_snapshot_writer.cc +FILE: ../../../third_party/dart/runtime/vm/v8_snapshot_writer.h +FILE: ../../../third_party/dart/sdk/lib/_internal/js_runtime/lib/instantiation.dart +FILE: ../../../third_party/dart/sdk/lib/js/_js.dart +FILE: ../../../third_party/dart/sdk/lib/js/_js_client.dart +FILE: ../../../third_party/dart/sdk/lib/js/_js_server.dart +FILE: ../../../third_party/dart/sdk/lib/typed_data/unmodifiable_typed_data.dart +---------------------------------------------------------------------------------------------------- +Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file +for details. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: dart +ORIGIN: ../../../third_party/dart/runtime/bin/console.h + ../../../third_party/dart/LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/dart/runtime/bin/console.h +FILE: ../../../third_party/dart/runtime/bin/console_posix.cc +FILE: ../../../third_party/dart/runtime/bin/console_win.cc +---------------------------------------------------------------------------------------------------- +Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file +for details. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: expat +ORIGIN: ../../../third_party/expat/expat/cmake/expat-config.cmake.in +TYPE: LicenseType.mit +FILE: ../../../third_party/expat/expat/cmake/expat-config.cmake.in +---------------------------------------------------------------------------------------------------- +Copyright (c) 2019 Expat development team +Licensed under the MIT license: + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the +following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. +==================================================================================================== + +==================================================================================================== +LIBRARY: boringssl +ORIGIN: ../../../third_party/boringssl/src/crypto/ec_extra/ec_derive.c +TYPE: LicenseType.unknown +FILE: ../../../third_party/boringssl/src/crypto/ec_extra/ec_derive.c +FILE: ../../../third_party/boringssl/src/crypto/evp/p_x25519.c +FILE: ../../../third_party/boringssl/src/crypto/evp/p_x25519_asn1.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/aes/aes_nohw.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/fips_shared_support.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/modes/gcm_nohw.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/rand/urandom_test.cc +FILE: ../../../third_party/boringssl/src/crypto/siphash/siphash.c +FILE: ../../../third_party/boringssl/src/crypto/siphash/siphash_test.cc +FILE: ../../../third_party/boringssl/src/crypto/trust_token/internal.h +FILE: ../../../third_party/boringssl/src/crypto/trust_token/trust_token.c +FILE: ../../../third_party/boringssl/src/decrepit/blowfish/blowfish_test.cc +FILE: ../../../third_party/boringssl/src/decrepit/cast/cast_test.cc +FILE: ../../../third_party/boringssl/src/include/openssl/siphash.h +FILE: ../../../third_party/boringssl/src/util/fipstools/acvp/acvptool/acvp.go +FILE: ../../../third_party/boringssl/src/util/fipstools/acvp/acvptool/acvp/acvp.go +FILE: ../../../third_party/boringssl/src/util/fipstools/acvp/acvptool/interactive.go +FILE: ../../../third_party/boringssl/src/util/fipstools/acvp/acvptool/parser.peg +FILE: ../../../third_party/boringssl/src/util/fipstools/acvp/acvptool/subprocess/block.go +FILE: ../../../third_party/boringssl/src/util/fipstools/acvp/acvptool/subprocess/drbg.go +FILE: ../../../third_party/boringssl/src/util/fipstools/acvp/acvptool/subprocess/ecdsa.go +FILE: ../../../third_party/boringssl/src/util/fipstools/acvp/acvptool/subprocess/hash.go +FILE: ../../../third_party/boringssl/src/util/fipstools/acvp/acvptool/subprocess/hmac.go +FILE: ../../../third_party/boringssl/src/util/fipstools/acvp/acvptool/subprocess/subprocess.go +FILE: ../../../third_party/boringssl/src/util/fipstools/acvp/modulewrapper/modulewrapper.cc +---------------------------------------------------------------------------------------------------- +Copyright (c) 2019, Google Inc. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY +SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION +OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN +CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +==================================================================================================== + +==================================================================================================== +LIBRARY: dart +ORIGIN: ../../../third_party/dart/runtime/bin/ffi_test/ffi_test_dynamic_library.cc + ../../../third_party/dart/LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/dart/runtime/bin/elf_loader.cc +FILE: ../../../third_party/dart/runtime/bin/elf_loader.h +FILE: ../../../third_party/dart/runtime/bin/entrypoints_verification_test.cc +FILE: ../../../third_party/dart/runtime/bin/ffi_test/ffi_test_dynamic_library.cc +FILE: ../../../third_party/dart/runtime/bin/ffi_test/ffi_test_functions.cc +FILE: ../../../third_party/dart/runtime/bin/ffi_test/ffi_test_functions_vmspecific.cc +FILE: ../../../third_party/dart/runtime/bin/ifaddrs-android.cc +FILE: ../../../third_party/dart/runtime/bin/ifaddrs-android.h +FILE: ../../../third_party/dart/runtime/bin/namespace_fuchsia.h +FILE: ../../../third_party/dart/runtime/bin/socket_base_android.cc +FILE: ../../../third_party/dart/runtime/lib/ffi.cc +FILE: ../../../third_party/dart/runtime/lib/ffi_dynamic_library.cc +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/tree_map.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/objects/isolate_group.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/models/repositories/isolate_group.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/isolate_group.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/repositories/timeline_base.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/tree_map.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/objects/isolate_group.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/models/repositories/isolate_group.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/isolate_group.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/repositories/timeline_base.dart +FILE: ../../../third_party/dart/runtime/platform/elf.h +FILE: ../../../third_party/dart/runtime/platform/thread_sanitizer.h +FILE: ../../../third_party/dart/runtime/tools/dartfuzz/dartfuzz_api_table.dart +FILE: ../../../third_party/dart/runtime/tools/dartfuzz/dartfuzz_ffi_api.dart +FILE: ../../../third_party/dart/runtime/tools/dartfuzz/dartfuzz_type_table.dart +FILE: ../../../third_party/dart/runtime/tools/dartfuzz/gen_api_table.dart +FILE: ../../../third_party/dart/runtime/tools/dartfuzz/gen_type_table.dart +FILE: ../../../third_party/dart/runtime/tools/dartfuzz/gen_util.dart +FILE: ../../../third_party/dart/runtime/tools/ffi/sdk_lib_ffi_generator.dart +FILE: ../../../third_party/dart/runtime/tools/graphexplorer/graphexplorer.html +FILE: ../../../third_party/dart/runtime/tools/graphexplorer/graphexplorer.js +FILE: ../../../third_party/dart/runtime/tools/run_clang_tidy.dart +FILE: ../../../third_party/dart/runtime/vm/bss_relocs.cc +FILE: ../../../third_party/dart/runtime/vm/bss_relocs.h +FILE: ../../../third_party/dart/runtime/vm/catch_entry_moves_test.cc +FILE: ../../../third_party/dart/runtime/vm/class_id.h +FILE: ../../../third_party/dart/runtime/vm/code_comments.cc +FILE: ../../../third_party/dart/runtime/vm/code_comments.h +FILE: ../../../third_party/dart/runtime/vm/code_entry_kind.h +FILE: ../../../third_party/dart/runtime/vm/compiler/asm_intrinsifier.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/asm_intrinsifier.h +FILE: ../../../third_party/dart/runtime/vm/compiler/asm_intrinsifier_arm.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/asm_intrinsifier_arm64.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/asm_intrinsifier_ia32.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/asm_intrinsifier_x64.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/backend/bce_test.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/backend/block_builder.h +FILE: ../../../third_party/dart/runtime/vm/compiler/backend/evaluator.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/backend/evaluator.h +FILE: ../../../third_party/dart/runtime/vm/compiler/backend/flow_graph_checker.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/backend/flow_graph_checker.h +FILE: ../../../third_party/dart/runtime/vm/compiler/backend/il_test_helper.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/backend/il_test_helper.h +FILE: ../../../third_party/dart/runtime/vm/compiler/backend/inliner_test.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/backend/slot_test.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/backend/type_propagator_test.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/backend/typed_data_aot_test.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/backend/yield_position_test.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/graph_intrinsifier.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/graph_intrinsifier.h +FILE: ../../../third_party/dart/runtime/vm/compiler/offsets_extractor.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/recognized_methods_list.h +FILE: ../../../third_party/dart/runtime/vm/compiler/relocation.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/runtime_api.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/runtime_api.h +FILE: ../../../third_party/dart/runtime/vm/compiler/runtime_offsets_extracted.h +FILE: ../../../third_party/dart/runtime/vm/compiler/runtime_offsets_list.h +FILE: ../../../third_party/dart/runtime/vm/compiler/stub_code_compiler.h +FILE: ../../../third_party/dart/runtime/vm/compiler/stub_code_compiler_arm.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/stub_code_compiler_arm64.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/stub_code_compiler_ia32.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/stub_code_compiler_x64.cc +FILE: ../../../third_party/dart/runtime/vm/constants_arm.cc +FILE: ../../../third_party/dart/runtime/vm/constants_arm64.cc +FILE: ../../../third_party/dart/runtime/vm/constants_ia32.cc +FILE: ../../../third_party/dart/runtime/vm/constants_x64.cc +FILE: ../../../third_party/dart/runtime/vm/elf.cc +FILE: ../../../third_party/dart/runtime/vm/elf.h +FILE: ../../../third_party/dart/runtime/vm/ffi_callback_trampolines.cc +FILE: ../../../third_party/dart/runtime/vm/ffi_callback_trampolines.h +FILE: ../../../third_party/dart/runtime/vm/frame_layout.h +FILE: ../../../third_party/dart/runtime/vm/intrusive_dlist.h +FILE: ../../../third_party/dart/runtime/vm/intrusive_dlist_test.cc +FILE: ../../../third_party/dart/runtime/vm/libfuzzer/dart_libfuzzer.cc +FILE: ../../../third_party/dart/runtime/vm/longjump.h +FILE: ../../../third_party/dart/runtime/vm/pointer_tagging.h +FILE: ../../../third_party/dart/runtime/vm/splay-tree.h +FILE: ../../../third_party/dart/runtime/vm/static_type_exactness_state.h +FILE: ../../../third_party/dart/runtime/vm/stub_code_list.h +FILE: ../../../third_party/dart/runtime/vm/thread_stack_resource.cc +FILE: ../../../third_party/dart/runtime/vm/thread_stack_resource.h +FILE: ../../../third_party/dart/runtime/vm/thread_state.cc +FILE: ../../../third_party/dart/runtime/vm/thread_state.h +FILE: ../../../third_party/dart/samples/ffi/coordinate.dart +FILE: ../../../third_party/dart/samples/ffi/dylib_utils.dart +FILE: ../../../third_party/dart/samples/ffi/resource_management/arena_isolate_shutdown_sample.dart +FILE: ../../../third_party/dart/samples/ffi/resource_management/arena_sample.dart +FILE: ../../../third_party/dart/samples/ffi/resource_management/arena_zoned_sample.dart +FILE: ../../../third_party/dart/samples/ffi/resource_management/resource_management_test.dart +FILE: ../../../third_party/dart/samples/ffi/resource_management/unmanaged_sample.dart +FILE: ../../../third_party/dart/samples/ffi/sample_ffi_bitfield.dart +FILE: ../../../third_party/dart/samples/ffi/sample_ffi_data.dart +FILE: ../../../third_party/dart/samples/ffi/sample_ffi_dynamic_library.dart +FILE: ../../../third_party/dart/samples/ffi/sample_ffi_functions.dart +FILE: ../../../third_party/dart/samples/ffi/sample_ffi_functions_callbacks.dart +FILE: ../../../third_party/dart/samples/ffi/sample_ffi_functions_structs.dart +FILE: ../../../third_party/dart/samples/ffi/sample_ffi_structs.dart +FILE: ../../../third_party/dart/samples/ffi/samples_test.dart +FILE: ../../../third_party/dart/samples/ffi/sqlite/example/main.dart +FILE: ../../../third_party/dart/samples/ffi/sqlite/lib/sqlite.dart +FILE: ../../../third_party/dart/samples/ffi/sqlite/lib/src/bindings/bindings.dart +FILE: ../../../third_party/dart/samples/ffi/sqlite/lib/src/bindings/constants.dart +FILE: ../../../third_party/dart/samples/ffi/sqlite/lib/src/bindings/signatures.dart +FILE: ../../../third_party/dart/samples/ffi/sqlite/lib/src/bindings/types.dart +FILE: ../../../third_party/dart/samples/ffi/sqlite/lib/src/collections/closable_iterator.dart +FILE: ../../../third_party/dart/samples/ffi/sqlite/lib/src/database.dart +FILE: ../../../third_party/dart/samples/ffi/sqlite/lib/src/ffi/dylib_utils.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/js_shared/lib/rti.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/js_shared/lib/synced/recipe_syntax.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/ffi_dynamic_library_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/ffi_native_type_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/ffi_patch.dart +FILE: ../../../third_party/dart/sdk/lib/ffi/annotations.dart +FILE: ../../../third_party/dart/sdk/lib/ffi/dynamic_library.dart +FILE: ../../../third_party/dart/sdk/lib/ffi/ffi.dart +FILE: ../../../third_party/dart/sdk/lib/ffi/native_type.dart +FILE: ../../../third_party/dart/sdk/lib/ffi/struct.dart +FILE: ../../../third_party/dart/sdk/lib/internal/errors.dart +---------------------------------------------------------------------------------------------------- +Copyright (c) 2019, the Dart project authors. Please see the AUTHORS file +for details. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: dart +ORIGIN: ../../../third_party/dart/sdk/lib/io/network_profiling.dart + ../../../third_party/dart/LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/dart/sdk/lib/io/network_profiling.dart +---------------------------------------------------------------------------------------------------- +Copyright (c) 2019, the Dart project authors. Please see the AUTHORS file +for details. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: boringssl +ORIGIN: ../../../third_party/boringssl/src/util/compare_benchmarks.go +TYPE: LicenseType.unknown +FILE: ../../../third_party/boringssl/src/util/compare_benchmarks.go +---------------------------------------------------------------------------------------------------- +Copyright (c) 2020 Google Inc. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY +SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION +OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN +CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +==================================================================================================== + +==================================================================================================== +LIBRARY: angle +ORIGIN: ../../../third_party/angle/src/libANGLE/renderer/metal/QueryMtl.h + ../../../third_party/angle/LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/QueryMtl.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/QueryMtl.mm +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/SyncMtl.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/SyncMtl.mm +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/mtl_occlusion_query_pool.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/mtl_occlusion_query_pool.mm +---------------------------------------------------------------------------------------------------- +Copyright (c) 2020 The ANGLE Project Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + + Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. + Ltd., nor the names of their contributors may be used to endorse + or promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: boringssl +ORIGIN: ../../../third_party/boringssl/src/crypto/curve25519/curve25519.c +TYPE: LicenseType.unknown +FILE: ../../../third_party/boringssl/src/crypto/crypto_test.cc +FILE: ../../../third_party/boringssl/src/crypto/curve25519/curve25519.c +FILE: ../../../third_party/boringssl/src/crypto/curve25519/curve25519_tables.h +FILE: ../../../third_party/boringssl/src/crypto/curve25519/internal.h +FILE: ../../../third_party/boringssl/src/crypto/dsa/internal.h +FILE: ../../../third_party/boringssl/src/crypto/ec_extra/hash_to_curve.c +FILE: ../../../third_party/boringssl/src/crypto/ec_extra/internal.h +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/ec/make_tables.go +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/ec/p256.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/ec/p256_table.h +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/rand/fork_detect.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/rand/fork_detect.h +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/rand/fork_detect_test.cc +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/rand/getrandom_fillin.h +FILE: ../../../third_party/boringssl/src/crypto/hpke/hpke.c +FILE: ../../../third_party/boringssl/src/crypto/hpke/hpke_test.cc +FILE: ../../../third_party/boringssl/src/crypto/rand_extra/passive.c +FILE: ../../../third_party/boringssl/src/crypto/trust_token/pmbtoken.c +FILE: ../../../third_party/boringssl/src/crypto/trust_token/trust_token_test.cc +FILE: ../../../third_party/boringssl/src/crypto/trust_token/voprf.c +FILE: ../../../third_party/boringssl/src/decrepit/xts/xts_test.cc +FILE: ../../../third_party/boringssl/src/include/openssl/hpke.h +FILE: ../../../third_party/boringssl/src/include/openssl/trust_token.h +FILE: ../../../third_party/boringssl/src/tool/fd.cc +FILE: ../../../third_party/boringssl/src/util/fipstools/acvp/acvptool/nointeractive.go +FILE: ../../../third_party/boringssl/src/util/fipstools/acvp/acvptool/subprocess/aead.go +FILE: ../../../third_party/boringssl/src/util/fipstools/acvp/acvptool/subprocess/kas.go +FILE: ../../../third_party/boringssl/src/util/fipstools/acvp/acvptool/subprocess/kasdh.go +FILE: ../../../third_party/boringssl/src/util/fipstools/acvp/acvptool/subprocess/kdf.go +FILE: ../../../third_party/boringssl/src/util/fipstools/acvp/acvptool/subprocess/keyedMac.go +FILE: ../../../third_party/boringssl/src/util/fipstools/acvp/acvptool/subprocess/rsa.go +FILE: ../../../third_party/boringssl/src/util/fipstools/acvp/acvptool/subprocess/tlskdf.go +FILE: ../../../third_party/boringssl/src/util/testconfig/testconfig.go +---------------------------------------------------------------------------------------------------- +Copyright (c) 2020, Google Inc. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY +SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION +OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN +CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +==================================================================================================== + +==================================================================================================== +LIBRARY: dart +ORIGIN: ../../../third_party/dart/runtime/bin/ffi_test/ffi_test_functions_generated.cc + ../../../third_party/dart/LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/dart/runtime/bin/dartdev_isolate.cc +FILE: ../../../third_party/dart/runtime/bin/dartdev_isolate.h +FILE: ../../../third_party/dart/runtime/bin/exe_utils.cc +FILE: ../../../third_party/dart/runtime/bin/exe_utils.h +FILE: ../../../third_party/dart/runtime/bin/ffi_test/ffi_test_functions_generated.cc +FILE: ../../../third_party/dart/runtime/bin/ffi_unit_test/run_ffi_unit_tests.cc +FILE: ../../../third_party/dart/runtime/bin/file_win.h +FILE: ../../../third_party/dart/runtime/bin/platform_macos.h +FILE: ../../../third_party/dart/runtime/bin/priority_heap_test.cc +FILE: ../../../third_party/dart/runtime/include/dart_api_dl.c +FILE: ../../../third_party/dart/runtime/include/dart_api_dl.h +FILE: ../../../third_party/dart/runtime/include/dart_version.h +FILE: ../../../third_party/dart/runtime/include/internal/dart_api_dl_impl.h +FILE: ../../../third_party/dart/runtime/observatory/bin/heap_snapshot.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/process_snapshot.dart +FILE: ../../../third_party/dart/runtime/observatory_2/bin/heap_snapshot.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/process_snapshot.dart +FILE: ../../../third_party/dart/runtime/platform/allocation.cc +FILE: ../../../third_party/dart/runtime/platform/leak_sanitizer.h +FILE: ../../../third_party/dart/runtime/platform/priority_queue.h +FILE: ../../../third_party/dart/runtime/platform/unaligned.h +FILE: ../../../third_party/dart/runtime/platform/undefined_behavior_sanitizer.h +FILE: ../../../third_party/dart/runtime/tools/wiki/xref_extractor/bin/main.dart +FILE: ../../../third_party/dart/runtime/tools/wiki/xref_extractor/lib/cquery_driver.dart +FILE: ../../../third_party/dart/runtime/tools/wiki/xref_extractor/lib/xref_extractor.dart +FILE: ../../../third_party/dart/runtime/vm/canonical_tables.cc +FILE: ../../../third_party/dart/runtime/vm/closure_functions_cache.cc +FILE: ../../../third_party/dart/runtime/vm/closure_functions_cache.h +FILE: ../../../third_party/dart/runtime/vm/compiler/aot/dispatch_table_generator.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/aot/dispatch_table_generator.h +FILE: ../../../third_party/dart/runtime/vm/compiler/aot/precompiler_tracer.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/aot/precompiler_tracer.h +FILE: ../../../third_party/dart/runtime/vm/compiler/api/deopt_id.h +FILE: ../../../third_party/dart/runtime/vm/compiler/api/print_filter.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/api/print_filter.h +FILE: ../../../third_party/dart/runtime/vm/compiler/api/type_check_mode.h +FILE: ../../../third_party/dart/runtime/vm/compiler/assembler/assembler_base.h +FILE: ../../../third_party/dart/runtime/vm/compiler/backend/constant_propagator_test.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/backend/reachability_fence_test.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/abi.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/abi.h +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/call.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/call.h +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/callback.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/callback.h +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/frame_rebase.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/frame_rebase.h +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/marshaller.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/marshaller.h +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/native_calling_convention.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/native_calling_convention.h +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/native_calling_convention_test.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/native_location.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/native_location.h +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/native_location_test.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/native_type.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/native_type.h +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/native_type_test.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/native_type_vm_test.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/recognized_method.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/recognized_method.h +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_test.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_test.h +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_test_custom_zone.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_test_custom_zone.h +FILE: ../../../third_party/dart/runtime/vm/compiler/frontend/kernel_binary_flowgraph_test.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/stub_code_compiler.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/write_barrier_elimination.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/write_barrier_elimination.h +FILE: ../../../third_party/dart/runtime/vm/compiler/write_barrier_elimination_test.cc +FILE: ../../../third_party/dart/runtime/vm/constants_base.h +FILE: ../../../third_party/dart/runtime/vm/datastream_test.cc +FILE: ../../../third_party/dart/runtime/vm/dispatch_table.cc +FILE: ../../../third_party/dart/runtime/vm/dispatch_table.h +FILE: ../../../third_party/dart/runtime/vm/experimental_features.cc +FILE: ../../../third_party/dart/runtime/vm/experimental_features.h +FILE: ../../../third_party/dart/runtime/vm/field_table.cc +FILE: ../../../third_party/dart/runtime/vm/field_table.h +FILE: ../../../third_party/dart/runtime/vm/heap/become_test.cc +FILE: ../../../third_party/dart/runtime/vm/heap/weak_table_test.cc +FILE: ../../../third_party/dart/runtime/vm/port_set.h +FILE: ../../../third_party/dart/runtime/vm/stub_code_test.cc +FILE: ../../../third_party/dart/runtime/vm/tagged_pointer.h +FILE: ../../../third_party/dart/runtime/vm/timeline_macos.cc +FILE: ../../../third_party/dart/runtime/vm/type_testing_stubs_test.cc +FILE: ../../../third_party/dart/runtime/vm/visitor.cc +FILE: ../../../third_party/dart/samples/ffi/async/async_test.dart +FILE: ../../../third_party/dart/samples/ffi/async/sample_async_callback.dart +FILE: ../../../third_party/dart/samples/ffi/async/sample_native_port_call.dart +FILE: ../../../third_party/dart/samples/ffi/sample_ffi_functions_callbacks_closures.dart +FILE: ../../../third_party/dart/sdk/lib/_http/embedder_config.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/patch/js_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/js_runtime/lib/js_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/ffi_struct_patch.dart +FILE: ../../../third_party/dart/sdk/lib/internal/lowering.dart +---------------------------------------------------------------------------------------------------- +Copyright (c) 2020, the Dart project authors. Please see the AUTHORS file +for details. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: boringssl +ORIGIN: ../../../third_party/boringssl/src/crypto/blake2/blake2.c +TYPE: LicenseType.unknown +FILE: ../../../third_party/boringssl/src/crypto/blake2/blake2.c +FILE: ../../../third_party/boringssl/src/crypto/blake2/blake2_test.cc +FILE: ../../../third_party/boringssl/src/crypto/conf/conf_test.cc +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/ecdsa/internal.h +FILE: ../../../third_party/boringssl/src/decrepit/evp/evp_test.cc +FILE: ../../../third_party/boringssl/src/include/openssl/blake2.h +FILE: ../../../third_party/boringssl/src/ssl/encrypted_client_hello.cc +FILE: ../../../third_party/boringssl/src/tool/generate_ech.cc +FILE: ../../../third_party/boringssl/src/util/fetch_ech_config_list.go +FILE: ../../../third_party/boringssl/src/util/fipstools/acvp/acvptool/subprocess/hkdf.go +FILE: ../../../third_party/boringssl/src/util/fipstools/acvp/acvptool/subprocess/xts.go +FILE: ../../../third_party/boringssl/src/util/fipstools/acvp/acvptool/testmodulewrapper/cts_test.go +FILE: ../../../third_party/boringssl/src/util/fipstools/acvp/acvptool/testmodulewrapper/hmac_drbg.go +FILE: ../../../third_party/boringssl/src/util/fipstools/acvp/acvptool/testmodulewrapper/hmac_drbg_test.go +FILE: ../../../third_party/boringssl/src/util/fipstools/acvp/acvptool/testmodulewrapper/testmodulewrapper.go +FILE: ../../../third_party/boringssl/src/util/fipstools/acvp/modulewrapper/main.cc +FILE: ../../../third_party/boringssl/src/util/fipstools/acvp/modulewrapper/modulewrapper.h +---------------------------------------------------------------------------------------------------- +Copyright (c) 2021, Google Inc. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY +SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION +OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN +CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +==================================================================================================== + +==================================================================================================== +LIBRARY: dart +ORIGIN: ../../../third_party/dart/runtime/bin/abstract_socket_test.cc + ../../../third_party/dart/LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/dart/runtime/bin/abstract_socket_test.cc +FILE: ../../../third_party/dart/runtime/bin/analyze_snapshot.cc +FILE: ../../../third_party/dart/runtime/bin/platform_macos_cocoa.h +FILE: ../../../third_party/dart/runtime/bin/platform_macos_cocoa.mm +FILE: ../../../third_party/dart/runtime/bin/secure_socket_utils_test.cc +FILE: ../../../third_party/dart/runtime/bin/socket_base_posix.cc +FILE: ../../../third_party/dart/runtime/bin/utils.cc +FILE: ../../../third_party/dart/runtime/bin/virtual_memory.h +FILE: ../../../third_party/dart/runtime/bin/virtual_memory_fuchsia.cc +FILE: ../../../third_party/dart/runtime/bin/virtual_memory_posix.cc +FILE: ../../../third_party/dart/runtime/bin/virtual_memory_win.cc +FILE: ../../../third_party/dart/runtime/include/analyze_snapshot_api.h +FILE: ../../../third_party/dart/runtime/vm/analyze_snapshot_api_impl.cc +FILE: ../../../third_party/dart/runtime/vm/code_patcher_riscv.cc +FILE: ../../../third_party/dart/runtime/vm/code_patcher_riscv_test.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/asm_intrinsifier_riscv.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/asm_intrinsifier_test.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/backend/flow_graph_compiler_riscv.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/backend/il_riscv.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/compiler_timings.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/compiler_timings.h +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/range.h +FILE: ../../../third_party/dart/runtime/vm/compiler/relocation_test.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/stub_code_compiler_riscv.cc +FILE: ../../../third_party/dart/runtime/vm/cpu_riscv.cc +FILE: ../../../third_party/dart/runtime/vm/cpu_riscv.h +FILE: ../../../third_party/dart/runtime/vm/debugger_riscv.cc +FILE: ../../../third_party/dart/runtime/vm/heap/safepoint_test.cc +FILE: ../../../third_party/dart/runtime/vm/instructions_riscv.cc +FILE: ../../../third_party/dart/runtime/vm/instructions_riscv.h +FILE: ../../../third_party/dart/runtime/vm/instructions_riscv_test.cc +FILE: ../../../third_party/dart/runtime/vm/message_snapshot.cc +FILE: ../../../third_party/dart/runtime/vm/message_snapshot.h +FILE: ../../../third_party/dart/runtime/vm/object_graph_copy.cc +FILE: ../../../third_party/dart/runtime/vm/object_graph_copy.h +FILE: ../../../third_party/dart/runtime/vm/object_riscv_test.cc +FILE: ../../../third_party/dart/runtime/vm/pending_deopts.cc +FILE: ../../../third_party/dart/runtime/vm/pending_deopts.h +FILE: ../../../third_party/dart/runtime/vm/runtime_entry_riscv.cc +FILE: ../../../third_party/dart/runtime/vm/stack_frame_riscv.h +FILE: ../../../third_party/dart/runtime/vm/stub_code_riscv_test.cc +FILE: ../../../third_party/dart/runtime/vm/thread_interrupter_android_arm.S +FILE: ../../../third_party/dart/runtime/vm/virtual_memory_compressed.cc +FILE: ../../../third_party/dart/runtime/vm/virtual_memory_compressed.h +FILE: ../../../third_party/dart/samples/ffi/resource_management/utf8_helpers.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/js_runtime/lib/dart2js_runtime_metrics.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/js_runtime/lib/late_helper.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/ffi_allocation_patch.dart +FILE: ../../../third_party/dart/sdk/lib/core/enum.dart +FILE: ../../../third_party/dart/sdk/lib/ffi/abi.dart +FILE: ../../../third_party/dart/sdk/lib/ffi/abi_specific.dart +FILE: ../../../third_party/dart/sdk/lib/ffi/allocation.dart +FILE: ../../../third_party/dart/sdk/lib/ffi/union.dart +---------------------------------------------------------------------------------------------------- +Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file +for details. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: zlib +ORIGIN: ../../../third_party/zlib/google/redact.h + ../../../LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/zlib/google/redact.h +---------------------------------------------------------------------------------------------------- +Copyright (c) 2022 The Chromium Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: dart +ORIGIN: ../../../third_party/dart/runtime/bin/snapshot_utils_test.cc + ../../../third_party/dart/LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/dart/runtime/bin/snapshot_utils_test.cc +FILE: ../../../third_party/dart/runtime/bin/test_utils.cc +FILE: ../../../third_party/dart/runtime/bin/test_utils.h +FILE: ../../../third_party/dart/runtime/bin/thread_absl.cc +FILE: ../../../third_party/dart/runtime/bin/thread_absl.h +FILE: ../../../third_party/dart/runtime/lib/integers.h +FILE: ../../../third_party/dart/runtime/platform/mach_o.h +FILE: ../../../third_party/dart/runtime/platform/pe.h +FILE: ../../../third_party/dart/runtime/tools/heapsnapshot/bin/explore.dart +FILE: ../../../third_party/dart/runtime/tools/heapsnapshot/lib/heapsnapshot.dart +FILE: ../../../third_party/dart/runtime/tools/heapsnapshot/lib/src/analysis.dart +FILE: ../../../third_party/dart/runtime/tools/heapsnapshot/lib/src/cli.dart +FILE: ../../../third_party/dart/runtime/tools/heapsnapshot/lib/src/completion.dart +FILE: ../../../third_party/dart/runtime/tools/heapsnapshot/lib/src/console.dart +FILE: ../../../third_party/dart/runtime/tools/heapsnapshot/lib/src/expression.dart +FILE: ../../../third_party/dart/runtime/tools/heapsnapshot/lib/src/format.dart +FILE: ../../../third_party/dart/runtime/tools/heapsnapshot/lib/src/intset.dart +FILE: ../../../third_party/dart/runtime/tools/heapsnapshot/lib/src/load.dart +FILE: ../../../third_party/dart/runtime/vm/compiler/backend/il_serializer.cc +FILE: ../../../third_party/dart/runtime/vm/compiler/backend/il_serializer.h +FILE: ../../../third_party/dart/runtime/vm/heap/gc_shared.cc +FILE: ../../../third_party/dart/runtime/vm/heap/gc_shared.h +FILE: ../../../third_party/dart/runtime/vm/heap/page.cc +FILE: ../../../third_party/dart/runtime/vm/heap/page.h +FILE: ../../../third_party/dart/runtime/vm/instructions.cc +FILE: ../../../third_party/dart/runtime/vm/malloc_hooks_riscv.cc +FILE: ../../../third_party/dart/runtime/vm/os_thread_absl.cc +FILE: ../../../third_party/dart/runtime/vm/os_thread_absl.h +FILE: ../../../third_party/dart/runtime/vm/simulator_x64.cc +FILE: ../../../third_party/dart/runtime/vm/simulator_x64.h +FILE: ../../../third_party/dart/sdk/lib/_http/http_testing.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/private/js_names.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/js_dev_runtime/private/runtime_metrics.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/js_shared/lib/js_util_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/js_shared/lib/synced/embedded_names.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/ffi_native_finalizer_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/finalizer_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/hash_factories.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/vm/lib/record_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/async_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/bool.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/class_id.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/core_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/date_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/developer.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/double.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/errors_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/expando_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/function.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/growable_list.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/hash_factories.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/identical_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/int.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/internal_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/isolate_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/js_helper.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/js_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/js_util_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/list.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/math_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/object_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/print_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/regexp_helper.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/regexp_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/simd_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/stack_trace_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/stopwatch_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/string_buffer_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/string_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/symbol_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/timer_patch.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/type.dart +FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/uri_patch.dart +FILE: ../../../third_party/dart/sdk/lib/core/record.dart +FILE: ../../../third_party/dart/sdk/lib/ffi/c_type.dart +FILE: ../../../third_party/dart/sdk/lib/ffi/native_finalizer.dart +FILE: ../../../third_party/dart/sdk/lib/js/js_wasm.dart +FILE: ../../../third_party/dart/sdk/lib/js_util/js_util_wasm.dart +FILE: ../../../third_party/dart/sdk/lib/wasm/wasm_types.dart +---------------------------------------------------------------------------------------------------- +Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file +for details. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: icu +ORIGIN: ../../../third_party/icu/source/i18n/decNumber.h + ../../../third_party/dart/runtime/third_party/double-conversion/COPYING +TYPE: LicenseType.bsd +FILE: ../../../third_party/icu/source/i18n/decNumber.h +---------------------------------------------------------------------------------------------------- +Copyright (c) IBM Corporation, 2000-2010. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: icu +ORIGIN: ../../../third_party/icu/source/i18n/decContext.h + ../../../third_party/dart/runtime/third_party/double-conversion/COPYING +TYPE: LicenseType.bsd +FILE: ../../../third_party/icu/source/i18n/decContext.h +---------------------------------------------------------------------------------------------------- +Copyright (c) IBM Corporation, 2000-2011. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: icu +ORIGIN: ../../../third_party/icu/source/i18n/decContext.cpp + ../../../third_party/dart/runtime/third_party/double-conversion/COPYING +TYPE: LicenseType.bsd +FILE: ../../../third_party/icu/source/i18n/decContext.cpp +---------------------------------------------------------------------------------------------------- +Copyright (c) IBM Corporation, 2000-2012. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: icu +ORIGIN: ../../../third_party/icu/source/i18n/decNumber.cpp + ../../../third_party/dart/runtime/third_party/double-conversion/COPYING +TYPE: LicenseType.bsd +FILE: ../../../third_party/icu/source/i18n/decNumber.cpp +---------------------------------------------------------------------------------------------------- +Copyright (c) IBM Corporation, 2000-2014. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: icu +ORIGIN: ../../../third_party/icu/source/i18n/decNumberLocal.h + ../../../third_party/dart/runtime/third_party/double-conversion/COPYING +TYPE: LicenseType.bsd +FILE: ../../../third_party/icu/source/i18n/decNumberLocal.h +---------------------------------------------------------------------------------------------------- +Copyright (c) IBM Corporation, 2000-2016. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: freetype2 +ORIGIN: ../../../third_party/freetype2/src/pcf/pcfutil.c +TYPE: LicenseType.unknown +FILE: ../../../third_party/freetype2/src/pcf/pcfutil.c +---------------------------------------------------------------------------------------------------- +Copyright 1990, 1994, 1998 The Open Group + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that +copyright notice and this permission notice appear in supporting +documentation. + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of The Open Group shall not be +used in advertising or otherwise to promote the sale, use or other dealings +in this Software without prior written authorization from The Open Group. +==================================================================================================== + +==================================================================================================== +LIBRARY: icu +ORIGIN: ../../../third_party/icu/LICENSE +TYPE: LicenseType.mit +FILE: ../../../third_party/icu/DIR_METADATA +FILE: ../../../third_party/icu/android/icudtl.dat +FILE: ../../../third_party/icu/cast/brkitr.patch +FILE: ../../../third_party/icu/cast/icudtl.dat +FILE: ../../../third_party/icu/chromeos/icudtl.dat +FILE: ../../../third_party/icu/chromeos/icudtl.dat.hash +FILE: ../../../third_party/icu/common/icudtb.dat +FILE: ../../../third_party/icu/common/icudtl.dat +FILE: ../../../third_party/icu/flutter/brkitr.patch +FILE: ../../../third_party/icu/flutter/icudtl.dat +FILE: ../../../third_party/icu/fuzzers/fuzzer_utils.h +FILE: ../../../third_party/icu/fuzzers/icu_appendable_fuzzer.cc +FILE: ../../../third_party/icu/fuzzers/icu_break_iterator_fuzzer.cc +FILE: ../../../third_party/icu/fuzzers/icu_break_iterator_utf32_fuzzer.cc +FILE: ../../../third_party/icu/fuzzers/icu_number_format_fuzzer.cc +FILE: ../../../third_party/icu/fuzzers/icu_to_case_fuzzer.cc +FILE: ../../../third_party/icu/fuzzers/icu_ucasemap_fuzzer.cc +FILE: ../../../third_party/icu/ios/icudtl.dat +FILE: ../../../third_party/icu/patches/AliasDataBuilder-readAlias.patch +FILE: ../../../third_party/icu/patches/DateIntervalFormatnormalizeHourMetacharacters.patch +FILE: ../../../third_party/icu/patches/ardatepattern.patch +FILE: ../../../third_party/icu/patches/atomic_template_instantiation.patch +FILE: ../../../third_party/icu/patches/calendar-get-out-of-bound.patch +FILE: ../../../third_party/icu/patches/calendar-get-out-of-bound2.patch +FILE: ../../../third_party/icu/patches/calendar_return_error_early.patch +FILE: ../../../third_party/icu/patches/cjdict.patch +FILE: ../../../third_party/icu/patches/collationdatabuilder.patch +FILE: ../../../third_party/icu/patches/configure.patch +FILE: ../../../third_party/icu/patches/cxx20enum.patch +FILE: ../../../third_party/icu/patches/data_symb.patch +FILE: ../../../third_party/icu/patches/formatted_string_builder.patch +FILE: ../../../third_party/icu/patches/fuchsia.patch +FILE: ../../../third_party/icu/patches/gb_table.patch +FILE: ../../../third_party/icu/patches/iso2022jp.patch +FILE: ../../../third_party/icu/patches/isvalidenum.patch +FILE: ../../../third_party/icu/patches/khmer-dictbe.patch +FILE: ../../../third_party/icu/patches/locale1.patch +FILE: ../../../third_party/icu/patches/locale_google.patch +FILE: ../../../third_party/icu/patches/number_range_format.patch +FILE: ../../../third_party/icu/patches/restrace.patch +FILE: ../../../third_party/icu/patches/rmATOMIC_VAR_INIT.patch +FILE: ../../../third_party/icu/patches/timezone-rawoffset.patch +FILE: ../../../third_party/icu/patches/unused-var-unary-operators.patch +FILE: ../../../third_party/icu/patches/wordbrk.patch +FILE: ../../../third_party/icu/patches/wpo.patch +FILE: ../../../third_party/icu/source/data/in/coll/ucadata-implicithan.icu +FILE: ../../../third_party/icu/source/data/in/coll/ucadata-unihan.icu +FILE: ../../../third_party/icu/source/data/in/nfc.nrm +FILE: ../../../third_party/icu/source/data/in/nfkc.nrm +FILE: ../../../third_party/icu/source/data/in/nfkc_cf.nrm +FILE: ../../../third_party/icu/source/data/in/pnames.icu +FILE: ../../../third_party/icu/source/data/in/ubidi.icu +FILE: ../../../third_party/icu/source/data/in/ucase.icu +FILE: ../../../third_party/icu/source/data/in/uemoji.icu +FILE: ../../../third_party/icu/source/data/in/ulayout.icu +FILE: ../../../third_party/icu/source/data/in/unames.icu +FILE: ../../../third_party/icu/source/data/in/uprops.icu +FILE: ../../../third_party/icu/source/data/in/uts46.nrm +FILE: ../../../third_party/icu/source/data/mappings/big5-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/euc-jp-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/euc-kr-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/gb18030.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm866-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-10-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-13-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-14-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-15-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-16-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-2-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-3-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-4-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-5-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-6-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-7-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-8-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/koi8-r-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/koi8-u-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/macintosh-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/shift_jis-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1250-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1251-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1252-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1253-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1254-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1255-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1256-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1257-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1258-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-874-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-936-2000.ucm +FILE: ../../../third_party/icu/source/data/mappings/x-mac-cyrillic-html.ucm +FILE: ../../../third_party/icu/source/extra/scrptrun/srtest.dsp +FILE: ../../../third_party/icu/source/extra/scrptrun/srtest.dsw +FILE: ../../../third_party/icu/source/tools/tzcode/asctime.c +FILE: ../../../third_party/icu/source/tools/tzcode/ialloc.c +FILE: ../../../third_party/icu/source/tools/tzcode/localtime.c +FILE: ../../../third_party/icu/source/tools/tzcode/private.h +FILE: ../../../third_party/icu/source/tools/tzcode/scheck.c +FILE: ../../../third_party/icu/source/tools/tzcode/tzfile.h +FILE: ../../../third_party/icu/source/tools/tzcode/tzselect.ksh +FILE: ../../../third_party/icu/source/tools/tzcode/zdump.c +FILE: ../../../third_party/icu/source/tools/tzcode/zic.c +FILE: ../../../third_party/icu/tzres/metaZones.res +FILE: ../../../third_party/icu/tzres/timezoneTypes.res +FILE: ../../../third_party/icu/tzres/zoneinfo64.res +---------------------------------------------------------------------------------------------------- +Copyright 1991 by the Massachusetts Institute of Technology +==================================================================================================== + +==================================================================================================== +LIBRARY: boringssl +ORIGIN: ../../../third_party/boringssl/src/ssl/bio_ssl.cc + ../../../third_party/boringssl/src/LICENSE +TYPE: LicenseType.unknown +FILE: ../../../third_party/boringssl/src/ssl/bio_ssl.cc +---------------------------------------------------------------------------------------------------- +Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. + +Licensed under the OpenSSL license (the "License"). You may not use +this file except in compliance with the License. You can obtain a copy +in the file LICENSE in the source distribution or at +https://www.openssl.org/source/license.html +==================================================================================================== + +==================================================================================================== +LIBRARY: icu +ORIGIN: ../../../third_party/icu/LICENSE +TYPE: LicenseType.unknown +FILE: ../../../third_party/icu/DIR_METADATA +FILE: ../../../third_party/icu/android/icudtl.dat +FILE: ../../../third_party/icu/cast/brkitr.patch +FILE: ../../../third_party/icu/cast/icudtl.dat +FILE: ../../../third_party/icu/chromeos/icudtl.dat +FILE: ../../../third_party/icu/chromeos/icudtl.dat.hash +FILE: ../../../third_party/icu/common/icudtb.dat +FILE: ../../../third_party/icu/common/icudtl.dat +FILE: ../../../third_party/icu/flutter/brkitr.patch +FILE: ../../../third_party/icu/flutter/icudtl.dat +FILE: ../../../third_party/icu/fuzzers/fuzzer_utils.h +FILE: ../../../third_party/icu/fuzzers/icu_appendable_fuzzer.cc +FILE: ../../../third_party/icu/fuzzers/icu_break_iterator_fuzzer.cc +FILE: ../../../third_party/icu/fuzzers/icu_break_iterator_utf32_fuzzer.cc +FILE: ../../../third_party/icu/fuzzers/icu_number_format_fuzzer.cc +FILE: ../../../third_party/icu/fuzzers/icu_to_case_fuzzer.cc +FILE: ../../../third_party/icu/fuzzers/icu_ucasemap_fuzzer.cc +FILE: ../../../third_party/icu/ios/icudtl.dat +FILE: ../../../third_party/icu/patches/AliasDataBuilder-readAlias.patch +FILE: ../../../third_party/icu/patches/DateIntervalFormatnormalizeHourMetacharacters.patch +FILE: ../../../third_party/icu/patches/ardatepattern.patch +FILE: ../../../third_party/icu/patches/atomic_template_instantiation.patch +FILE: ../../../third_party/icu/patches/calendar-get-out-of-bound.patch +FILE: ../../../third_party/icu/patches/calendar-get-out-of-bound2.patch +FILE: ../../../third_party/icu/patches/calendar_return_error_early.patch +FILE: ../../../third_party/icu/patches/cjdict.patch +FILE: ../../../third_party/icu/patches/collationdatabuilder.patch +FILE: ../../../third_party/icu/patches/configure.patch +FILE: ../../../third_party/icu/patches/cxx20enum.patch +FILE: ../../../third_party/icu/patches/data_symb.patch +FILE: ../../../third_party/icu/patches/formatted_string_builder.patch +FILE: ../../../third_party/icu/patches/fuchsia.patch +FILE: ../../../third_party/icu/patches/gb_table.patch +FILE: ../../../third_party/icu/patches/iso2022jp.patch +FILE: ../../../third_party/icu/patches/isvalidenum.patch +FILE: ../../../third_party/icu/patches/khmer-dictbe.patch +FILE: ../../../third_party/icu/patches/locale1.patch +FILE: ../../../third_party/icu/patches/locale_google.patch +FILE: ../../../third_party/icu/patches/number_range_format.patch +FILE: ../../../third_party/icu/patches/restrace.patch +FILE: ../../../third_party/icu/patches/rmATOMIC_VAR_INIT.patch +FILE: ../../../third_party/icu/patches/timezone-rawoffset.patch +FILE: ../../../third_party/icu/patches/unused-var-unary-operators.patch +FILE: ../../../third_party/icu/patches/wordbrk.patch +FILE: ../../../third_party/icu/patches/wpo.patch +FILE: ../../../third_party/icu/source/data/in/coll/ucadata-implicithan.icu +FILE: ../../../third_party/icu/source/data/in/coll/ucadata-unihan.icu +FILE: ../../../third_party/icu/source/data/in/nfc.nrm +FILE: ../../../third_party/icu/source/data/in/nfkc.nrm +FILE: ../../../third_party/icu/source/data/in/nfkc_cf.nrm +FILE: ../../../third_party/icu/source/data/in/pnames.icu +FILE: ../../../third_party/icu/source/data/in/ubidi.icu +FILE: ../../../third_party/icu/source/data/in/ucase.icu +FILE: ../../../third_party/icu/source/data/in/uemoji.icu +FILE: ../../../third_party/icu/source/data/in/ulayout.icu +FILE: ../../../third_party/icu/source/data/in/unames.icu +FILE: ../../../third_party/icu/source/data/in/uprops.icu +FILE: ../../../third_party/icu/source/data/in/uts46.nrm +FILE: ../../../third_party/icu/source/data/mappings/big5-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/euc-jp-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/euc-kr-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/gb18030.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm866-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-10-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-13-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-14-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-15-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-16-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-2-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-3-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-4-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-5-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-6-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-7-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-8-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/koi8-r-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/koi8-u-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/macintosh-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/shift_jis-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1250-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1251-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1252-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1253-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1254-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1255-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1256-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1257-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1258-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-874-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-936-2000.ucm +FILE: ../../../third_party/icu/source/data/mappings/x-mac-cyrillic-html.ucm +FILE: ../../../third_party/icu/source/extra/scrptrun/srtest.dsp +FILE: ../../../third_party/icu/source/extra/scrptrun/srtest.dsw +FILE: ../../../third_party/icu/source/tools/tzcode/asctime.c +FILE: ../../../third_party/icu/source/tools/tzcode/ialloc.c +FILE: ../../../third_party/icu/source/tools/tzcode/localtime.c +FILE: ../../../third_party/icu/source/tools/tzcode/private.h +FILE: ../../../third_party/icu/source/tools/tzcode/scheck.c +FILE: ../../../third_party/icu/source/tools/tzcode/tzfile.h +FILE: ../../../third_party/icu/source/tools/tzcode/tzselect.ksh +FILE: ../../../third_party/icu/source/tools/tzcode/zdump.c +FILE: ../../../third_party/icu/source/tools/tzcode/zic.c +FILE: ../../../third_party/icu/tzres/metaZones.res +FILE: ../../../third_party/icu/tzres/timezoneTypes.res +FILE: ../../../third_party/icu/tzres/zoneinfo64.res +---------------------------------------------------------------------------------------------------- +Copyright 1996 Chih-Hao Tsai @ Beckman Institute, + University of Illinois +c-tsai4@uiuc.edu http://casper.beckman.uiuc.edu/~c-tsai4 +==================================================================================================== + +==================================================================================================== +LIBRARY: freetype2 +ORIGIN: ../../../third_party/freetype2/src/bdf/bdf.h +TYPE: LicenseType.mit +FILE: ../../../third_party/freetype2/src/bdf/bdf.h +---------------------------------------------------------------------------------------------------- +Copyright 2000 Computing Research Labs, New Mexico State University +Copyright 2001-2004, 2011 Francesco Zappa Nardelli + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +THE COMPUTING RESEARCH LAB OR NEW MEXICO STATE UNIVERSITY BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT +OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR +THE USE OR OTHER DEALINGS IN THE SOFTWARE. +==================================================================================================== + +==================================================================================================== +LIBRARY: freetype2 +ORIGIN: ../../../third_party/freetype2/src/bdf/bdflib.c +TYPE: LicenseType.mit +FILE: ../../../third_party/freetype2/src/bdf/bdflib.c +---------------------------------------------------------------------------------------------------- +Copyright 2000 Computing Research Labs, New Mexico State University +Copyright 2001-2014 + Francesco Zappa Nardelli + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +THE COMPUTING RESEARCH LAB OR NEW MEXICO STATE UNIVERSITY BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT +OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR +THE USE OR OTHER DEALINGS IN THE SOFTWARE. +==================================================================================================== + +==================================================================================================== +LIBRARY: freetype2 +ORIGIN: ../../../third_party/freetype2/include/freetype/internal/fthash.h +TYPE: LicenseType.mit +FILE: ../../../third_party/freetype2/include/freetype/internal/fthash.h +FILE: ../../../third_party/freetype2/src/base/fthash.c +---------------------------------------------------------------------------------------------------- +Copyright 2000 Computing Research Labs, New Mexico State University +Copyright 2001-2015 + Francesco Zappa Nardelli + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +THE COMPUTING RESEARCH LAB OR NEW MEXICO STATE UNIVERSITY BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT +OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR +THE USE OR OTHER DEALINGS IN THE SOFTWARE. +==================================================================================================== + +==================================================================================================== +LIBRARY: icu +ORIGIN: ../../../third_party/icu/LICENSE +TYPE: LicenseType.unknown +FILE: ../../../third_party/icu/DIR_METADATA +FILE: ../../../third_party/icu/android/icudtl.dat +FILE: ../../../third_party/icu/cast/brkitr.patch +FILE: ../../../third_party/icu/cast/icudtl.dat +FILE: ../../../third_party/icu/chromeos/icudtl.dat +FILE: ../../../third_party/icu/chromeos/icudtl.dat.hash +FILE: ../../../third_party/icu/common/icudtb.dat +FILE: ../../../third_party/icu/common/icudtl.dat +FILE: ../../../third_party/icu/flutter/brkitr.patch +FILE: ../../../third_party/icu/flutter/icudtl.dat +FILE: ../../../third_party/icu/fuzzers/fuzzer_utils.h +FILE: ../../../third_party/icu/fuzzers/icu_appendable_fuzzer.cc +FILE: ../../../third_party/icu/fuzzers/icu_break_iterator_fuzzer.cc +FILE: ../../../third_party/icu/fuzzers/icu_break_iterator_utf32_fuzzer.cc +FILE: ../../../third_party/icu/fuzzers/icu_number_format_fuzzer.cc +FILE: ../../../third_party/icu/fuzzers/icu_to_case_fuzzer.cc +FILE: ../../../third_party/icu/fuzzers/icu_ucasemap_fuzzer.cc +FILE: ../../../third_party/icu/ios/icudtl.dat +FILE: ../../../third_party/icu/patches/AliasDataBuilder-readAlias.patch +FILE: ../../../third_party/icu/patches/DateIntervalFormatnormalizeHourMetacharacters.patch +FILE: ../../../third_party/icu/patches/ardatepattern.patch +FILE: ../../../third_party/icu/patches/atomic_template_instantiation.patch +FILE: ../../../third_party/icu/patches/calendar-get-out-of-bound.patch +FILE: ../../../third_party/icu/patches/calendar-get-out-of-bound2.patch +FILE: ../../../third_party/icu/patches/calendar_return_error_early.patch +FILE: ../../../third_party/icu/patches/cjdict.patch +FILE: ../../../third_party/icu/patches/collationdatabuilder.patch +FILE: ../../../third_party/icu/patches/configure.patch +FILE: ../../../third_party/icu/patches/cxx20enum.patch +FILE: ../../../third_party/icu/patches/data_symb.patch +FILE: ../../../third_party/icu/patches/formatted_string_builder.patch +FILE: ../../../third_party/icu/patches/fuchsia.patch +FILE: ../../../third_party/icu/patches/gb_table.patch +FILE: ../../../third_party/icu/patches/iso2022jp.patch +FILE: ../../../third_party/icu/patches/isvalidenum.patch +FILE: ../../../third_party/icu/patches/khmer-dictbe.patch +FILE: ../../../third_party/icu/patches/locale1.patch +FILE: ../../../third_party/icu/patches/locale_google.patch +FILE: ../../../third_party/icu/patches/number_range_format.patch +FILE: ../../../third_party/icu/patches/restrace.patch +FILE: ../../../third_party/icu/patches/rmATOMIC_VAR_INIT.patch +FILE: ../../../third_party/icu/patches/timezone-rawoffset.patch +FILE: ../../../third_party/icu/patches/unused-var-unary-operators.patch +FILE: ../../../third_party/icu/patches/wordbrk.patch +FILE: ../../../third_party/icu/patches/wpo.patch +FILE: ../../../third_party/icu/source/data/in/coll/ucadata-implicithan.icu +FILE: ../../../third_party/icu/source/data/in/coll/ucadata-unihan.icu +FILE: ../../../third_party/icu/source/data/in/nfc.nrm +FILE: ../../../third_party/icu/source/data/in/nfkc.nrm +FILE: ../../../third_party/icu/source/data/in/nfkc_cf.nrm +FILE: ../../../third_party/icu/source/data/in/pnames.icu +FILE: ../../../third_party/icu/source/data/in/ubidi.icu +FILE: ../../../third_party/icu/source/data/in/ucase.icu +FILE: ../../../third_party/icu/source/data/in/uemoji.icu +FILE: ../../../third_party/icu/source/data/in/ulayout.icu +FILE: ../../../third_party/icu/source/data/in/unames.icu +FILE: ../../../third_party/icu/source/data/in/uprops.icu +FILE: ../../../third_party/icu/source/data/in/uts46.nrm +FILE: ../../../third_party/icu/source/data/mappings/big5-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/euc-jp-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/euc-kr-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/gb18030.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm866-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-10-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-13-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-14-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-15-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-16-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-2-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-3-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-4-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-5-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-6-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-7-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-8-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/koi8-r-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/koi8-u-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/macintosh-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/shift_jis-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1250-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1251-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1252-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1253-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1254-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1255-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1256-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1257-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1258-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-874-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-936-2000.ucm +FILE: ../../../third_party/icu/source/data/mappings/x-mac-cyrillic-html.ucm +FILE: ../../../third_party/icu/source/extra/scrptrun/srtest.dsp +FILE: ../../../third_party/icu/source/extra/scrptrun/srtest.dsw +FILE: ../../../third_party/icu/source/tools/tzcode/asctime.c +FILE: ../../../third_party/icu/source/tools/tzcode/ialloc.c +FILE: ../../../third_party/icu/source/tools/tzcode/localtime.c +FILE: ../../../third_party/icu/source/tools/tzcode/private.h +FILE: ../../../third_party/icu/source/tools/tzcode/scheck.c +FILE: ../../../third_party/icu/source/tools/tzcode/tzfile.h +FILE: ../../../third_party/icu/source/tools/tzcode/tzselect.ksh +FILE: ../../../third_party/icu/source/tools/tzcode/zdump.c +FILE: ../../../third_party/icu/source/tools/tzcode/zic.c +FILE: ../../../third_party/icu/tzres/metaZones.res +FILE: ../../../third_party/icu/tzres/timezoneTypes.res +FILE: ../../../third_party/icu/tzres/zoneinfo64.res +---------------------------------------------------------------------------------------------------- +Copyright 2000, 2001, 2002, 2003 Nara Institute of Science +and Technology. All Rights Reserved. + +Use, reproduction, and distribution of this software is permitted. +Any copy of this software, whether in its original form or modified, +must include both the above copyright notice and the following +paragraphs. + +Nara Institute of Science and Technology (NAIST), +the copyright holders, disclaims all warranties with regard to this +software, including all implied warranties of merchantability and +fitness, in no event shall NAIST be liable for +any special, indirect or consequential damages or any damages +whatsoever resulting from loss of use, data or profits, whether in an +action of contract, negligence or other tortuous action, arising out +of or in connection with the use or performance of this software. + +A large portion of the dictionary entries +originate from ICOT Free Software. The following conditions for ICOT +Free Software applies to the current dictionary as well. + +Each User may also freely distribute the Program, whether in its +original form or modified, to any third party or parties, PROVIDED +that the provisions of Section 3 ("NO WARRANTY") will ALWAYS appear +on, or be attached to, the Program, which is distributed substantially +in the same form as set out herein and that such intended +distribution, if actually made, will neither violate or otherwise +contravene any of the laws and regulations of the countries having +jurisdiction over the User or the intended distribution itself. + +NO WARRANTY + +The program was produced on an experimental basis in the course of the +research and development conducted during the project and is provided +to users as so produced on an experimental basis. Accordingly, the +program is provided without any warranty whatsoever, whether express, +implied, statutory or otherwise. The term "warranty" used herein +includes, but is not limited to, any warranty of the quality, +performance, merchantability and fitness for a particular purpose of +the program and the nonexistence of any infringement or violation of +any right of any third party. + +Each user of the program will agree and understand, and be deemed to +have agreed and understood, that there is no warranty whatsoever for +the program and, accordingly, the entire risk arising from or +otherwise connected with the program is assumed by the user. + +Therefore, neither ICOT, the copyright holder, or any other +organization that participated in or was otherwise related to the +development of the program and their respective officials, directors, +officers and other employees shall be held liable for any and all +damages, including, without limitation, general, special, incidental +and consequential damages, arising out of or otherwise in connection +with the use or inability to use the program or any product, material +or result produced or otherwise obtained by using the program, +regardless of whether they have been advised of, or otherwise had +knowledge of, the possibility of such damages at any time during the +project or thereafter. Each user will be deemed to have agreed to the +foregoing by his or her commencement of use of the program. The term +"use" as used herein includes, but is not limited to, the use, +modification, copying and distribution of the program and the +production of secondary products from the program. + +In the case where the program, whether in its original form or +modified, was distributed or delivered to or received by a user from +any person, organization or entity other than ICOT, unless it makes or +grants independently of ICOT any specific warranty to the user in +writing, such person, organization or entity, will also be exempted +from and not be held liable to the user for any such damages as noted +above as far as the program is concerned. +==================================================================================================== + +==================================================================================================== +LIBRARY: freetype2 +ORIGIN: ../../../third_party/freetype2/src/pcf/pcfutil.h +TYPE: LicenseType.mit +FILE: ../../../third_party/freetype2/src/pcf/pcfutil.h +---------------------------------------------------------------------------------------------------- +Copyright 2000, 2001, 2004 by +Francesco Zappa Nardelli + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +==================================================================================================== + +==================================================================================================== +LIBRARY: freetype2 +ORIGIN: ../../../third_party/freetype2/src/pcf/pcfdrivr.h +TYPE: LicenseType.mit +FILE: ../../../third_party/freetype2/src/pcf/pcfdrivr.h +---------------------------------------------------------------------------------------------------- +Copyright 2000-2001, 2002 by +Francesco Zappa Nardelli + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +==================================================================================================== + +==================================================================================================== +LIBRARY: freetype2 +ORIGIN: ../../../third_party/freetype2/src/pcf/pcf.c +TYPE: LicenseType.mit +FILE: ../../../third_party/freetype2/src/pcf/pcf.c +---------------------------------------------------------------------------------------------------- +Copyright 2000-2001, 2003 by +Francesco Zappa Nardelli + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +==================================================================================================== + +==================================================================================================== +LIBRARY: freetype2 +ORIGIN: ../../../third_party/freetype2/src/pcf/pcfread.c +TYPE: LicenseType.mit +FILE: ../../../third_party/freetype2/src/pcf/pcfread.c +---------------------------------------------------------------------------------------------------- +Copyright 2000-2010, 2012-2014 by +Francesco Zappa Nardelli + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +==================================================================================================== + +==================================================================================================== +LIBRARY: boringssl +ORIGIN: ../../../third_party/boringssl/src/crypto/x509v3/v3_ocsp.c + ../../../third_party/boringssl/src/LICENSE +TYPE: LicenseType.unknown +FILE: ../../../third_party/boringssl/src/crypto/x509v3/v3_ocsp.c +---------------------------------------------------------------------------------------------------- +Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved. + +Licensed under the OpenSSL license (the "License"). You may not use +this file except in compliance with the License. You can obtain a copy +in the file LICENSE in the source distribution or at +https://www.openssl.org/source/license.html +==================================================================================================== + +==================================================================================================== +LIBRARY: freetype2 +ORIGIN: ../../../third_party/freetype2/src/bdf/bdferror.h +TYPE: LicenseType.mit +FILE: ../../../third_party/freetype2/src/bdf/bdferror.h +---------------------------------------------------------------------------------------------------- +Copyright 2001, 2002, 2012 Francesco Zappa Nardelli + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +THE COMPUTING RESEARCH LAB OR NEW MEXICO STATE UNIVERSITY BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT +OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR +THE USE OR OTHER DEALINGS IN THE SOFTWARE. +==================================================================================================== + +==================================================================================================== +LIBRARY: boringssl +ORIGIN: ../../../third_party/boringssl/src/crypto/ecdh_extra/ecdh_extra.c + ../../../third_party/boringssl/src/crypto/ecdh_extra/ecdh_extra.c +TYPE: LicenseType.bsd +FILE: ../../../third_party/boringssl/src/crypto/ecdh_extra/ecdh_extra.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/ecdh/ecdh.c +FILE: ../../../third_party/boringssl/src/include/openssl/ecdh.h +---------------------------------------------------------------------------------------------------- +Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + licensing@OpenSSL.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: boringssl +ORIGIN: ../../../third_party/boringssl/src/crypto/fipsmodule/ec/ec.c + ../../../third_party/boringssl/src/crypto/fipsmodule/bn/exponentiation.c +TYPE: LicenseType.bsd +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/ec/ec.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/ec/ec_key.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/ec/ec_montgomery.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/ec/internal.h +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/ec/oct.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/ec/simple.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/ec/wnaf.c +FILE: ../../../third_party/boringssl/src/include/openssl/ec.h +FILE: ../../../third_party/boringssl/src/include/openssl/ec_key.h +---------------------------------------------------------------------------------------------------- +Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + openssl-core@openssl.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.openssl.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: angle +ORIGIN: ../../../third_party/angle/include/GLSLANG/ShaderLang.h + ../../../third_party/angle/LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/angle/include/GLSLANG/ShaderLang.h +FILE: ../../../third_party/angle/samples/shader_translator/shader_translator.cpp +FILE: ../../../third_party/angle/src/common/angleutils.h +FILE: ../../../third_party/angle/src/common/debug.cpp +FILE: ../../../third_party/angle/src/common/debug.h +FILE: ../../../third_party/angle/src/common/mathutil.h +FILE: ../../../third_party/angle/src/common/utilities.cpp +FILE: ../../../third_party/angle/src/common/utilities.h +FILE: ../../../third_party/angle/src/compiler/preprocessor/preprocessor.l +FILE: ../../../third_party/angle/src/compiler/translator/ASTMetadataHLSL.cpp +FILE: ../../../third_party/angle/src/compiler/translator/ASTMetadataHLSL.h +FILE: ../../../third_party/angle/src/compiler/translator/BaseTypes.h +FILE: ../../../third_party/angle/src/compiler/translator/BuiltInFunctionEmulator.cpp +FILE: ../../../third_party/angle/src/compiler/translator/BuiltInFunctionEmulatorGLSL.cpp +FILE: ../../../third_party/angle/src/compiler/translator/CallDAG.cpp +FILE: ../../../third_party/angle/src/compiler/translator/CallDAG.h +FILE: ../../../third_party/angle/src/compiler/translator/CollectVariables.cpp +FILE: ../../../third_party/angle/src/compiler/translator/CollectVariables.h +FILE: ../../../third_party/angle/src/compiler/translator/Common.h +FILE: ../../../third_party/angle/src/compiler/translator/Compiler.cpp +FILE: ../../../third_party/angle/src/compiler/translator/Compiler.h +FILE: ../../../third_party/angle/src/compiler/translator/ConstantUnion.h +FILE: ../../../third_party/angle/src/compiler/translator/ExtensionBehavior.h +FILE: ../../../third_party/angle/src/compiler/translator/HashNames.h +FILE: ../../../third_party/angle/src/compiler/translator/InfoSink.cpp +FILE: ../../../third_party/angle/src/compiler/translator/InfoSink.h +FILE: ../../../third_party/angle/src/compiler/translator/Initialize.cpp +FILE: ../../../third_party/angle/src/compiler/translator/Initialize.h +FILE: ../../../third_party/angle/src/compiler/translator/InitializeDll.cpp +FILE: ../../../third_party/angle/src/compiler/translator/InitializeDll.h +FILE: ../../../third_party/angle/src/compiler/translator/InitializeGlobals.h +FILE: ../../../third_party/angle/src/compiler/translator/IntermNode.cpp +FILE: ../../../third_party/angle/src/compiler/translator/IntermNode.h +FILE: ../../../third_party/angle/src/compiler/translator/Operator.cpp +FILE: ../../../third_party/angle/src/compiler/translator/OutputESSL.cpp +FILE: ../../../third_party/angle/src/compiler/translator/OutputESSL.h +FILE: ../../../third_party/angle/src/compiler/translator/OutputGLSL.cpp +FILE: ../../../third_party/angle/src/compiler/translator/OutputGLSL.h +FILE: ../../../third_party/angle/src/compiler/translator/OutputGLSLBase.cpp +FILE: ../../../third_party/angle/src/compiler/translator/OutputGLSLBase.h +FILE: ../../../third_party/angle/src/compiler/translator/OutputHLSL.cpp +FILE: ../../../third_party/angle/src/compiler/translator/OutputHLSL.h +FILE: ../../../third_party/angle/src/compiler/translator/OutputTree.cpp +FILE: ../../../third_party/angle/src/compiler/translator/ParseContext.cpp +FILE: ../../../third_party/angle/src/compiler/translator/ParseContext.h +FILE: ../../../third_party/angle/src/compiler/translator/PoolAlloc.cpp +FILE: ../../../third_party/angle/src/compiler/translator/PoolAlloc.h +FILE: ../../../third_party/angle/src/compiler/translator/QualifierTypes.cpp +FILE: ../../../third_party/angle/src/compiler/translator/QualifierTypes.h +FILE: ../../../third_party/angle/src/compiler/translator/ShaderLang.cpp +FILE: ../../../third_party/angle/src/compiler/translator/SymbolTable.cpp +FILE: ../../../third_party/angle/src/compiler/translator/SymbolTable.h +FILE: ../../../third_party/angle/src/compiler/translator/TranslatorESSL.cpp +FILE: ../../../third_party/angle/src/compiler/translator/TranslatorESSL.h +FILE: ../../../third_party/angle/src/compiler/translator/TranslatorGLSL.cpp +FILE: ../../../third_party/angle/src/compiler/translator/TranslatorGLSL.h +FILE: ../../../third_party/angle/src/compiler/translator/TranslatorHLSL.cpp +FILE: ../../../third_party/angle/src/compiler/translator/TranslatorHLSL.h +FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/TranslatorMetalUtils.cpp +FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/TranslatorMetalUtils.h +FILE: ../../../third_party/angle/src/compiler/translator/Types.cpp +FILE: ../../../third_party/angle/src/compiler/translator/Types.h +FILE: ../../../third_party/angle/src/compiler/translator/ValidateGlobalInitializer.cpp +FILE: ../../../third_party/angle/src/compiler/translator/ValidateGlobalInitializer.h +FILE: ../../../third_party/angle/src/compiler/translator/ValidateLimitations.cpp +FILE: ../../../third_party/angle/src/compiler/translator/ValidateSwitch.cpp +FILE: ../../../third_party/angle/src/compiler/translator/ValidateSwitch.h +FILE: ../../../third_party/angle/src/compiler/translator/ValidateVaryingLocations.cpp +FILE: ../../../third_party/angle/src/compiler/translator/ValidateVaryingLocations.h +FILE: ../../../third_party/angle/src/compiler/translator/VariablePacker.cpp +FILE: ../../../third_party/angle/src/compiler/translator/VariablePacker.h +FILE: ../../../third_party/angle/src/compiler/translator/VersionGLSL.cpp +FILE: ../../../third_party/angle/src/compiler/translator/VersionGLSL.h +FILE: ../../../third_party/angle/src/compiler/translator/glslang.l +FILE: ../../../third_party/angle/src/compiler/translator/glslang.y +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/EmulateGLFragColorBroadcast.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/EmulateGLFragColorBroadcast.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/InitializeVariables.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/InitializeVariables.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/PruneNoOps.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/PruneNoOps.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/RecordConstantPrecision.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/RecordConstantPrecision.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/RemoveDynamicIndexing.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/RemoveDynamicIndexing.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/ScalarizeVecAndMatConstructorArgs.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/ScalarizeVecAndMatConstructorArgs.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/SeparateDeclarations.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/SeparateDeclarations.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/apple/UnfoldShortCircuitAST.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/apple/UnfoldShortCircuitAST.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/d3d/ArrayReturnValueToOutParameter.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/d3d/ArrayReturnValueToOutParameter.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/d3d/RemoveSwitchFallThrough.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/d3d/RemoveSwitchFallThrough.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/d3d/SeparateArrayInitialization.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/d3d/SeparateArrayInitialization.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/d3d/SeparateExpressionsReturningArrays.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/d3d/SeparateExpressionsReturningArrays.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/d3d/UnfoldShortCircuitToIf.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/d3d/UnfoldShortCircuitToIf.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/gl/RegenerateStructNames.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/gl/RegenerateStructNames.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_util/IntermTraverse.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_util/NodeSearch.h +FILE: ../../../third_party/angle/src/compiler/translator/util.h +FILE: ../../../third_party/angle/src/image_util/generatemip.h +FILE: ../../../third_party/angle/src/libANGLE/Buffer.cpp +FILE: ../../../third_party/angle/src/libANGLE/Buffer.h +FILE: ../../../third_party/angle/src/libANGLE/Config.cpp +FILE: ../../../third_party/angle/src/libANGLE/Config.h +FILE: ../../../third_party/angle/src/libANGLE/Context.cpp +FILE: ../../../third_party/angle/src/libANGLE/Context.h +FILE: ../../../third_party/angle/src/libANGLE/Display.cpp +FILE: ../../../third_party/angle/src/libANGLE/Display.h +FILE: ../../../third_party/angle/src/libANGLE/EGLSync.cpp +FILE: ../../../third_party/angle/src/libANGLE/Fence.cpp +FILE: ../../../third_party/angle/src/libANGLE/Fence.h +FILE: ../../../third_party/angle/src/libANGLE/Framebuffer.cpp +FILE: ../../../third_party/angle/src/libANGLE/Framebuffer.h +FILE: ../../../third_party/angle/src/libANGLE/HandleAllocator.cpp +FILE: ../../../third_party/angle/src/libANGLE/HandleAllocator.h +FILE: ../../../third_party/angle/src/libANGLE/Program.cpp +FILE: ../../../third_party/angle/src/libANGLE/Program.h +FILE: ../../../third_party/angle/src/libANGLE/RefCountObject.h +FILE: ../../../third_party/angle/src/libANGLE/Renderbuffer.cpp +FILE: ../../../third_party/angle/src/libANGLE/Renderbuffer.h +FILE: ../../../third_party/angle/src/libANGLE/ResourceManager.cpp +FILE: ../../../third_party/angle/src/libANGLE/ResourceManager.h +FILE: ../../../third_party/angle/src/libANGLE/Shader.cpp +FILE: ../../../third_party/angle/src/libANGLE/Shader.h +FILE: ../../../third_party/angle/src/libANGLE/Surface.cpp +FILE: ../../../third_party/angle/src/libANGLE/Surface.h +FILE: ../../../third_party/angle/src/libANGLE/Texture.cpp +FILE: ../../../third_party/angle/src/libANGLE/Texture.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/SurfaceImpl.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/ImageD3D.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/ImageD3D.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/IndexBuffer.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/IndexBuffer.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/IndexDataManager.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/IndexDataManager.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/TextureStorage.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/VertexBuffer.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/VertexBuffer.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/VertexDataManager.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/VertexDataManager.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/Blit9.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/Blit9.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/Image9.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/Image9.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/IndexBuffer9.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/IndexBuffer9.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/VertexBuffer9.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/VertexBuffer9.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/renderer9_utils.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/renderer9_utils.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/vertexconversion.h +---------------------------------------------------------------------------------------------------- +Copyright 2002 The ANGLE Project Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + + Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. + Ltd., nor the names of their contributors may be used to endorse + or promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: freetype2 +ORIGIN: ../../../third_party/freetype2/src/pcf/pcfread.h +TYPE: LicenseType.mit +FILE: ../../../third_party/freetype2/src/pcf/pcfread.h +---------------------------------------------------------------------------------------------------- +Copyright 2003 by +Francesco Zappa Nardelli + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +==================================================================================================== + +==================================================================================================== +LIBRARY: boringssl +ORIGIN: ../../../third_party/boringssl/src/ssl/ssl_asn1.cc +TYPE: LicenseType.unknown +FILE: ../../../third_party/boringssl/src/ssl/ssl_asn1.cc +FILE: ../../../third_party/boringssl/src/ssl/ssl_stat.cc +---------------------------------------------------------------------------------------------------- +Copyright 2005 Nokia. All rights reserved. + +The portions of the attached software ("Contribution") is developed by +Nokia Corporation and is licensed pursuant to the OpenSSL open source +license. + +The Contribution, originally written by Mika Kousa and Pasi Eronen of +Nokia Corporation, consists of the "PSK" (Pre-Shared Key) ciphersuites +support (see RFC 4279) to OpenSSL. + +No patent licenses or other rights except those expressly stated in +the OpenSSL open source license shall be deemed granted or received +expressly, by implication, estoppel, or otherwise. + +No assurances are provided by Nokia that the Contribution does not +infringe the patent or other intellectual property rights of any third +party or that the license provides you with all the necessary rights +to make use of the Contribution. + +THE SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. IN +ADDITION TO THE DISCLAIMERS INCLUDED IN THE LICENSE, NOKIA +SPECIFICALLY DISCLAIMS ANY LIABILITY FOR CLAIMS BROUGHT BY YOU OR ANY +OTHER ENTITY BASED ON INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS OR +OTHERWISE. +==================================================================================================== + +==================================================================================================== +LIBRARY: boringssl +ORIGIN: ../../../third_party/boringssl/src/third_party/googletest/include/gtest/internal/gtest-death-test-internal.h +TYPE: LicenseType.bsd +FILE: ../../../third_party/boringssl/src/third_party/googletest/include/gtest/gtest-death-test.h +FILE: ../../../third_party/boringssl/src/third_party/googletest/include/gtest/gtest-message.h +FILE: ../../../third_party/boringssl/src/third_party/googletest/include/gtest/gtest.h +FILE: ../../../third_party/boringssl/src/third_party/googletest/include/gtest/internal/gtest-death-test-internal.h +FILE: ../../../third_party/boringssl/src/third_party/googletest/include/gtest/internal/gtest-internal.h +FILE: ../../../third_party/boringssl/src/third_party/googletest/include/gtest/internal/gtest-port.h +FILE: ../../../third_party/boringssl/src/third_party/googletest/include/gtest/internal/gtest-string.h +FILE: ../../../third_party/boringssl/src/third_party/googletest/samples/sample1.cc +FILE: ../../../third_party/boringssl/src/third_party/googletest/samples/sample1.h +FILE: ../../../third_party/boringssl/src/third_party/googletest/samples/sample1_unittest.cc +FILE: ../../../third_party/boringssl/src/third_party/googletest/samples/sample2.cc +FILE: ../../../third_party/boringssl/src/third_party/googletest/samples/sample2.h +FILE: ../../../third_party/boringssl/src/third_party/googletest/samples/sample2_unittest.cc +FILE: ../../../third_party/boringssl/src/third_party/googletest/samples/sample3-inl.h +FILE: ../../../third_party/boringssl/src/third_party/googletest/samples/sample3_unittest.cc +FILE: ../../../third_party/boringssl/src/third_party/googletest/samples/sample4.cc +FILE: ../../../third_party/boringssl/src/third_party/googletest/samples/sample4.h +FILE: ../../../third_party/boringssl/src/third_party/googletest/samples/sample4_unittest.cc +FILE: ../../../third_party/boringssl/src/third_party/googletest/samples/sample5_unittest.cc +FILE: ../../../third_party/boringssl/src/third_party/googletest/src/gtest-death-test.cc +FILE: ../../../third_party/boringssl/src/third_party/googletest/src/gtest-internal-inl.h +FILE: ../../../third_party/boringssl/src/third_party/googletest/src/gtest.cc +---------------------------------------------------------------------------------------------------- +Copyright 2005, Google Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: boringssl +ORIGIN: ../../../third_party/boringssl/src/third_party/googletest/include/gtest/gtest_pred_impl.h +TYPE: LicenseType.bsd +FILE: ../../../third_party/boringssl/src/third_party/googletest/include/gtest/gtest_pred_impl.h +FILE: ../../../third_party/boringssl/src/third_party/googletest/include/gtest/gtest_prod.h +FILE: ../../../third_party/boringssl/src/third_party/googletest/src/gtest_main.cc +---------------------------------------------------------------------------------------------------- +Copyright 2006, Google Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: double-conversion +LIBRARY: icu +ORIGIN: ../../../third_party/dart/runtime/third_party/double-conversion/src/cached-powers.cc +TYPE: LicenseType.bsd +FILE: ../../../third_party/dart/runtime/third_party/double-conversion/src/cached-powers.cc +FILE: ../../../third_party/icu/source/i18n/double-conversion-cached-powers.cpp +---------------------------------------------------------------------------------------------------- +Copyright 2006-2008 the V8 project authors. All rights reserved. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: icu +ORIGIN: ../../../third_party/dart/runtime/third_party/double-conversion/COPYING +TYPE: LicenseType.bsd +FILE: ../../../third_party/icu/DIR_METADATA +FILE: ../../../third_party/icu/android/icudtl.dat +FILE: ../../../third_party/icu/cast/brkitr.patch +FILE: ../../../third_party/icu/cast/icudtl.dat +FILE: ../../../third_party/icu/chromeos/icudtl.dat +FILE: ../../../third_party/icu/chromeos/icudtl.dat.hash +FILE: ../../../third_party/icu/common/icudtb.dat +FILE: ../../../third_party/icu/common/icudtl.dat +FILE: ../../../third_party/icu/flutter/brkitr.patch +FILE: ../../../third_party/icu/flutter/icudtl.dat +FILE: ../../../third_party/icu/fuzzers/fuzzer_utils.h +FILE: ../../../third_party/icu/fuzzers/icu_appendable_fuzzer.cc +FILE: ../../../third_party/icu/fuzzers/icu_break_iterator_fuzzer.cc +FILE: ../../../third_party/icu/fuzzers/icu_break_iterator_utf32_fuzzer.cc +FILE: ../../../third_party/icu/fuzzers/icu_number_format_fuzzer.cc +FILE: ../../../third_party/icu/fuzzers/icu_to_case_fuzzer.cc +FILE: ../../../third_party/icu/fuzzers/icu_ucasemap_fuzzer.cc +FILE: ../../../third_party/icu/ios/icudtl.dat +FILE: ../../../third_party/icu/patches/AliasDataBuilder-readAlias.patch +FILE: ../../../third_party/icu/patches/DateIntervalFormatnormalizeHourMetacharacters.patch +FILE: ../../../third_party/icu/patches/ardatepattern.patch +FILE: ../../../third_party/icu/patches/atomic_template_instantiation.patch +FILE: ../../../third_party/icu/patches/calendar-get-out-of-bound.patch +FILE: ../../../third_party/icu/patches/calendar-get-out-of-bound2.patch +FILE: ../../../third_party/icu/patches/calendar_return_error_early.patch +FILE: ../../../third_party/icu/patches/cjdict.patch +FILE: ../../../third_party/icu/patches/collationdatabuilder.patch +FILE: ../../../third_party/icu/patches/configure.patch +FILE: ../../../third_party/icu/patches/cxx20enum.patch +FILE: ../../../third_party/icu/patches/data_symb.patch +FILE: ../../../third_party/icu/patches/formatted_string_builder.patch +FILE: ../../../third_party/icu/patches/fuchsia.patch +FILE: ../../../third_party/icu/patches/gb_table.patch +FILE: ../../../third_party/icu/patches/iso2022jp.patch +FILE: ../../../third_party/icu/patches/isvalidenum.patch +FILE: ../../../third_party/icu/patches/khmer-dictbe.patch +FILE: ../../../third_party/icu/patches/locale1.patch +FILE: ../../../third_party/icu/patches/locale_google.patch +FILE: ../../../third_party/icu/patches/number_range_format.patch +FILE: ../../../third_party/icu/patches/restrace.patch +FILE: ../../../third_party/icu/patches/rmATOMIC_VAR_INIT.patch +FILE: ../../../third_party/icu/patches/timezone-rawoffset.patch +FILE: ../../../third_party/icu/patches/unused-var-unary-operators.patch +FILE: ../../../third_party/icu/patches/wordbrk.patch +FILE: ../../../third_party/icu/patches/wpo.patch +FILE: ../../../third_party/icu/source/data/in/coll/ucadata-implicithan.icu +FILE: ../../../third_party/icu/source/data/in/coll/ucadata-unihan.icu +FILE: ../../../third_party/icu/source/data/in/nfc.nrm +FILE: ../../../third_party/icu/source/data/in/nfkc.nrm +FILE: ../../../third_party/icu/source/data/in/nfkc_cf.nrm +FILE: ../../../third_party/icu/source/data/in/pnames.icu +FILE: ../../../third_party/icu/source/data/in/ubidi.icu +FILE: ../../../third_party/icu/source/data/in/ucase.icu +FILE: ../../../third_party/icu/source/data/in/uemoji.icu +FILE: ../../../third_party/icu/source/data/in/ulayout.icu +FILE: ../../../third_party/icu/source/data/in/unames.icu +FILE: ../../../third_party/icu/source/data/in/uprops.icu +FILE: ../../../third_party/icu/source/data/in/uts46.nrm +FILE: ../../../third_party/icu/source/data/mappings/big5-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/euc-jp-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/euc-kr-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/gb18030.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm866-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-10-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-13-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-14-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-15-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-16-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-2-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-3-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-4-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-5-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-6-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-7-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-8-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/koi8-r-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/koi8-u-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/macintosh-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/shift_jis-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1250-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1251-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1252-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1253-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1254-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1255-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1256-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1257-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1258-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-874-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-936-2000.ucm +FILE: ../../../third_party/icu/source/data/mappings/x-mac-cyrillic-html.ucm +FILE: ../../../third_party/icu/source/extra/scrptrun/srtest.dsp +FILE: ../../../third_party/icu/source/extra/scrptrun/srtest.dsw +FILE: ../../../third_party/icu/source/tools/tzcode/asctime.c +FILE: ../../../third_party/icu/source/tools/tzcode/ialloc.c +FILE: ../../../third_party/icu/source/tools/tzcode/localtime.c +FILE: ../../../third_party/icu/source/tools/tzcode/private.h +FILE: ../../../third_party/icu/source/tools/tzcode/scheck.c +FILE: ../../../third_party/icu/source/tools/tzcode/tzfile.h +FILE: ../../../third_party/icu/source/tools/tzcode/tzselect.ksh +FILE: ../../../third_party/icu/source/tools/tzcode/zdump.c +FILE: ../../../third_party/icu/source/tools/tzcode/zic.c +FILE: ../../../third_party/icu/tzres/metaZones.res +FILE: ../../../third_party/icu/tzres/timezoneTypes.res +FILE: ../../../third_party/icu/tzres/zoneinfo64.res +---------------------------------------------------------------------------------------------------- +Copyright 2006-2011, the V8 project authors. All rights reserved. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: boringssl +ORIGIN: ../../../third_party/boringssl/src/crypto/rsa_extra/rsa_print.c + ../../../third_party/boringssl/src/LICENSE +TYPE: LicenseType.unknown +FILE: ../../../third_party/boringssl/src/crypto/rsa_extra/rsa_print.c +---------------------------------------------------------------------------------------------------- +Copyright 2006-2017 The OpenSSL Project Authors. All Rights Reserved. + +Licensed under the OpenSSL license (the "License"). You may not use +this file except in compliance with the License. You can obtain a copy +in the file LICENSE in the source distribution or at +https://www.openssl.org/source/license.html +==================================================================================================== + +==================================================================================================== +LIBRARY: boringssl +ORIGIN: ../../../third_party/boringssl/src/third_party/googletest/include/gtest/gtest-matchers.h +TYPE: LicenseType.bsd +FILE: ../../../third_party/boringssl/src/third_party/googletest/include/gtest/gtest-matchers.h +FILE: ../../../third_party/boringssl/src/third_party/googletest/include/gtest/gtest-printers.h +FILE: ../../../third_party/boringssl/src/third_party/googletest/include/gtest/gtest-spi.h +FILE: ../../../third_party/boringssl/src/third_party/googletest/src/gtest-matchers.cc +FILE: ../../../third_party/boringssl/src/third_party/googletest/src/gtest-printers.cc +---------------------------------------------------------------------------------------------------- +Copyright 2007, Google Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: boringssl +ORIGIN: ../../../third_party/boringssl/ios-arm/crypto/fipsmodule/sha256-armv4.S + ../../../third_party/boringssl/src/LICENSE +TYPE: LicenseType.unknown +FILE: ../../../third_party/boringssl/ios-arm/crypto/fipsmodule/sha256-armv4.S +FILE: ../../../third_party/boringssl/ios-arm/crypto/fipsmodule/sha512-armv4.S +FILE: ../../../third_party/boringssl/linux-arm/crypto/fipsmodule/sha256-armv4.S +FILE: ../../../third_party/boringssl/linux-arm/crypto/fipsmodule/sha512-armv4.S +---------------------------------------------------------------------------------------------------- +Copyright 2007-2016 The OpenSSL Project Authors. All Rights Reserved. + +Licensed under the OpenSSL license (the "License"). You may not use +this file except in compliance with the License. You can obtain a copy +in the file LICENSE in the source distribution or at +https://www.openssl.org/source/license.html +==================================================================================================== + +==================================================================================================== +LIBRARY: boringssl +ORIGIN: ../../../third_party/boringssl/src/third_party/googletest/include/gtest/internal/gtest-param-util.h +TYPE: LicenseType.bsd +FILE: ../../../third_party/boringssl/src/third_party/googletest/include/gtest/gtest-typed-test.h +FILE: ../../../third_party/boringssl/src/third_party/googletest/include/gtest/internal/gtest-param-util.h +FILE: ../../../third_party/boringssl/src/third_party/googletest/include/gtest/internal/gtest-type-util.h +FILE: ../../../third_party/boringssl/src/third_party/googletest/samples/prime_tables.h +FILE: ../../../third_party/boringssl/src/third_party/googletest/samples/sample6_unittest.cc +FILE: ../../../third_party/boringssl/src/third_party/googletest/samples/sample7_unittest.cc +FILE: ../../../third_party/boringssl/src/third_party/googletest/samples/sample8_unittest.cc +FILE: ../../../third_party/boringssl/src/third_party/googletest/src/gtest-typed-test.cc +---------------------------------------------------------------------------------------------------- +Copyright 2008 Google Inc. +All Rights Reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: boringssl +ORIGIN: ../../../third_party/boringssl/src/third_party/googletest/LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/boringssl/src/third_party/googletest/CONTRIBUTORS +FILE: ../../../third_party/boringssl/src/third_party/googletest/METADATA +FILE: ../../../third_party/boringssl/src/third_party/googletest/cmake/Config.cmake.in +FILE: ../../../third_party/boringssl/src/third_party/googletest/cmake/gtest.pc.in +FILE: ../../../third_party/boringssl/src/third_party/googletest/cmake/gtest_main.pc.in +FILE: ../../../third_party/boringssl/src/third_party/googletest/cmake/libgtest.la.in +FILE: ../../../third_party/boringssl/src/third_party/googletest/include/gtest/gtest-param-test.h +FILE: ../../../third_party/boringssl/src/third_party/googletest/include/gtest/gtest-test-part.h +FILE: ../../../third_party/boringssl/src/third_party/googletest/include/gtest/internal/gtest-filepath.h +FILE: ../../../third_party/boringssl/src/third_party/googletest/src/gtest-all.cc +FILE: ../../../third_party/boringssl/src/third_party/googletest/src/gtest-filepath.cc +FILE: ../../../third_party/boringssl/src/third_party/googletest/src/gtest-port.cc +FILE: ../../../third_party/boringssl/src/third_party/googletest/src/gtest-test-part.cc +---------------------------------------------------------------------------------------------------- +Copyright 2008, Google Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: boringssl +ORIGIN: ../../../third_party/boringssl/src/third_party/googletest/samples/sample10_unittest.cc +TYPE: LicenseType.bsd +FILE: ../../../third_party/boringssl/src/third_party/googletest/samples/sample10_unittest.cc +FILE: ../../../third_party/boringssl/src/third_party/googletest/samples/sample9_unittest.cc +---------------------------------------------------------------------------------------------------- +Copyright 2009 Google Inc. All Rights Reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: libjpeg-turbo +ORIGIN: ../../../third_party/libjpeg-turbo/simd/jccolext-mmx.asm + ../../../third_party/libjpeg-turbo/simd/jsimdext.inc +TYPE: LicenseType.zlib +FILE: ../../../third_party/libjpeg-turbo/simd/jccolext-mmx.asm +FILE: ../../../third_party/libjpeg-turbo/simd/jcolsamp.inc +FILE: ../../../third_party/libjpeg-turbo/simd/jcsample-mmx.asm +FILE: ../../../third_party/libjpeg-turbo/simd/jcsample-sse2.asm +FILE: ../../../third_party/libjpeg-turbo/simd/jdcolext-mmx.asm +FILE: ../../../third_party/libjpeg-turbo/simd/jdct.inc +FILE: ../../../third_party/libjpeg-turbo/simd/jdmrgext-mmx.asm +FILE: ../../../third_party/libjpeg-turbo/simd/jdsample-mmx.asm +FILE: ../../../third_party/libjpeg-turbo/simd/jdsample-sse2.asm +FILE: ../../../third_party/libjpeg-turbo/simd/jfdctflt-3dn.asm +FILE: ../../../third_party/libjpeg-turbo/simd/jfdctflt-sse.asm +FILE: ../../../third_party/libjpeg-turbo/simd/jfdctfst-mmx.asm +FILE: ../../../third_party/libjpeg-turbo/simd/jfdctfst-sse2.asm +FILE: ../../../third_party/libjpeg-turbo/simd/jfdctint-mmx.asm +FILE: ../../../third_party/libjpeg-turbo/simd/jfdctint-sse2.asm +FILE: ../../../third_party/libjpeg-turbo/simd/jidctflt-3dn.asm +FILE: ../../../third_party/libjpeg-turbo/simd/jidctflt-sse.asm +FILE: ../../../third_party/libjpeg-turbo/simd/jidctflt-sse2.asm +FILE: ../../../third_party/libjpeg-turbo/simd/jidctfst-mmx.asm +FILE: ../../../third_party/libjpeg-turbo/simd/jidctfst-sse2.asm +FILE: ../../../third_party/libjpeg-turbo/simd/jidctint-mmx.asm +FILE: ../../../third_party/libjpeg-turbo/simd/jidctint-sse2.asm +FILE: ../../../third_party/libjpeg-turbo/simd/jidctred-mmx.asm +FILE: ../../../third_party/libjpeg-turbo/simd/jidctred-sse2.asm +FILE: ../../../third_party/libjpeg-turbo/simd/jquant-3dn.asm +FILE: ../../../third_party/libjpeg-turbo/simd/jquant-mmx.asm +FILE: ../../../third_party/libjpeg-turbo/simd/jquant-sse.asm +FILE: ../../../third_party/libjpeg-turbo/simd/jquantf-sse2.asm +FILE: ../../../third_party/libjpeg-turbo/simd/jquanti-sse2.asm +FILE: ../../../third_party/libjpeg-turbo/simd/jsimdcpu.asm +---------------------------------------------------------------------------------------------------- +Copyright 2009 Pierre Ossman for Cendio AB + +Based on the x86 SIMD extension for IJG JPEG library +Copyright (C) 1999-2006, MIYASAKA Masaru. + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +==================================================================================================== + +==================================================================================================== +LIBRARY: libjpeg-turbo +ORIGIN: ../../../third_party/libjpeg-turbo/jsimddct.h + ../../../third_party/libjpeg-turbo/simd/jsimdext.inc +TYPE: LicenseType.zlib +FILE: ../../../third_party/libjpeg-turbo/jsimddct.h +---------------------------------------------------------------------------------------------------- +Copyright 2009 Pierre Ossman for Cendio AB + +Based on the x86 SIMD extension for IJG JPEG library, +Copyright (C) 1999-2006, MIYASAKA Masaru. + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +==================================================================================================== + +==================================================================================================== +LIBRARY: libjpeg-turbo +ORIGIN: ../../../third_party/libjpeg-turbo/simd/jccolor-mmx.asm + ../../../third_party/libjpeg-turbo/simd/jsimdext.inc +TYPE: LicenseType.zlib +FILE: ../../../third_party/libjpeg-turbo/simd/jccolor-mmx.asm +FILE: ../../../third_party/libjpeg-turbo/simd/jcsample-sse2-64.asm +FILE: ../../../third_party/libjpeg-turbo/simd/jdcolor-mmx.asm +FILE: ../../../third_party/libjpeg-turbo/simd/jdcolor-sse2-64.asm +FILE: ../../../third_party/libjpeg-turbo/simd/jdcolor-sse2.asm +FILE: ../../../third_party/libjpeg-turbo/simd/jdmerge-mmx.asm +FILE: ../../../third_party/libjpeg-turbo/simd/jdmerge-sse2-64.asm +FILE: ../../../third_party/libjpeg-turbo/simd/jdmerge-sse2.asm +FILE: ../../../third_party/libjpeg-turbo/simd/jdsample-sse2-64.asm +FILE: ../../../third_party/libjpeg-turbo/simd/jfdctflt-sse-64.asm +FILE: ../../../third_party/libjpeg-turbo/simd/jfdctfst-sse2-64.asm +FILE: ../../../third_party/libjpeg-turbo/simd/jfdctint-sse2-64.asm +FILE: ../../../third_party/libjpeg-turbo/simd/jidctflt-sse2-64.asm +FILE: ../../../third_party/libjpeg-turbo/simd/jidctfst-sse2-64.asm +FILE: ../../../third_party/libjpeg-turbo/simd/jidctint-sse2-64.asm +FILE: ../../../third_party/libjpeg-turbo/simd/jidctred-sse2-64.asm +FILE: ../../../third_party/libjpeg-turbo/simd/jquantf-sse2-64.asm +FILE: ../../../third_party/libjpeg-turbo/simd/jquanti-sse2-64.asm +---------------------------------------------------------------------------------------------------- +Copyright 2009 Pierre Ossman for Cendio AB +Copyright (C) 2009, D. R. Commander. + +Based on the x86 SIMD extension for IJG JPEG library +Copyright (C) 1999-2006, MIYASAKA Masaru. + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +==================================================================================================== + +==================================================================================================== +LIBRARY: libjpeg-turbo +ORIGIN: ../../../third_party/libjpeg-turbo/simd/jsimd_i386.c + ../../../third_party/libjpeg-turbo/simd/jsimdext.inc +TYPE: LicenseType.zlib +FILE: ../../../third_party/libjpeg-turbo/simd/jsimd_i386.c +---------------------------------------------------------------------------------------------------- +Copyright 2009 Pierre Ossman for Cendio AB +Copyright (C) 2009-2011, 2013-2014, 2016, D. R. Commander. +Copyright (C) 2015, Matthieu Darbois. + +Based on the x86 SIMD extension for IJG JPEG library, +Copyright (C) 1999-2006, MIYASAKA Masaru. + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +==================================================================================================== + +==================================================================================================== +LIBRARY: libjpeg-turbo +ORIGIN: ../../../third_party/libjpeg-turbo/simd/jsimd_arm.c + ../../../third_party/libjpeg-turbo/simd/jsimdext.inc +TYPE: LicenseType.zlib +FILE: ../../../third_party/libjpeg-turbo/simd/jsimd_arm.c +FILE: ../../../third_party/libjpeg-turbo/simd/jsimd_arm64.c +---------------------------------------------------------------------------------------------------- +Copyright 2009 Pierre Ossman for Cendio AB +Copyright (C) 2009-2011, 2013-2014, 2016, D. R. Commander. +Copyright (C) 2015-2016, Matthieu Darbois. + +Based on the x86 SIMD extension for IJG JPEG library, +Copyright (C) 1999-2006, MIYASAKA Masaru. + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +==================================================================================================== + +==================================================================================================== +LIBRARY: libjpeg-turbo +ORIGIN: ../../../third_party/libjpeg-turbo/simd/jsimd_x86_64.c + ../../../third_party/libjpeg-turbo/simd/jsimdext.inc +TYPE: LicenseType.zlib +FILE: ../../../third_party/libjpeg-turbo/simd/jsimd_x86_64.c +---------------------------------------------------------------------------------------------------- +Copyright 2009 Pierre Ossman for Cendio AB +Copyright (C) 2009-2011, 2014, 2016, D. R. Commander. +Copyright (C) 2015, Matthieu Darbois. + +Based on the x86 SIMD extension for IJG JPEG library, +Copyright (C) 1999-2006, MIYASAKA Masaru. + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +==================================================================================================== + +==================================================================================================== +LIBRARY: libjpeg-turbo +ORIGIN: ../../../third_party/libjpeg-turbo/simd/jsimd_mips.c + ../../../third_party/libjpeg-turbo/simd/jsimdext.inc +TYPE: LicenseType.zlib +FILE: ../../../third_party/libjpeg-turbo/simd/jsimd_mips.c +---------------------------------------------------------------------------------------------------- +Copyright 2009 Pierre Ossman for Cendio AB +Copyright (C) 2009-2011, 2014, D. R. Commander. +Copyright (C) 2013-2014, MIPS Technologies, Inc., California. +Copyright (C) 2015, Matthieu Darbois. + +Based on the x86 SIMD extension for IJG JPEG library, +Copyright (C) 1999-2006, MIYASAKA Masaru. + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +==================================================================================================== + +==================================================================================================== +LIBRARY: libjpeg-turbo +ORIGIN: ../../../third_party/libjpeg-turbo/jsimd_none.c + ../../../third_party/libjpeg-turbo/simd/jsimdext.inc +TYPE: LicenseType.zlib +FILE: ../../../third_party/libjpeg-turbo/jsimd_none.c +---------------------------------------------------------------------------------------------------- +Copyright 2009 Pierre Ossman for Cendio AB +Copyright (C) 2009-2011, 2014, D. R. Commander. +Copyright (C) 2015, Matthieu Darbois. + +Based on the x86 SIMD extension for IJG JPEG library, +Copyright (C) 1999-2006, MIYASAKA Masaru. + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +==================================================================================================== + +==================================================================================================== +LIBRARY: libjpeg-turbo +ORIGIN: ../../../third_party/libjpeg-turbo/simd/jsimd_powerpc.c + ../../../third_party/libjpeg-turbo/simd/jsimdext.inc +TYPE: LicenseType.zlib +FILE: ../../../third_party/libjpeg-turbo/simd/jsimd_powerpc.c +---------------------------------------------------------------------------------------------------- +Copyright 2009 Pierre Ossman for Cendio AB +Copyright (C) 2009-2011, 2014-2015, D. R. Commander. +Copyright (C) 2015, Matthieu Darbois. + +Based on the x86 SIMD extension for IJG JPEG library, +Copyright (C) 1999-2006, MIYASAKA Masaru. + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +==================================================================================================== + +==================================================================================================== +LIBRARY: libjpeg-turbo +ORIGIN: ../../../third_party/libjpeg-turbo/simd/jsimdext.inc +TYPE: LicenseType.zlib +FILE: ../../../third_party/libjpeg-turbo/jconfig.h +FILE: ../../../third_party/libjpeg-turbo/jconfig.h.in +FILE: ../../../third_party/libjpeg-turbo/jconfigint.h +FILE: ../../../third_party/libjpeg-turbo/jconfigint.h.in +FILE: ../../../third_party/libjpeg-turbo/jpeg_nbits_table.h +FILE: ../../../third_party/libjpeg-turbo/libjpeg.map.in +FILE: ../../../third_party/libjpeg-turbo/simd/jpeg_nbits_table.inc +FILE: ../../../third_party/libjpeg-turbo/simd/jsimdcfg.inc +FILE: ../../../third_party/libjpeg-turbo/simd/jsimdcfg.inc.h +FILE: ../../../third_party/libjpeg-turbo/simd/jsimdext.inc +FILE: ../../../third_party/libjpeg-turbo/turbojpeg-mapfile +FILE: ../../../third_party/libjpeg-turbo/turbojpeg-mapfile.jni +---------------------------------------------------------------------------------------------------- +Copyright 2009 Pierre Ossman for Cendio AB +Copyright (C) 2010, D. R. Commander. + +Based on the x86 SIMD extension for IJG JPEG library - version 1.02 + +Copyright (C) 1999-2006, MIYASAKA Masaru. + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +==================================================================================================== + +==================================================================================================== +LIBRARY: libjpeg-turbo +ORIGIN: ../../../third_party/libjpeg-turbo/jsimd.h + ../../../third_party/libjpeg-turbo/simd/jsimdext.inc +TYPE: LicenseType.zlib +FILE: ../../../third_party/libjpeg-turbo/jsimd.h +---------------------------------------------------------------------------------------------------- +Copyright 2009 Pierre Ossman for Cendio AB +Copyright (C) 2011, 2014, D. R. Commander. +Copyright (C) 2015, Matthieu Darbois. + +Based on the x86 SIMD extension for IJG JPEG library, +Copyright (C) 1999-2006, MIYASAKA Masaru. + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +==================================================================================================== + +==================================================================================================== +LIBRARY: libjpeg-turbo +ORIGIN: ../../../third_party/libjpeg-turbo/simd/jsimd.h + ../../../third_party/libjpeg-turbo/simd/jsimdext.inc +TYPE: LicenseType.zlib +FILE: ../../../third_party/libjpeg-turbo/simd/jsimd.h +---------------------------------------------------------------------------------------------------- +Copyright 2009 Pierre Ossman for Cendio AB +Copyright (C) 2011, 2014-2016, D. R. Commander. +Copyright (C) 2013-2014, MIPS Technologies, Inc., California. +Copyright (C) 2014, Linaro Limited. +Copyright (C) 2015-2016, Matthieu Darbois. + +Based on the x86 SIMD extension for IJG JPEG library, +Copyright (C) 1999-2006, MIYASAKA Masaru. + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +==================================================================================================== + +==================================================================================================== +LIBRARY: libjpeg-turbo +ORIGIN: ../../../third_party/libjpeg-turbo/simd/jcgray-mmx.asm + ../../../third_party/libjpeg-turbo/simd/jsimdext.inc +TYPE: LicenseType.zlib +FILE: ../../../third_party/libjpeg-turbo/simd/jcgray-mmx.asm +FILE: ../../../third_party/libjpeg-turbo/simd/jcgryext-mmx.asm +---------------------------------------------------------------------------------------------------- +Copyright 2009 Pierre Ossman for Cendio AB +Copyright (C) 2011, D. R. Commander. + +Based on the x86 SIMD extension for IJG JPEG library +Copyright (C) 1999-2006, MIYASAKA Masaru. + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +==================================================================================================== + +==================================================================================================== +LIBRARY: libjpeg-turbo +ORIGIN: ../../../third_party/libjpeg-turbo/simd/jdcolext-sse2-64.asm + ../../../third_party/libjpeg-turbo/simd/jsimdext.inc +TYPE: LicenseType.zlib +FILE: ../../../third_party/libjpeg-turbo/simd/jdcolext-sse2-64.asm +FILE: ../../../third_party/libjpeg-turbo/simd/jdmrgext-sse2-64.asm +---------------------------------------------------------------------------------------------------- +Copyright 2009, 2012 Pierre Ossman for Cendio AB +Copyright (C) 2009, 2012, D. R. Commander. + +Based on the x86 SIMD extension for IJG JPEG library +Copyright (C) 1999-2006, MIYASAKA Masaru. + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +==================================================================================================== + +==================================================================================================== +LIBRARY: libjpeg-turbo +ORIGIN: ../../../third_party/libjpeg-turbo/simd/jdcolext-sse2.asm + ../../../third_party/libjpeg-turbo/simd/jsimdext.inc +TYPE: LicenseType.zlib +FILE: ../../../third_party/libjpeg-turbo/simd/jdcolext-sse2.asm +FILE: ../../../third_party/libjpeg-turbo/simd/jdmrgext-sse2.asm +---------------------------------------------------------------------------------------------------- +Copyright 2009, 2012 Pierre Ossman for Cendio AB +Copyright (C) 2012, D. R. Commander. + +Based on the x86 SIMD extension for IJG JPEG library +Copyright (C) 1999-2006, MIYASAKA Masaru. + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +==================================================================================================== + +==================================================================================================== +LIBRARY: libwebp +ORIGIN: ../../../third_party/libwebp/src/dec/frame_dec.c + ../../../third_party/libwebp/COPYING +TYPE: LicenseType.bsd +FILE: ../../../third_party/libwebp/src/dec/frame_dec.c +FILE: ../../../third_party/libwebp/src/dec/quant_dec.c +FILE: ../../../third_party/libwebp/src/dec/tree_dec.c +FILE: ../../../third_party/libwebp/src/dec/vp8_dec.c +FILE: ../../../third_party/libwebp/src/dec/vp8_dec.h +FILE: ../../../third_party/libwebp/src/dec/vp8i_dec.h +FILE: ../../../third_party/libwebp/src/dec/webp_dec.c +FILE: ../../../third_party/libwebp/src/dsp/dec.c +FILE: ../../../third_party/libwebp/src/dsp/yuv.c +FILE: ../../../third_party/libwebp/src/dsp/yuv.h +FILE: ../../../third_party/libwebp/src/utils/bit_reader_utils.c +FILE: ../../../third_party/libwebp/src/utils/bit_reader_utils.h +FILE: ../../../third_party/libwebp/src/webp/decode.h +FILE: ../../../third_party/libwebp/src/webp/types.h +---------------------------------------------------------------------------------------------------- +Copyright 2010 Google Inc. All Rights Reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + * Neither the name of Google nor the names of its contributors may + be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: angle +ORIGIN: ../../../third_party/angle/src/compiler/translator/ValidateLimitations.h + ../../../third_party/angle/LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/angle/src/compiler/translator/ValidateLimitations.h +FILE: ../../../third_party/angle/src/compiler/translator/glslang.h +FILE: ../../../third_party/angle/src/compiler/translator/util.cpp +FILE: ../../../third_party/angle/src/libANGLE/Uniform.cpp +FILE: ../../../third_party/angle/src/libANGLE/Uniform.h +---------------------------------------------------------------------------------------------------- +Copyright 2010 The ANGLE Project Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + + Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. + Ltd., nor the names of their contributors may be used to endorse + or promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: double-conversion +LIBRARY: icu +ORIGIN: ../../../third_party/dart/runtime/third_party/double-conversion/src/bignum-dtoa.cc +TYPE: LicenseType.bsd +FILE: ../../../third_party/dart/runtime/third_party/double-conversion/src/bignum-dtoa.cc +FILE: ../../../third_party/dart/runtime/third_party/double-conversion/src/bignum-dtoa.h +FILE: ../../../third_party/dart/runtime/third_party/double-conversion/src/bignum.cc +FILE: ../../../third_party/dart/runtime/third_party/double-conversion/src/bignum.h +FILE: ../../../third_party/dart/runtime/third_party/double-conversion/src/cached-powers.h +FILE: ../../../third_party/dart/runtime/third_party/double-conversion/src/diy-fp.cc +FILE: ../../../third_party/dart/runtime/third_party/double-conversion/src/diy-fp.h +FILE: ../../../third_party/dart/runtime/third_party/double-conversion/src/double-conversion.cc +FILE: ../../../third_party/dart/runtime/third_party/double-conversion/src/fast-dtoa.h +FILE: ../../../third_party/dart/runtime/third_party/double-conversion/src/fixed-dtoa.cc +FILE: ../../../third_party/dart/runtime/third_party/double-conversion/src/fixed-dtoa.h +FILE: ../../../third_party/dart/runtime/third_party/double-conversion/src/strtod.cc +FILE: ../../../third_party/dart/runtime/third_party/double-conversion/src/strtod.h +FILE: ../../../third_party/dart/runtime/third_party/double-conversion/src/utils.h +FILE: ../../../third_party/icu/source/i18n/double-conversion-bignum-dtoa.cpp +FILE: ../../../third_party/icu/source/i18n/double-conversion-bignum-dtoa.h +FILE: ../../../third_party/icu/source/i18n/double-conversion-bignum.cpp +FILE: ../../../third_party/icu/source/i18n/double-conversion-bignum.h +FILE: ../../../third_party/icu/source/i18n/double-conversion-cached-powers.h +FILE: ../../../third_party/icu/source/i18n/double-conversion-diy-fp.h +FILE: ../../../third_party/icu/source/i18n/double-conversion-double-to-string.cpp +FILE: ../../../third_party/icu/source/i18n/double-conversion-fast-dtoa.h +FILE: ../../../third_party/icu/source/i18n/double-conversion-string-to-double.cpp +FILE: ../../../third_party/icu/source/i18n/double-conversion-strtod.cpp +FILE: ../../../third_party/icu/source/i18n/double-conversion-strtod.h +FILE: ../../../third_party/icu/source/i18n/double-conversion-utils.h +---------------------------------------------------------------------------------------------------- +Copyright 2010 the V8 project authors. All rights reserved. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: libwebp +ORIGIN: ../../../third_party/libwebp/src/dec/alpha_dec.c + ../../../third_party/libwebp/COPYING +TYPE: LicenseType.bsd +FILE: ../../../third_party/libwebp/src/dec/alpha_dec.c +FILE: ../../../third_party/libwebp/src/dec/buffer_dec.c +FILE: ../../../third_party/libwebp/src/dec/idec_dec.c +FILE: ../../../third_party/libwebp/src/dec/io_dec.c +FILE: ../../../third_party/libwebp/src/dec/webpi_dec.h +FILE: ../../../third_party/libwebp/src/dsp/cpu.c +FILE: ../../../third_party/libwebp/src/dsp/dec_sse2.c +FILE: ../../../third_party/libwebp/src/dsp/dsp.h +FILE: ../../../third_party/libwebp/src/dsp/enc.c +FILE: ../../../third_party/libwebp/src/dsp/enc_sse2.c +FILE: ../../../third_party/libwebp/src/dsp/filters.c +FILE: ../../../third_party/libwebp/src/dsp/upsampling.c +FILE: ../../../third_party/libwebp/src/dsp/upsampling_neon.c +FILE: ../../../third_party/libwebp/src/dsp/upsampling_sse2.c +FILE: ../../../third_party/libwebp/src/dsp/upsampling_sse41.c +FILE: ../../../third_party/libwebp/src/enc/alpha_enc.c +FILE: ../../../third_party/libwebp/src/enc/analysis_enc.c +FILE: ../../../third_party/libwebp/src/enc/config_enc.c +FILE: ../../../third_party/libwebp/src/enc/cost_enc.c +FILE: ../../../third_party/libwebp/src/enc/cost_enc.h +FILE: ../../../third_party/libwebp/src/enc/filter_enc.c +FILE: ../../../third_party/libwebp/src/enc/frame_enc.c +FILE: ../../../third_party/libwebp/src/enc/iterator_enc.c +FILE: ../../../third_party/libwebp/src/enc/picture_enc.c +FILE: ../../../third_party/libwebp/src/enc/quant_enc.c +FILE: ../../../third_party/libwebp/src/enc/syntax_enc.c +FILE: ../../../third_party/libwebp/src/enc/token_enc.c +FILE: ../../../third_party/libwebp/src/enc/tree_enc.c +FILE: ../../../third_party/libwebp/src/enc/vp8i_enc.h +FILE: ../../../third_party/libwebp/src/enc/webp_enc.c +FILE: ../../../third_party/libwebp/src/mux/muxedit.c +FILE: ../../../third_party/libwebp/src/mux/muxi.h +FILE: ../../../third_party/libwebp/src/mux/muxinternal.c +FILE: ../../../third_party/libwebp/src/mux/muxread.c +FILE: ../../../third_party/libwebp/src/utils/bit_writer_utils.c +FILE: ../../../third_party/libwebp/src/utils/bit_writer_utils.h +FILE: ../../../third_party/libwebp/src/utils/filters_utils.c +FILE: ../../../third_party/libwebp/src/utils/filters_utils.h +FILE: ../../../third_party/libwebp/src/utils/huffman_encode_utils.c +FILE: ../../../third_party/libwebp/src/utils/huffman_encode_utils.h +FILE: ../../../third_party/libwebp/src/utils/quant_levels_utils.c +FILE: ../../../third_party/libwebp/src/utils/quant_levels_utils.h +FILE: ../../../third_party/libwebp/src/utils/thread_utils.c +FILE: ../../../third_party/libwebp/src/utils/thread_utils.h +FILE: ../../../third_party/libwebp/src/webp/encode.h +FILE: ../../../third_party/libwebp/src/webp/mux.h +---------------------------------------------------------------------------------------------------- +Copyright 2011 Google Inc. All Rights Reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + * Neither the name of Google nor the names of its contributors may + be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: angle +ORIGIN: ../../../third_party/angle/src/compiler/preprocessor/DirectiveParser.cpp + ../../../third_party/angle/LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/angle/src/compiler/preprocessor/DirectiveParser.cpp +FILE: ../../../third_party/angle/src/compiler/preprocessor/Input.cpp +FILE: ../../../third_party/angle/src/compiler/preprocessor/Input.h +FILE: ../../../third_party/angle/src/compiler/preprocessor/Macro.cpp +FILE: ../../../third_party/angle/src/compiler/preprocessor/MacroExpander.cpp +FILE: ../../../third_party/angle/src/compiler/preprocessor/Preprocessor.cpp +FILE: ../../../third_party/angle/src/compiler/preprocessor/Preprocessor.h +FILE: ../../../third_party/angle/src/compiler/preprocessor/Token.cpp +FILE: ../../../third_party/angle/src/compiler/preprocessor/Token.h +FILE: ../../../third_party/angle/src/compiler/translator/BuiltInFunctionEmulator.h +FILE: ../../../third_party/angle/src/compiler/translator/BuiltInFunctionEmulatorGLSL.h +FILE: ../../../third_party/angle/src/compiler/translator/length_limits.h +---------------------------------------------------------------------------------------------------- +Copyright 2011 The ANGLE Project Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + + Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. + Ltd., nor the names of their contributors may be used to endorse + or promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: libwebp +ORIGIN: ../../../third_party/libwebp/imageio/jpegdec.c + ../../../third_party/libwebp/COPYING +TYPE: LicenseType.bsd +FILE: ../../../third_party/libwebp/imageio/jpegdec.c +FILE: ../../../third_party/libwebp/imageio/jpegdec.h +FILE: ../../../third_party/libwebp/imageio/metadata.c +FILE: ../../../third_party/libwebp/imageio/metadata.h +FILE: ../../../third_party/libwebp/imageio/pngdec.c +FILE: ../../../third_party/libwebp/imageio/pngdec.h +FILE: ../../../third_party/libwebp/imageio/tiffdec.c +FILE: ../../../third_party/libwebp/imageio/tiffdec.h +FILE: ../../../third_party/libwebp/src/dec/vp8l_dec.c +FILE: ../../../third_party/libwebp/src/dec/vp8li_dec.h +FILE: ../../../third_party/libwebp/src/demux/demux.c +FILE: ../../../third_party/libwebp/src/dsp/dec_neon.c +FILE: ../../../third_party/libwebp/src/dsp/enc_neon.c +FILE: ../../../third_party/libwebp/src/dsp/lossless.c +FILE: ../../../third_party/libwebp/src/dsp/lossless.h +FILE: ../../../third_party/libwebp/src/dsp/lossless_common.h +FILE: ../../../third_party/libwebp/src/enc/backward_references_enc.c +FILE: ../../../third_party/libwebp/src/enc/backward_references_enc.h +FILE: ../../../third_party/libwebp/src/enc/histogram_enc.c +FILE: ../../../third_party/libwebp/src/enc/histogram_enc.h +FILE: ../../../third_party/libwebp/src/enc/vp8l_enc.c +FILE: ../../../third_party/libwebp/src/enc/vp8li_enc.h +FILE: ../../../third_party/libwebp/src/utils/color_cache_utils.c +FILE: ../../../third_party/libwebp/src/utils/color_cache_utils.h +FILE: ../../../third_party/libwebp/src/utils/huffman_utils.c +FILE: ../../../third_party/libwebp/src/utils/huffman_utils.h +FILE: ../../../third_party/libwebp/src/utils/rescaler_utils.c +FILE: ../../../third_party/libwebp/src/utils/rescaler_utils.h +FILE: ../../../third_party/libwebp/src/utils/utils.c +FILE: ../../../third_party/libwebp/src/utils/utils.h +FILE: ../../../third_party/libwebp/src/webp/demux.h +FILE: ../../../third_party/libwebp/src/webp/format_constants.h +FILE: ../../../third_party/libwebp/src/webp/mux_types.h +---------------------------------------------------------------------------------------------------- +Copyright 2012 Google Inc. All Rights Reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + * Neither the name of Google nor the names of its contributors may + be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: angle +ORIGIN: ../../../third_party/angle/src/common/Float16ToFloat32.cpp + ../../../third_party/angle/LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/angle/src/common/Float16ToFloat32.cpp +FILE: ../../../third_party/angle/src/common/event_tracer.cpp +FILE: ../../../third_party/angle/src/common/event_tracer.h +FILE: ../../../third_party/angle/src/compiler/preprocessor/DiagnosticsBase.cpp +FILE: ../../../third_party/angle/src/compiler/preprocessor/DiagnosticsBase.h +FILE: ../../../third_party/angle/src/compiler/preprocessor/DirectiveHandlerBase.cpp +FILE: ../../../third_party/angle/src/compiler/preprocessor/DirectiveHandlerBase.h +FILE: ../../../third_party/angle/src/compiler/preprocessor/DirectiveParser.h +FILE: ../../../third_party/angle/src/compiler/preprocessor/ExpressionParser.h +FILE: ../../../third_party/angle/src/compiler/preprocessor/Lexer.cpp +FILE: ../../../third_party/angle/src/compiler/preprocessor/Lexer.h +FILE: ../../../third_party/angle/src/compiler/preprocessor/Macro.h +FILE: ../../../third_party/angle/src/compiler/preprocessor/MacroExpander.h +FILE: ../../../third_party/angle/src/compiler/preprocessor/SourceLocation.h +FILE: ../../../third_party/angle/src/compiler/preprocessor/Tokenizer.h +FILE: ../../../third_party/angle/src/compiler/preprocessor/numeric_lex.h +FILE: ../../../third_party/angle/src/compiler/preprocessor/preprocessor.y +FILE: ../../../third_party/angle/src/compiler/translator/Diagnostics.cpp +FILE: ../../../third_party/angle/src/compiler/translator/Diagnostics.h +FILE: ../../../third_party/angle/src/compiler/translator/DirectiveHandler.cpp +FILE: ../../../third_party/angle/src/compiler/translator/DirectiveHandler.h +FILE: ../../../third_party/angle/src/compiler/translator/Pragma.h +FILE: ../../../third_party/angle/src/libANGLE/BinaryStream.h +FILE: ../../../third_party/angle/src/libANGLE/Query.cpp +FILE: ../../../third_party/angle/src/libANGLE/Query.h +FILE: ../../../third_party/angle/src/libANGLE/angletypes.h +FILE: ../../../third_party/angle/src/libANGLE/angletypes.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/RenderTargetD3D.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/RenderTargetD3D.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/ShaderExecutableD3D.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/ShaderExecutableD3D.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/SwapChainD3D.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/Image11.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/Image11.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/IndexBuffer11.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/IndexBuffer11.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/InputLayoutCache.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/InputLayoutCache.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/RenderStateCache.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/RenderStateCache.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/RenderTarget11.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/RenderTarget11.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/Renderer11.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/Renderer11.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/ShaderExecutable11.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/ShaderExecutable11.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/SwapChain11.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/SwapChain11.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/TextureStorage11.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/TextureStorage11.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/VertexBuffer11.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/renderer11_utils.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/renderer11_utils.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/RenderTarget9.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/RenderTarget9.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/Renderer9.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/Renderer9.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/ShaderCache.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/ShaderExecutable9.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/ShaderExecutable9.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/SwapChain9.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/SwapChain9.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/TextureStorage9.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/TextureStorage9.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/VertexDeclarationCache.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/VertexDeclarationCache.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/shaders/Blit.ps +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/shaders/Blit.vs +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/renderergl_utils.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/renderergl_utils.h +---------------------------------------------------------------------------------------------------- +Copyright 2012 The ANGLE Project Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + + Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. + Ltd., nor the names of their contributors may be used to endorse + or promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: double-conversion +LIBRARY: icu +ORIGIN: ../../../third_party/dart/runtime/third_party/double-conversion/src/double-conversion.h +TYPE: LicenseType.bsd +FILE: ../../../third_party/dart/runtime/third_party/double-conversion/src/double-conversion.h +FILE: ../../../third_party/dart/runtime/third_party/double-conversion/src/fast-dtoa.cc +FILE: ../../../third_party/dart/runtime/third_party/double-conversion/src/ieee.h +FILE: ../../../third_party/icu/source/i18n/double-conversion-double-to-string.h +FILE: ../../../third_party/icu/source/i18n/double-conversion-fast-dtoa.cpp +FILE: ../../../third_party/icu/source/i18n/double-conversion-ieee.h +FILE: ../../../third_party/icu/source/i18n/double-conversion-string-to-double.h +FILE: ../../../third_party/icu/source/i18n/double-conversion.h +---------------------------------------------------------------------------------------------------- +Copyright 2012 the V8 project authors. All rights reserved. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: dart +ORIGIN: ../../../third_party/dart/LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/dart/.gitconfig +FILE: ../../../third_party/dart/.style.yapf +FILE: ../../../third_party/dart/.vpython +FILE: ../../../third_party/dart/PATENT_GRANT +FILE: ../../../third_party/dart/runtime/.clang-tidy +FILE: ../../../third_party/dart/runtime/CPPLINT.cfg +FILE: ../../../third_party/dart/runtime/bin/ffi_test/clobber_arm.S +FILE: ../../../third_party/dart/runtime/bin/ffi_test/clobber_arm64.S +FILE: ../../../third_party/dart/runtime/bin/ffi_test/clobber_riscv32.S +FILE: ../../../third_party/dart/runtime/bin/ffi_test/clobber_riscv64.S +FILE: ../../../third_party/dart/runtime/bin/ffi_test/clobber_x64.S +FILE: ../../../third_party/dart/runtime/bin/ffi_test/clobber_x64_win.S +FILE: ../../../third_party/dart/runtime/bin/ffi_test/clobber_x86.S +FILE: ../../../third_party/dart/runtime/bin/ffi_test/ffi_test_functions_helpers.S +FILE: ../../../third_party/dart/runtime/docs/compiler/images/catch-block-entry-0.png +FILE: ../../../third_party/dart/runtime/docs/compiler/images/catch-block-entry-1.png +FILE: ../../../third_party/dart/runtime/docs/images/aot-ic-dictionary.png +FILE: ../../../third_party/dart/runtime/docs/images/aot-ic-linear.png +FILE: ../../../third_party/dart/runtime/docs/images/aot-ic-monomorphic.png +FILE: ../../../third_party/dart/runtime/docs/images/aot-ic-singletarget.png +FILE: ../../../third_party/dart/runtime/docs/images/aot-ic-unlinked.png +FILE: ../../../third_party/dart/runtime/docs/images/aot.png +FILE: ../../../third_party/dart/runtime/docs/images/dart-to-kernel.png +FILE: ../../../third_party/dart/runtime/docs/images/flutter-cfe.png +FILE: ../../../third_party/dart/runtime/docs/images/images.graffle!images +FILE: ../../../third_party/dart/runtime/docs/images/inline-cache-1.png +FILE: ../../../third_party/dart/runtime/docs/images/isolates.png +FILE: ../../../third_party/dart/runtime/docs/images/kernel-loaded-1.png +FILE: ../../../third_party/dart/runtime/docs/images/kernel-loaded-2.png +FILE: ../../../third_party/dart/runtime/docs/images/kernel-service.png +FILE: ../../../third_party/dart/runtime/docs/images/optimizing-compilation.png +FILE: ../../../third_party/dart/runtime/docs/images/raw-function-lazy-compile.png +FILE: ../../../third_party/dart/runtime/docs/images/snapshot-appjit.png +FILE: ../../../third_party/dart/runtime/docs/images/snapshot-with-code.png +FILE: ../../../third_party/dart/runtime/docs/images/snapshot.png +FILE: ../../../third_party/dart/runtime/docs/images/unoptimized-compilation.png +FILE: ../../../third_party/dart/runtime/docs/infra/images/isolated-out-browser.png +FILE: ../../../third_party/dart/runtime/docs/infra/images/isolated-out-link.png +FILE: ../../../third_party/dart/runtime/observatory/lib/elements.dart +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/img/chromium_icon.png +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/img/dart_icon.png +FILE: ../../../third_party/dart/runtime/observatory/lib/src/elements/img/isolate_icon.png +FILE: ../../../third_party/dart/runtime/observatory/web/favicon.ico +FILE: ../../../third_party/dart/runtime/observatory/web/index.html +FILE: ../../../third_party/dart/runtime/observatory/web/third_party/trace_viewer_full.html +FILE: ../../../third_party/dart/runtime/observatory/web/timeline.html +FILE: ../../../third_party/dart/runtime/observatory_2/lib/elements.dart +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/img/chromium_icon.png +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/img/dart_icon.png +FILE: ../../../third_party/dart/runtime/observatory_2/lib/src/elements/img/isolate_icon.png +FILE: ../../../third_party/dart/runtime/observatory_2/web/favicon.ico +FILE: ../../../third_party/dart/runtime/observatory_2/web/index.html +FILE: ../../../third_party/dart/runtime/observatory_2/web/third_party/trace_viewer_full.html +FILE: ../../../third_party/dart/runtime/observatory_2/web/timeline.html +FILE: ../../../third_party/dart/runtime/tools/wiki/styles/style.scss +FILE: ../../../third_party/dart/runtime/tools/wiki/templates/includes/auto-refresh.html +FILE: ../../../third_party/dart/runtime/tools/wiki/templates/includes/favicon.html +FILE: ../../../third_party/dart/runtime/tools/wiki/templates/page.html +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/doublex20/arm64_android.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/doublex20/arm64_fuchsia.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/doublex20/arm64_ios.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/doublex20/arm64_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/doublex20/arm64_macos.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/doublex20/arm_android.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/doublex20/arm_ios.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/doublex20/arm_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/doublex20/ia32_android.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/doublex20/ia32_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/doublex20/ia32_win.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/doublex20/riscv32_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/doublex20/riscv64_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/doublex20/x64_fuchsia.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/doublex20/x64_ios.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/doublex20/x64_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/doublex20/x64_macos.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/doublex20/x64_win.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/floatx20/arm64_android.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/floatx20/arm64_fuchsia.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/floatx20/arm64_ios.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/floatx20/arm64_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/floatx20/arm64_macos.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/floatx20/arm_android.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/floatx20/arm_ios.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/floatx20/arm_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/floatx20/ia32_android.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/floatx20/ia32_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/floatx20/ia32_win.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/floatx20/riscv32_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/floatx20/riscv64_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/floatx20/x64_fuchsia.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/floatx20/x64_ios.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/floatx20/x64_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/floatx20/x64_macos.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/floatx20/x64_win.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/int8x10/arm64_android.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/int8x10/arm64_fuchsia.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/int8x10/arm64_ios.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/int8x10/arm64_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/int8x10/arm64_macos.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/int8x10/arm_android.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/int8x10/arm_ios.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/int8x10/arm_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/int8x10/ia32_android.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/int8x10/ia32_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/int8x10/ia32_win.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/int8x10/riscv32_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/int8x10/riscv64_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/int8x10/x64_fuchsia.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/int8x10/x64_ios.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/int8x10/x64_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/int8x10/x64_macos.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/int8x10/x64_win.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/mixedx20/arm64_android.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/mixedx20/arm64_fuchsia.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/mixedx20/arm64_ios.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/mixedx20/arm64_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/mixedx20/arm64_macos.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/mixedx20/arm_android.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/mixedx20/arm_ios.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/mixedx20/arm_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/mixedx20/ia32_android.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/mixedx20/ia32_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/mixedx20/ia32_win.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/mixedx20/riscv32_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/mixedx20/riscv64_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/mixedx20/x64_fuchsia.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/mixedx20/x64_ios.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/mixedx20/x64_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/mixedx20/x64_macos.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/mixedx20/x64_win.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/regress46127/arm64_android.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/regress46127/arm64_fuchsia.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/regress46127/arm64_ios.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/regress46127/arm64_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/regress46127/arm64_macos.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/regress46127/arm_android.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/regress46127/arm_ios.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/regress46127/arm_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/regress46127/ia32_android.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/regress46127/ia32_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/regress46127/ia32_win.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/regress46127/riscv32_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/regress46127/riscv64_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/regress46127/x64_fuchsia.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/regress46127/x64_ios.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/regress46127/x64_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/regress46127/x64_macos.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/regress46127/x64_win.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/regress_fuchsia105336/arm64_android.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/regress_fuchsia105336/arm64_fuchsia.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/regress_fuchsia105336/arm64_ios.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/regress_fuchsia105336/arm64_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/regress_fuchsia105336/arm64_macos.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/regress_fuchsia105336/arm_android.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/regress_fuchsia105336/arm_ios.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/regress_fuchsia105336/arm_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/regress_fuchsia105336/ia32_android.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/regress_fuchsia105336/ia32_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/regress_fuchsia105336/ia32_win.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/regress_fuchsia105336/riscv32_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/regress_fuchsia105336/riscv64_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/regress_fuchsia105336/x64_fuchsia.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/regress_fuchsia105336/x64_ios.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/regress_fuchsia105336/x64_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/regress_fuchsia105336/x64_macos.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/regress_fuchsia105336/x64_win.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/arm64_android.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/arm64_fuchsia.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/arm64_ios.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/arm64_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/arm64_macos.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/arm_android.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/arm_ios.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/arm_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/ia32_android.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/ia32_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/ia32_win.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/riscv32_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/riscv64_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/x64_fuchsia.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/x64_ios.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/x64_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/x64_macos.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/x64_win.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct12bytesFloatx6/arm64_android.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct12bytesFloatx6/arm64_fuchsia.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct12bytesFloatx6/arm64_ios.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct12bytesFloatx6/arm64_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct12bytesFloatx6/arm64_macos.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct12bytesFloatx6/arm_android.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct12bytesFloatx6/arm_ios.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct12bytesFloatx6/arm_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct12bytesFloatx6/ia32_android.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct12bytesFloatx6/ia32_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct12bytesFloatx6/ia32_win.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct12bytesFloatx6/riscv32_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct12bytesFloatx6/riscv64_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct12bytesFloatx6/x64_fuchsia.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct12bytesFloatx6/x64_ios.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct12bytesFloatx6/x64_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct12bytesFloatx6/x64_macos.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct12bytesFloatx6/x64_win.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/arm64_android.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/arm64_fuchsia.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/arm64_ios.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/arm64_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/arm64_macos.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/arm_android.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/arm_ios.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/arm_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/ia32_android.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/ia32_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/ia32_win.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/riscv32_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/riscv64_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/x64_fuchsia.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/x64_ios.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/x64_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/x64_macos.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/x64_win.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct16bytesMixedx10/x64_fuchsia.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct16bytesMixedx10/x64_ios.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct16bytesMixedx10/x64_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct16bytesMixedx10/x64_macos.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct16bytesMixedx10/x64_win.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct16bytesMixedx10_2/x64_fuchsia.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct16bytesMixedx10_2/x64_ios.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct16bytesMixedx10_2/x64_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct16bytesMixedx10_2/x64_macos.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct16bytesMixedx10_2/x64_win.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct16bytesMixedx10_3/x64_fuchsia.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct16bytesMixedx10_3/x64_ios.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct16bytesMixedx10_3/x64_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct16bytesMixedx10_3/x64_macos.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct16bytesMixedx10_3/x64_win.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/arm64_android.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/arm64_fuchsia.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/arm64_ios.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/arm64_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/arm64_macos.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/arm_android.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/arm_ios.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/arm_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/ia32_android.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/ia32_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/ia32_win.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/riscv32_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/riscv64_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/x64_fuchsia.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/x64_ios.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/x64_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/x64_macos.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/x64_win.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/arm64_android.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/arm64_fuchsia.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/arm64_ios.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/arm64_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/arm64_macos.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/arm_android.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/arm_ios.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/arm_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/ia32_android.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/ia32_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/ia32_win.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/riscv32_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/riscv64_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/x64_fuchsia.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/x64_ios.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/x64_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/x64_macos.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/x64_win.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/arm64_android.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/arm64_fuchsia.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/arm64_ios.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/arm64_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/arm64_macos.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/arm_android.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/arm_ios.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/arm_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/ia32_android.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/ia32_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/ia32_win.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/riscv32_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/riscv64_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/x64_fuchsia.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/x64_ios.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/x64_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/x64_macos.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/x64_win.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/structPacked/arm64_android.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/structPacked/arm64_fuchsia.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/structPacked/arm64_ios.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/structPacked/arm64_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/structPacked/arm64_macos.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/structPacked/arm_android.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/structPacked/arm_ios.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/structPacked/arm_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/structPacked/ia32_android.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/structPacked/ia32_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/structPacked/ia32_win.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/structPacked/riscv32_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/structPacked/riscv64_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/structPacked/x64_fuchsia.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/structPacked/x64_ios.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/structPacked/x64_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/structPacked/x64_macos.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/structPacked/x64_win.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/arm64_android.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/arm64_fuchsia.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/arm64_ios.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/arm64_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/arm64_macos.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/arm_android.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/arm_ios.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/arm_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/ia32_android.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/ia32_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/ia32_win.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/riscv32_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/riscv64_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/x64_fuchsia.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/x64_ios.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/x64_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/x64_macos.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/x64_win.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/arm64_android.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/arm64_fuchsia.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/arm64_ios.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/arm64_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/arm64_macos.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/arm_android.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/arm_ios.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/arm_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/ia32_android.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/ia32_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/ia32_win.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/riscv32_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/riscv64_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/x64_fuchsia.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/x64_ios.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/x64_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/x64_macos.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/x64_win.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/arm64_android.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/arm64_fuchsia.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/arm64_ios.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/arm64_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/arm64_macos.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/arm_android.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/arm_ios.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/arm_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/ia32_android.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/ia32_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/ia32_win.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/riscv32_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/riscv64_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/x64_fuchsia.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/x64_ios.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/x64_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/x64_macos.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/x64_win.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_int8array/arm64_android.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_int8array/arm64_fuchsia.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_int8array/arm64_ios.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_int8array/arm64_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_int8array/arm64_macos.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_int8array/arm_android.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_int8array/arm_ios.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_int8array/arm_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_int8array/ia32_android.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_int8array/ia32_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_int8array/ia32_win.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_int8array/riscv32_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_int8array/riscv64_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_int8array/x64_fuchsia.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_int8array/x64_ios.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_int8array/x64_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_int8array/x64_macos.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_int8array/x64_win.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/arm64_android.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/arm64_fuchsia.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/arm64_ios.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/arm64_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/arm64_macos.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/arm_android.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/arm_ios.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/arm_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/ia32_android.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/ia32_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/ia32_win.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/riscv32_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/riscv64_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/x64_fuchsia.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/x64_ios.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/x64_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/x64_macos.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/x64_win.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/arm64_android.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/arm64_fuchsia.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/arm64_ios.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/arm64_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/arm64_macos.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/arm_android.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/arm_ios.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/arm_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/ia32_android.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/ia32_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/ia32_win.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/riscv32_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/riscv64_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/x64_fuchsia.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/x64_ios.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/x64_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/x64_macos.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/x64_win.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/arm64_android.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/arm64_fuchsia.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/arm64_ios.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/arm64_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/arm64_macos.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/arm_android.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/arm_ios.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/arm_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/ia32_android.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/ia32_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/ia32_win.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/riscv32_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/riscv64_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/x64_fuchsia.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/x64_ios.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/x64_linux.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/x64_macos.expect +FILE: ../../../third_party/dart/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/x64_win.expect +FILE: ../../../third_party/dart/samples/ffi/sqlite/docs/lib/scenario-default.svg +FILE: ../../../third_party/dart/samples/ffi/sqlite/docs/lib/scenario-full.svg +FILE: ../../../third_party/dart/sdk/lib/_internal/allowed_experiments.json +FILE: ../../../third_party/dart/sdk/lib/html/html_common/conversions_dart2js.dart +FILE: ../../../third_party/dart/sdk/lib/html/html_common/html_common.dart +FILE: ../../../third_party/dart/sdk/lib/libraries.json +FILE: ../../../third_party/dart/sdk/lib/vmservice_libraries.json +FILE: ../../../third_party/dart/third_party/clang.tar.gz.sha1 +---------------------------------------------------------------------------------------------------- +Copyright 2012, the Dart project authors. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: boringssl +ORIGIN: ../../../third_party/boringssl/ios-arm/crypto/fipsmodule/bsaes-armv7.S + ../../../third_party/boringssl/src/LICENSE +TYPE: LicenseType.unknown +FILE: ../../../third_party/boringssl/ios-arm/crypto/fipsmodule/bsaes-armv7.S +FILE: ../../../third_party/boringssl/linux-arm/crypto/fipsmodule/bsaes-armv7.S +---------------------------------------------------------------------------------------------------- +Copyright 2012-2016 The OpenSSL Project Authors. All Rights Reserved. + +Licensed under the OpenSSL license (the "License"). You may not use +this file except in compliance with the License. You can obtain a copy +in the file LICENSE in the source distribution or at +https://www.openssl.org/source/license.html +==================================================================================================== + +==================================================================================================== +LIBRARY: libwebp +ORIGIN: ../../../third_party/libwebp/imageio/wicdec.c + ../../../third_party/libwebp/COPYING +TYPE: LicenseType.bsd +FILE: ../../../third_party/libwebp/imageio/wicdec.c +FILE: ../../../third_party/libwebp/imageio/wicdec.h +FILE: ../../../third_party/libwebp/src/dec/alphai_dec.h +FILE: ../../../third_party/libwebp/src/dsp/alpha_processing.c +FILE: ../../../third_party/libwebp/src/utils/quant_levels_dec_utils.c +FILE: ../../../third_party/libwebp/src/utils/quant_levels_dec_utils.h +FILE: ../../../third_party/libwebp/src/utils/random_utils.c +FILE: ../../../third_party/libwebp/src/utils/random_utils.h +---------------------------------------------------------------------------------------------------- +Copyright 2013 Google Inc. All Rights Reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + * Neither the name of Google nor the names of its contributors may + be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: angle +ORIGIN: ../../../third_party/angle/include/GLSLANG/ShaderVars.h + ../../../third_party/angle/LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/angle/include/GLSLANG/ShaderVars.h +FILE: ../../../third_party/angle/samples/sample_util/SampleApplication.cpp +FILE: ../../../third_party/angle/src/common/mathutil.cpp +FILE: ../../../third_party/angle/src/compiler/translator/CodeGen.cpp +FILE: ../../../third_party/angle/src/compiler/translator/FlagStd140Structs.cpp +FILE: ../../../third_party/angle/src/compiler/translator/FlagStd140Structs.h +FILE: ../../../third_party/angle/src/compiler/translator/ValidateOutputs.cpp +FILE: ../../../third_party/angle/src/compiler/translator/ValidateOutputs.h +FILE: ../../../third_party/angle/src/compiler/translator/blocklayout.cpp +FILE: ../../../third_party/angle/src/compiler/translator/blocklayout.h +FILE: ../../../third_party/angle/src/compiler/translator/blocklayoutHLSL.cpp +FILE: ../../../third_party/angle/src/compiler/translator/blocklayoutHLSL.h +FILE: ../../../third_party/angle/src/gpu_info_util/SystemInfo.cpp +FILE: ../../../third_party/angle/src/gpu_info_util/SystemInfo.h +FILE: ../../../third_party/angle/src/gpu_info_util/SystemInfo_internal.h +FILE: ../../../third_party/angle/src/gpu_info_util/SystemInfo_libpci.cpp +FILE: ../../../third_party/angle/src/gpu_info_util/SystemInfo_linux.cpp +FILE: ../../../third_party/angle/src/gpu_info_util/SystemInfo_win.cpp +FILE: ../../../third_party/angle/src/gpu_info_util/SystemInfo_x11.cpp +FILE: ../../../third_party/angle/src/image_util/copyimage.cpp +FILE: ../../../third_party/angle/src/image_util/copyimage.h +FILE: ../../../third_party/angle/src/image_util/imageformats.h +FILE: ../../../third_party/angle/src/image_util/loadimage.cpp +FILE: ../../../third_party/angle/src/image_util/loadimage.h +FILE: ../../../third_party/angle/src/image_util/loadimage_etc.cpp +FILE: ../../../third_party/angle/src/libANGLE/Constants.h +FILE: ../../../third_party/angle/src/libANGLE/IndexRangeCache.cpp +FILE: ../../../third_party/angle/src/libANGLE/IndexRangeCache.h +FILE: ../../../third_party/angle/src/libANGLE/Sampler.cpp +FILE: ../../../third_party/angle/src/libANGLE/Sampler.h +FILE: ../../../third_party/angle/src/libANGLE/VertexArray.cpp +FILE: ../../../third_party/angle/src/libANGLE/VertexArray.h +FILE: ../../../third_party/angle/src/libANGLE/VertexAttribute.h +FILE: ../../../third_party/angle/src/libANGLE/angletypes.cpp +FILE: ../../../third_party/angle/src/libANGLE/formatutils.cpp +FILE: ../../../third_party/angle/src/libANGLE/formatutils.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/QueryImpl.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/copyvertex.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/Blit11.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/Blit11.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/Clear11.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/Clear11.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/Fence11.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/Fence11.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/PixelTransfer11.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/PixelTransfer11.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/Query11.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/Query11.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/VertexBuffer11.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/formatutils11.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/formatutils11.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/Fence9.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/Fence9.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/Query9.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/Query9.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/formatutils9.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/formatutils9.h +FILE: ../../../third_party/angle/src/libANGLE/validationES.cpp +FILE: ../../../third_party/angle/src/libANGLE/validationES.h +FILE: ../../../third_party/angle/src/libANGLE/validationES2.cpp +FILE: ../../../third_party/angle/src/libANGLE/validationES3.cpp +FILE: ../../../third_party/angle/util/EGLWindow.cpp +---------------------------------------------------------------------------------------------------- +Copyright 2013 The ANGLE Project Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + + Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. + Ltd., nor the names of their contributors may be used to endorse + or promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: boringssl +ORIGIN: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/rsaz_exp.c + ../../../third_party/boringssl/src/LICENSE +TYPE: LicenseType.unknown +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/rsaz_exp.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/rsaz_exp.h +---------------------------------------------------------------------------------------------------- +Copyright 2013-2016 The OpenSSL Project Authors. All Rights Reserved. +Copyright (c) 2012, Intel Corporation. All Rights Reserved. + +Licensed under the OpenSSL license (the "License"). You may not use +this file except in compliance with the License. You can obtain a copy +in the file LICENSE in the source distribution or at +https://www.openssl.org/source/license.html +==================================================================================================== + +==================================================================================================== +LIBRARY: libwebp +ORIGIN: ../../../third_party/libwebp/imageio/webpdec.c + ../../../third_party/libwebp/COPYING +TYPE: LicenseType.bsd +FILE: ../../../third_party/libwebp/imageio/webpdec.c +FILE: ../../../third_party/libwebp/imageio/webpdec.h +FILE: ../../../third_party/libwebp/src/dsp/alpha_processing_mips_dsp_r2.c +FILE: ../../../third_party/libwebp/src/dsp/alpha_processing_sse2.c +FILE: ../../../third_party/libwebp/src/dsp/cost.c +FILE: ../../../third_party/libwebp/src/dsp/cost_mips32.c +FILE: ../../../third_party/libwebp/src/dsp/cost_mips_dsp_r2.c +FILE: ../../../third_party/libwebp/src/dsp/dec_clip_tables.c +FILE: ../../../third_party/libwebp/src/dsp/dec_mips32.c +FILE: ../../../third_party/libwebp/src/dsp/dec_mips_dsp_r2.c +FILE: ../../../third_party/libwebp/src/dsp/enc_mips32.c +FILE: ../../../third_party/libwebp/src/dsp/enc_mips_dsp_r2.c +FILE: ../../../third_party/libwebp/src/dsp/filters_mips_dsp_r2.c +FILE: ../../../third_party/libwebp/src/dsp/lossless_mips_dsp_r2.c +FILE: ../../../third_party/libwebp/src/dsp/lossless_neon.c +FILE: ../../../third_party/libwebp/src/dsp/lossless_sse2.c +FILE: ../../../third_party/libwebp/src/dsp/mips_macro.h +FILE: ../../../third_party/libwebp/src/dsp/neon.h +FILE: ../../../third_party/libwebp/src/dsp/rescaler.c +FILE: ../../../third_party/libwebp/src/dsp/rescaler_mips32.c +FILE: ../../../third_party/libwebp/src/dsp/rescaler_mips_dsp_r2.c +FILE: ../../../third_party/libwebp/src/dsp/upsampling_mips_dsp_r2.c +FILE: ../../../third_party/libwebp/src/dsp/yuv_mips32.c +FILE: ../../../third_party/libwebp/src/dsp/yuv_mips_dsp_r2.c +FILE: ../../../third_party/libwebp/src/dsp/yuv_sse2.c +FILE: ../../../third_party/libwebp/src/dsp/yuv_sse41.c +FILE: ../../../third_party/libwebp/src/enc/near_lossless_enc.c +FILE: ../../../third_party/libwebp/src/enc/picture_csp_enc.c +FILE: ../../../third_party/libwebp/src/enc/picture_psnr_enc.c +FILE: ../../../third_party/libwebp/src/enc/picture_rescale_enc.c +FILE: ../../../third_party/libwebp/src/enc/picture_tools_enc.c +FILE: ../../../third_party/libwebp/src/mux/anim_encode.c +FILE: ../../../third_party/libwebp/src/utils/bit_reader_inl_utils.h +FILE: ../../../third_party/libwebp/src/utils/endian_inl_utils.h +---------------------------------------------------------------------------------------------------- +Copyright 2014 Google Inc. All Rights Reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + * Neither the name of Google nor the names of its contributors may + be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: angle +ORIGIN: ../../../third_party/angle/include/angle_gl.h + ../../../third_party/angle/LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/angle/include/angle_gl.h +FILE: ../../../third_party/angle/include/angle_windowsstore.h +FILE: ../../../third_party/angle/include/export.h +FILE: ../../../third_party/angle/samples/hello_triangle/HelloTriangle.cpp +FILE: ../../../third_party/angle/samples/mip_map_2d/MipMap2D.cpp +FILE: ../../../third_party/angle/samples/multi_texture/MultiTexture.cpp +FILE: ../../../third_party/angle/samples/multiple_draw_buffers/MultipleDrawBuffers.cpp +FILE: ../../../third_party/angle/samples/particle_system/ParticleSystem.cpp +FILE: ../../../third_party/angle/samples/post_sub_buffer/PostSubBuffer.cpp +FILE: ../../../third_party/angle/samples/sample_util/SampleApplication.h +FILE: ../../../third_party/angle/samples/sample_util/texture_utils.cpp +FILE: ../../../third_party/angle/samples/sample_util/texture_utils.h +FILE: ../../../third_party/angle/samples/sample_util/tga_utils.cpp +FILE: ../../../third_party/angle/samples/sample_util/tga_utils.h +FILE: ../../../third_party/angle/samples/simple_instancing/SimpleInstancing.cpp +FILE: ../../../third_party/angle/samples/simple_texture_2d/SimpleTexture2D.cpp +FILE: ../../../third_party/angle/samples/simple_texture_cubemap/SimpleTextureCubemap.cpp +FILE: ../../../third_party/angle/samples/simple_vertex_shader/SimpleVertexShader.cpp +FILE: ../../../third_party/angle/samples/stencil_operations/StencilOperations.cpp +FILE: ../../../third_party/angle/samples/tex_redef_microbench/TexRedefMicroBench.cpp +FILE: ../../../third_party/angle/samples/texture_wrap/TextureWrap.cpp +FILE: ../../../third_party/angle/samples/tri_fan_microbench/TriFanMicroBench.cpp +FILE: ../../../third_party/angle/src/common/MemoryBuffer.cpp +FILE: ../../../third_party/angle/src/common/MemoryBuffer.h +FILE: ../../../third_party/angle/src/common/angle_version.h +FILE: ../../../third_party/angle/src/common/angleutils.cpp +FILE: ../../../third_party/angle/src/common/platform.h +FILE: ../../../third_party/angle/src/common/system_utils.h +FILE: ../../../third_party/angle/src/common/system_utils_win.cpp +FILE: ../../../third_party/angle/src/common/tls.cpp +FILE: ../../../third_party/angle/src/common/tls.h +FILE: ../../../third_party/angle/src/compiler/translator/BuiltInFunctionEmulatorHLSL.cpp +FILE: ../../../third_party/angle/src/compiler/translator/BuiltInFunctionEmulatorHLSL.h +FILE: ../../../third_party/angle/src/compiler/translator/ResourcesHLSL.cpp +FILE: ../../../third_party/angle/src/compiler/translator/ResourcesHLSL.h +FILE: ../../../third_party/angle/src/compiler/translator/ShaderVars.cpp +FILE: ../../../third_party/angle/src/compiler/translator/StructureHLSL.cpp +FILE: ../../../third_party/angle/src/compiler/translator/StructureHLSL.h +FILE: ../../../third_party/angle/src/compiler/translator/UtilsHLSL.cpp +FILE: ../../../third_party/angle/src/compiler/translator/UtilsHLSL.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/d3d/RewriteElseBlocks.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/d3d/RewriteElseBlocks.h +FILE: ../../../third_party/angle/src/image_util/copyimage.inc +FILE: ../../../third_party/angle/src/image_util/loadimage.inc +FILE: ../../../third_party/angle/src/libANGLE/AttributeMap.cpp +FILE: ../../../third_party/angle/src/libANGLE/AttributeMap.h +FILE: ../../../third_party/angle/src/libANGLE/Caps.cpp +FILE: ../../../third_party/angle/src/libANGLE/Caps.h +FILE: ../../../third_party/angle/src/libANGLE/Compiler.cpp +FILE: ../../../third_party/angle/src/libANGLE/Compiler.h +FILE: ../../../third_party/angle/src/libANGLE/Config_unittest.cpp +FILE: ../../../third_party/angle/src/libANGLE/Error.cpp +FILE: ../../../third_party/angle/src/libANGLE/Error.h +FILE: ../../../third_party/angle/src/libANGLE/Error.inc +FILE: ../../../third_party/angle/src/libANGLE/Fence_unittest.cpp +FILE: ../../../third_party/angle/src/libANGLE/FramebufferAttachment.cpp +FILE: ../../../third_party/angle/src/libANGLE/FramebufferAttachment.h +FILE: ../../../third_party/angle/src/libANGLE/ImageIndex.cpp +FILE: ../../../third_party/angle/src/libANGLE/ImageIndex.h +FILE: ../../../third_party/angle/src/libANGLE/ImageIndexIterator_unittest.cpp +FILE: ../../../third_party/angle/src/libANGLE/State.cpp +FILE: ../../../third_party/angle/src/libANGLE/State.h +FILE: ../../../third_party/angle/src/libANGLE/Surface_unittest.cpp +FILE: ../../../third_party/angle/src/libANGLE/TransformFeedback.cpp +FILE: ../../../third_party/angle/src/libANGLE/TransformFeedback.h +FILE: ../../../third_party/angle/src/libANGLE/TransformFeedback_unittest.cpp +FILE: ../../../third_party/angle/src/libANGLE/VertexAttribute.cpp +FILE: ../../../third_party/angle/src/libANGLE/features.h +FILE: ../../../third_party/angle/src/libANGLE/queryconversions.cpp +FILE: ../../../third_party/angle/src/libANGLE/queryconversions.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/BufferImpl.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/CompilerImpl.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/DisplayImpl.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/DisplayImpl.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/FramebufferImpl.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/ProgramImpl.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/RenderbufferImpl.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/SamplerImpl.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/ShaderImpl.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/SurfaceImpl.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/TextureImpl.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/TransformFeedbackImpl.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/VertexArrayImpl.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/copyvertex.inc.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/BufferD3D.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/BufferD3D.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/CompilerD3D.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/DisplayD3D.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/DisplayD3D.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/DynamicHLSL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/DynamicHLSL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/FramebufferD3D.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/FramebufferD3D.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/HLSLCompiler.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/ProgramD3D.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/ProgramD3D.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/RenderbufferD3D.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/RenderbufferD3D.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/RendererD3D.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/RendererD3D.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/SamplerD3D.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/ShaderD3D.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/ShaderD3D.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/SurfaceD3D.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/SurfaceD3D.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/TextureD3D.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/TextureD3D.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/Buffer11.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/Buffer11.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/Framebuffer11.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/Framebuffer11.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/TransformFeedback11.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/TransformFeedback11.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/Trim11.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/Trim11.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/VertexArray11.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow_unittest.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/winrt/InspectableNativeWindow.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/winrt/InspectableNativeWindow.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/winrt/SwapChainPanelNativeWindow.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/winrt/SwapChainPanelNativeWindow.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/winrt/SwapChainPanelNativeWindow_unittest.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/Buffer9.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/Buffer9.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/Framebuffer9.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/Framebuffer9.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/VertexArray9.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/SamplerGL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/SamplerGL.h +FILE: ../../../third_party/angle/src/libGLESv2/global_state.cpp +FILE: ../../../third_party/angle/src/libGLESv2/global_state.h +FILE: ../../../third_party/angle/util/EGLWindow.h +FILE: ../../../third_party/angle/util/Event.h +FILE: ../../../third_party/angle/util/Matrix.cpp +FILE: ../../../third_party/angle/util/Matrix.h +FILE: ../../../third_party/angle/util/OSWindow.cpp +FILE: ../../../third_party/angle/util/OSWindow.h +FILE: ../../../third_party/angle/util/com_utils.h +FILE: ../../../third_party/angle/util/geometry_utils.cpp +FILE: ../../../third_party/angle/util/geometry_utils.h +FILE: ../../../third_party/angle/util/keyboard.h +FILE: ../../../third_party/angle/util/mouse.h +FILE: ../../../third_party/angle/util/random_utils.cpp +FILE: ../../../third_party/angle/util/random_utils.h +FILE: ../../../third_party/angle/util/shader_utils.cpp +FILE: ../../../third_party/angle/util/shader_utils.h +FILE: ../../../third_party/angle/util/test_utils.h +FILE: ../../../third_party/angle/util/windows/test_utils_win.cpp +FILE: ../../../third_party/angle/util/windows/win32/Win32Window.cpp +FILE: ../../../third_party/angle/util/windows/win32/Win32Window.h +FILE: ../../../third_party/angle/util/windows/win32/test_utils_win32.cpp +---------------------------------------------------------------------------------------------------- +Copyright 2014 The ANGLE Project Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + + Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. + Ltd., nor the names of their contributors may be used to endorse + or promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: base +LIBRARY: icu +LIBRARY: zlib +ORIGIN: ../../../LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/angle/src/common/third_party/base/anglebase/numerics/safe_conversions.h +FILE: ../../../third_party/angle/src/common/third_party/base/anglebase/numerics/safe_conversions_impl.h +FILE: ../../../third_party/icu/icu.isolate +FILE: ../../../third_party/zlib/google/compression_utils.cc +FILE: ../../../third_party/zlib/google/compression_utils.h +FILE: ../../../third_party/zlib/google/compression_utils_unittest.cc +---------------------------------------------------------------------------------------------------- +Copyright 2014 The Chromium Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: boringssl +ORIGIN: ../../../third_party/boringssl/ios-aarch64/crypto/fipsmodule/sha256-armv8.S + ../../../third_party/boringssl/src/LICENSE +TYPE: LicenseType.unknown +FILE: ../../../third_party/boringssl/ios-aarch64/crypto/fipsmodule/sha256-armv8.S +FILE: ../../../third_party/boringssl/ios-aarch64/crypto/fipsmodule/sha512-armv8.S +FILE: ../../../third_party/boringssl/linux-aarch64/crypto/fipsmodule/sha256-armv8.S +FILE: ../../../third_party/boringssl/linux-aarch64/crypto/fipsmodule/sha512-armv8.S +FILE: ../../../third_party/boringssl/win-aarch64/crypto/fipsmodule/sha256-armv8.S +FILE: ../../../third_party/boringssl/win-aarch64/crypto/fipsmodule/sha512-armv8.S +---------------------------------------------------------------------------------------------------- +Copyright 2014-2016 The OpenSSL Project Authors. All Rights Reserved. + +Licensed under the OpenSSL license (the "License"). You may not use +this file except in compliance with the License. You can obtain a copy +in the file LICENSE in the source distribution or at +https://www.openssl.org/source/license.html +==================================================================================================== + +==================================================================================================== +LIBRARY: boringssl +ORIGIN: ../../../third_party/boringssl/src/crypto/fipsmodule/ec/p256-x86_64.c + ../../../third_party/boringssl/src/LICENSE +TYPE: LicenseType.unknown +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/ec/p256-x86_64.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/ec/p256-x86_64.h +---------------------------------------------------------------------------------------------------- +Copyright 2014-2016 The OpenSSL Project Authors. All Rights Reserved. +Copyright (c) 2014, Intel Corporation. All Rights Reserved. + +Licensed under the OpenSSL license (the "License"). You may not use +this file except in compliance with the License. You can obtain a copy +in the file LICENSE in the source distribution or at +https://www.openssl.org/source/license.html +==================================================================================================== + +==================================================================================================== +LIBRARY: boringssl +ORIGIN: ../../../third_party/boringssl/src/crypto/fipsmodule/ec/make_tables.go + ../../../third_party/boringssl/src/LICENSE +TYPE: LicenseType.unknown +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/ec/make_tables.go +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/ec/p256-x86_64-table.h +---------------------------------------------------------------------------------------------------- +Copyright 2014-2016 The OpenSSL Project Authors. All Rights Reserved. +Copyright (c) 2015, Intel Inc. + +Licensed under the OpenSSL license (the "License"). You may not use +this file except in compliance with the License. You can obtain a copy +in the file LICENSE in the source distribution or at +https://www.openssl.org/source/license.html +==================================================================================================== + +==================================================================================================== +LIBRARY: libwebp +ORIGIN: ../../../third_party/libwebp/extras/extras.c + ../../../third_party/libwebp/COPYING +TYPE: LicenseType.bsd +FILE: ../../../third_party/libwebp/extras/extras.c +FILE: ../../../third_party/libwebp/extras/extras.h +FILE: ../../../third_party/libwebp/src/dec/common_dec.h +FILE: ../../../third_party/libwebp/src/demux/anim_decode.c +FILE: ../../../third_party/libwebp/src/dsp/alpha_processing_sse41.c +FILE: ../../../third_party/libwebp/src/dsp/cost_sse2.c +FILE: ../../../third_party/libwebp/src/dsp/dec_sse41.c +FILE: ../../../third_party/libwebp/src/dsp/enc_sse41.c +FILE: ../../../third_party/libwebp/src/dsp/filters_sse2.c +FILE: ../../../third_party/libwebp/src/dsp/lossless_enc.c +FILE: ../../../third_party/libwebp/src/dsp/lossless_enc_mips32.c +FILE: ../../../third_party/libwebp/src/dsp/lossless_enc_mips_dsp_r2.c +FILE: ../../../third_party/libwebp/src/dsp/lossless_enc_neon.c +FILE: ../../../third_party/libwebp/src/dsp/lossless_enc_sse2.c +FILE: ../../../third_party/libwebp/src/dsp/lossless_enc_sse41.c +FILE: ../../../third_party/libwebp/src/dsp/rescaler_neon.c +FILE: ../../../third_party/libwebp/src/dsp/rescaler_sse2.c +---------------------------------------------------------------------------------------------------- +Copyright 2015 Google Inc. All Rights Reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + * Neither the name of Google nor the names of its contributors may + be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: angle +ORIGIN: ../../../third_party/angle/include/platform/PlatformMethods.h + ../../../third_party/angle/LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/angle/include/platform/PlatformMethods.h +FILE: ../../../third_party/angle/samples/WindowTest/WindowTest.cpp +FILE: ../../../third_party/angle/samples/multi_window/MultiWindow.cpp +FILE: ../../../third_party/angle/src/common/Optional.h +FILE: ../../../third_party/angle/src/common/Optional_unittest.cpp +FILE: ../../../third_party/angle/src/common/bitset_utils.h +FILE: ../../../third_party/angle/src/common/bitset_utils_unittest.cpp +FILE: ../../../third_party/angle/src/common/mathutil_unittest.cpp +FILE: ../../../third_party/angle/src/common/matrix_utils.h +FILE: ../../../third_party/angle/src/common/matrix_utils_unittest.cpp +FILE: ../../../third_party/angle/src/common/string_utils.cpp +FILE: ../../../third_party/angle/src/common/string_utils.h +FILE: ../../../third_party/angle/src/common/string_utils_unittest.cpp +FILE: ../../../third_party/angle/src/common/system_utils_ios.cpp +FILE: ../../../third_party/angle/src/common/system_utils_ios.mm +FILE: ../../../third_party/angle/src/common/system_utils_linux.cpp +FILE: ../../../third_party/angle/src/common/system_utils_mac.cpp +FILE: ../../../third_party/angle/src/common/utilities_unittest.cpp +FILE: ../../../third_party/angle/src/compiler/translator/ExtensionGLSL.cpp +FILE: ../../../third_party/angle/src/compiler/translator/ExtensionGLSL.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/apple/RewriteDoWhile.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/apple/RewriteDoWhile.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_util/FindSymbolNode.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_util/FindSymbolNode.h +FILE: ../../../third_party/angle/src/image_util/generatemip.inc +FILE: ../../../third_party/angle/src/libANGLE/BinaryStream_unittest.cpp +FILE: ../../../third_party/angle/src/libANGLE/Debug.cpp +FILE: ../../../third_party/angle/src/libANGLE/Debug.h +FILE: ../../../third_party/angle/src/libANGLE/Device.cpp +FILE: ../../../third_party/angle/src/libANGLE/Device.h +FILE: ../../../third_party/angle/src/libANGLE/HandleAllocator_unittest.cpp +FILE: ../../../third_party/angle/src/libANGLE/Image.cpp +FILE: ../../../third_party/angle/src/libANGLE/Image.h +FILE: ../../../third_party/angle/src/libANGLE/Image_unittest.cpp +FILE: ../../../third_party/angle/src/libANGLE/Platform.cpp +FILE: ../../../third_party/angle/src/libANGLE/Program_unittest.cpp +FILE: ../../../third_party/angle/src/libANGLE/ResourceManager_unittest.cpp +FILE: ../../../third_party/angle/src/libANGLE/VaryingPacking.cpp +FILE: ../../../third_party/angle/src/libANGLE/VaryingPacking.h +FILE: ../../../third_party/angle/src/libANGLE/Version.h +FILE: ../../../third_party/angle/src/libANGLE/Version.inc +FILE: ../../../third_party/angle/src/libANGLE/VertexAttribute.inc +FILE: ../../../third_party/angle/src/libANGLE/histogram_macros.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/BufferImpl_mock.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/DeviceImpl.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/DeviceImpl.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/FenceNVImpl.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/FramebufferImpl_mock.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/GLImplFactory.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/ImageImpl.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/ImageImpl_mock.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/ProgramImpl_mock.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/RenderbufferImpl_mock.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/SyncImpl.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/TextureImpl_mock.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/TransformFeedbackImpl_mock.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/CompilerD3D.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/DeviceD3D.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/DeviceD3D.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/EGLImageD3D.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/EGLImageD3D.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/DebugAnnotator11.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/DebugAnnotator11.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/StateManager11.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/StateManager11.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/texture_format_table.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/texture_format_table_autogen.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/DebugAnnotator9.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/DebugAnnotator9.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/StateManager9.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/StateManager9.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/formatutilsD3D.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/dxgi_support_table.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/dxgi_support_table_autogen.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/BlitGL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/BlitGL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/BufferGL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/BufferGL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/CompilerGL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/CompilerGL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/DisplayGL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/DisplayGL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/FenceNVGL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/FenceNVGL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/FramebufferGL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/FramebufferGL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/FunctionsGL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/FunctionsGL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/ProgramGL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/ProgramGL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/QueryGL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/QueryGL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/RenderbufferGL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/RenderbufferGL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/RendererGL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/RendererGL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/ShaderGL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/ShaderGL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/StateManagerGL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/StateManagerGL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/SurfaceGL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/SurfaceGL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/SyncGL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/SyncGL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/TextureGL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/TextureGL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/TransformFeedbackGL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/TransformFeedbackGL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/VertexArrayGL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/VertexArrayGL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/cgl/DisplayCGL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/cgl/DisplayCGL.mm +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/cgl/IOSurfaceSurfaceCGL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/cgl/PbufferSurfaceCGL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/cgl/PbufferSurfaceCGL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/cgl/WindowSurfaceCGL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/cgl/WindowSurfaceCGL.mm +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/formatutilsgl.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/formatutilsgl.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/functionsgl_enums.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/functionsgl_typedefs.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/glx/DisplayGLX.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/glx/DisplayGLX.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/glx/FunctionsGLX.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/glx/FunctionsGLX.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/glx/PbufferSurfaceGLX.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/glx/PbufferSurfaceGLX.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/glx/WindowSurfaceGLX.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/glx/WindowSurfaceGLX.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/glx/functionsglx_typedefs.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/glx/platform_glx.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/wgl/D3DTextureSurfaceWGL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/wgl/D3DTextureSurfaceWGL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/wgl/DXGISwapChainWindowSurfaceWGL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/wgl/DXGISwapChainWindowSurfaceWGL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/wgl/DisplayWGL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/wgl/DisplayWGL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/wgl/FunctionsWGL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/wgl/FunctionsWGL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/wgl/PbufferSurfaceWGL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/wgl/PbufferSurfaceWGL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/wgl/WindowSurfaceWGL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/wgl/WindowSurfaceWGL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/wgl/functionswgl_typedefs.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/wgl/wgl_utils.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/wgl/wgl_utils.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/load_functions_table.h +FILE: ../../../third_party/angle/src/libANGLE/validationEGL.h +FILE: ../../../third_party/angle/util/OSPixmap.h +FILE: ../../../third_party/angle/util/linux/x11/X11Pixmap.cpp +FILE: ../../../third_party/angle/util/linux/x11/X11Pixmap.h +FILE: ../../../third_party/angle/util/linux/x11/X11Window.cpp +FILE: ../../../third_party/angle/util/linux/x11/X11Window.h +FILE: ../../../third_party/angle/util/osx/OSXPixmap.h +FILE: ../../../third_party/angle/util/osx/OSXPixmap.mm +FILE: ../../../third_party/angle/util/osx/OSXWindow.h +FILE: ../../../third_party/angle/util/osx/OSXWindow.mm +FILE: ../../../third_party/angle/util/posix/test_utils_posix.cpp +FILE: ../../../third_party/angle/util/windows/win32/Win32Pixmap.cpp +FILE: ../../../third_party/angle/util/windows/win32/Win32Pixmap.h +---------------------------------------------------------------------------------------------------- +Copyright 2015 The ANGLE Project Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + + Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. + Ltd., nor the names of their contributors may be used to endorse + or promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: icu +LIBRARY: vulkan-deps +ORIGIN: ../../../third_party/icu/scripts/LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/icu/fuzzers/icu_unicode_string_codepage_create_fuzzer.cc +FILE: ../../../third_party/icu/scripts/accept_lang.list +FILE: ../../../third_party/icu/scripts/chrome_ui_languages.list +FILE: ../../../third_party/icu/scripts/currencies.list +FILE: ../../../third_party/vulkan-deps/.gitignore +FILE: ../../../third_party/vulkan-deps/DEPS +FILE: ../../../third_party/vulkan-deps/additional_readme_paths.json +---------------------------------------------------------------------------------------------------- +Copyright 2015 The Chromium Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: boringssl +ORIGIN: ../../../third_party/boringssl/src/third_party/googletest/include/gtest/internal/custom/gtest-port.h +TYPE: LicenseType.bsd +FILE: ../../../third_party/boringssl/src/third_party/googletest/include/gtest/internal/custom/gtest-port.h +FILE: ../../../third_party/boringssl/src/third_party/googletest/include/gtest/internal/custom/gtest-printers.h +FILE: ../../../third_party/boringssl/src/third_party/googletest/include/gtest/internal/custom/gtest.h +FILE: ../../../third_party/boringssl/src/third_party/googletest/include/gtest/internal/gtest-port-arch.h +---------------------------------------------------------------------------------------------------- +Copyright 2015, Google Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: boringssl +ORIGIN: ../../../third_party/boringssl/src/crypto/evp/scrypt.c + ../../../third_party/boringssl/src/LICENSE +TYPE: LicenseType.unknown +FILE: ../../../third_party/boringssl/src/crypto/evp/scrypt.c +---------------------------------------------------------------------------------------------------- +Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved. + +Licensed under the OpenSSL license (the "License"). You may not use +this file except in compliance with the License. You can obtain a copy +in the file LICENSE in the source distribution or at +https://www.openssl.org/source/license.html +==================================================================================================== + +==================================================================================================== +LIBRARY: boringssl +ORIGIN: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/montgomery_inv.c +TYPE: LicenseType.unknown +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/montgomery_inv.c +---------------------------------------------------------------------------------------------------- +Copyright 2016 Brian Smith. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY +SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION +OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN +CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +==================================================================================================== + +==================================================================================================== +LIBRARY: libwebp +ORIGIN: ../../../third_party/libwebp/extras/get_disto.c + ../../../third_party/libwebp/COPYING +TYPE: LicenseType.bsd +FILE: ../../../third_party/libwebp/extras/get_disto.c +FILE: ../../../third_party/libwebp/extras/quality_estimate.c +FILE: ../../../third_party/libwebp/imageio/image_dec.c +FILE: ../../../third_party/libwebp/imageio/image_dec.h +FILE: ../../../third_party/libwebp/imageio/image_enc.c +FILE: ../../../third_party/libwebp/imageio/image_enc.h +FILE: ../../../third_party/libwebp/imageio/imageio_util.c +FILE: ../../../third_party/libwebp/imageio/imageio_util.h +FILE: ../../../third_party/libwebp/src/dsp/common_sse2.h +FILE: ../../../third_party/libwebp/src/dsp/common_sse41.h +FILE: ../../../third_party/libwebp/src/dsp/dec_msa.c +FILE: ../../../third_party/libwebp/src/dsp/enc_msa.c +FILE: ../../../third_party/libwebp/src/dsp/filters_msa.c +FILE: ../../../third_party/libwebp/src/dsp/lossless_enc_msa.c +FILE: ../../../third_party/libwebp/src/dsp/lossless_msa.c +FILE: ../../../third_party/libwebp/src/dsp/msa_macro.h +FILE: ../../../third_party/libwebp/src/dsp/rescaler_msa.c +FILE: ../../../third_party/libwebp/src/dsp/upsampling_msa.c +FILE: ../../../third_party/libwebp/src/enc/predictor_enc.c +FILE: ../../../third_party/libwebp/src/mux/animi.h +---------------------------------------------------------------------------------------------------- +Copyright 2016 Google Inc. All Rights Reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + * Neither the name of Google nor the names of its contributors may + be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: angle +LIBRARY: base +ORIGIN: ../../../third_party/angle/src/common/third_party/base/anglebase/logging.h + ../../../third_party/angle/LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/angle/src/common/Color.h +FILE: ../../../third_party/angle/src/common/Color.inc +FILE: ../../../third_party/angle/src/common/third_party/base/anglebase/logging.h +FILE: ../../../third_party/angle/src/common/vector_utils.h +FILE: ../../../third_party/angle/src/common/vector_utils_unittest.cpp +FILE: ../../../third_party/angle/src/common/vulkan/vk_headers.h +FILE: ../../../third_party/angle/src/compiler/fuzz/translator_fuzzer.cpp +FILE: ../../../third_party/angle/src/compiler/translator/ConstantUnion.cpp +FILE: ../../../third_party/angle/src/compiler/translator/OutputVulkanGLSL.cpp +FILE: ../../../third_party/angle/src/compiler/translator/OutputVulkanGLSL.h +FILE: ../../../third_party/angle/src/compiler/translator/Severity.h +FILE: ../../../third_party/angle/src/compiler/translator/TextureFunctionHLSL.cpp +FILE: ../../../third_party/angle/src/compiler/translator/TextureFunctionHLSL.h +FILE: ../../../third_party/angle/src/compiler/translator/TranslatorVulkan.cpp +FILE: ../../../third_party/angle/src/compiler/translator/TranslatorVulkan.h +FILE: ../../../third_party/angle/src/compiler/translator/ValidateMaxParameters.cpp +FILE: ../../../third_party/angle/src/compiler/translator/ValidateMaxParameters.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/DeferGlobalInitializers.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/DeferGlobalInitializers.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/RemoveInvariantDeclaration.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/RemoveInvariantDeclaration.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/RewriteTexelFetchOffset.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/RewriteTexelFetchOffset.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/SimplifyLoopConditions.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/SimplifyLoopConditions.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/SplitSequenceOperator.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/SplitSequenceOperator.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/apple/AddAndTrueToLoopCondition.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/apple/AddAndTrueToLoopCondition.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/apple/RewriteUnaryMinusOperatorFloat.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/apple/RewriteUnaryMinusOperatorFloat.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/d3d/AddDefaultReturnStatements.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/d3d/AddDefaultReturnStatements.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/d3d/BreakVariableAliasingInInnerLoops.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/d3d/BreakVariableAliasingInInnerLoops.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/d3d/ExpandIntegerPowExpressions.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/d3d/ExpandIntegerPowExpressions.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/d3d/RewriteUnaryMinusOperatorInt.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/d3d/RewriteUnaryMinusOperatorInt.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/gl/UseInterfaceBlockFields.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/gl/UseInterfaceBlockFields.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_util/IntermNodePatternMatcher.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_util/IntermNodePatternMatcher.h +FILE: ../../../third_party/angle/src/image_util/imageformats.cpp +FILE: ../../../third_party/angle/src/libANGLE/Observer.h +FILE: ../../../third_party/angle/src/libANGLE/Observer_unittest.cpp +FILE: ../../../third_party/angle/src/libANGLE/Stream.cpp +FILE: ../../../third_party/angle/src/libANGLE/Stream.h +FILE: ../../../third_party/angle/src/libANGLE/Thread.cpp +FILE: ../../../third_party/angle/src/libANGLE/Thread.h +FILE: ../../../third_party/angle/src/libANGLE/VaryingPacking_unittest.cpp +FILE: ../../../third_party/angle/src/libANGLE/WorkerThread.cpp +FILE: ../../../third_party/angle/src/libANGLE/WorkerThread.h +FILE: ../../../third_party/angle/src/libANGLE/WorkerThread_unittest.cpp +FILE: ../../../third_party/angle/src/libANGLE/es3_copy_conversion_table_autogen.cpp +FILE: ../../../third_party/angle/src/libANGLE/format_map_autogen.cpp +FILE: ../../../third_party/angle/src/libANGLE/queryutils.cpp +FILE: ../../../third_party/angle/src/libANGLE/queryutils.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/ContextImpl.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/ContextImpl.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/EGLImplFactory.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/Format.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/FramebufferAttachmentObjectImpl.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/StreamProducerImpl.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/TextureImpl.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/HLSLCompiler.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/NativeWindowD3D.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/NativeWindowD3D.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/SwapChainD3D.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/Context11.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/Context11.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/NativeWindow11.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/StreamProducerD3DTexture.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/StreamProducerD3DTexture.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/VertexArray11.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/texture_format_table.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/texture_format_table_utils.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/win32/NativeWindow11Win32.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/win32/NativeWindow11Win32.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/winrt/NativeWindow11WinRT.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/winrt/NativeWindow11WinRT.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/Context9.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/Context9.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/NativeWindow9.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/NativeWindow9.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/driver_utils.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/driver_utils.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/ContextGL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/ContextGL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/egl/DisplayEGL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/egl/DisplayEGL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/egl/FunctionsEGL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/egl/FunctionsEGL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/egl/FunctionsEGLDL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/egl/FunctionsEGLDL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/egl/PbufferSurfaceEGL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/egl/PbufferSurfaceEGL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/egl/SurfaceEGL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/egl/SurfaceEGL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/egl/WindowSurfaceEGL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/egl/WindowSurfaceEGL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/egl/android/DisplayAndroid.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/egl/android/DisplayAndroid.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/egl/functionsegl_typedefs.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/egl/gbm/DisplayGbm.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/egl/gbm/DisplayGbm.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/egl/gbm/SurfaceGbm.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/egl/gbm/SurfaceGbm.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/glx/SurfaceGLX.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/null/BufferNULL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/null/BufferNULL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/null/CompilerNULL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/null/CompilerNULL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/null/ContextNULL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/null/ContextNULL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/null/DeviceNULL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/null/DeviceNULL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/null/DisplayNULL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/null/DisplayNULL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/null/FenceNVNULL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/null/FenceNVNULL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/null/FramebufferNULL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/null/FramebufferNULL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/null/ImageNULL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/null/ImageNULL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/null/ProgramNULL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/null/ProgramNULL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/null/QueryNULL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/null/QueryNULL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/null/RenderbufferNULL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/null/RenderbufferNULL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/null/SamplerNULL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/null/SamplerNULL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/null/ShaderNULL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/null/ShaderNULL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/null/SurfaceNULL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/null/SurfaceNULL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/null/SyncNULL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/null/SyncNULL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/null/TextureNULL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/null/TextureNULL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/null/TransformFeedbackNULL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/null/TransformFeedbackNULL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/null/VertexArrayNULL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/null/VertexArrayNULL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/renderer_utils.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/renderer_utils.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/BufferVk.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/BufferVk.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/CompilerVk.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/CompilerVk.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/ContextVk.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/ContextVk.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/DeviceVk.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/DeviceVk.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/DisplayVk.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/DisplayVk.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/FenceNVVk.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/FenceNVVk.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/FramebufferVk.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/FramebufferVk.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/GlslangWrapperVk.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/GlslangWrapperVk.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/ImageVk.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/ImageVk.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/ProgramVk.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/ProgramVk.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/QueryVk.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/QueryVk.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/RenderTargetVk.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/RenderTargetVk.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/RenderbufferVk.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/RenderbufferVk.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/RendererVk.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/RendererVk.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/SamplerVk.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/SamplerVk.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/ShaderVk.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/ShaderVk.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/SurfaceVk.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/SurfaceVk.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/SyncVk.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/SyncVk.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/TextureVk.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/TextureVk.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/TransformFeedbackVk.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/TransformFeedbackVk.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/VertexArrayVk.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/VertexArrayVk.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/linux/xcb/DisplayVkXcb.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/linux/xcb/DisplayVkXcb.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/linux/xcb/WindowSurfaceVkXcb.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/linux/xcb/WindowSurfaceVkXcb.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/vk_format_utils.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/vk_format_utils.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/vk_utils.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/vk_utils.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/win32/DisplayVkWin32.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/win32/DisplayVkWin32.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/win32/WindowSurfaceVkWin32.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/win32/WindowSurfaceVkWin32.h +FILE: ../../../third_party/angle/src/libANGLE/validationEGL.cpp +FILE: ../../../third_party/angle/src/libANGLE/validationES31.cpp +FILE: ../../../third_party/angle/util/android/AndroidPixmap.cpp +FILE: ../../../third_party/angle/util/android/AndroidWindow.cpp +FILE: ../../../third_party/angle/util/android/AndroidWindow.h +FILE: ../../../third_party/angle/util/ozone/OzonePixmap.cpp +FILE: ../../../third_party/angle/util/ozone/OzoneWindow.cpp +FILE: ../../../third_party/angle/util/ozone/OzoneWindow.h +---------------------------------------------------------------------------------------------------- +Copyright 2016 The ANGLE Project Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + + Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. + Ltd., nor the names of their contributors may be used to endorse + or promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: icu +ORIGIN: ../../../third_party/icu/fuzzers/icu_converter_fuzzer.cc + ../../../LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/icu/fuzzers/icu_converter_fuzzer.cc +FILE: ../../../third_party/icu/fuzzers/icu_regex.dict +FILE: ../../../third_party/icu/fuzzers/icu_uregex_open_fuzzer.cc +---------------------------------------------------------------------------------------------------- +Copyright 2016 The Chromium Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: libwebp +ORIGIN: ../../../third_party/libwebp/extras/vwebp_sdl.c + ../../../third_party/libwebp/COPYING +TYPE: LicenseType.bsd +FILE: ../../../third_party/libwebp/extras/vwebp_sdl.c +FILE: ../../../third_party/libwebp/extras/webp_to_sdl.c +FILE: ../../../third_party/libwebp/extras/webp_to_sdl.h +FILE: ../../../third_party/libwebp/imageio/pnmdec.c +FILE: ../../../third_party/libwebp/imageio/pnmdec.h +FILE: ../../../third_party/libwebp/src/dsp/alpha_processing_neon.c +FILE: ../../../third_party/libwebp/src/dsp/filters_neon.c +FILE: ../../../third_party/libwebp/src/dsp/ssim.c +FILE: ../../../third_party/libwebp/src/dsp/ssim_sse2.c +FILE: ../../../third_party/libwebp/src/dsp/yuv_neon.c +FILE: ../../../third_party/libwebp/src/enc/backward_references_cost_enc.c +---------------------------------------------------------------------------------------------------- +Copyright 2017 Google Inc. All Rights Reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + * Neither the name of Google nor the names of its contributors may + be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: angle +LIBRARY: base +ORIGIN: ../../../third_party/angle/include/EGL/eglext_angle.h + ../../../third_party/angle/LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/angle/include/EGL/eglext_angle.h +FILE: ../../../third_party/angle/include/GLES2/gl2ext_angle.h +FILE: ../../../third_party/angle/samples/multiview/Multiview.cpp +FILE: ../../../third_party/angle/src/common/PackedCLEnums_autogen.cpp +FILE: ../../../third_party/angle/src/common/PackedCLEnums_autogen.h +FILE: ../../../third_party/angle/src/common/PackedEGLEnums_autogen.cpp +FILE: ../../../third_party/angle/src/common/PackedEGLEnums_autogen.h +FILE: ../../../third_party/angle/src/common/PackedEnums.h +FILE: ../../../third_party/angle/src/common/PackedGLEnums_autogen.cpp +FILE: ../../../third_party/angle/src/common/PackedGLEnums_autogen.h +FILE: ../../../third_party/angle/src/common/aligned_memory.cpp +FILE: ../../../third_party/angle/src/common/aligned_memory.h +FILE: ../../../third_party/angle/src/common/aligned_memory_unittest.cpp +FILE: ../../../third_party/angle/src/common/angleutils_unittest.cpp +FILE: ../../../third_party/angle/src/common/third_party/base/anglebase/base_export.h +FILE: ../../../third_party/angle/src/common/third_party/base/anglebase/macros.h +FILE: ../../../third_party/angle/src/common/third_party/base/anglebase/sys_byteorder.h +FILE: ../../../third_party/angle/src/common/uniform_type_info_autogen.cpp +FILE: ../../../third_party/angle/src/compiler/translator/Declarator.cpp +FILE: ../../../third_party/angle/src/compiler/translator/Declarator.h +FILE: ../../../third_party/angle/src/compiler/translator/ExtensionBehavior.cpp +FILE: ../../../third_party/angle/src/compiler/translator/HashNames.cpp +FILE: ../../../third_party/angle/src/compiler/translator/ImageFunctionHLSL.cpp +FILE: ../../../third_party/angle/src/compiler/translator/ImageFunctionHLSL.h +FILE: ../../../third_party/angle/src/compiler/translator/IsASTDepthBelowLimit.cpp +FILE: ../../../third_party/angle/src/compiler/translator/IsASTDepthBelowLimit.h +FILE: ../../../third_party/angle/src/compiler/translator/OutputTree.h +FILE: ../../../third_party/angle/src/compiler/translator/StaticType.h +FILE: ../../../third_party/angle/src/compiler/translator/Symbol.cpp +FILE: ../../../third_party/angle/src/compiler/translator/Symbol.h +FILE: ../../../third_party/angle/src/compiler/translator/SymbolUniqueId.cpp +FILE: ../../../third_party/angle/src/compiler/translator/SymbolUniqueId.h +FILE: ../../../third_party/angle/src/compiler/translator/emulated_builtin_functions_hlsl_autogen.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/ClampPointSize.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/ClampPointSize.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/DeclareAndInitBuiltinsForInstancedMultiview.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/DeclareAndInitBuiltinsForInstancedMultiview.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/RemoveArrayLengthMethod.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/RemoveArrayLengthMethod.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/RemoveUnreferencedVariables.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/RemoveUnreferencedVariables.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/d3d/WrapSwitchStatementsInBlocks.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/d3d/WrapSwitchStatementsInBlocks.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/gl/ClampFragDepth.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/gl/ClampFragDepth.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_util/FindMain.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_util/FindMain.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_util/IntermNode_util.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_util/IntermNode_util.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_util/IntermTraverse.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_util/RunAtTheEndOfShader.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_util/RunAtTheEndOfShader.h +FILE: ../../../third_party/angle/src/gpu_info_util/SystemInfo_macos.mm +FILE: ../../../third_party/angle/src/gpu_info_util/SystemInfo_unittest.cpp +FILE: ../../../third_party/angle/src/libANGLE/ErrorStrings.h +FILE: ../../../third_party/angle/src/libANGLE/LoggingAnnotator.cpp +FILE: ../../../third_party/angle/src/libANGLE/LoggingAnnotator.h +FILE: ../../../third_party/angle/src/libANGLE/MemoryProgramCache.cpp +FILE: ../../../third_party/angle/src/libANGLE/MemoryProgramCache.h +FILE: ../../../third_party/angle/src/libANGLE/ProgramLinkedResources.cpp +FILE: ../../../third_party/angle/src/libANGLE/ProgramLinkedResources.h +FILE: ../../../third_party/angle/src/libANGLE/ProgramPipeline.cpp +FILE: ../../../third_party/angle/src/libANGLE/ProgramPipeline.h +FILE: ../../../third_party/angle/src/libANGLE/ResourceMap.h +FILE: ../../../third_party/angle/src/libANGLE/SizedMRUCache.h +FILE: ../../../third_party/angle/src/libANGLE/SizedMRUCache_unittest.cpp +FILE: ../../../third_party/angle/src/libANGLE/VertexArray_unittest.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/ProgramPipelineImpl.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/ProgramPipeline11.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/ProgramPipeline11.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/ResourceManager11.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/ResourceManager11.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/Clear11.hlsl +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/ClearMultiviewGL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/ClearMultiviewGL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/DispatchTableGL_autogen.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/DispatchTableGL_autogen.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/ProgramPipelineGL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/ProgramPipelineGL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/cgl/IOSurfaceSurfaceCGL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/egl/egl_utils.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/egl/egl_utils.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/null_functions.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/null_functions.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/wgl/SurfaceWGL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/null/ProgramPipelineNULL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/null/ProgramPipelineNULL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/ProgramPipelineVk.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/ProgramPipelineVk.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/ResourceVk.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/ResourceVk.h +FILE: ../../../third_party/angle/src/libGLESv2/proc_table_egl.h +FILE: ../../../third_party/angle/src/libGLESv2/proc_table_glx.h +FILE: ../../../third_party/angle/src/libGLESv2/proc_table_wgl.h +---------------------------------------------------------------------------------------------------- +Copyright 2017 The ANGLE Project Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + + Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. + Ltd., nor the names of their contributors may be used to endorse + or promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: base +LIBRARY: zlib +ORIGIN: ../../../third_party/angle/src/common/third_party/base/anglebase/numerics/checked_math.h + ../../../LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/angle/src/common/third_party/base/anglebase/numerics/checked_math.h +FILE: ../../../third_party/angle/src/common/third_party/base/anglebase/numerics/checked_math_impl.h +FILE: ../../../third_party/angle/src/common/third_party/base/anglebase/numerics/clamped_math.h +FILE: ../../../third_party/angle/src/common/third_party/base/anglebase/numerics/clamped_math_impl.h +FILE: ../../../third_party/angle/src/common/third_party/base/anglebase/numerics/math_constants.h +FILE: ../../../third_party/angle/src/common/third_party/base/anglebase/numerics/ranges.h +FILE: ../../../third_party/angle/src/common/third_party/base/anglebase/numerics/safe_conversions_arm_impl.h +FILE: ../../../third_party/angle/src/common/third_party/base/anglebase/numerics/safe_math.h +FILE: ../../../third_party/angle/src/common/third_party/base/anglebase/numerics/safe_math_arm_impl.h +FILE: ../../../third_party/angle/src/common/third_party/base/anglebase/numerics/safe_math_clang_gcc_impl.h +FILE: ../../../third_party/angle/src/common/third_party/base/anglebase/numerics/safe_math_shared_impl.h +FILE: ../../../third_party/zlib/adler32_simd.c +FILE: ../../../third_party/zlib/adler32_simd.h +FILE: ../../../third_party/zlib/chromeconf.h +FILE: ../../../third_party/zlib/crc32_simd.c +FILE: ../../../third_party/zlib/crc32_simd.h +FILE: ../../../third_party/zlib/google/zip_writer.cc +FILE: ../../../third_party/zlib/google/zip_writer.h +---------------------------------------------------------------------------------------------------- +Copyright 2017 The Chromium Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: boringssl +ORIGIN: ../../../third_party/boringssl/src/crypto/x509/x509_time_test.cc + ../../../third_party/boringssl/src/LICENSE +TYPE: LicenseType.unknown +FILE: ../../../third_party/boringssl/src/crypto/x509/x509_time_test.cc +---------------------------------------------------------------------------------------------------- +Copyright 2017 The OpenSSL Project Authors. All Rights Reserved. + +Licensed under the OpenSSL license (the "License"). You may not use +this file except in compliance with the License. You can obtain a copy +in the file LICENSE in the source distribution or at +https://www.openssl.org/source/license.html +==================================================================================================== + +==================================================================================================== +LIBRARY: libwebp +ORIGIN: ../../../third_party/libwebp/src/dsp/cost_neon.c + ../../../third_party/libwebp/COPYING +TYPE: LicenseType.bsd +FILE: ../../../third_party/libwebp/src/dsp/cost_neon.c +FILE: ../../../third_party/libwebp/src/dsp/quant.h +---------------------------------------------------------------------------------------------------- +Copyright 2018 Google Inc. All Rights Reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + * Neither the name of Google nor the names of its contributors may + be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: angle +ORIGIN: ../../../third_party/angle/LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/angle/.style.yapf +FILE: ../../../third_party/angle/.vpython +FILE: ../../../third_party/angle/.vpython3 +FILE: ../../../third_party/angle/.yapfignore +FILE: ../../../third_party/angle/CONTRIBUTORS +FILE: ../../../third_party/angle/DEPS +FILE: ../../../third_party/angle/DIR_METADATA +FILE: ../../../third_party/angle/additional_readme_paths.json +FILE: ../../../third_party/angle/doc/img/JobUnit.png +FILE: ../../../third_party/angle/doc/img/RegressionTestingArchitecture.png +FILE: ../../../third_party/angle/doc/img/StateChangeNotificationFlow.svg +FILE: ../../../third_party/angle/doc/img/StateNotificationExample.svg +FILE: ../../../third_party/angle/doc/img/VangleDebugOverlay.png +FILE: ../../../third_party/angle/infra/config/generated/commit-queue.cfg +FILE: ../../../third_party/angle/infra/config/generated/cr-buildbucket.cfg +FILE: ../../../third_party/angle/infra/config/generated/luci-logdog.cfg +FILE: ../../../third_party/angle/infra/config/generated/luci-milo.cfg +FILE: ../../../third_party/angle/infra/config/generated/luci-scheduler.cfg +FILE: ../../../third_party/angle/infra/config/generated/project.cfg +FILE: ../../../third_party/angle/infra/config/generated/project.pyl +FILE: ../../../third_party/angle/infra/config/generated/realms.cfg +FILE: ../../../third_party/angle/infra/specs/angle.json +FILE: ../../../third_party/angle/infra/specs/trybot_analyze_config.json +FILE: ../../../third_party/angle/samples/multi_texture/basemap.tga +FILE: ../../../third_party/angle/samples/multi_texture/lightmap.tga +FILE: ../../../third_party/angle/samples/multiple_draw_buffers/multiple_draw_buffers_copy_fs.glsl +FILE: ../../../third_party/angle/samples/multiple_draw_buffers/multiple_draw_buffers_fs.glsl +FILE: ../../../third_party/angle/samples/multiple_draw_buffers/multiple_draw_buffers_vs.glsl +FILE: ../../../third_party/angle/samples/particle_system/smoke.tga +FILE: ../../../third_party/angle/scripts/code_generation_hashes/ANGLE_features.json +FILE: ../../../third_party/angle/scripts/code_generation_hashes/ANGLE_format.json +FILE: ../../../third_party/angle/scripts/code_generation_hashes/ANGLE_load_functions_table.json +FILE: ../../../third_party/angle/scripts/code_generation_hashes/ANGLE_shader_preprocessor.json +FILE: ../../../third_party/angle/scripts/code_generation_hashes/ANGLE_shader_translator.json +FILE: ../../../third_party/angle/scripts/code_generation_hashes/D3D11_blit_shader_selection.json +FILE: ../../../third_party/angle/scripts/code_generation_hashes/D3D11_format.json +FILE: ../../../third_party/angle/scripts/code_generation_hashes/DXGI_format.json +FILE: ../../../third_party/angle/scripts/code_generation_hashes/DXGI_format_support.json +FILE: ../../../third_party/angle/scripts/code_generation_hashes/Emulated_HLSL_functions.json +FILE: ../../../third_party/angle/scripts/code_generation_hashes/Extension_files.json +FILE: ../../../third_party/angle/scripts/code_generation_hashes/GL_CTS_(dEQP)_build_files.json +FILE: ../../../third_party/angle/scripts/code_generation_hashes/GL_EGL_WGL_loader.json +FILE: ../../../third_party/angle/scripts/code_generation_hashes/GL_EGL_entry_points.json +FILE: ../../../third_party/angle/scripts/code_generation_hashes/GL_copy_conversion_table.json +FILE: ../../../third_party/angle/scripts/code_generation_hashes/GL_format_map.json +FILE: ../../../third_party/angle/scripts/code_generation_hashes/GLenum_value_to_string_map.json +FILE: ../../../third_party/angle/scripts/code_generation_hashes/Metal_default_shaders.json +FILE: ../../../third_party/angle/scripts/code_generation_hashes/Metal_format_table.json +FILE: ../../../third_party/angle/scripts/code_generation_hashes/OpenGL_dispatch_table.json +FILE: ../../../third_party/angle/scripts/code_generation_hashes/SPIR-V_helpers.json +FILE: ../../../third_party/angle/scripts/code_generation_hashes/Static_builtins.json +FILE: ../../../third_party/angle/scripts/code_generation_hashes/Test_spec_JSON.json +FILE: ../../../third_party/angle/scripts/code_generation_hashes/Vulkan_format.json +FILE: ../../../third_party/angle/scripts/code_generation_hashes/Vulkan_internal_shader_programs.json +FILE: ../../../third_party/angle/scripts/code_generation_hashes/Vulkan_mandatory_format_support_table.json +FILE: ../../../third_party/angle/scripts/code_generation_hashes/overlay_fonts.json +FILE: ../../../third_party/angle/scripts/code_generation_hashes/overlay_widgets.json +FILE: ../../../third_party/angle/scripts/code_generation_hashes/packed_enum.json +FILE: ../../../third_party/angle/scripts/code_generation_hashes/proc_table.json +FILE: ../../../third_party/angle/scripts/code_generation_hashes/restricted_traces.json +FILE: ../../../third_party/angle/scripts/code_generation_hashes/uniform_type.json +FILE: ../../../third_party/angle/scripts/extension_data/intel_630_linux.json +FILE: ../../../third_party/angle/scripts/extension_data/intel_630_win10.json +FILE: ../../../third_party/angle/scripts/extension_data/nvidia_1660_linux.json +FILE: ../../../third_party/angle/scripts/extension_data/nvidia_1660_win10.json +FILE: ../../../third_party/angle/scripts/extension_data/pixel_4_android_11.json +FILE: ../../../third_party/angle/scripts/extension_data/pixel_6_android_13.json +FILE: ../../../third_party/angle/scripts/extension_data/swiftshader_linux.json +FILE: ../../../third_party/angle/scripts/extension_data/swiftshader_win10.json +FILE: ../../../third_party/angle/scripts/extension_data/swiftshader_win10_gles1.json +FILE: ../../../third_party/angle/src/android_system_settings/assets/a4a_rules.json +FILE: ../../../third_party/angle/src/android_system_settings/res/drawable/icon.png +FILE: ../../../third_party/angle/src/common/packed_cl_enums.json +FILE: ../../../third_party/angle/src/common/packed_egl_enums.json +FILE: ../../../third_party/angle/src/common/packed_gl_enums.json +FILE: ../../../third_party/angle/src/compiler/translator/emulated_builtin_function_data_hlsl.json +FILE: ../../../third_party/angle/src/feature_support_util/a4a_rules.json +FILE: ../../../third_party/angle/src/libANGLE/es3_copy_conversion_formats.json +FILE: ../../../third_party/angle/src/libANGLE/es3_format_type_combinations.json +FILE: ../../../third_party/angle/src/libANGLE/format_map_data.json +FILE: ../../../third_party/angle/src/libANGLE/overlay/DejaVuSansMono-Bold.ttf +FILE: ../../../third_party/angle/src/libANGLE/renderer/angle_format_data.json +FILE: ../../../third_party/angle/src/libANGLE/renderer/angle_format_map.json +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/BufferToTexture11.hlsl +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/Passthrough2D11.hlsl +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/ResolveColor.hlsl +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/ResolveDepthStencil.hlsl +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/Swizzle11.hlsl +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/buffertotexture11_gs.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/buffertotexture11_ps_4f.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/buffertotexture11_ps_4i.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/buffertotexture11_ps_4ui.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/buffertotexture11_vs.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/clear11_fl9vs.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/clear11multiviewgs.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/clear11multiviewvs.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/clear11vs.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/cleardepth11ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/clearfloat11_fl9ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/clearfloat11ps1.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/clearfloat11ps2.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/clearfloat11ps3.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/clearfloat11ps4.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/clearfloat11ps5.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/clearfloat11ps6.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/clearfloat11ps7.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/clearfloat11ps8.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/clearsint11ps1.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/clearsint11ps2.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/clearsint11ps3.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/clearsint11ps4.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/clearsint11ps5.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/clearsint11ps6.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/clearsint11ps7.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/clearsint11ps8.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/clearuint11ps1.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/clearuint11ps2.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/clearuint11ps3.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/clearuint11ps4.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/clearuint11ps5.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/clearuint11ps6.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/clearuint11ps7.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/clearuint11ps8.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_pm_luma_2d_ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_pm_luma_2darray_ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_pm_luma_3d_ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_pm_lumaalpha_2d_ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_pm_lumaalpha_2darray_ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_pm_lumaalpha_3d_ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_pm_rgb_2d_ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_pm_rgb_2darray_ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_pm_rgb_3d_ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_pm_rgb_565_2d_ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_pm_rgb_565_2darray_ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_pm_rgb_565_3d_ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_pm_rgba_2d_ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_pm_rgba_2darray_ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_pm_rgba_3d_ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_pm_rgba_4444_2d_ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_pm_rgba_4444_2darray_ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_pm_rgba_4444_3d_ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_pm_rgba_5551_2d_ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_pm_rgba_5551_2darray_ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_pm_rgba_5551_3d_ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_um_luma_2d_ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_um_luma_2darray_ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_um_luma_3d_ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_um_lumaalpha_2d_ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_um_lumaalpha_2darray_ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_um_lumaalpha_3d_ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_um_rgb_2d_ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_um_rgb_2darray_ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_um_rgb_3d_ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_um_rgb_565_2d_ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_um_rgb_565_2darray_ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_um_rgb_565_3d_ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_um_rgba_2d_ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_um_rgba_2darray_ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_um_rgba_3d_ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_um_rgba_4444_2d_ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_um_rgba_4444_2darray_ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_um_rgba_4444_3d_ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_um_rgba_4444_ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_um_rgba_5551_2d_ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_um_rgba_5551_2darray_ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_um_rgba_5551_3d_ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_um_rgba_5551_ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftoi_pm_rgb_2darray_ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftoi_pm_rgb_3d_ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftoi_pm_rgba_2darray_ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftoi_pm_rgba_3d_ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftoi_pt_rgb_2darray_ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftoi_pt_rgb_3d_ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftoi_pt_rgba_2darray_ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftoi_pt_rgba_3d_ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftoi_um_rgb_2darray_ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftoi_um_rgb_3d_ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftoi_um_rgba_2darray_ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftoi_um_rgba_3d_ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftou_pm_rgb_2d_ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftou_pm_rgb_2darray_ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftou_pm_rgb_3d_ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftou_pm_rgba_2d_ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftou_pm_rgba_2darray_ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftou_pm_rgba_3d_ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftou_pt_rgb_2d_ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftou_pt_rgb_2darray_ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftou_pt_rgb_3d_ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftou_pt_rgba_2d_ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftou_pt_rgba_2darray_ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftou_pt_rgba_3d_ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftou_um_rgb_2d_ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftou_um_rgb_2darray_ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftou_um_rgb_3d_ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftou_um_rgba_2d_ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftou_um_rgba_2darray_ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftou_um_rgba_3d_ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthrough2d11vs.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthrough3d11gs.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthrough3d11vs.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthrougha2d11ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughdepth2d11ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughlum2d11ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughlum2darray11ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughlum3d11ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughlumalpha2d11ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughlumalpha2darray11ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughlumalpha3d11ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughr2d11ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughr2darray11ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughr2darrayi11ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughr2darrayui11ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughr2di11ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughr2dui11ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughr3d11ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughr3di11ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughr3dui11ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrg2d11ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrg2darray11ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrg2darrayi11ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrg2darrayui11ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrg2di11ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrg2dui11ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrg3d11ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrg3di11ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrg3dui11ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgb2d11ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgb2d_565_11ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgb2darray11ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgb2darray_565_11ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgb2darrayi11ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgb2darrayui11ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgb2di11ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgb2dui11ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgb3d11ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgb3d_565_11ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgb3di11ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgb3dui11ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgba2d11ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgba2d_4444_11ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgba2d_5551_11ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgba2darray11ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgba2darray_4444_11ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgba2darray_5551_11ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgba2darrayi11ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgba2darrayui11ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgba2di11ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgba2dms11ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgba2dui11ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgba3d11ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgba3d_4444_11ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgba3d_5551_11ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgba3di11ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgba3dui11ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/resolvecolor2dps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/resolvedepth11_ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/resolvedepthstencil11_ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/resolvedepthstencil11_vs.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/resolvestencil11_ps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/swizzlef2darrayps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/swizzlef2dps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/swizzlef3dps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/swizzlei2darrayps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/swizzlei2dps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/swizzlei3dps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/swizzleui2darrayps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/swizzleui2dps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/swizzleui3dps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/texture_format_data.json +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/texture_format_map.json +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/shaders/compiled/componentmaskpremultps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/shaders/compiled/componentmaskps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/shaders/compiled/componentmaskunmultps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/shaders/compiled/luminancepremultps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/shaders/compiled/luminanceps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/shaders/compiled/luminanceunmultps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/shaders/compiled/passthroughps.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d9/shaders/compiled/standardvs.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/dxgi_format_data.json +FILE: ../../../third_party/angle/src/libANGLE/renderer/dxgi_support_data.json +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/gl_bindings_data.json +FILE: ../../../third_party/angle/src/libANGLE/renderer/load_functions_data.json +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/mtl_default_shaders_compiled.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/doc/img/LineRasterComparison.gif +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/doc/img/LineRasterHoles.jpg +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/doc/img/LineRasterPixelExample.png +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/doc/img/VulkanShaderTranslation.svg +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/src/OverlayDraw.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/vk_mandatory_format_support_data.json +FILE: ../../../third_party/angle/src/libEGL/libEGL.rc +FILE: ../../../third_party/angle/src/libEGL/resource.h +FILE: ../../../third_party/angle/src/libGLESv1_CM/libGLESv1_CM.def +FILE: ../../../third_party/angle/src/libGLESv1_CM/libGLESv1_CM.rc +FILE: ../../../third_party/angle/src/libGLESv1_CM/resource.h +FILE: ../../../third_party/angle/src/libGLESv2/libGLESv2.rc +FILE: ../../../third_party/angle/src/libGLESv2/resource.h +FILE: ../../../third_party/angle/util/ios/Info.plist +FILE: ../../../third_party/angle/util/osx/supports_automatic_graphics_switching.plist +---------------------------------------------------------------------------------------------------- +Copyright 2018 The ANGLE Project Authors. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + + Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. + Ltd., nor the names of their contributors may be used to endorse + or promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: angle +ORIGIN: ../../../third_party/angle/android/AndroidManifest.xml.jinja2 + ../../../third_party/angle/LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/angle/android/AndroidManifest.xml.jinja2 +FILE: ../../../third_party/angle/samples/gles1/DrawTexture.cpp +FILE: ../../../third_party/angle/samples/gles1/FlatShading.cpp +FILE: ../../../third_party/angle/samples/gles1/HelloTriangle.cpp +FILE: ../../../third_party/angle/samples/gles1/SimpleLighting.cpp +FILE: ../../../third_party/angle/samples/gles1/SimpleTexture2D.cpp +FILE: ../../../third_party/angle/scripts/egl_angle_ext.xml +FILE: ../../../third_party/angle/scripts/gl_angle_ext.xml +FILE: ../../../third_party/angle/scripts/vk_mandatory_format_support_capture_to_json.js +FILE: ../../../third_party/angle/src/android_system_settings/res/values-v17/styles.xml +FILE: ../../../third_party/angle/src/common/FastVector.h +FILE: ../../../third_party/angle/src/common/FastVector_unittest.cpp +FILE: ../../../third_party/angle/src/common/FixedVector.h +FILE: ../../../third_party/angle/src/common/FixedVector_unittest.cpp +FILE: ../../../third_party/angle/src/common/PackedEnums.cpp +FILE: ../../../third_party/angle/src/common/android_util.cpp +FILE: ../../../third_party/angle/src/common/android_util.h +FILE: ../../../third_party/angle/src/common/hash_utils.h +FILE: ../../../third_party/angle/src/common/hash_utils_unittest.cpp +FILE: ../../../third_party/angle/src/common/matrix_utils.cpp +FILE: ../../../third_party/angle/src/common/system_utils.cpp +FILE: ../../../third_party/angle/src/common/system_utils_posix.cpp +FILE: ../../../third_party/angle/src/compiler/translator/AtomicCounterFunctionHLSL.cpp +FILE: ../../../third_party/angle/src/compiler/translator/AtomicCounterFunctionHLSL.h +FILE: ../../../third_party/angle/src/compiler/translator/FunctionLookup.cpp +FILE: ../../../third_party/angle/src/compiler/translator/FunctionLookup.h +FILE: ../../../third_party/angle/src/compiler/translator/ImmutableString.h +FILE: ../../../third_party/angle/src/compiler/translator/ImmutableStringBuilder.cpp +FILE: ../../../third_party/angle/src/compiler/translator/ImmutableStringBuilder.h +FILE: ../../../third_party/angle/src/compiler/translator/ShaderStorageBlockFunctionHLSL.cpp +FILE: ../../../third_party/angle/src/compiler/translator/ShaderStorageBlockFunctionHLSL.h +FILE: ../../../third_party/angle/src/compiler/translator/ShaderStorageBlockOutputHLSL.cpp +FILE: ../../../third_party/angle/src/compiler/translator/ShaderStorageBlockOutputHLSL.h +FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/NameEmbeddedUniformStructsMetal.cpp +FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/NameEmbeddedUniformStructsMetal.h +FILE: ../../../third_party/angle/src/compiler/translator/builtin_variables.json +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/FoldExpressions.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/FoldExpressions.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/PruneEmptyCases.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/PruneEmptyCases.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/RewriteStructSamplers.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/RewriteStructSamplers.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/SeparateStructFromUniformDeclarations.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/SeparateStructFromUniformDeclarations.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/d3d/RewriteAtomicFunctionExpressions.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/d3d/RewriteAtomicFunctionExpressions.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/d3d/RewriteExpressionsWithShaderStorageBlock.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/d3d/RewriteExpressionsWithShaderStorageBlock.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/d3d/SeparateArrayConstructorStatements.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/d3d/SeparateArrayConstructorStatements.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/gl/RewriteRepeatedAssignToSwizzled.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/gl/RewriteRepeatedAssignToSwizzled.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_util/ReplaceVariable.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_util/ReplaceVariable.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_util/Visit.h +FILE: ../../../third_party/angle/src/feature_support_util/feature_support_util.cpp +FILE: ../../../third_party/angle/src/feature_support_util/feature_support_util.h +FILE: ../../../third_party/angle/src/feature_support_util/feature_support_util_unittest.cpp +FILE: ../../../third_party/angle/src/gpu_info_util/SystemInfo_android.cpp +FILE: ../../../third_party/angle/src/libANGLE/BlobCache.cpp +FILE: ../../../third_party/angle/src/libANGLE/BlobCache.h +FILE: ../../../third_party/angle/src/libANGLE/BlobCache_unittest.cpp +FILE: ../../../third_party/angle/src/libANGLE/Context.inl.h +FILE: ../../../third_party/angle/src/libANGLE/Context_gles_1_0.cpp +FILE: ../../../third_party/angle/src/libANGLE/GLES1Renderer.cpp +FILE: ../../../third_party/angle/src/libANGLE/GLES1Renderer.h +FILE: ../../../third_party/angle/src/libANGLE/GLES1Shaders.inc +FILE: ../../../third_party/angle/src/libANGLE/GLES1State.cpp +FILE: ../../../third_party/angle/src/libANGLE/GLES1State.h +FILE: ../../../third_party/angle/src/libANGLE/Observer.cpp +FILE: ../../../third_party/angle/src/libANGLE/ResourceMap_unittest.cpp +FILE: ../../../third_party/angle/src/libANGLE/entry_points_utils.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/QueryImpl.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/RenderTargetCache.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/ContextD3D.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/Blit11Helper_autogen.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/Program11.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/Program11.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/converged/CompositorNativeWindow11.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/converged/CompositorNativeWindow11.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/MultiplyAlpha.hlsl +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/Passthrough2DArray11.hlsl +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/shaders/Passthrough3D11.hlsl +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/ImageGL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/ImageGL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/egl/ContextEGL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/egl/ContextEGL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/egl/ExternalImageSiblingEGL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/egl/ImageEGL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/egl/ImageEGL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/egl/RendererEGL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/egl/RendererEGL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/egl/android/NativeBufferImageSiblingAndroid.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/egl/android/NativeBufferImageSiblingAndroid.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/wgl/ContextWGL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/wgl/ContextWGL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/wgl/RendererWGL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/wgl/RendererWGL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/UtilsVk.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/UtilsVk.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/android/DisplayVkAndroid.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/android/DisplayVkAndroid.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/android/WindowSurfaceVkAndroid.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/android/WindowSurfaceVkAndroid.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000000.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000001.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000002.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000003.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000004.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000005.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000006.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000007.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000008.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000009.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.0000000A.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.0000000B.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.0000000C.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.0000000D.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.0000000E.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.0000000F.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000010.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000011.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000012.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000013.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000014.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000015.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000016.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000017.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/BlitResolveStencilNoExport.comp.00000000.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/BlitResolveStencilNoExport.comp.00000001.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/BlitResolveStencilNoExport.comp.00000002.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/BlitResolveStencilNoExport.comp.00000003.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ConvertIndex.comp.00000000.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ConvertIndex.comp.00000001.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ConvertIndex.comp.00000002.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ConvertIndex.comp.00000003.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ConvertIndexIndirectLineLoop.comp.00000000.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ConvertIndexIndirectLineLoop.comp.00000001.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ConvertIndexIndirectLineLoop.comp.00000002.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ConvertIndirectLineLoop.comp.00000000.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000000.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000001.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000002.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000003.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000004.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000005.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000006.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000007.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/FullScreenTri.vert.00000000.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/GenerateMipmap.comp.00000000.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/GenerateMipmap.comp.00000001.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/GenerateMipmap.comp.00000002.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/GenerateMipmap.comp.00000003.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/GenerateMipmap.comp.00000004.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/GenerateMipmap.comp.00000005.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/GenerateMipmap.comp.00000006.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/GenerateMipmap.comp.00000007.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/GenerateMipmap.comp.00000008.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/GenerateMipmap.comp.00000009.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000000.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000001.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000002.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000003.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000004.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000005.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000006.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000007.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000008.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000009.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.0000000A.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.0000000B.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.0000000C.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.0000000D.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.0000000E.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.0000000F.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000010.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000011.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000012.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000013.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000014.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000015.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000016.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000017.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000018.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000019.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.0000001A.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.0000001B.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.0000001C.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.0000001D.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.0000001E.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.0000001F.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000020.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000021.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000022.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000023.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000024.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000025.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000026.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000027.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000028.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000029.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.0000002A.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.0000002B.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.0000002C.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.0000002D.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.0000002E.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.0000002F.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000000.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000001.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000002.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000004.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000005.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000006.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000008.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000009.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.0000000A.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000010.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000011.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000012.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000014.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000015.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000016.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000018.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000019.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.0000001A.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000020.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000021.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000022.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000024.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000025.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000026.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000028.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000029.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.0000002A.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/OverlayDraw.frag.00000000.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/OverlayDraw.vert.00000000.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/src/ConvertVertex.comp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/src/ConvertVertex.comp.json +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/src/FullScreenTri.vert +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/src/ImageCopy.frag +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/src/ImageCopy.frag.json +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/vk_cache_utils.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/vk_cache_utils.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/vk_caps_utils.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/vk_caps_utils.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/vk_format_map.json +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/vk_helpers.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/vk_helpers.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/vk_internal_shaders_autogen.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/vk_internal_shaders_autogen.h +FILE: ../../../third_party/angle/src/libANGLE/validationES1.cpp +FILE: ../../../third_party/angle/src/libANGLE/validationES1.h +FILE: ../../../third_party/angle/src/libANGLE/validationES2.h +FILE: ../../../third_party/angle/src/libANGLE/validationES3.h +FILE: ../../../third_party/angle/src/libANGLE/validationES31.h +FILE: ../../../third_party/angle/src/libANGLE/validationESEXT.h +FILE: ../../../third_party/angle/src/libEGL/egl_loader_autogen.cpp +FILE: ../../../third_party/angle/src/libEGL/egl_loader_autogen.h +FILE: ../../../third_party/angle/src/libGLESv1_CM/libGLESv1_CM.cpp +FILE: ../../../third_party/angle/util/EGLPlatformParameters.h +FILE: ../../../third_party/angle/util/capture/trace_egl_loader_autogen.cpp +FILE: ../../../third_party/angle/util/capture/trace_egl_loader_autogen.h +FILE: ../../../third_party/angle/util/capture/trace_gles_loader_autogen.cpp +FILE: ../../../third_party/angle/util/capture/trace_gles_loader_autogen.h +FILE: ../../../third_party/angle/util/egl_loader_autogen.cpp +FILE: ../../../third_party/angle/util/egl_loader_autogen.h +FILE: ../../../third_party/angle/util/gles_loader_autogen.cpp +FILE: ../../../third_party/angle/util/gles_loader_autogen.h +FILE: ../../../third_party/angle/util/util_export.h +FILE: ../../../third_party/angle/util/util_gl.h +FILE: ../../../third_party/angle/util/windows/WGLWindow.cpp +FILE: ../../../third_party/angle/util/windows/WGLWindow.h +FILE: ../../../third_party/angle/util/windows/wgl_loader_autogen.cpp +FILE: ../../../third_party/angle/util/windows/wgl_loader_autogen.h +---------------------------------------------------------------------------------------------------- +Copyright 2018 The ANGLE Project Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + + Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. + Ltd., nor the names of their contributors may be used to endorse + or promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: base +LIBRARY: zlib +ORIGIN: ../../../third_party/angle/src/common/third_party/base/anglebase/no_destructor.h + ../../../LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/angle/src/common/third_party/base/anglebase/no_destructor.h +FILE: ../../../third_party/zlib/contrib/bench/zlib_bench.cc +FILE: ../../../third_party/zlib/cpu_features.c +FILE: ../../../third_party/zlib/cpu_features.h +---------------------------------------------------------------------------------------------------- +Copyright 2018 The Chromium Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: angle +LIBRARY: xxhash +ORIGIN: ../../../third_party/angle/include/platform/Feature.h + ../../../third_party/angle/LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/angle/WATCHLISTS +FILE: ../../../third_party/angle/include/platform/Feature.h +FILE: ../../../third_party/angle/include/vulkan/vulkan_fuchsia_ext.h +FILE: ../../../third_party/angle/samples/capture_replay/CaptureReplay.cpp +FILE: ../../../third_party/angle/scripts/entry_point_packed_gl_enums.json +FILE: ../../../third_party/angle/src/common/PoolAlloc.cpp +FILE: ../../../third_party/angle/src/common/PoolAlloc.h +FILE: ../../../third_party/angle/src/common/PoolAlloc_unittest.cpp +FILE: ../../../third_party/angle/src/common/apple_platform_utils.h +FILE: ../../../third_party/angle/src/common/system_utils_unittest.cpp +FILE: ../../../third_party/angle/src/common/system_utils_win32.cpp +FILE: ../../../third_party/angle/src/common/system_utils_winuwp.cpp +FILE: ../../../third_party/angle/src/common/third_party/xxhash/xxhash_fuzzer.cpp +FILE: ../../../third_party/angle/src/compiler/preprocessor/preprocessor.l +FILE: ../../../third_party/angle/src/compiler/preprocessor/preprocessor.y +FILE: ../../../third_party/angle/src/compiler/preprocessor/preprocessor_lex_autogen.cpp +FILE: ../../../third_party/angle/src/compiler/preprocessor/preprocessor_tab_autogen.cpp +FILE: ../../../third_party/angle/src/compiler/translator/BuiltinsWorkaroundGLSL.cpp +FILE: ../../../third_party/angle/src/compiler/translator/BuiltinsWorkaroundGLSL.h +FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetal.cpp +FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetal.h +FILE: ../../../third_party/angle/src/compiler/translator/ValidateAST.cpp +FILE: ../../../third_party/angle/src/compiler/translator/ValidateAST.h +FILE: ../../../third_party/angle/src/compiler/translator/glslang.l +FILE: ../../../third_party/angle/src/compiler/translator/glslang.y +FILE: ../../../third_party/angle/src/compiler/translator/glslang_lex_autogen.cpp +FILE: ../../../third_party/angle/src/compiler/translator/glslang_tab_autogen.cpp +FILE: ../../../third_party/angle/src/compiler/translator/span_unittest.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/EmulateMultiDrawShaderBuiltins.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/EmulateMultiDrawShaderBuiltins.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/NameNamelessUniformBuffers.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/NameNamelessUniformBuffers.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/RemoveInactiveInterfaceVariables.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/RemoveInactiveInterfaceVariables.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/RewriteArrayOfArrayOfOpaqueUniforms.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/RewriteAtomicCounters.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/RewriteAtomicCounters.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/RewriteCubeMapSamplersAs2DArray.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/RewriteCubeMapSamplersAs2DArray.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/RewriteDfdy.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/RewriteDfdy.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/apple/RewriteRowMajorMatrices.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/apple/RewriteRowMajorMatrices.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_util/BuiltIn.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_util/FindFunction.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_util/FindFunction.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_util/ReplaceShadowingVariables.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_util/ReplaceShadowingVariables.h +FILE: ../../../third_party/angle/src/libANGLE/Context_gl.cpp +FILE: ../../../third_party/angle/src/libANGLE/EGLSync.h +FILE: ../../../third_party/angle/src/libANGLE/MemoryObject.cpp +FILE: ../../../third_party/angle/src/libANGLE/MemoryObject.h +FILE: ../../../third_party/angle/src/libANGLE/Overlay.cpp +FILE: ../../../third_party/angle/src/libANGLE/Overlay.h +FILE: ../../../third_party/angle/src/libANGLE/OverlayWidgets.cpp +FILE: ../../../third_party/angle/src/libANGLE/OverlayWidgets.h +FILE: ../../../third_party/angle/src/libANGLE/Overlay_autogen.cpp +FILE: ../../../third_party/angle/src/libANGLE/Overlay_autogen.h +FILE: ../../../third_party/angle/src/libANGLE/Semaphore.cpp +FILE: ../../../third_party/angle/src/libANGLE/Semaphore.h +FILE: ../../../third_party/angle/src/libANGLE/capture/FrameCapture.cpp +FILE: ../../../third_party/angle/src/libANGLE/capture/FrameCapture.h +FILE: ../../../third_party/angle/src/libANGLE/capture/FrameCapture_mock.cpp +FILE: ../../../third_party/angle/src/libANGLE/capture/capture_gles_1_0_params.cpp +FILE: ../../../third_party/angle/src/libANGLE/capture/capture_gles_2_0_params.cpp +FILE: ../../../third_party/angle/src/libANGLE/capture/capture_gles_3_0_params.cpp +FILE: ../../../third_party/angle/src/libANGLE/capture/capture_gles_3_1_params.cpp +FILE: ../../../third_party/angle/src/libANGLE/capture/capture_gles_3_2_params.cpp +FILE: ../../../third_party/angle/src/libANGLE/capture/capture_gles_ext_params.cpp +FILE: ../../../third_party/angle/src/libANGLE/capture/gl_enum_utils.cpp +FILE: ../../../third_party/angle/src/libANGLE/capture/gl_enum_utils.h +FILE: ../../../third_party/angle/src/libANGLE/capture/gl_enum_utils_autogen.cpp +FILE: ../../../third_party/angle/src/libANGLE/capture/gl_enum_utils_autogen.h +FILE: ../../../third_party/angle/src/libANGLE/format_map_desktop.cpp +FILE: ../../../third_party/angle/src/libANGLE/overlay_widgets.json +FILE: ../../../third_party/angle/src/libANGLE/renderer/EGLSyncImpl.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/MemoryObjectImpl.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/OverlayImpl.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/SemaphoreImpl.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/ShaderImpl.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/DynamicImage2DHLSL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/DynamicImage2DHLSL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/ExternalImageSiblingImpl11.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/ExternalImageSiblingImpl11.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/MappedSubresourceVerifier11.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/MappedSubresourceVerifier11.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/driver_utils_mac.mm +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/MemoryObjectGL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/MemoryObjectGL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/SemaphoreGL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/SemaphoreGL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/cgl/ContextCGL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/cgl/ContextCGL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/cgl/DeviceCGL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/cgl/DeviceCGL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/cgl/RendererCGL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/cgl/RendererCGL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/egl/SyncEGL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/egl/SyncEGL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/glx/RendererGLX.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/glx/RendererGLX.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/glslang_wrapper_utils.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/glslang_wrapper_utils.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/BufferMtl.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/BufferMtl.mm +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/CompilerMtl.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/CompilerMtl.mm +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/ContextMtl.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/ContextMtl.mm +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/DisplayMtl.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/DisplayMtl.mm +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/DisplayMtl_api.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/FrameBufferMtl.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/FrameBufferMtl.mm +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/IOSurfaceSurfaceMtl.mm +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/ProgramMtl.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/ProgramMtl.mm +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/RenderBufferMtl.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/RenderBufferMtl.mm +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/RenderTargetMtl.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/RenderTargetMtl.mm +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/ShaderMtl.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/ShaderMtl.mm +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/SurfaceMtl.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/SurfaceMtl.mm +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/TextureMtl.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/TextureMtl.mm +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/VertexArrayMtl.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/VertexArrayMtl.mm +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/mtl_buffer_pool.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/mtl_buffer_pool.mm +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/mtl_command_buffer.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/mtl_command_buffer.mm +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/mtl_common.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/mtl_common.mm +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/mtl_format_map.json +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/mtl_format_utils.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/mtl_format_utils.mm +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/mtl_glslang_mtl_utils.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/mtl_glslang_mtl_utils.mm +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/mtl_glslang_utils.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/mtl_glslang_utils.mm +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/mtl_render_utils.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/mtl_render_utils.mm +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/mtl_resources.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/mtl_resources.mm +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/mtl_state_cache.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/mtl_state_cache.mm +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/mtl_utils.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/mtl_utils.mm +FILE: ../../../third_party/angle/src/libANGLE/renderer/serial_utils.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/serial_utils_unittest.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/DisplayVk_api.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/MemoryObjectVk.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/MemoryObjectVk.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/OverlayVk.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/OverlayVk.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/PersistentCommandPool.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/PersistentCommandPool.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/SecondaryCommandBuffer.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/SecondaryCommandBuffer.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/SemaphoreVk.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/SemaphoreVk.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/android/HardwareBufferImageSiblingVkAndroid.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/android/HardwareBufferImageSiblingVkAndroid.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/fuchsia/DisplayVkFuchsia.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/fuchsia/DisplayVkFuchsia.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/fuchsia/WindowSurfaceVkFuchsia.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/fuchsia/WindowSurfaceVkFuchsia.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/ggp/DisplayVkGGP.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/ggp/DisplayVkGGP.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/ggp/WindowSurfaceVkGGP.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/ggp/WindowSurfaceVkGGP.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/mac/DisplayVkMac.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/mac/DisplayVkMac.mm +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/mac/WindowSurfaceVkMac.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/mac/WindowSurfaceVkMac.mm +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/src/BlitResolve.frag +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/src/BlitResolve.frag.json +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/src/BlitResolveStencilNoExport.comp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/src/BlitResolveStencilNoExport.comp.json +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/src/ConvertIndex.comp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/src/ConvertIndex.comp.json +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/src/ConvertIndexIndirectLineLoop.comp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/src/ConvertIndirectLineLoop.comp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/src/ConvertIndirectLineLoop.comp.json +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/src/ImageClear.frag +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/src/ImageClear.frag.json +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/vk_wrapper.h +FILE: ../../../third_party/angle/src/libANGLE/trace.h +FILE: ../../../third_party/angle/src/libANGLE/validationES32.cpp +FILE: ../../../third_party/angle/src/libANGLE/validationES32.h +FILE: ../../../third_party/angle/src/libANGLE/validationESEXT.cpp +FILE: ../../../third_party/angle/src/libANGLE/validationGL1.cpp +FILE: ../../../third_party/angle/src/libANGLE/validationGL2.cpp +FILE: ../../../third_party/angle/src/libANGLE/validationGL3.cpp +FILE: ../../../third_party/angle/src/libANGLE/validationGL4.cpp +FILE: ../../../third_party/angle/src/libGLESv2/entry_points_wgl.cpp +FILE: ../../../third_party/angle/src/libGLESv2/entry_points_wgl.h +FILE: ../../../third_party/angle/src/libGLESv2/proc_table_egl_autogen.cpp +FILE: ../../../third_party/angle/src/libGLESv2/proc_table_glx_autogen.cpp +FILE: ../../../third_party/angle/src/libGLESv2/proc_table_wgl_autogen.cpp +FILE: ../../../third_party/angle/util/Timer.cpp +FILE: ../../../third_party/angle/util/Timer.h +FILE: ../../../third_party/angle/util/fuchsia/ScenicWindow.cpp +FILE: ../../../third_party/angle/util/fuchsia/ScenicWindow.h +FILE: ../../../third_party/angle/util/posix/crash_handler_posix.cpp +FILE: ../../../third_party/angle/util/test_utils.cpp +FILE: ../../../third_party/angle/util/test_utils_unittest.cpp +FILE: ../../../third_party/angle/util/test_utils_unittest_helper.cpp +FILE: ../../../third_party/angle/util/test_utils_unittest_helper.h +FILE: ../../../third_party/angle/util/windows/test_utils_winuwp.cpp +---------------------------------------------------------------------------------------------------- +Copyright 2019 The ANGLE Project Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + + Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. + Ltd., nor the names of their contributors may be used to endorse + or promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: angle +ORIGIN: ../../../third_party/angle/src/libANGLE/renderer/metal/shaders/blit.metal + ../../../third_party/angle/LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/shaders/blit.metal +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/shaders/clear.metal +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/shaders/common.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/shaders/gen_indices.metal +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/shaders/visibility.metal +---------------------------------------------------------------------------------------------------- +Copyright 2019 The ANGLE Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + + Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. + Ltd., nor the names of their contributors may be used to endorse + or promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: zlib +ORIGIN: ../../../third_party/zlib/contrib/optimizations/insert_string.h + ../../../LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/zlib/contrib/optimizations/insert_string.h +FILE: ../../../third_party/zlib/google/compression_utils_portable.cc +FILE: ../../../third_party/zlib/google/compression_utils_portable.h +---------------------------------------------------------------------------------------------------- +Copyright 2019 The Chromium Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: angle +ORIGIN: ../../../third_party/angle/src/common/fuchsia_egl/fuchsia_egl.c + ../../../fuchsia/sdk/linux/LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/angle/src/common/fuchsia_egl/fuchsia_egl.c +FILE: ../../../third_party/angle/src/common/fuchsia_egl/fuchsia_egl.h +FILE: ../../../third_party/angle/src/common/fuchsia_egl/fuchsia_egl_backend.h +---------------------------------------------------------------------------------------------------- +Copyright 2019 The Fuchsia Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: icu +ORIGIN: ../../../third_party/icu/filters/android.json + ../../../third_party/dart/runtime/third_party/double-conversion/LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/icu/filters/android.json +FILE: ../../../third_party/icu/filters/cast.json +FILE: ../../../third_party/icu/filters/chromeos.json +FILE: ../../../third_party/icu/filters/common.json +FILE: ../../../third_party/icu/filters/flutter.json +FILE: ../../../third_party/icu/filters/ios.json +---------------------------------------------------------------------------------------------------- +Copyright 2019 the V8 project authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: angle +ORIGIN: ../../../third_party/angle/include/platform/Platform.h + ../../../third_party/angle/LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/angle/include/platform/Platform.h +FILE: ../../../third_party/angle/infra/specs/gn_isolate_map.pyl +FILE: ../../../third_party/angle/samples/capture_replay/angle_trace_gl.h +FILE: ../../../third_party/angle/scripts/entry_point_packed_egl_enums.json +FILE: ../../../third_party/angle/src/common/apple/SoftLinking.h +FILE: ../../../third_party/angle/src/common/entry_points_enum_autogen.cpp +FILE: ../../../third_party/angle/src/common/entry_points_enum_autogen.h +FILE: ../../../third_party/angle/src/common/gl/cgl/FunctionsCGL.cpp +FILE: ../../../third_party/angle/src/common/gl/cgl/FunctionsCGL.h +FILE: ../../../third_party/angle/src/common/system_utils_apple.cpp +FILE: ../../../third_party/angle/src/common/vulkan/vulkan_icd.cpp +FILE: ../../../third_party/angle/src/common/vulkan/vulkan_icd.h +FILE: ../../../third_party/angle/src/compiler/translator/DriverUniformMetal.cpp +FILE: ../../../third_party/angle/src/compiler/translator/DriverUniformMetal.h +FILE: ../../../third_party/angle/src/compiler/translator/ImmutableString_ESSL_autogen.cpp +FILE: ../../../third_party/angle/src/compiler/translator/ImmutableString_autogen.cpp +FILE: ../../../third_party/angle/src/compiler/translator/SymbolTable_ESSL_autogen.cpp +FILE: ../../../third_party/angle/src/compiler/translator/SymbolTable_autogen.cpp +FILE: ../../../third_party/angle/src/compiler/translator/SymbolTable_autogen.h +FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect.cpp +FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect.h +FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/AddExplicitTypeCasts.cpp +FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/AddExplicitTypeCasts.h +FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/AstHelpers.cpp +FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/AstHelpers.h +FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/DebugSink.h +FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/DiscoverDependentFunctions.cpp +FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/DiscoverDependentFunctions.h +FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/DiscoverEnclosingFunctionTraverser.cpp +FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/DiscoverEnclosingFunctionTraverser.h +FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/EmitMetal.cpp +FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/EmitMetal.h +FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/FixTypeConstructors.cpp +FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/FixTypeConstructors.h +FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/HoistConstants.cpp +FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/HoistConstants.h +FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/IdGen.cpp +FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/IdGen.h +FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/IntermRebuild.h +FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/IntroduceVertexIndexID.cpp +FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/IntroduceVertexIndexID.h +FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/Layout.cpp +FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/Layout.h +FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/MapFunctionsToDefinitions.cpp +FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/MapFunctionsToDefinitions.h +FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/MapSymbols.cpp +FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/MapSymbols.h +FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/ModifyStruct.cpp +FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/ModifyStruct.h +FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/Name.cpp +FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/Name.h +FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/Pipeline.cpp +FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/Pipeline.h +FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/ProgramPrelude.cpp +FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/ProgramPrelude.h +FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/ReduceInterfaceBlocks.cpp +FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/ReduceInterfaceBlocks.h +FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/Reference.h +FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/RewriteCaseDeclarations.cpp +FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/RewriteCaseDeclarations.h +FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/RewriteOutArgs.cpp +FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/RewriteOutArgs.h +FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/RewritePipelines.cpp +FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/RewritePipelines.h +FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/RewriteUnaddressableReferences.cpp +FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/RewriteUnaddressableReferences.h +FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/SeparateCompoundExpressions.cpp +FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/SeparateCompoundExpressions.h +FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/SeparateCompoundStructDeclarations.cpp +FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/SeparateCompoundStructDeclarations.h +FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/SkippingTraverser.h +FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/SymbolEnv.cpp +FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/SymbolEnv.h +FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/ToposortStructs.cpp +FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/ToposortStructs.h +FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/TransposeRowMajorMatrices.cpp +FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/TransposeRowMajorMatrices.h +FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/WrapMain.cpp +FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/WrapMain.h +FILE: ../../../third_party/angle/src/compiler/translator/ValidateBarrierFunctionCall.cpp +FILE: ../../../third_party/angle/src/compiler/translator/ValidateBarrierFunctionCall.h +FILE: ../../../third_party/angle/src/compiler/translator/ValidateClipCullDistance.cpp +FILE: ../../../third_party/angle/src/compiler/translator/ValidateClipCullDistance.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/ConvertUnsupportedConstructorsToFunctionCalls.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/ConvertUnsupportedConstructorsToFunctionCalls.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/ForcePrecisionQualifier.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/ForcePrecisionQualifier.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/RemoveAtomicCounterBuiltins.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/RemoveAtomicCounterBuiltins.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/d3d/RecordUniformBlocksWithLargeArrayMember.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/d3d/RecordUniformBlocksWithLargeArrayMember.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/vulkan/FlagSamplersWithTexelFetch.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/vulkan/FlagSamplersWithTexelFetch.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/vulkan/ReplaceForShaderFramebufferFetch.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/vulkan/ReplaceForShaderFramebufferFetch.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/vulkan/RewriteInterpolateAtOffset.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/vulkan/RewriteInterpolateAtOffset.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_util/AsNode.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_util/BuiltIn_ESSL_autogen.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_util/BuiltIn_complete_autogen.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_util/DriverUniform.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_util/DriverUniform.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_util/IntermRebuild.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_util/IntermRebuild.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_util/NodeType.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_util/ReplaceArrayOfMatrixVarying.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_util/ReplaceArrayOfMatrixVarying.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_util/ReplaceClipCullDistanceVariable.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_util/ReplaceClipCullDistanceVariable.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_util/RewriteSampleMaskVariable.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_util/RewriteSampleMaskVariable.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_util/RunAtTheBeginningOfShader.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_util/RunAtTheBeginningOfShader.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_util/SpecializationConstant.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_util/SpecializationConstant.h +FILE: ../../../third_party/angle/src/gpu_info_util/SystemInfo_apple.mm +FILE: ../../../third_party/angle/src/gpu_info_util/SystemInfo_fuchsia.cpp +FILE: ../../../third_party/angle/src/gpu_info_util/SystemInfo_ios.cpp +FILE: ../../../third_party/angle/src/gpu_info_util/SystemInfo_vulkan.cpp +FILE: ../../../third_party/angle/src/gpu_info_util/SystemInfo_vulkan.h +FILE: ../../../third_party/angle/src/libANGLE/Context_gl_1_autogen.h +FILE: ../../../third_party/angle/src/libANGLE/Context_gl_2_autogen.h +FILE: ../../../third_party/angle/src/libANGLE/Context_gl_3_autogen.h +FILE: ../../../third_party/angle/src/libANGLE/Context_gl_4_autogen.h +FILE: ../../../third_party/angle/src/libANGLE/Context_gles_1_0_autogen.h +FILE: ../../../third_party/angle/src/libANGLE/Context_gles_2_0_autogen.h +FILE: ../../../third_party/angle/src/libANGLE/Context_gles_3_0_autogen.h +FILE: ../../../third_party/angle/src/libANGLE/Context_gles_3_1_autogen.h +FILE: ../../../third_party/angle/src/libANGLE/Context_gles_3_2_autogen.h +FILE: ../../../third_party/angle/src/libANGLE/Context_gles_ext_autogen.h +FILE: ../../../third_party/angle/src/libANGLE/InfoLog.h +FILE: ../../../third_party/angle/src/libANGLE/ProgramExecutable.cpp +FILE: ../../../third_party/angle/src/libANGLE/ProgramExecutable.h +FILE: ../../../third_party/angle/src/libANGLE/angletypes_unittest.cpp +FILE: ../../../third_party/angle/src/libANGLE/capture/capture_gl_1_autogen.cpp +FILE: ../../../third_party/angle/src/libANGLE/capture/capture_gl_1_autogen.h +FILE: ../../../third_party/angle/src/libANGLE/capture/capture_gl_2_autogen.cpp +FILE: ../../../third_party/angle/src/libANGLE/capture/capture_gl_2_autogen.h +FILE: ../../../third_party/angle/src/libANGLE/capture/capture_gl_3_autogen.cpp +FILE: ../../../third_party/angle/src/libANGLE/capture/capture_gl_3_autogen.h +FILE: ../../../third_party/angle/src/libANGLE/capture/capture_gl_4_autogen.cpp +FILE: ../../../third_party/angle/src/libANGLE/capture/capture_gl_4_autogen.h +FILE: ../../../third_party/angle/src/libANGLE/capture/capture_gles_1_0_autogen.cpp +FILE: ../../../third_party/angle/src/libANGLE/capture/capture_gles_1_0_autogen.h +FILE: ../../../third_party/angle/src/libANGLE/capture/capture_gles_2_0_autogen.cpp +FILE: ../../../third_party/angle/src/libANGLE/capture/capture_gles_2_0_autogen.h +FILE: ../../../third_party/angle/src/libANGLE/capture/capture_gles_3_0_autogen.cpp +FILE: ../../../third_party/angle/src/libANGLE/capture/capture_gles_3_0_autogen.h +FILE: ../../../third_party/angle/src/libANGLE/capture/capture_gles_3_1_autogen.cpp +FILE: ../../../third_party/angle/src/libANGLE/capture/capture_gles_3_1_autogen.h +FILE: ../../../third_party/angle/src/libANGLE/capture/capture_gles_3_2_autogen.cpp +FILE: ../../../third_party/angle/src/libANGLE/capture/capture_gles_3_2_autogen.h +FILE: ../../../third_party/angle/src/libANGLE/capture/capture_gles_ext_autogen.cpp +FILE: ../../../third_party/angle/src/libANGLE/capture/capture_gles_ext_autogen.h +FILE: ../../../third_party/angle/src/libANGLE/capture/frame_capture_replay_autogen.cpp +FILE: ../../../third_party/angle/src/libANGLE/capture/frame_capture_utils.cpp +FILE: ../../../third_party/angle/src/libANGLE/capture/frame_capture_utils.h +FILE: ../../../third_party/angle/src/libANGLE/capture/frame_capture_utils_autogen.cpp +FILE: ../../../third_party/angle/src/libANGLE/capture/frame_capture_utils_autogen.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/BufferImpl.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/EGLReusableSync.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/EGLReusableSync.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/EGLSyncImpl.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/FormatID_autogen.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/Format_table_autogen.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/driver_utils_d3d.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d/driver_utils_d3d.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d_format.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/d3d_format.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/dxgi_format_map.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/dxgi_format_map_autogen.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/apple/DisplayApple_api.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/apple/DisplayApple_api.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/eagl/ContextEAGL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/eagl/ContextEAGL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/eagl/DeviceEAGL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/eagl/DeviceEAGL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/eagl/DisplayEAGL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/eagl/DisplayEAGL.mm +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/eagl/FunctionsEAGL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/eagl/FunctionsEAGL.mm +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/eagl/IOSurfaceSurfaceEAGL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/eagl/IOSurfaceSurfaceEAGL.mm +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/eagl/PbufferSurfaceEAGL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/eagl/PbufferSurfaceEAGL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/eagl/RendererEAGL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/eagl/RendererEAGL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/eagl/WindowSurfaceEAGL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/eagl/WindowSurfaceEAGL.mm +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/glx/PixmapSurfaceGLX.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/glx/PixmapSurfaceGLX.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/glx/glx_utils.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/glx/glx_utils.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/load_functions_table_autogen.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/IOSurfaceSurfaceMtl.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/SamplerMtl.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/SamplerMtl.mm +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/TransformFeedbackMtl.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/TransformFeedbackMtl.mm +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/file_hooking/shader_cache_file_hooking.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/mtl_format_table_autogen.mm +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/shaders/format_autogen.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/shaders/mtl_default_shaders_src_autogen.inc +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/shaders/mtl_default_shaders_src_autogen.metal +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/CommandProcessor.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/CommandProcessor.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/DebugAnnotatorVk.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/DebugAnnotatorVk.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/ProgramExecutableVk.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/ProgramExecutableVk.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/android/vk_android_utils.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/android/vk_android_utils.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/linux/display/DisplayVkSimple.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/linux/display/DisplayVkSimple.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/linux/display/WindowSurfaceVkSimple.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/linux/display/WindowSurfaceVkSimple.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/linux/headless/DisplayVkHeadless.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/linux/headless/DisplayVkHeadless.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/linux/headless/WindowSurfaceVkHeadless.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/linux/headless/WindowSurfaceVkHeadless.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/mac/IOSurfaceSurfaceVkMac.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/mac/IOSurfaceSurfaceVkMac.mm +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/src/ConvertIndexIndirectLineLoop.comp.json +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/src/GenerateMipmap.comp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/src/GenerateMipmap.comp.json +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/vk_format_table_autogen.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/vk_mandatory_format_support_table_autogen.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/vk_mem_alloc_wrapper.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/vk_mem_alloc_wrapper.h +FILE: ../../../third_party/angle/src/libANGLE/validationEGL_autogen.h +FILE: ../../../third_party/angle/src/libANGLE/validationES1_autogen.h +FILE: ../../../third_party/angle/src/libANGLE/validationES2_autogen.h +FILE: ../../../third_party/angle/src/libANGLE/validationES31_autogen.h +FILE: ../../../third_party/angle/src/libANGLE/validationES32_autogen.h +FILE: ../../../third_party/angle/src/libANGLE/validationES3_autogen.h +FILE: ../../../third_party/angle/src/libANGLE/validationESEXT_autogen.h +FILE: ../../../third_party/angle/src/libANGLE/validationGL11_autogen.h +FILE: ../../../third_party/angle/src/libANGLE/validationGL12_autogen.h +FILE: ../../../third_party/angle/src/libANGLE/validationGL13_autogen.h +FILE: ../../../third_party/angle/src/libANGLE/validationGL14_autogen.h +FILE: ../../../third_party/angle/src/libANGLE/validationGL15_autogen.h +FILE: ../../../third_party/angle/src/libANGLE/validationGL1_autogen.h +FILE: ../../../third_party/angle/src/libANGLE/validationGL21_autogen.h +FILE: ../../../third_party/angle/src/libANGLE/validationGL2_autogen.h +FILE: ../../../third_party/angle/src/libANGLE/validationGL31_autogen.h +FILE: ../../../third_party/angle/src/libANGLE/validationGL32_autogen.h +FILE: ../../../third_party/angle/src/libANGLE/validationGL33_autogen.h +FILE: ../../../third_party/angle/src/libANGLE/validationGL3_autogen.h +FILE: ../../../third_party/angle/src/libANGLE/validationGL41_autogen.h +FILE: ../../../third_party/angle/src/libANGLE/validationGL42_autogen.h +FILE: ../../../third_party/angle/src/libANGLE/validationGL43_autogen.h +FILE: ../../../third_party/angle/src/libANGLE/validationGL44_autogen.h +FILE: ../../../third_party/angle/src/libANGLE/validationGL45_autogen.h +FILE: ../../../third_party/angle/src/libANGLE/validationGL46_autogen.h +FILE: ../../../third_party/angle/src/libANGLE/validationGL4_autogen.h +FILE: ../../../third_party/angle/src/libEGL/libEGL_autogen.cpp +FILE: ../../../third_party/angle/src/libEGL/libEGL_autogen.def +FILE: ../../../third_party/angle/src/libGLESv2/egl_ext_stubs.cpp +FILE: ../../../third_party/angle/src/libGLESv2/egl_ext_stubs_autogen.h +FILE: ../../../third_party/angle/src/libGLESv2/egl_get_labeled_object_data.json +FILE: ../../../third_party/angle/src/libGLESv2/egl_stubs.cpp +FILE: ../../../third_party/angle/src/libGLESv2/egl_stubs_autogen.h +FILE: ../../../third_party/angle/src/libGLESv2/entry_points_cl_autogen.cpp +FILE: ../../../third_party/angle/src/libGLESv2/entry_points_cl_autogen.h +FILE: ../../../third_party/angle/src/libGLESv2/entry_points_egl_autogen.cpp +FILE: ../../../third_party/angle/src/libGLESv2/entry_points_egl_autogen.h +FILE: ../../../third_party/angle/src/libGLESv2/entry_points_egl_ext_autogen.cpp +FILE: ../../../third_party/angle/src/libGLESv2/entry_points_egl_ext_autogen.h +FILE: ../../../third_party/angle/src/libGLESv2/entry_points_gl_1_autogen.cpp +FILE: ../../../third_party/angle/src/libGLESv2/entry_points_gl_1_autogen.h +FILE: ../../../third_party/angle/src/libGLESv2/entry_points_gl_2_autogen.cpp +FILE: ../../../third_party/angle/src/libGLESv2/entry_points_gl_2_autogen.h +FILE: ../../../third_party/angle/src/libGLESv2/entry_points_gl_3_autogen.cpp +FILE: ../../../third_party/angle/src/libGLESv2/entry_points_gl_3_autogen.h +FILE: ../../../third_party/angle/src/libGLESv2/entry_points_gl_4_autogen.cpp +FILE: ../../../third_party/angle/src/libGLESv2/entry_points_gl_4_autogen.h +FILE: ../../../third_party/angle/src/libGLESv2/entry_points_gles_1_0_autogen.cpp +FILE: ../../../third_party/angle/src/libGLESv2/entry_points_gles_1_0_autogen.h +FILE: ../../../third_party/angle/src/libGLESv2/entry_points_gles_2_0_autogen.cpp +FILE: ../../../third_party/angle/src/libGLESv2/entry_points_gles_2_0_autogen.h +FILE: ../../../third_party/angle/src/libGLESv2/entry_points_gles_3_0_autogen.cpp +FILE: ../../../third_party/angle/src/libGLESv2/entry_points_gles_3_0_autogen.h +FILE: ../../../third_party/angle/src/libGLESv2/entry_points_gles_3_1_autogen.cpp +FILE: ../../../third_party/angle/src/libGLESv2/entry_points_gles_3_1_autogen.h +FILE: ../../../third_party/angle/src/libGLESv2/entry_points_gles_3_2_autogen.cpp +FILE: ../../../third_party/angle/src/libGLESv2/entry_points_gles_3_2_autogen.h +FILE: ../../../third_party/angle/src/libGLESv2/entry_points_gles_ext_autogen.cpp +FILE: ../../../third_party/angle/src/libGLESv2/entry_points_gles_ext_autogen.h +FILE: ../../../third_party/angle/src/libGLESv2/libGLESv2_autogen.cpp +FILE: ../../../third_party/angle/src/libGLESv2/libGLESv2_autogen.def +FILE: ../../../third_party/angle/src/libGLESv2/libGLESv2_no_capture_autogen.def +FILE: ../../../third_party/angle/src/libGLESv2/libGLESv2_with_capture_autogen.def +FILE: ../../../third_party/angle/src/libGLESv2/opengl32_autogen.def +FILE: ../../../third_party/angle/src/libGLESv2/opengl32_with_wgl_autogen.def +FILE: ../../../third_party/angle/src/libOpenCL/libOpenCL_autogen.cpp +FILE: ../../../third_party/angle/util/capture/angle_trace_gl.h +FILE: ../../../third_party/angle/util/capture/frame_capture_test_utils.h +FILE: ../../../third_party/angle/util/display/DisplayPixmap.cpp +FILE: ../../../third_party/angle/util/display/DisplayWindow.cpp +FILE: ../../../third_party/angle/util/display/DisplayWindow.h +FILE: ../../../third_party/angle/util/ios/IOSPixmap.h +FILE: ../../../third_party/angle/util/ios/IOSPixmap.mm +FILE: ../../../third_party/angle/util/ios/IOSWindow.h +FILE: ../../../third_party/angle/util/ios/IOSWindow.mm +FILE: ../../../third_party/angle/util/ios/ios_main.mm +FILE: ../../../third_party/angle/util/png_utils.cpp +FILE: ../../../third_party/angle/util/png_utils.h +---------------------------------------------------------------------------------------------------- +Copyright 2020 The ANGLE Project Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + + Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. + Ltd., nor the names of their contributors may be used to endorse + or promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: angle +ORIGIN: ../../../third_party/angle/src/libANGLE/renderer/metal/shaders/constants.h + ../../../third_party/angle/LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/shaders/constants.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/shaders/copy_buffer.metal +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/shaders/gen_mipmap.metal +---------------------------------------------------------------------------------------------------- +Copyright 2020 The ANGLE Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + + Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. + Ltd., nor the names of their contributors may be used to endorse + or promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: abseil-cpp +ORIGIN: ../../../third_party/abseil-cpp/absl_hardening_test.cc + ../../../LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/abseil-cpp/absl_hardening_test.cc +---------------------------------------------------------------------------------------------------- +Copyright 2020 The Chromium Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: angle +ORIGIN: ../../../third_party/angle/android/AndroidManifest.xml + ../../../third_party/angle/LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/angle/android/AndroidManifest.xml +FILE: ../../../third_party/angle/include/angle_cl.h +FILE: ../../../third_party/angle/infra/specs/angle_mb_config.pyl +FILE: ../../../third_party/angle/infra/specs/mixins.pyl +FILE: ../../../third_party/angle/infra/specs/test_suite_exceptions.pyl +FILE: ../../../third_party/angle/infra/specs/test_suites.pyl +FILE: ../../../third_party/angle/infra/specs/variants.pyl +FILE: ../../../third_party/angle/infra/specs/waterfalls.pyl +FILE: ../../../third_party/angle/samples/multiple_contexts/MultipleContexts.cpp +FILE: ../../../third_party/angle/samples/torus_lighting/TorusBufferStorage.cpp +FILE: ../../../third_party/angle/samples/torus_lighting/TorusLightingES1.cpp +FILE: ../../../third_party/angle/samples/torus_lighting/TorusLightingES2.cpp +FILE: ../../../third_party/angle/samples/torus_lighting/torus.h +FILE: ../../../third_party/angle/src/common/CircularBuffer.h +FILE: ../../../third_party/angle/src/common/CircularBuffer_unittest.cpp +FILE: ../../../third_party/angle/src/common/Spinlock.h +FILE: ../../../third_party/angle/src/common/SynchronizedValue.h +FILE: ../../../third_party/angle/src/common/angle_version_info.cpp +FILE: ../../../third_party/angle/src/common/angle_version_info.h +FILE: ../../../third_party/angle/src/common/apple/apple_platform.h +FILE: ../../../third_party/angle/src/common/linux/dma_buf_utils.cpp +FILE: ../../../third_party/angle/src/common/linux/dma_buf_utils.h +FILE: ../../../third_party/angle/src/common/serializer/JsonSerializer.cpp +FILE: ../../../third_party/angle/src/common/serializer/JsonSerializer.h +FILE: ../../../third_party/angle/src/common/serializer/JsonSerializer_unittest.cpp +FILE: ../../../third_party/angle/src/common/spirv/angle_spirv_utils.cpp +FILE: ../../../third_party/angle/src/common/spirv/spirv_instruction_builder_autogen.cpp +FILE: ../../../third_party/angle/src/common/spirv/spirv_instruction_builder_autogen.h +FILE: ../../../third_party/angle/src/common/spirv/spirv_instruction_parser_autogen.cpp +FILE: ../../../third_party/angle/src/common/spirv/spirv_instruction_parser_autogen.h +FILE: ../../../third_party/angle/src/common/spirv/spirv_types.h +FILE: ../../../third_party/angle/src/common/vulkan/libvulkan_loader.cpp +FILE: ../../../third_party/angle/src/common/vulkan/libvulkan_loader.h +FILE: ../../../third_party/angle/src/compiler/translator/BuildSPIRV.cpp +FILE: ../../../third_party/angle/src/compiler/translator/BuildSPIRV.h +FILE: ../../../third_party/angle/src/compiler/translator/Operator_autogen.h +FILE: ../../../third_party/angle/src/compiler/translator/OutputSPIRV.cpp +FILE: ../../../third_party/angle/src/compiler/translator/OutputSPIRV.h +FILE: ../../../third_party/angle/src/compiler/translator/ValidateTypeSizeLimitations.cpp +FILE: ../../../third_party/angle/src/compiler/translator/ValidateTypeSizeLimitations.h +FILE: ../../../third_party/angle/src/compiler/translator/glslang_wrapper.cpp +FILE: ../../../third_party/angle/src/compiler/translator/glslang_wrapper.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/ClampIndirectIndices.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/ClampIndirectIndices.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/MonomorphizeUnsupportedFunctions.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/MonomorphizeUnsupportedFunctions.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/RewriteArrayOfArrayOfOpaqueUniforms.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/vulkan/DeclarePerVertexBlocks.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/vulkan/DeclarePerVertexBlocks.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/vulkan/EmulateFragColorData.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/vulkan/EmulateFragColorData.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/vulkan/RewriteR32fImages.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/vulkan/RewriteR32fImages.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_util/FindPreciseNodes.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_util/FindPreciseNodes.h +FILE: ../../../third_party/angle/src/libANGLE/CLBitField.h +FILE: ../../../third_party/angle/src/libANGLE/CLBuffer.cpp +FILE: ../../../third_party/angle/src/libANGLE/CLBuffer.h +FILE: ../../../third_party/angle/src/libANGLE/CLCommandQueue.cpp +FILE: ../../../third_party/angle/src/libANGLE/CLCommandQueue.h +FILE: ../../../third_party/angle/src/libANGLE/CLContext.cpp +FILE: ../../../third_party/angle/src/libANGLE/CLContext.h +FILE: ../../../third_party/angle/src/libANGLE/CLDevice.cpp +FILE: ../../../third_party/angle/src/libANGLE/CLDevice.h +FILE: ../../../third_party/angle/src/libANGLE/CLEvent.cpp +FILE: ../../../third_party/angle/src/libANGLE/CLEvent.h +FILE: ../../../third_party/angle/src/libANGLE/CLImage.cpp +FILE: ../../../third_party/angle/src/libANGLE/CLImage.h +FILE: ../../../third_party/angle/src/libANGLE/CLKernel.cpp +FILE: ../../../third_party/angle/src/libANGLE/CLKernel.h +FILE: ../../../third_party/angle/src/libANGLE/CLMemory.cpp +FILE: ../../../third_party/angle/src/libANGLE/CLMemory.h +FILE: ../../../third_party/angle/src/libANGLE/CLObject.cpp +FILE: ../../../third_party/angle/src/libANGLE/CLObject.h +FILE: ../../../third_party/angle/src/libANGLE/CLPlatform.cpp +FILE: ../../../third_party/angle/src/libANGLE/CLPlatform.h +FILE: ../../../third_party/angle/src/libANGLE/CLProgram.cpp +FILE: ../../../third_party/angle/src/libANGLE/CLProgram.h +FILE: ../../../third_party/angle/src/libANGLE/CLRefPointer.h +FILE: ../../../third_party/angle/src/libANGLE/CLSampler.cpp +FILE: ../../../third_party/angle/src/libANGLE/CLSampler.h +FILE: ../../../third_party/angle/src/libANGLE/CLtypes.h +FILE: ../../../third_party/angle/src/libANGLE/capture/frame_capture_utils_mock.cpp +FILE: ../../../third_party/angle/src/libANGLE/capture/trace_fixture.cpp +FILE: ../../../third_party/angle/src/libANGLE/capture/trace_fixture.h +FILE: ../../../third_party/angle/src/libANGLE/cl_utils.cpp +FILE: ../../../third_party/angle/src/libANGLE/cl_utils.h +FILE: ../../../third_party/angle/src/libANGLE/gles_extensions_autogen.cpp +FILE: ../../../third_party/angle/src/libANGLE/gles_extensions_autogen.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/CLCommandQueueImpl.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/CLCommandQueueImpl.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/CLContextImpl.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/CLContextImpl.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/CLDeviceImpl.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/CLDeviceImpl.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/CLEventImpl.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/CLEventImpl.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/CLExtensions.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/CLExtensions.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/CLKernelImpl.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/CLKernelImpl.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/CLMemoryImpl.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/CLMemoryImpl.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/CLPlatformImpl.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/CLPlatformImpl.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/CLProgramImpl.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/CLProgramImpl.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/CLSamplerImpl.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/CLSamplerImpl.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/CLtypes.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/ImageImpl.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/ShaderInterfaceVariableInfoMap.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/ShaderInterfaceVariableInfoMap.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/cl/CLCommandQueueCL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/cl/CLCommandQueueCL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/cl/CLContextCL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/cl/CLContextCL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/cl/CLDeviceCL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/cl/CLDeviceCL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/cl/CLEventCL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/cl/CLEventCL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/cl/CLKernelCL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/cl/CLKernelCL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/cl/CLMemoryCL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/cl/CLMemoryCL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/cl/CLPlatformCL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/cl/CLPlatformCL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/cl/CLProgramCL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/cl/CLProgramCL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/cl/CLSamplerCL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/cl/CLSamplerCL.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/cl/cl_types.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/cl/cl_util.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/cl/cl_util.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/driver_utils_ios.mm +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/DisplayGL_unittest.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/DeviceMtl.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/DeviceMtl.mm +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/ImageMtl.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/ImageMtl.mm +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/ProvokingVertexHelper.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/ProvokingVertexHelper.mm +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/mtl_context_device.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/mtl_context_device.mm +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/mtl_resource_spi.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/shaders/rewrite_indices.metal +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/CLCommandQueueVk.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/CLCommandQueueVk.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/CLContextVk.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/CLContextVk.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/CLDeviceVk.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/CLDeviceVk.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/CLEventVk.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/CLEventVk.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/CLKernelVk.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/CLKernelVk.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/CLMemoryVk.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/CLMemoryVk.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/CLPlatformVk.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/CLPlatformVk.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/CLProgramVk.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/CLProgramVk.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/CLSamplerVk.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/CLSamplerVk.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/VkImageImageSiblingVk.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/VkImageImageSiblingVk.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/VulkanSecondaryCommandBuffer.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/VulkanSecondaryCommandBuffer.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/android/AHBFunctions.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/android/AHBFunctions.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/cl_types.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/linux/DisplayVkLinux.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/linux/DisplayVkLinux.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/linux/DmaBufImageSiblingVkLinux.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/linux/DmaBufImageSiblingVkLinux.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/null/DisplayVkNull.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/null/DisplayVkNull.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/vk_command_buffer_utils.h +FILE: ../../../third_party/angle/src/libANGLE/validationCL.cpp +FILE: ../../../third_party/angle/src/libANGLE/validationCL.h +FILE: ../../../third_party/angle/src/libANGLE/validationCL_autogen.h +FILE: ../../../third_party/angle/src/libGLESv2/cl_dispatch_table.cpp +FILE: ../../../third_party/angle/src/libGLESv2/cl_dispatch_table.h +FILE: ../../../third_party/angle/src/libGLESv2/cl_stubs.cpp +FILE: ../../../third_party/angle/src/libGLESv2/cl_stubs_autogen.h +FILE: ../../../third_party/angle/src/libGLESv2/entry_points_cl_utils.cpp +FILE: ../../../third_party/angle/src/libGLESv2/entry_points_cl_utils.h +FILE: ../../../third_party/angle/src/libGLESv2/proc_table_cl.h +FILE: ../../../third_party/angle/src/libGLESv2/proc_table_cl_autogen.cpp +FILE: ../../../third_party/angle/src/libOpenCL/dispatch.cpp +FILE: ../../../third_party/angle/src/libOpenCL/dispatch.h +FILE: ../../../third_party/angle/src/libOpenCL/libOpenCL_autogen.map +FILE: ../../../third_party/angle/util/capture/frame_capture_test_utils.cpp +FILE: ../../../third_party/angle/util/capture/traces_export.h +---------------------------------------------------------------------------------------------------- +Copyright 2021 The ANGLE Project Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + + Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. + Ltd., nor the names of their contributors may be used to endorse + or promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: angle +ORIGIN: ../../../third_party/angle/src/libANGLE/renderer/metal/shaders/rewrite_indices_shared.h + ../../../third_party/angle/LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/angle/src/libANGLE/renderer/metal/shaders/rewrite_indices_shared.h +---------------------------------------------------------------------------------------------------- +Copyright 2021 The ANGLE Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + + Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. + Ltd., nor the names of their contributors may be used to endorse + or promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: angle +ORIGIN: ../../../third_party/angle/infra/config/main.star + ../../../LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/angle/infra/config/main.star +---------------------------------------------------------------------------------------------------- +Copyright 2021 The Chromium Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: angle +ORIGIN: ../../../third_party/angle/src/libANGLE/renderer/vulkan/linux/wayland/DisplayVkWayland.cpp + ../../../third_party/angle/LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/linux/wayland/DisplayVkWayland.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/linux/wayland/DisplayVkWayland.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/linux/wayland/WindowSurfaceVkWayland.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/linux/wayland/WindowSurfaceVkWayland.h +---------------------------------------------------------------------------------------------------- +Copyright 2021-2022 The ANGLE Project Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + + Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. + Ltd., nor the names of their contributors may be used to endorse + or promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: angle +ORIGIN: ../../../third_party/angle/include/platform/FeaturesD3D_autogen.h + ../../../third_party/angle/LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/angle/include/platform/FeaturesD3D_autogen.h +FILE: ../../../third_party/angle/include/platform/FeaturesGL_autogen.h +FILE: ../../../third_party/angle/include/platform/FeaturesMtl_autogen.h +FILE: ../../../third_party/angle/include/platform/FeaturesVk_autogen.h +FILE: ../../../third_party/angle/include/platform/FrontendFeatures_autogen.h +FILE: ../../../third_party/angle/include/platform/d3d_features.json +FILE: ../../../third_party/angle/include/platform/frontend_features.json +FILE: ../../../third_party/angle/include/platform/gl_features.json +FILE: ../../../third_party/angle/include/platform/mtl_features.json +FILE: ../../../third_party/angle/include/platform/vk_features.json +FILE: ../../../third_party/angle/samples/hello_triangle_gl/HelloTriangleGL.cpp +FILE: ../../../third_party/angle/scripts/angle_android_codegen.go +FILE: ../../../third_party/angle/src/common/apple_platform_utils.mm +FILE: ../../../third_party/angle/src/compiler/translator/BaseTypes.cpp +FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalConstantNames.cpp +FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/GuardFragDepthWrite.cpp +FILE: ../../../third_party/angle/src/compiler/translator/TranslatorMetalDirect/GuardFragDepthWrite.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/RewritePixelLocalStorage.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/RewritePixelLocalStorage.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/d3d/AggregateAssignArraysInSSBOs.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/d3d/AggregateAssignArraysInSSBOs.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/d3d/AggregateAssignStructsInSSBOs.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/d3d/AggregateAssignStructsInSSBOs.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/vulkan/EmulateAdvancedBlendEquations.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/vulkan/EmulateAdvancedBlendEquations.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/vulkan/EmulateDithering.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/vulkan/EmulateDithering.h +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/vulkan/EmulateYUVBuiltIns.cpp +FILE: ../../../third_party/angle/src/compiler/translator/tree_ops/vulkan/EmulateYUVBuiltIns.h +FILE: ../../../third_party/angle/src/image_util/loadimage_astc.cpp +FILE: ../../../third_party/angle/src/libANGLE/MemoryShaderCache.cpp +FILE: ../../../third_party/angle/src/libANGLE/MemoryShaderCache.h +FILE: ../../../third_party/angle/src/libANGLE/Overlay_font_autogen.cpp +FILE: ../../../third_party/angle/src/libANGLE/Overlay_font_autogen.h +FILE: ../../../third_party/angle/src/libANGLE/PixelLocalStorage.cpp +FILE: ../../../third_party/angle/src/libANGLE/PixelLocalStorage.h +FILE: ../../../third_party/angle/src/libANGLE/capture/capture_egl.cpp +FILE: ../../../third_party/angle/src/libANGLE/capture/capture_egl.h +FILE: ../../../third_party/angle/src/libANGLE/capture/capture_gl_1_params.cpp +FILE: ../../../third_party/angle/src/libANGLE/capture/capture_gl_2_params.cpp +FILE: ../../../third_party/angle/src/libANGLE/capture/capture_gl_3_params.cpp +FILE: ../../../third_party/angle/src/libANGLE/capture/capture_gl_4_params.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/FramebufferImpl.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/ProgramImpl.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/ProgramPipelineImpl.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/RenderbufferImpl.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/TransformFeedbackImpl.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/VertexArrayImpl.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/Suballocation.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/Suballocation.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/linux/gbm/DisplayVkGbm.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/linux/gbm/DisplayVkGbm.h +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/src/OverlayDraw.frag +FILE: ../../../third_party/angle/src/libANGLE/renderer/vulkan/shaders/src/OverlayDraw.vert +FILE: ../../../third_party/angle/src/libGLESv2/entry_points_glx.cpp +FILE: ../../../third_party/angle/src/libGLESv2/entry_points_glx.h +FILE: ../../../third_party/angle/util/angle_features_autogen.cpp +FILE: ../../../third_party/angle/util/angle_features_autogen.h +FILE: ../../../third_party/angle/util/linux/LinuxWindow.cpp +FILE: ../../../third_party/angle/util/linux/wayland/WaylandWindow.cpp +FILE: ../../../third_party/angle/util/linux/wayland/WaylandWindow.h +---------------------------------------------------------------------------------------------------- +Copyright 2022 The ANGLE Project Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + + Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. + Ltd., nor the names of their contributors may be used to endorse + or promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: zlib +ORIGIN: ../../../third_party/zlib/slide_hash_simd.h + ../../../LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/zlib/slide_hash_simd.h +---------------------------------------------------------------------------------------------------- +Copyright 2022 The Chromium Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: angle +ORIGIN: ../../../third_party/angle/src/libANGLE/renderer/gl/egl/DmaBufImageSiblingEGL.cpp + ../../../third_party/angle/LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/egl/DmaBufImageSiblingEGL.cpp +FILE: ../../../third_party/angle/src/libANGLE/renderer/gl/egl/DmaBufImageSiblingEGL.h +FILE: ../../../third_party/angle/util/fuchsia/FuchsiaPixmap.cpp +FILE: ../../../third_party/angle/util/fuchsia/FuchsiaPixmap.h +---------------------------------------------------------------------------------------------------- +Copyright The ANGLE Project Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + + Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. + Ltd., nor the names of their contributors may be used to endorse + or promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +==================================================================================================== + +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-buffer.h +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-buffer.h +---------------------------------------------------------------------------------------------------- +Copyright © 1998-2004 David Turner and Werner Lemberg +Copyright © 2004,2007,2009 Red Hat, Inc. +Copyright © 2011,2012 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== + +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-buffer.cc +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-buffer.cc +FILE: ../../../third_party/harfbuzz/src/hb-buffer.hh +---------------------------------------------------------------------------------------------------- +Copyright © 1998-2004 David Turner and Werner Lemberg +Copyright © 2004,2007,2009,2010 Red Hat, Inc. +Copyright © 2011,2012 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== + +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-ot-layout.cc +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-ot-layout.cc +---------------------------------------------------------------------------------------------------- +Copyright © 1998-2004 David Turner and Werner Lemberg +Copyright © 2006 Behdad Esfahbod +Copyright © 2007,2008,2009 Red Hat, Inc. +Copyright © 2012,2013 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== + +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-atomic.hh +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-atomic.hh +FILE: ../../../third_party/harfbuzz/src/hb-mutex.hh +FILE: ../../../third_party/harfbuzz/src/hb-object.hh +---------------------------------------------------------------------------------------------------- +Copyright © 2007 Chris Wilson +Copyright © 2009,2010 Red Hat, Inc. +Copyright © 2011,2012 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== + +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-ot-layout.h +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-ot-layout.h +---------------------------------------------------------------------------------------------------- +Copyright © 2007,2008,2009 Red Hat, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== + +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-ot-layout-gdef-table.hh +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-ot-layout-gdef-table.hh +---------------------------------------------------------------------------------------------------- +Copyright © 2007,2008,2009 Red Hat, Inc. +Copyright © 2010,2011,2012 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== + +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-ot-layout-common.hh +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-ot-layout-common.hh +---------------------------------------------------------------------------------------------------- +Copyright © 2007,2008,2009 Red Hat, Inc. +Copyright © 2010,2012 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== + +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-common.h +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-common.h +FILE: ../../../third_party/harfbuzz/src/hb.hh +---------------------------------------------------------------------------------------------------- +Copyright © 2007,2008,2009 Red Hat, Inc. +Copyright © 2011,2012 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== + +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-open-file.hh +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-open-file.hh +---------------------------------------------------------------------------------------------------- +Copyright © 2007,2008,2009 Red Hat, Inc. +Copyright © 2012 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== + +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-ot-face.hh +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-ot-face.hh +FILE: ../../../third_party/harfbuzz/src/hb-ot-layout.hh +---------------------------------------------------------------------------------------------------- +Copyright © 2007,2008,2009 Red Hat, Inc. +Copyright © 2012,2013 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== + +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-ot-face-table-list.hh +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-ot-face-table-list.hh +---------------------------------------------------------------------------------------------------- +Copyright © 2007,2008,2009 Red Hat, Inc. +Copyright © 2012,2013 Google, Inc. +Copyright © 2019, Facebook Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== + +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/main.cc +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/main.cc +---------------------------------------------------------------------------------------------------- +Copyright © 2007,2008,2009 Red Hat, Inc. +Copyright © 2018,2019,2020 Ebrahim Byagowi +Copyright © 2018 Khaled Hosny + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== + +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-ot-layout-gsubgpos.hh +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-ot-layout-gsubgpos.hh +---------------------------------------------------------------------------------------------------- +Copyright © 2007,2008,2009,2010 Red Hat, Inc. +Copyright © 2010,2012 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== + +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-ot-layout-gpos-table.hh +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-ot-layout-gpos-table.hh +FILE: ../../../third_party/harfbuzz/src/hb-ot-layout-gsub-table.hh +---------------------------------------------------------------------------------------------------- +Copyright © 2007,2008,2009,2010 Red Hat, Inc. +Copyright © 2010,2012,2013 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== + +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-open-type.hh +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-open-type.hh +---------------------------------------------------------------------------------------------------- +Copyright © 2007,2008,2009,2010 Red Hat, Inc. +Copyright © 2012 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== + +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-dispatch.hh +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-dispatch.hh +FILE: ../../../third_party/harfbuzz/src/hb-machinery.hh +FILE: ../../../third_party/harfbuzz/src/hb-sanitize.hh +---------------------------------------------------------------------------------------------------- +Copyright © 2007,2008,2009,2010 Red Hat, Inc. +Copyright © 2012,2018 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== + +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-serialize.hh +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-serialize.hh +---------------------------------------------------------------------------------------------------- +Copyright © 2007,2008,2009,2010 Red Hat, Inc. +Copyright © 2012,2018 Google, Inc. +Copyright © 2019 Facebook, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== + +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-blob.h +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-blob.h +FILE: ../../../third_party/harfbuzz/src/hb-face.h +FILE: ../../../third_party/harfbuzz/src/hb-font.h +FILE: ../../../third_party/harfbuzz/src/hb-ot.h +FILE: ../../../third_party/harfbuzz/src/hb.h +---------------------------------------------------------------------------------------------------- +Copyright © 2009 Red Hat, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== + +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-icu.cc +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-icu.cc +---------------------------------------------------------------------------------------------------- +Copyright © 2009 Red Hat, Inc. +Copyright © 2009 Keith Stribley +Copyright © 2011 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== + +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-ft.cc +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-ft.cc +---------------------------------------------------------------------------------------------------- +Copyright © 2009 Red Hat, Inc. +Copyright © 2009 Keith Stribley +Copyright © 2015 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== + +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-unicode.cc +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-unicode.cc +FILE: ../../../third_party/harfbuzz/src/hb-unicode.hh +---------------------------------------------------------------------------------------------------- +Copyright © 2009 Red Hat, Inc. +Copyright © 2011 Codethink Limited +Copyright © 2010,2011,2012 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== + +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-unicode.h +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-unicode.h +---------------------------------------------------------------------------------------------------- +Copyright © 2009 Red Hat, Inc. +Copyright © 2011 Codethink Limited +Copyright © 2011,2012 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== + +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-face.hh +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-face.hh +FILE: ../../../third_party/harfbuzz/src/hb-font.hh +FILE: ../../../third_party/harfbuzz/src/hb-glib.cc +FILE: ../../../third_party/harfbuzz/src/hb-glib.h +FILE: ../../../third_party/harfbuzz/src/hb-icu.h +FILE: ../../../third_party/harfbuzz/src/hb-ot-tag.cc +---------------------------------------------------------------------------------------------------- +Copyright © 2009 Red Hat, Inc. +Copyright © 2011 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== + +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-face.cc +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-face.cc +FILE: ../../../third_party/harfbuzz/src/hb-font.cc +FILE: ../../../third_party/harfbuzz/src/hb-shape.cc +FILE: ../../../third_party/harfbuzz/src/hb-shape.h +---------------------------------------------------------------------------------------------------- +Copyright © 2009 Red Hat, Inc. +Copyright © 2012 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== + +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-ft.h +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-ft.h +---------------------------------------------------------------------------------------------------- +Copyright © 2009 Red Hat, Inc. +Copyright © 2015 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== + +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-blob.cc +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-blob.cc +---------------------------------------------------------------------------------------------------- +Copyright © 2009 Red Hat, Inc. +Copyright © 2018 Ebrahim Byagowi + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== + +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-blob.hh +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-blob.hh +---------------------------------------------------------------------------------------------------- +Copyright © 2009 Red Hat, Inc. +Copyright © 2018 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== + +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-ot-shape.cc +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-ot-shape.cc +---------------------------------------------------------------------------------------------------- +Copyright © 2009,2010 Red Hat, Inc. +Copyright © 2010,2011,2012 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== + +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-ot-map.hh +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-ot-map.hh +---------------------------------------------------------------------------------------------------- +Copyright © 2009,2010 Red Hat, Inc. +Copyright © 2010,2011,2012,2013 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== + +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-aat-map.cc +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-aat-map.cc +FILE: ../../../third_party/harfbuzz/src/hb-ot-map.cc +---------------------------------------------------------------------------------------------------- +Copyright © 2009,2010 Red Hat, Inc. +Copyright © 2010,2011,2013 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== + +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-common.cc +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-common.cc +---------------------------------------------------------------------------------------------------- +Copyright © 2009,2010 Red Hat, Inc. +Copyright © 2011,2012 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== + +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-ot-shape.hh +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-ot-shape.hh +---------------------------------------------------------------------------------------------------- +Copyright © 2010 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== + +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-ot-head-table.hh +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-ot-head-table.hh +---------------------------------------------------------------------------------------------------- +Copyright © 2010 Red Hat, Inc. +Copyright © 2012 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== + +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/test-gpos-size-params.cc +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/test-gpos-size-params.cc +FILE: ../../../third_party/harfbuzz/src/test-gsub-would-substitute.cc +FILE: ../../../third_party/harfbuzz/src/test.cc +---------------------------------------------------------------------------------------------------- +Copyright © 2010,2011 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== + +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-ot-shape-complex.hh +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-ot-shape-complex.hh +---------------------------------------------------------------------------------------------------- +Copyright © 2010,2011,2012 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== + +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/test-buffer-serialize.cc +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/test-buffer-serialize.cc +---------------------------------------------------------------------------------------------------- +Copyright © 2010,2011,2013 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== + +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-ot-shape-complex-arabic.cc +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-ot-shape-complex-arabic.cc +FILE: ../../../third_party/harfbuzz/src/hb-ot-shape-complex-default.cc +FILE: ../../../third_party/harfbuzz/src/hb-ot-shape-complex-hebrew.cc +FILE: ../../../third_party/harfbuzz/src/hb-ot-shape-complex-thai.cc +---------------------------------------------------------------------------------------------------- +Copyright © 2010,2012 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== + +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-fallback-shape.cc +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-fallback-shape.cc +FILE: ../../../third_party/harfbuzz/src/hb-gobject-structs.cc +FILE: ../../../third_party/harfbuzz/src/hb-uniscribe.h +FILE: ../../../third_party/harfbuzz/src/hb-version.h +FILE: ../../../third_party/harfbuzz/src/hb-version.h.in +---------------------------------------------------------------------------------------------------- +Copyright © 2011 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== + +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-graphite2.h +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-graphite2.h +---------------------------------------------------------------------------------------------------- +Copyright © 2011 Martin Hosken +Copyright © 2011 SIL International + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== + +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-graphite2.cc +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-graphite2.cc +---------------------------------------------------------------------------------------------------- +Copyright © 2011 Martin Hosken +Copyright © 2011 SIL International +Copyright © 2011,2012 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== + +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-ot-hhea-table.hh +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-ot-hhea-table.hh +FILE: ../../../third_party/harfbuzz/src/hb-ot-hmtx-table.hh +FILE: ../../../third_party/harfbuzz/src/hb-ot-maxp-table.hh +FILE: ../../../third_party/harfbuzz/src/hb-ot-name-table.hh +FILE: ../../../third_party/harfbuzz/src/hb-ot-shape-complex-indic-machine.hh +FILE: ../../../third_party/harfbuzz/src/hb-ot-shape-complex-indic-machine.rl +FILE: ../../../third_party/harfbuzz/src/hb-ot-shape-complex-indic.cc +FILE: ../../../third_party/harfbuzz/src/hb-ot-shape-complex-khmer-machine.hh +FILE: ../../../third_party/harfbuzz/src/hb-ot-shape-complex-khmer-machine.rl +FILE: ../../../third_party/harfbuzz/src/hb-ot-shape-complex-khmer.cc +FILE: ../../../third_party/harfbuzz/src/hb-ot-shape-complex-myanmar-machine.hh +FILE: ../../../third_party/harfbuzz/src/hb-ot-shape-complex-myanmar-machine.rl +FILE: ../../../third_party/harfbuzz/src/hb-ot-shape-fallback.cc +FILE: ../../../third_party/harfbuzz/src/hb-ot-shape-normalize.cc +---------------------------------------------------------------------------------------------------- +Copyright © 2011,2012 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== + +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-ot-os2-table.hh +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-ot-os2-table.hh +---------------------------------------------------------------------------------------------------- +Copyright © 2011,2012 Google, Inc. +Copyright © 2018 Ebrahim Byagowi + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== + +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-ot-shape-complex-myanmar.cc +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-ot-shape-complex-myanmar.cc +FILE: ../../../third_party/harfbuzz/src/hb-uniscribe.cc +---------------------------------------------------------------------------------------------------- +Copyright © 2011,2012,2013 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== + +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-ms-feature-ranges.cc +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-ms-feature-ranges.cc +FILE: ../../../third_party/harfbuzz/src/hb-ms-feature-ranges.hh +---------------------------------------------------------------------------------------------------- +Copyright © 2011,2012,2013 Google, Inc. +Copyright © 2021 Khaled Hosny + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== + +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-utf.hh +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-utf.hh +---------------------------------------------------------------------------------------------------- +Copyright © 2011,2012,2014 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== + +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-ot-font.cc +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-ot-font.cc +---------------------------------------------------------------------------------------------------- +Copyright © 2011,2014 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== + +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-cache.hh +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-cache.hh +FILE: ../../../third_party/harfbuzz/src/hb-ot-shape-complex-arabic-fallback.hh +FILE: ../../../third_party/harfbuzz/src/hb-ot-shape-complex-indic.hh +FILE: ../../../third_party/harfbuzz/src/hb-ot-shape-fallback.hh +FILE: ../../../third_party/harfbuzz/src/hb-ot-shape-normalize.hh +FILE: ../../../third_party/harfbuzz/src/hb-set-digest.hh +FILE: ../../../third_party/harfbuzz/src/hb-set.cc +FILE: ../../../third_party/harfbuzz/src/hb-set.h +FILE: ../../../third_party/harfbuzz/src/hb-shape-plan.cc +FILE: ../../../third_party/harfbuzz/src/hb-shape-plan.h +FILE: ../../../third_party/harfbuzz/src/hb-shaper-impl.hh +FILE: ../../../third_party/harfbuzz/src/hb-shaper-list.hh +FILE: ../../../third_party/harfbuzz/src/hb-shaper.cc +FILE: ../../../third_party/harfbuzz/src/hb-shaper.hh +---------------------------------------------------------------------------------------------------- +Copyright © 2012 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== + +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-coretext.h +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-coretext.h +---------------------------------------------------------------------------------------------------- +Copyright © 2012 Mozilla Foundation. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== + +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-buffer-serialize.cc +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-buffer-serialize.cc +---------------------------------------------------------------------------------------------------- +Copyright © 2012,2013 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== + +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-coretext.cc +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-coretext.cc +---------------------------------------------------------------------------------------------------- +Copyright © 2012,2013 Mozilla Foundation. +Copyright © 2012,2013 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== + +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-bit-page.hh +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-bit-page.hh +FILE: ../../../third_party/harfbuzz/src/hb-bit-set-invertible.hh +FILE: ../../../third_party/harfbuzz/src/hb-bit-set.hh +FILE: ../../../third_party/harfbuzz/src/hb-set.hh +---------------------------------------------------------------------------------------------------- +Copyright © 2012,2017 Google, Inc. +Copyright © 2021 Behdad Esfahbod + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== + +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-shape-plan.hh +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-shape-plan.hh +---------------------------------------------------------------------------------------------------- +Copyright © 2012,2018 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== + +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-buffer-deserialize-json.hh +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-buffer-deserialize-json.hh +FILE: ../../../third_party/harfbuzz/src/hb-buffer-deserialize-json.rl +FILE: ../../../third_party/harfbuzz/src/hb-buffer-deserialize-text.hh +FILE: ../../../third_party/harfbuzz/src/hb-buffer-deserialize-text.rl +FILE: ../../../third_party/harfbuzz/src/hb-deprecated.h +FILE: ../../../third_party/harfbuzz/src/hb-ot-layout-jstf-table.hh +FILE: ../../../third_party/harfbuzz/src/hb-ot-shape-complex-hangul.cc +---------------------------------------------------------------------------------------------------- +Copyright © 2013 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== + +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-ot-shape.h +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-ot-shape.h +---------------------------------------------------------------------------------------------------- +Copyright © 2013 Red Hat, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== + +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-ot-cmap-table.hh +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-ot-cmap-table.hh +FILE: ../../../third_party/harfbuzz/src/hb-ot-font.h +FILE: ../../../third_party/harfbuzz/src/hb-ot-shape-complex-arabic-win1256.hh +---------------------------------------------------------------------------------------------------- +Copyright © 2014 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== + +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-ot-glyf-table.hh +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-ot-glyf-table.hh +---------------------------------------------------------------------------------------------------- +Copyright © 2015 Google, Inc. +Copyright © 2019 Adobe Inc. +Copyright © 2019 Ebrahim Byagowi + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== + +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-ot-shape-complex-arabic.hh +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-ot-shape-complex-arabic.hh +FILE: ../../../third_party/harfbuzz/src/hb-ot-shape-complex-use-machine.hh +FILE: ../../../third_party/harfbuzz/src/hb-ot-shape-complex-use-machine.rl +FILE: ../../../third_party/harfbuzz/src/hb-ot-shape-complex-use.cc +---------------------------------------------------------------------------------------------------- +Copyright © 2015 Mozilla Foundation. +Copyright © 2015 Google, Inc. -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + This is part of HarfBuzz, a text shaping library. -1. Definitions. +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-directwrite.cc +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-directwrite.cc +FILE: ../../../third_party/harfbuzz/src/hb-directwrite.h +---------------------------------------------------------------------------------------------------- +Copyright © 2015-2019 Ebrahim Byagowi + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== + +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-ot-layout-base-table.hh +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-ot-layout-base-table.hh +---------------------------------------------------------------------------------------------------- +Copyright © 2016 Elie Roux +Copyright © 2018 Google, Inc. +Copyright © 2018-2019 Ebrahim Byagowi + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== + +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-ot-color-cbdt-table.hh +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-ot-color-cbdt-table.hh +FILE: ../../../third_party/harfbuzz/src/hb-ot-post-table.hh +---------------------------------------------------------------------------------------------------- +Copyright © 2016 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== + +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-ot-color-cpal-table.hh +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-ot-color-cpal-table.hh +FILE: ../../../third_party/harfbuzz/src/hb-ot-color.cc +---------------------------------------------------------------------------------------------------- +Copyright © 2016 Google, Inc. +Copyright © 2018 Ebrahim Byagowi + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== + +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-ot-color.h +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-ot-color.h +---------------------------------------------------------------------------------------------------- +Copyright © 2016 Google, Inc. +Copyright © 2018 Khaled Hosny +Copyright © 2018 Ebrahim Byagowi + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== + +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-ot-math-table.hh +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-ot-math-table.hh +FILE: ../../../third_party/harfbuzz/src/hb-ot-math.cc +FILE: ../../../third_party/harfbuzz/src/hb-ot-math.h +---------------------------------------------------------------------------------------------------- +Copyright © 2016 Igalia S.L. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== + +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-aat-layout-common.hh +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-aat-layout-common.hh +FILE: ../../../third_party/harfbuzz/src/hb-aat-layout-morx-table.hh +FILE: ../../../third_party/harfbuzz/src/hb-aat-layout.hh +FILE: ../../../third_party/harfbuzz/src/hb-debug.hh +FILE: ../../../third_party/harfbuzz/src/hb-kern.hh +FILE: ../../../third_party/harfbuzz/src/hb-ot-kern-table.hh +FILE: ../../../third_party/harfbuzz/src/hb-ot-post-macroman.hh +FILE: ../../../third_party/harfbuzz/src/hb-ot-var-avar-table.hh +FILE: ../../../third_party/harfbuzz/src/hb-ot-var-fvar-table.hh +FILE: ../../../third_party/harfbuzz/src/hb-ot-var-hvar-table.hh +FILE: ../../../third_party/harfbuzz/src/hb-ot-var-mvar-table.hh +FILE: ../../../third_party/harfbuzz/src/hb-ot-var.cc +FILE: ../../../third_party/harfbuzz/src/hb-ot-var.h +FILE: ../../../third_party/harfbuzz/src/hb-string-array.hh +---------------------------------------------------------------------------------------------------- +Copyright © 2017 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-aat-layout.cc +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-aat-layout.cc +---------------------------------------------------------------------------------------------------- +Copyright © 2017 Google, Inc. +Copyright © 2018 Ebrahim Byagowi - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. + This is part of HarfBuzz, a text shaping library. - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-algs.hh +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-algs.hh +---------------------------------------------------------------------------------------------------- +Copyright © 2017 Google, Inc. +Copyright © 2019 Facebook, Inc. -2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. + This is part of HarfBuzz, a text shaping library. -3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-vector.hh +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-vector.hh +---------------------------------------------------------------------------------------------------- +Copyright © 2017,2018 Google, Inc. - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and + This is part of HarfBuzz, a text shaping library. - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== -6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-aat-layout-ankr-table.hh +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-aat-layout-ankr-table.hh +FILE: ../../../third_party/harfbuzz/src/hb-aat-layout-bsln-table.hh +FILE: ../../../third_party/harfbuzz/src/hb-aat-layout-feat-table.hh +FILE: ../../../third_party/harfbuzz/src/hb-aat-layout-just-table.hh +FILE: ../../../third_party/harfbuzz/src/hb-aat-layout.h +FILE: ../../../third_party/harfbuzz/src/hb-aat-ltag-table.hh +FILE: ../../../third_party/harfbuzz/src/hb-aat.h +FILE: ../../../third_party/harfbuzz/src/hb-ot-color-svg-table.hh +FILE: ../../../third_party/harfbuzz/src/hb-ot-gasp-table.hh +FILE: ../../../third_party/harfbuzz/src/hb-ot-metrics.h +FILE: ../../../third_party/harfbuzz/src/hb-ot-metrics.hh +FILE: ../../../third_party/harfbuzz/src/hb-ot-stat-table.hh +---------------------------------------------------------------------------------------------------- +Copyright © 2018 Ebrahim Byagowi -7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. + This is part of HarfBuzz, a text shaping library. -8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -END OF TERMS AND CONDITIONS +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== + +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-aat-layout-kerx-table.hh +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-aat-layout-kerx-table.hh +FILE: ../../../third_party/harfbuzz/src/hb-aat-layout-trak-table.hh +---------------------------------------------------------------------------------------------------- +Copyright © 2018 Ebrahim Byagowi +Copyright © 2018 Google, Inc. -APPENDIX: How to apply the Apache License to your work. + This is part of HarfBuzz, a text shaping library. - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -Copyright [yyyy] [name of copyright owner] +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== - http://www.apache.org/licenses/LICENSE-2.0 +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-ot-color-colr-table.hh +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-ot-color-colr-table.hh +FILE: ../../../third_party/harfbuzz/src/hb-ot-color-colrv1-closure.hh +FILE: ../../../third_party/harfbuzz/src/hb-ot-color-sbix-table.hh +---------------------------------------------------------------------------------------------------- +Copyright © 2018 Ebrahim Byagowi +Copyright © 2020 Google, Inc. -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. + This is part of HarfBuzz, a text shaping library. ---- LLVM Exceptions to the Apache 2.0 License ---- +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -As an exception, if, as a result of your compiling your source code, portions -of this Software are embedded into an Object form of such source code, you -may redistribute such embedded portions in such Object form without complying -with the conditions of Sections 4(a), 4(b) and 4(d) of the License. +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -In addition, if you combine or link compiled forms of this Software with -software that is licensed under the GPLv2 ("Combined Software") and if a -court of competent jurisdiction determines that the patent provision (Section -3), the indemnity provision (Section 9) or other Section of the License -conflicts with the conditions of the GPLv2, you may retroactively and -prospectively choose to deem waived or otherwise exclude such Section(s) of -the License, but only in their entirety and only with respect to the Combined -Software. +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. ==================================================================================================== ==================================================================================================== -LIBRARY: libcxx -LIBRARY: libcxxabi -ORIGIN: null -TYPE: LicenseType.bsd -FILE: ../../../third_party/libcxx/.clang-tidy -FILE: ../../../third_party/libcxx/appveyor-reqs-install.cmd -FILE: ../../../third_party/libcxx/appveyor.yml -FILE: ../../../third_party/libcxx/benchmarks/GenerateInput.h -FILE: ../../../third_party/libcxx/benchmarks/algorithms.partition_point.bench.cpp -FILE: ../../../third_party/libcxx/benchmarks/filesystem.bench.cpp -FILE: ../../../third_party/libcxx/benchmarks/lit.site.cfg.py.in -FILE: ../../../third_party/libcxx/benchmarks/string.bench.cpp -FILE: ../../../third_party/libcxx/benchmarks/stringstream.bench.cpp -FILE: ../../../third_party/libcxx/benchmarks/unordered_set_operations.bench.cpp -FILE: ../../../third_party/libcxx/benchmarks/variant_visit_1.bench.cpp -FILE: ../../../third_party/libcxx/benchmarks/variant_visit_2.bench.cpp -FILE: ../../../third_party/libcxx/benchmarks/variant_visit_3.bench.cpp -FILE: ../../../third_party/libcxx/benchmarks/vector_operations.bench.cpp -FILE: ../../../third_party/libcxx/docs/AddingNewCIJobs.rst -FILE: ../../../third_party/libcxx/docs/BuildingLibcxx.rst -FILE: ../../../third_party/libcxx/docs/DesignDocs/ABIVersioning.rst -FILE: ../../../third_party/libcxx/docs/DesignDocs/AtomicDesign.rst -FILE: ../../../third_party/libcxx/docs/DesignDocs/CapturingConfigInfo.rst -FILE: ../../../third_party/libcxx/docs/DesignDocs/DebugMode.rst -FILE: ../../../third_party/libcxx/docs/DesignDocs/ExperimentalFeatures.rst -FILE: ../../../third_party/libcxx/docs/DesignDocs/ExtendedCXX03Support.rst -FILE: ../../../third_party/libcxx/docs/DesignDocs/FeatureTestMacros.rst -FILE: ../../../third_party/libcxx/docs/DesignDocs/FileTimeType.rst -FILE: ../../../third_party/libcxx/docs/DesignDocs/NoexceptPolicy.rst -FILE: ../../../third_party/libcxx/docs/DesignDocs/ThreadingSupportAPI.rst -FILE: ../../../third_party/libcxx/docs/DesignDocs/UniquePtrTrivialAbi.rst -FILE: ../../../third_party/libcxx/docs/DesignDocs/UnspecifiedBehaviorRandomization.rst -FILE: ../../../third_party/libcxx/docs/DesignDocs/VisibilityMacros.rst -FILE: ../../../third_party/libcxx/docs/FeatureTestMacroTable.rst -FILE: ../../../third_party/libcxx/docs/Helpers/Styles.rst -FILE: ../../../third_party/libcxx/docs/ReleaseNotes.rst -FILE: ../../../third_party/libcxx/docs/Status/Cxx14.rst -FILE: ../../../third_party/libcxx/docs/Status/Cxx14Issues.csv -FILE: ../../../third_party/libcxx/docs/Status/Cxx14Papers.csv -FILE: ../../../third_party/libcxx/docs/Status/Cxx17.rst -FILE: ../../../third_party/libcxx/docs/Status/Cxx17Issues.csv -FILE: ../../../third_party/libcxx/docs/Status/Cxx17Papers.csv -FILE: ../../../third_party/libcxx/docs/Status/Cxx20.rst -FILE: ../../../third_party/libcxx/docs/Status/Cxx20Issues.csv -FILE: ../../../third_party/libcxx/docs/Status/Cxx20Papers.csv -FILE: ../../../third_party/libcxx/docs/Status/Cxx2b.rst -FILE: ../../../third_party/libcxx/docs/Status/Cxx2bIssues.csv -FILE: ../../../third_party/libcxx/docs/Status/Cxx2bPapers.csv -FILE: ../../../third_party/libcxx/docs/Status/Format.rst -FILE: ../../../third_party/libcxx/docs/Status/FormatIssues.csv -FILE: ../../../third_party/libcxx/docs/Status/FormatPaper.csv -FILE: ../../../third_party/libcxx/docs/Status/Ranges.rst -FILE: ../../../third_party/libcxx/docs/Status/RangesAlgorithms.csv -FILE: ../../../third_party/libcxx/docs/Status/RangesIssues.csv -FILE: ../../../third_party/libcxx/docs/Status/RangesPaper.csv -FILE: ../../../third_party/libcxx/docs/Status/Spaceship.rst -FILE: ../../../third_party/libcxx/docs/Status/SpaceshipPapers.csv -FILE: ../../../third_party/libcxx/docs/Status/SpaceshipProjects.csv -FILE: ../../../third_party/libcxx/docs/Status/Zip.rst -FILE: ../../../third_party/libcxx/docs/Status/ZipProjects.csv -FILE: ../../../third_party/libcxx/docs/TestingLibcxx.rst -FILE: ../../../third_party/libcxx/docs/UsingLibcxx.rst -FILE: ../../../third_party/libcxx/docs/index.rst -FILE: ../../../third_party/libcxx/include/module.modulemap.in -FILE: ../../../third_party/libcxx/lib/abi/arm64-apple-darwin.libcxxabi.v1.stable.exceptions.nonew.debug.incomplete.abilist -FILE: ../../../third_party/libcxx/lib/abi/arm64-apple-darwin.libcxxabi.v1.stable.exceptions.nonew.nodebug.noincomplete.abilist -FILE: ../../../third_party/libcxx/lib/abi/powerpc-ibm-aix.libcxxabi.v1.stable.exceptions.nonew.debug.incomplete.abilist -FILE: ../../../third_party/libcxx/lib/abi/powerpc64-ibm-aix.libcxxabi.v1.stable.exceptions.nonew.debug.incomplete.abilist -FILE: ../../../third_party/libcxx/lib/abi/x86_64-apple-darwin.libcxxabi.v1.stable.exceptions.nonew.debug.incomplete.abilist -FILE: ../../../third_party/libcxx/lib/abi/x86_64-apple-darwin.libcxxabi.v1.stable.exceptions.nonew.nodebug.noincomplete.abilist -FILE: ../../../third_party/libcxx/lib/abi/x86_64-unknown-linux-gnu.libcxxabi.v1.stable.exceptions.nonew.debug.incomplete.abilist -FILE: ../../../third_party/libcxx/lib/abi/x86_64-unknown-linux-gnu.libcxxabi.v1.stable.exceptions.nonew.debug.noincomplete.abilist -FILE: ../../../third_party/libcxx/lib/abi/x86_64-unknown-linux-gnu.libcxxabi.v1.stable.exceptions.nonew.nodebug.incomplete.abilist -FILE: ../../../third_party/libcxx/lib/abi/x86_64-unknown-linux-gnu.libcxxabi.v1.stable.noexceptions.nonew.debug.incomplete.abilist -FILE: ../../../third_party/libcxx/lib/libc++abi.exp -FILE: ../../../third_party/libcxx/lib/libc++unexp.exp -FILE: ../../../third_party/libcxx/lib/notweak.exp -FILE: ../../../third_party/libcxx/lib/weak.exp -FILE: ../../../third_party/libcxx/src/chrono_system_time_init.h -FILE: ../../../third_party/libcxx/src/experimental/memory_resource_init_helper.h -FILE: ../../../third_party/libcxx/src/iostream_init.h -FILE: ../../../third_party/libcxxabi/fuzz/cxa_demangle_fuzzer.cpp -FILE: ../../../third_party/libcxxabi/lib/exceptions.exp -FILE: ../../../third_party/libcxxabi/lib/itanium-base.exp -FILE: ../../../third_party/libcxxabi/lib/new-delete.exp -FILE: ../../../third_party/libcxxabi/lib/personality-sjlj.exp -FILE: ../../../third_party/libcxxabi/lib/personality-v0.exp +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-ot-name.h +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-ot-name.h ---------------------------------------------------------------------------------------------------- -University of Illinois/NCSA -Open Source License - -Copyright (c) 2009-2019 by the contributors listed in CREDITS.TXT - -All rights reserved. +Copyright © 2018 Ebrahim Byagowi. -Developed by: + This is part of HarfBuzz, a text shaping library. - LLVM Team +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. - University of Illinois at Urbana-Champaign +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. - http://llvm.org +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal with -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-aat-map.hh +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-aat-map.hh +FILE: ../../../third_party/harfbuzz/src/hb-array.hh +FILE: ../../../third_party/harfbuzz/src/hb-map.cc +FILE: ../../../third_party/harfbuzz/src/hb-map.h +FILE: ../../../third_party/harfbuzz/src/hb-map.hh +FILE: ../../../third_party/harfbuzz/src/hb-meta.hh +FILE: ../../../third_party/harfbuzz/src/hb-null.hh +FILE: ../../../third_party/harfbuzz/src/hb-ot-deprecated.h +FILE: ../../../third_party/harfbuzz/src/hb-ot-face.cc +FILE: ../../../third_party/harfbuzz/src/hb-ot-hdmx-table.hh +FILE: ../../../third_party/harfbuzz/src/hb-ot-name-language-static.hh +FILE: ../../../third_party/harfbuzz/src/hb-ot-name-language.hh +FILE: ../../../third_party/harfbuzz/src/hb-ot-name.cc +FILE: ../../../third_party/harfbuzz/src/hb-ot-os2-unicode-ranges.hh +FILE: ../../../third_party/harfbuzz/src/hb-ot-shape-complex-khmer.hh +FILE: ../../../third_party/harfbuzz/src/hb-ot-shape-complex-myanmar.hh +FILE: ../../../third_party/harfbuzz/src/hb-ot-shape-complex-vowel-constraints.hh +FILE: ../../../third_party/harfbuzz/src/hb-static.cc +FILE: ../../../third_party/harfbuzz/src/hb-subset-input.cc +FILE: ../../../third_party/harfbuzz/src/hb-subset-input.hh +FILE: ../../../third_party/harfbuzz/src/hb-subset-plan.cc +FILE: ../../../third_party/harfbuzz/src/hb-subset-plan.hh +FILE: ../../../third_party/harfbuzz/src/hb-subset.cc +FILE: ../../../third_party/harfbuzz/src/hb-subset.h +FILE: ../../../third_party/harfbuzz/src/hb-subset.hh +FILE: ../../../third_party/harfbuzz/src/test-iter.cc +FILE: ../../../third_party/harfbuzz/src/test-ot-name.cc +FILE: ../../../third_party/harfbuzz/src/test-unicode-ranges.cc +---------------------------------------------------------------------------------------------------- +Copyright © 2018 Google, Inc. - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimers. + This is part of HarfBuzz, a text shaping library. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimers in the - documentation and/or other materials provided with the distribution. +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. - * Neither the names of the LLVM Team, University of Illinois at - Urbana-Champaign, nor the names of its contributors may be used to - endorse or promote products derived from this Software without specific - prior written permission. +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE -SOFTWARE. +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. ==================================================================================================== ==================================================================================================== -LIBRARY: libcxx -LIBRARY: libcxxabi -ORIGIN: null -TYPE: LicenseType.mit -FILE: ../../../third_party/libcxx/.clang-tidy -FILE: ../../../third_party/libcxx/appveyor-reqs-install.cmd -FILE: ../../../third_party/libcxx/appveyor.yml -FILE: ../../../third_party/libcxx/benchmarks/GenerateInput.h -FILE: ../../../third_party/libcxx/benchmarks/algorithms.partition_point.bench.cpp -FILE: ../../../third_party/libcxx/benchmarks/filesystem.bench.cpp -FILE: ../../../third_party/libcxx/benchmarks/lit.site.cfg.py.in -FILE: ../../../third_party/libcxx/benchmarks/string.bench.cpp -FILE: ../../../third_party/libcxx/benchmarks/stringstream.bench.cpp -FILE: ../../../third_party/libcxx/benchmarks/unordered_set_operations.bench.cpp -FILE: ../../../third_party/libcxx/benchmarks/variant_visit_1.bench.cpp -FILE: ../../../third_party/libcxx/benchmarks/variant_visit_2.bench.cpp -FILE: ../../../third_party/libcxx/benchmarks/variant_visit_3.bench.cpp -FILE: ../../../third_party/libcxx/benchmarks/vector_operations.bench.cpp -FILE: ../../../third_party/libcxx/docs/AddingNewCIJobs.rst -FILE: ../../../third_party/libcxx/docs/BuildingLibcxx.rst -FILE: ../../../third_party/libcxx/docs/DesignDocs/ABIVersioning.rst -FILE: ../../../third_party/libcxx/docs/DesignDocs/AtomicDesign.rst -FILE: ../../../third_party/libcxx/docs/DesignDocs/CapturingConfigInfo.rst -FILE: ../../../third_party/libcxx/docs/DesignDocs/DebugMode.rst -FILE: ../../../third_party/libcxx/docs/DesignDocs/ExperimentalFeatures.rst -FILE: ../../../third_party/libcxx/docs/DesignDocs/ExtendedCXX03Support.rst -FILE: ../../../third_party/libcxx/docs/DesignDocs/FeatureTestMacros.rst -FILE: ../../../third_party/libcxx/docs/DesignDocs/FileTimeType.rst -FILE: ../../../third_party/libcxx/docs/DesignDocs/NoexceptPolicy.rst -FILE: ../../../third_party/libcxx/docs/DesignDocs/ThreadingSupportAPI.rst -FILE: ../../../third_party/libcxx/docs/DesignDocs/UniquePtrTrivialAbi.rst -FILE: ../../../third_party/libcxx/docs/DesignDocs/UnspecifiedBehaviorRandomization.rst -FILE: ../../../third_party/libcxx/docs/DesignDocs/VisibilityMacros.rst -FILE: ../../../third_party/libcxx/docs/FeatureTestMacroTable.rst -FILE: ../../../third_party/libcxx/docs/Helpers/Styles.rst -FILE: ../../../third_party/libcxx/docs/ReleaseNotes.rst -FILE: ../../../third_party/libcxx/docs/Status/Cxx14.rst -FILE: ../../../third_party/libcxx/docs/Status/Cxx14Issues.csv -FILE: ../../../third_party/libcxx/docs/Status/Cxx14Papers.csv -FILE: ../../../third_party/libcxx/docs/Status/Cxx17.rst -FILE: ../../../third_party/libcxx/docs/Status/Cxx17Issues.csv -FILE: ../../../third_party/libcxx/docs/Status/Cxx17Papers.csv -FILE: ../../../third_party/libcxx/docs/Status/Cxx20.rst -FILE: ../../../third_party/libcxx/docs/Status/Cxx20Issues.csv -FILE: ../../../third_party/libcxx/docs/Status/Cxx20Papers.csv -FILE: ../../../third_party/libcxx/docs/Status/Cxx2b.rst -FILE: ../../../third_party/libcxx/docs/Status/Cxx2bIssues.csv -FILE: ../../../third_party/libcxx/docs/Status/Cxx2bPapers.csv -FILE: ../../../third_party/libcxx/docs/Status/Format.rst -FILE: ../../../third_party/libcxx/docs/Status/FormatIssues.csv -FILE: ../../../third_party/libcxx/docs/Status/FormatPaper.csv -FILE: ../../../third_party/libcxx/docs/Status/Ranges.rst -FILE: ../../../third_party/libcxx/docs/Status/RangesAlgorithms.csv -FILE: ../../../third_party/libcxx/docs/Status/RangesIssues.csv -FILE: ../../../third_party/libcxx/docs/Status/RangesPaper.csv -FILE: ../../../third_party/libcxx/docs/Status/Spaceship.rst -FILE: ../../../third_party/libcxx/docs/Status/SpaceshipPapers.csv -FILE: ../../../third_party/libcxx/docs/Status/SpaceshipProjects.csv -FILE: ../../../third_party/libcxx/docs/Status/Zip.rst -FILE: ../../../third_party/libcxx/docs/Status/ZipProjects.csv -FILE: ../../../third_party/libcxx/docs/TestingLibcxx.rst -FILE: ../../../third_party/libcxx/docs/UsingLibcxx.rst -FILE: ../../../third_party/libcxx/docs/index.rst -FILE: ../../../third_party/libcxx/include/module.modulemap.in -FILE: ../../../third_party/libcxx/lib/abi/arm64-apple-darwin.libcxxabi.v1.stable.exceptions.nonew.debug.incomplete.abilist -FILE: ../../../third_party/libcxx/lib/abi/arm64-apple-darwin.libcxxabi.v1.stable.exceptions.nonew.nodebug.noincomplete.abilist -FILE: ../../../third_party/libcxx/lib/abi/powerpc-ibm-aix.libcxxabi.v1.stable.exceptions.nonew.debug.incomplete.abilist -FILE: ../../../third_party/libcxx/lib/abi/powerpc64-ibm-aix.libcxxabi.v1.stable.exceptions.nonew.debug.incomplete.abilist -FILE: ../../../third_party/libcxx/lib/abi/x86_64-apple-darwin.libcxxabi.v1.stable.exceptions.nonew.debug.incomplete.abilist -FILE: ../../../third_party/libcxx/lib/abi/x86_64-apple-darwin.libcxxabi.v1.stable.exceptions.nonew.nodebug.noincomplete.abilist -FILE: ../../../third_party/libcxx/lib/abi/x86_64-unknown-linux-gnu.libcxxabi.v1.stable.exceptions.nonew.debug.incomplete.abilist -FILE: ../../../third_party/libcxx/lib/abi/x86_64-unknown-linux-gnu.libcxxabi.v1.stable.exceptions.nonew.debug.noincomplete.abilist -FILE: ../../../third_party/libcxx/lib/abi/x86_64-unknown-linux-gnu.libcxxabi.v1.stable.exceptions.nonew.nodebug.incomplete.abilist -FILE: ../../../third_party/libcxx/lib/abi/x86_64-unknown-linux-gnu.libcxxabi.v1.stable.noexceptions.nonew.debug.incomplete.abilist -FILE: ../../../third_party/libcxx/lib/libc++abi.exp -FILE: ../../../third_party/libcxx/lib/libc++unexp.exp -FILE: ../../../third_party/libcxx/lib/notweak.exp -FILE: ../../../third_party/libcxx/lib/weak.exp -FILE: ../../../third_party/libcxx/src/chrono_system_time_init.h -FILE: ../../../third_party/libcxx/src/experimental/memory_resource_init_helper.h -FILE: ../../../third_party/libcxx/src/iostream_init.h -FILE: ../../../third_party/libcxxabi/fuzz/cxa_demangle_fuzzer.cpp -FILE: ../../../third_party/libcxxabi/lib/exceptions.exp -FILE: ../../../third_party/libcxxabi/lib/itanium-base.exp -FILE: ../../../third_party/libcxxabi/lib/new-delete.exp -FILE: ../../../third_party/libcxxabi/lib/personality-sjlj.exp -FILE: ../../../third_party/libcxxabi/lib/personality-v0.exp +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-iter.hh +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-iter.hh ---------------------------------------------------------------------------------------------------- -Copyright (c) 2009-2014 by the contributors listed in CREDITS.TXT +Copyright © 2018 Google, Inc. +Copyright © 2019 Facebook, Inc. -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: + This is part of HarfBuzz, a text shaping library. -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. ==================================================================================================== ==================================================================================================== -LIBRARY: libjpeg-turbo -ORIGIN: ../../../third_party/libjpeg-turbo/README.ijg -TYPE: LicenseType.ijg -FILE: ../../../third_party/libjpeg-turbo/cderror.h -FILE: ../../../third_party/libjpeg-turbo/cdjpeg.c -FILE: ../../../third_party/libjpeg-turbo/cdjpeg.h -FILE: ../../../third_party/libjpeg-turbo/cjpeg.c -FILE: ../../../third_party/libjpeg-turbo/djpeg.c -FILE: ../../../third_party/libjpeg-turbo/jaricom.c -FILE: ../../../third_party/libjpeg-turbo/jcapimin.c -FILE: ../../../third_party/libjpeg-turbo/jcapistd.c -FILE: ../../../third_party/libjpeg-turbo/jcarith.c -FILE: ../../../third_party/libjpeg-turbo/jccoefct.c -FILE: ../../../third_party/libjpeg-turbo/jccolext.c -FILE: ../../../third_party/libjpeg-turbo/jccolor.c -FILE: ../../../third_party/libjpeg-turbo/jcdctmgr.c -FILE: ../../../third_party/libjpeg-turbo/jchuff.c -FILE: ../../../third_party/libjpeg-turbo/jchuff.h -FILE: ../../../third_party/libjpeg-turbo/jcinit.c -FILE: ../../../third_party/libjpeg-turbo/jcmainct.c -FILE: ../../../third_party/libjpeg-turbo/jcmarker.c -FILE: ../../../third_party/libjpeg-turbo/jcmaster.c -FILE: ../../../third_party/libjpeg-turbo/jcomapi.c -FILE: ../../../third_party/libjpeg-turbo/jconfig.h -FILE: ../../../third_party/libjpeg-turbo/jconfig.h.in -FILE: ../../../third_party/libjpeg-turbo/jconfigint.h -FILE: ../../../third_party/libjpeg-turbo/jconfigint.h.in -FILE: ../../../third_party/libjpeg-turbo/jcparam.c -FILE: ../../../third_party/libjpeg-turbo/jcphuff.c -FILE: ../../../third_party/libjpeg-turbo/jcprepct.c -FILE: ../../../third_party/libjpeg-turbo/jcsample.c -FILE: ../../../third_party/libjpeg-turbo/jctrans.c -FILE: ../../../third_party/libjpeg-turbo/jdapimin.c -FILE: ../../../third_party/libjpeg-turbo/jdapistd.c -FILE: ../../../third_party/libjpeg-turbo/jdarith.c -FILE: ../../../third_party/libjpeg-turbo/jdatadst-tj.c -FILE: ../../../third_party/libjpeg-turbo/jdatadst.c -FILE: ../../../third_party/libjpeg-turbo/jdatasrc-tj.c -FILE: ../../../third_party/libjpeg-turbo/jdatasrc.c -FILE: ../../../third_party/libjpeg-turbo/jdcoefct.c -FILE: ../../../third_party/libjpeg-turbo/jdcoefct.h -FILE: ../../../third_party/libjpeg-turbo/jdcol565.c -FILE: ../../../third_party/libjpeg-turbo/jdcolext.c -FILE: ../../../third_party/libjpeg-turbo/jdcolor.c -FILE: ../../../third_party/libjpeg-turbo/jdct.h -FILE: ../../../third_party/libjpeg-turbo/jddctmgr.c -FILE: ../../../third_party/libjpeg-turbo/jdhuff.c -FILE: ../../../third_party/libjpeg-turbo/jdhuff.h -FILE: ../../../third_party/libjpeg-turbo/jdinput.c -FILE: ../../../third_party/libjpeg-turbo/jdmainct.c -FILE: ../../../third_party/libjpeg-turbo/jdmainct.h -FILE: ../../../third_party/libjpeg-turbo/jdmarker.c -FILE: ../../../third_party/libjpeg-turbo/jdmaster.c -FILE: ../../../third_party/libjpeg-turbo/jdmaster.h -FILE: ../../../third_party/libjpeg-turbo/jdmerge.c -FILE: ../../../third_party/libjpeg-turbo/jdmrg565.c -FILE: ../../../third_party/libjpeg-turbo/jdmrgext.c -FILE: ../../../third_party/libjpeg-turbo/jdphuff.c -FILE: ../../../third_party/libjpeg-turbo/jdpostct.c -FILE: ../../../third_party/libjpeg-turbo/jdsample.c -FILE: ../../../third_party/libjpeg-turbo/jdsample.h -FILE: ../../../third_party/libjpeg-turbo/jdtrans.c -FILE: ../../../third_party/libjpeg-turbo/jerror.c -FILE: ../../../third_party/libjpeg-turbo/jerror.h -FILE: ../../../third_party/libjpeg-turbo/jfdctflt.c -FILE: ../../../third_party/libjpeg-turbo/jfdctfst.c -FILE: ../../../third_party/libjpeg-turbo/jfdctint.c -FILE: ../../../third_party/libjpeg-turbo/jidctflt.c -FILE: ../../../third_party/libjpeg-turbo/jidctfst.c -FILE: ../../../third_party/libjpeg-turbo/jidctint.c -FILE: ../../../third_party/libjpeg-turbo/jidctred.c -FILE: ../../../third_party/libjpeg-turbo/jinclude.h -FILE: ../../../third_party/libjpeg-turbo/jmemmgr.c -FILE: ../../../third_party/libjpeg-turbo/jmemnobs.c -FILE: ../../../third_party/libjpeg-turbo/jmemsys.h -FILE: ../../../third_party/libjpeg-turbo/jmorecfg.h -FILE: ../../../third_party/libjpeg-turbo/jpeg_nbits_table.h -FILE: ../../../third_party/libjpeg-turbo/jpegcomp.h -FILE: ../../../third_party/libjpeg-turbo/jpegint.h -FILE: ../../../third_party/libjpeg-turbo/jpeglib.h -FILE: ../../../third_party/libjpeg-turbo/jpegtran.c -FILE: ../../../third_party/libjpeg-turbo/jquant1.c -FILE: ../../../third_party/libjpeg-turbo/jquant2.c -FILE: ../../../third_party/libjpeg-turbo/jstdhuff.c -FILE: ../../../third_party/libjpeg-turbo/jutils.c -FILE: ../../../third_party/libjpeg-turbo/jversion.h -FILE: ../../../third_party/libjpeg-turbo/libjpeg.map.in -FILE: ../../../third_party/libjpeg-turbo/rdbmp.c -FILE: ../../../third_party/libjpeg-turbo/rdcolmap.c -FILE: ../../../third_party/libjpeg-turbo/rdgif.c -FILE: ../../../third_party/libjpeg-turbo/rdjpgcom.c -FILE: ../../../third_party/libjpeg-turbo/rdppm.c -FILE: ../../../third_party/libjpeg-turbo/rdrle.c -FILE: ../../../third_party/libjpeg-turbo/rdswitch.c -FILE: ../../../third_party/libjpeg-turbo/rdtarga.c -FILE: ../../../third_party/libjpeg-turbo/simd/jcsample.h -FILE: ../../../third_party/libjpeg-turbo/simd/jpeg_nbits_table.inc -FILE: ../../../third_party/libjpeg-turbo/simd/jsimdcfg.inc -FILE: ../../../third_party/libjpeg-turbo/simd/jsimdcfg.inc.h -FILE: ../../../third_party/libjpeg-turbo/transupp.c -FILE: ../../../third_party/libjpeg-turbo/transupp.h -FILE: ../../../third_party/libjpeg-turbo/turbojpeg-mapfile -FILE: ../../../third_party/libjpeg-turbo/turbojpeg-mapfile.jni -FILE: ../../../third_party/libjpeg-turbo/wrbmp.c -FILE: ../../../third_party/libjpeg-turbo/wrgif.c -FILE: ../../../third_party/libjpeg-turbo/wrjpgcom.c -FILE: ../../../third_party/libjpeg-turbo/wrppm.c -FILE: ../../../third_party/libjpeg-turbo/wrppm.h -FILE: ../../../third_party/libjpeg-turbo/wrrle.c -FILE: ../../../third_party/libjpeg-turbo/wrtarga.c +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-cff-interp-common.hh +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-cff-interp-common.hh +FILE: ../../../third_party/harfbuzz/src/hb-cff-interp-cs-common.hh +FILE: ../../../third_party/harfbuzz/src/hb-cff-interp-dict-common.hh +FILE: ../../../third_party/harfbuzz/src/hb-cff1-interp-cs.hh +FILE: ../../../third_party/harfbuzz/src/hb-cff2-interp-cs.hh +FILE: ../../../third_party/harfbuzz/src/hb-ot-cff-common.hh +FILE: ../../../third_party/harfbuzz/src/hb-ot-cff1-table.cc +FILE: ../../../third_party/harfbuzz/src/hb-ot-cff1-table.hh +FILE: ../../../third_party/harfbuzz/src/hb-ot-cff2-table.cc +FILE: ../../../third_party/harfbuzz/src/hb-ot-cff2-table.hh +FILE: ../../../third_party/harfbuzz/src/hb-ot-vorg-table.hh +FILE: ../../../third_party/harfbuzz/src/hb-subset-cff-common.cc +FILE: ../../../third_party/harfbuzz/src/hb-subset-cff-common.hh +FILE: ../../../third_party/harfbuzz/src/hb-subset-cff1.cc +FILE: ../../../third_party/harfbuzz/src/hb-subset-cff1.hh +FILE: ../../../third_party/harfbuzz/src/hb-subset-cff2.cc +FILE: ../../../third_party/harfbuzz/src/hb-subset-cff2.hh ---------------------------------------------------------------------------------------------------- -libjpeg-turbo note: This file has been modified by The libjpeg-turbo Project -to include only information relevant to libjpeg-turbo, to wordsmith certain -sections, and to remove impolitic language that existed in the libjpeg v8 -README. It is included only for reference. Please see README.md for -information specific to libjpeg-turbo. +Copyright © 2018 Adobe Inc. -The Independent JPEG Group's JPEG software -========================================== + This is part of HarfBuzz, a text shaping library. -This distribution contains a release of the Independent JPEG Group's free JPEG -software. You are welcome to redistribute this software and to use it for any -purpose, subject to the conditions under LEGAL ISSUES, below. +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -This software is the work of Tom Lane, Guido Vollbeding, Philip Gladstone, -Bill Allombert, Jim Boucher, Lee Crocker, Bob Friesenhahn, Ben Jackson, -Julian Minguillon, Luis Ortiz, George Phillips, Davide Rossi, Ge' Weijers, -and other members of the Independent JPEG Group. +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -IJG is not affiliated with the ISO/IEC JTC1/SC29/WG1 standards committee -(also known as JPEG, together with ITU-T SG16). +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== -DOCUMENTATION ROADMAP -===================== +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-ot-metrics.cc +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-ot-metrics.cc +---------------------------------------------------------------------------------------------------- +Copyright © 2018-2019 Ebrahim Byagowi -This file contains the following sections: + This is part of HarfBuzz, a text shaping library. -OVERVIEW General description of JPEG and the IJG software. -LEGAL ISSUES Copyright, lack of warranty, terms of distribution. -REFERENCES Where to learn more about JPEG. -ARCHIVE LOCATIONS Where to find newer versions of this software. -FILE FORMAT WARS Software *not* to get. -TO DO Plans for future IJG releases. +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -Other documentation files in the distribution are: +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -User documentation: - usage.txt Usage instructions for cjpeg, djpeg, jpegtran, - rdjpgcom, and wrjpgcom. - *.1 Unix-style man pages for programs (same info as usage.txt). - wizard.txt Advanced usage instructions for JPEG wizards only. - change.log Version-to-version change highlights. -Programmer and internal documentation: - libjpeg.txt How to use the JPEG library in your own programs. - example.c Sample code for calling the JPEG library. - structure.txt Overview of the JPEG library's internal structure. - coderules.txt Coding style rules --- please read if you contribute code. +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== -Please read at least usage.txt. Some information can also be found in the JPEG -FAQ (Frequently Asked Questions) article. See ARCHIVE LOCATIONS below to find -out where to obtain the FAQ article. +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-ot-var-gvar-table.hh +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-ot-var-gvar-table.hh +---------------------------------------------------------------------------------------------------- +Copyright © 2019 Adobe Inc. +Copyright © 2019 Ebrahim Byagowi -If you want to understand how the JPEG code works, we suggest reading one or -more of the REFERENCES, then looking at the documentation files (in roughly -the order listed) before diving into the code. + This is part of HarfBuzz, a text shaping library. -OVERVIEW -======== +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -This package contains C software to implement JPEG image encoding, decoding, -and transcoding. JPEG (pronounced "jay-peg") is a standardized compression -method for full-color and grayscale images. JPEG's strong suit is compressing -photographic images or other types of images that have smooth color and -brightness transitions between neighboring pixels. Images with sharp lines or -other abrupt features may not compress well with JPEG, and a higher JPEG -quality may have to be used to avoid visible compression artifacts with such -images. +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -JPEG is lossy, meaning that the output pixels are not necessarily identical to -the input pixels. However, on photographic content and other "smooth" images, -very good compression ratios can be obtained with no visible compression -artifacts, and extremely high compression ratios are possible if you are -willing to sacrifice image quality (by reducing the "quality" setting in the -compressor.) +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== -This software implements JPEG baseline, extended-sequential, and progressive -compression processes. Provision is made for supporting all variants of these -processes, although some uncommon parameter settings aren't implemented yet. -We have made no provision for supporting the hierarchical or lossless -processes defined in the standard. +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-ot-cff1-std-str.hh +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-ot-cff1-std-str.hh +FILE: ../../../third_party/harfbuzz/src/test-bimap.cc +FILE: ../../../third_party/harfbuzz/src/test-ot-glyphname.cc +---------------------------------------------------------------------------------------------------- +Copyright © 2019 Adobe, Inc. -We provide a set of library routines for reading and writing JPEG image files, -plus two sample applications "cjpeg" and "djpeg", which use the library to -perform conversion between JPEG and some other popular image file formats. -The library is intended to be reused in other applications. + This is part of HarfBuzz, a text shaping library. -In order to support file conversion and viewing software, we have included -considerable functionality beyond the bare JPEG coding/decoding capability; -for example, the color quantization modules are not strictly part of JPEG -decoding, but they are essential for output to colormapped file formats or -colormapped displays. These extra functions can be compiled out of the -library if not required for a particular application. +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -We have also included "jpegtran", a utility for lossless transcoding between -different JPEG processes, and "rdjpgcom" and "wrjpgcom", two simple -applications for inserting and extracting textual comments in JFIF files. +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -The emphasis in designing this software has been on achieving portability and -flexibility, while also making it fast enough to be useful. In particular, -the software is not intended to be read as a tutorial on JPEG. (See the -REFERENCES section for introductory material.) Rather, it is intended to -be reliable, portable, industrial-strength code. We do not claim to have -achieved that goal in every aspect of the software, but we strive for it. +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== -We welcome the use of this software as a component of commercial products. -No royalty is required, but we do ask for an acknowledgement in product -documentation, as described under LEGAL ISSUES. +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-aat-layout-opbd-table.hh +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-aat-layout-opbd-table.hh +FILE: ../../../third_party/harfbuzz/src/hb-gdi.cc +FILE: ../../../third_party/harfbuzz/src/hb-gdi.h +FILE: ../../../third_party/harfbuzz/src/hb-number-parser.hh +FILE: ../../../third_party/harfbuzz/src/hb-number-parser.rl +FILE: ../../../third_party/harfbuzz/src/hb-number.cc +FILE: ../../../third_party/harfbuzz/src/hb-number.hh +FILE: ../../../third_party/harfbuzz/src/hb-ot-meta-table.hh +FILE: ../../../third_party/harfbuzz/src/hb-ot-meta.cc +FILE: ../../../third_party/harfbuzz/src/hb-ot-meta.h +FILE: ../../../third_party/harfbuzz/src/hb-style.cc +FILE: ../../../third_party/harfbuzz/src/hb-style.h +FILE: ../../../third_party/harfbuzz/src/test-number.cc +FILE: ../../../third_party/harfbuzz/src/test-ot-meta.cc +---------------------------------------------------------------------------------------------------- +Copyright © 2019 Ebrahim Byagowi -LEGAL ISSUES -============ + This is part of HarfBuzz, a text shaping library. -In plain English: +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -1. We don't promise that this software works. (But if you find any bugs, - please let us know!) -2. You can use this software for whatever you want. You don't have to pay us. -3. You may not pretend that you wrote this software. If you use it in a - program, you must acknowledge somewhere in your documentation that - you've used the IJG code. +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -In legalese: +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== -The authors make NO WARRANTY or representation, either express or implied, -with respect to this software, its quality, accuracy, merchantability, or -fitness for a particular purpose. This software is provided "AS IS", and you, -its user, assume the entire risk as to its quality and accuracy. +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-config.hh +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-config.hh +FILE: ../../../third_party/harfbuzz/src/hb-pool.hh +FILE: ../../../third_party/harfbuzz/src/test-algs.cc +---------------------------------------------------------------------------------------------------- +Copyright © 2019 Facebook, Inc. -This software is copyright (C) 1991-2016, Thomas G. Lane, Guido Vollbeding. -All Rights Reserved except as specified below. + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -Permission is hereby granted to use, copy, modify, and distribute this -software (or portions thereof) for any purpose, without fee, subject to these -conditions: -(1) If any part of the source code for this software is distributed, then this -README file must be included, with this copyright and no-warranty notice -unaltered; and any additions, deletions, or changes to the original files -must be clearly indicated in accompanying documentation. -(2) If only executable code is distributed, then the accompanying -documentation must state that "this software is based in part on the work of -the Independent JPEG Group". -(3) Permission for use of this software is granted only if the user accepts -full responsibility for any undesirable consequences; the authors accept -NO LIABILITY for damages of any kind. +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -These conditions apply to any software derived from or based on the IJG code, -not just to the unmodified library. If you use our work, you ought to -acknowledge us. +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== -Permission is NOT granted for the use of any IJG author's name or company name -in advertising or publicity relating to this software or products derived from -it. This software may be referred to only as "the Independent JPEG Group's -software". +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-bimap.hh +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-bimap.hh +---------------------------------------------------------------------------------------------------- +Copyright © 2019 Adobe Inc. -We specifically permit and encourage the use of this software as the basis of -commercial products, provided that all warranty or liability claims are -assumed by the product vendor. + This is part of HarfBuzz, a text shaping library. -The Unix configuration script "configure" was produced with GNU Autoconf. -It is copyright by the Free Software Foundation but is freely distributable. -The same holds for its supporting scripts (config.guess, config.sub, -ltmain.sh). Another support script, install-sh, is copyright by X Consortium -but is also freely distributable. +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -The IJG distribution formerly included code to read and write GIF files. -To avoid entanglement with the Unisys LZW patent (now expired), GIF reading -support has been removed altogether, and the GIF writer has been simplified -to produce "uncompressed GIFs". This technique does not use the LZW -algorithm; the resulting GIF files are larger than usual, but are readable -by all standard GIF decoders. +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -We are required to state that - "The Graphics Interchange Format(c) is the Copyright property of - CompuServe Incorporated. GIF(sm) is a Service Mark property of - CompuServe Incorporated." +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== -REFERENCES -========== +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-draw.cc +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-draw.cc +FILE: ../../../third_party/harfbuzz/src/hb-draw.h +---------------------------------------------------------------------------------------------------- +Copyright © 2019-2020 Ebrahim Byagowi -We recommend reading one or more of these references before trying to -understand the innards of the JPEG software. + This is part of HarfBuzz, a text shaping library. -The best short technical introduction to the JPEG compression algorithm is - Wallace, Gregory K. "The JPEG Still Picture Compression Standard", - Communications of the ACM, April 1991 (vol. 34 no. 4), pp. 30-44. -(Adjacent articles in that issue discuss MPEG motion picture compression, -applications of JPEG, and related topics.) If you don't have the CACM issue -handy, a PDF file containing a revised version of Wallace's article is -available at http://www.ijg.org/files/Wallace.JPEG.pdf. The file (actually -a preprint for an article that appeared in IEEE Trans. Consumer Electronics) -omits the sample images that appeared in CACM, but it includes corrections -and some added material. Note: the Wallace article is copyright ACM and IEEE, -and it may not be used for commercial purposes. +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -A somewhat less technical, more leisurely introduction to JPEG can be found in -"The Data Compression Book" by Mark Nelson and Jean-loup Gailly, published by -M&T Books (New York), 2nd ed. 1996, ISBN 1-55851-434-1. This book provides -good explanations and example C code for a multitude of compression methods -including JPEG. It is an excellent source if you are comfortable reading C -code but don't know much about data compression in general. The book's JPEG -sample code is far from industrial-strength, but when you are ready to look -at a full implementation, you've got one here... +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -The best currently available description of JPEG is the textbook "JPEG Still -Image Data Compression Standard" by William B. Pennebaker and Joan L. -Mitchell, published by Van Nostrand Reinhold, 1993, ISBN 0-442-01272-1. -Price US$59.95, 638 pp. The book includes the complete text of the ISO JPEG -standards (DIS 10918-1 and draft DIS 10918-2). +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== -The original JPEG standard is divided into two parts, Part 1 being the actual -specification, while Part 2 covers compliance testing methods. Part 1 is -titled "Digital Compression and Coding of Continuous-tone Still Images, -Part 1: Requirements and guidelines" and has document numbers ISO/IEC IS -10918-1, ITU-T T.81. Part 2 is titled "Digital Compression and Coding of -Continuous-tone Still Images, Part 2: Compliance testing" and has document -numbers ISO/IEC IS 10918-2, ITU-T T.83. +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/failing-alloc.c +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/failing-alloc.c +FILE: ../../../third_party/harfbuzz/src/hb-draw.hh +---------------------------------------------------------------------------------------------------- +Copyright © 2020 Ebrahim Byagowi -The JPEG standard does not specify all details of an interchangeable file -format. For the omitted details we follow the "JFIF" conventions, revision -1.02. JFIF 1.02 has been adopted as an Ecma International Technical Report -and thus received a formal publication status. It is available as a free -download in PDF format from -http://www.ecma-international.org/publications/techreports/E-TR-098.htm. -A PostScript version of the JFIF document is available at -http://www.ijg.org/files/jfif.ps.gz. There is also a plain text version at -http://www.ijg.org/files/jfif.txt.gz, but it is missing the figures. + This is part of HarfBuzz, a text shaping library. -The TIFF 6.0 file format specification can be obtained by FTP from -ftp://ftp.sgi.com/graphics/tiff/TIFF6.ps.gz. The JPEG incorporation scheme -found in the TIFF 6.0 spec of 3-June-92 has a number of serious problems. -IJG does not recommend use of the TIFF 6.0 design (TIFF Compression tag 6). -Instead, we recommend the JPEG design proposed by TIFF Technical Note #2 -(Compression tag 7). Copies of this Note can be obtained from -http://www.ijg.org/files/. It is expected that the next revision -of the TIFF spec will replace the 6.0 JPEG design with the Note's design. -Although IJG's own code does not support TIFF/JPEG, the free libtiff library -uses our library to implement TIFF/JPEG per the Note. +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -ARCHIVE LOCATIONS -================= +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -The "official" archive site for this software is www.ijg.org. -The most recent released version can always be found there in -directory "files". +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +==================================================================================================== -The JPEG FAQ (Frequently Asked Questions) article is a source of some -general information about JPEG. -It is available on the World Wide Web at http://www.faqs.org/faqs/jpeg-faq -and other news.answers archive sites, including the official news.answers -archive at rtfm.mit.edu: ftp://rtfm.mit.edu/pub/usenet/news.answers/jpeg-faq/. -If you don't have Web or FTP access, send e-mail to mail-server@rtfm.mit.edu -with body - send usenet/news.answers/jpeg-faq/part1 - send usenet/news.answers/jpeg-faq/part2 +==================================================================================================== +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-priority-queue.hh +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-priority-queue.hh +FILE: ../../../third_party/harfbuzz/src/hb-repacker.hh +FILE: ../../../third_party/harfbuzz/src/test-array.cc +FILE: ../../../third_party/harfbuzz/src/test-priority-queue.cc +FILE: ../../../third_party/harfbuzz/src/test-repacker.cc +---------------------------------------------------------------------------------------------------- +Copyright © 2020 Google, Inc. -FILE FORMAT WARS -================ + This is part of HarfBuzz, a text shaping library. -The ISO/IEC JTC1/SC29/WG1 standards committee (also known as JPEG, together -with ITU-T SG16) currently promotes different formats containing the name -"JPEG" which are incompatible with original DCT-based JPEG. IJG therefore does -not support these formats (see REFERENCES). Indeed, one of the original -reasons for developing this free software was to help force convergence on -common, interoperable format standards for JPEG files. -Don't use an incompatible file format! -(In any case, our decoder will remain capable of reading existing JPEG -image files indefinitely.) +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -TO DO -===== +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -Please send bug reports, offers of help, etc. to jpeg-info@jpegclub.org. +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. ==================================================================================================== ==================================================================================================== -LIBRARY: libjpeg-turbo -ORIGIN: ../../../third_party/libjpeg-turbo/bmp.c -TYPE: LicenseType.bsd -FILE: ../../../third_party/libjpeg-turbo/bmp.c +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/test-map.cc +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/test-map.cc +FILE: ../../../third_party/harfbuzz/src/test-set.cc +FILE: ../../../third_party/harfbuzz/src/test-vector.cc ---------------------------------------------------------------------------------------------------- -Copyright (C)2011, 2015 D. R. Commander. All Rights Reserved. +Copyright © 2021 Behdad Esfahbod -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -- Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. -- Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. -- Neither the name of the libjpeg-turbo Project nor the names of its - contributors may be used to endorse or promote products derived from this - software without specific prior written permission. +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS", -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. ==================================================================================================== ==================================================================================================== -LIBRARY: libjpeg-turbo -ORIGIN: ../../../third_party/libjpeg-turbo/bmp.h -TYPE: LicenseType.bsd -FILE: ../../../third_party/libjpeg-turbo/bmp.h -FILE: ../../../third_party/libjpeg-turbo/jcstest.c -FILE: ../../../third_party/libjpeg-turbo/tjutil.c -FILE: ../../../third_party/libjpeg-turbo/tjutil.h +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-ot-shape-complex-syllabic.cc +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-ot-shape-complex-syllabic.cc +FILE: ../../../third_party/harfbuzz/src/hb-ot-shape-complex-syllabic.hh ---------------------------------------------------------------------------------------------------- -Copyright (C)2011 D. R. Commander. All Rights Reserved. +Copyright © 2021 Behdad Esfahbod. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: + This is part of HarfBuzz, a text shaping library. -- Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. -- Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. -- Neither the name of the libjpeg-turbo Project nor the names of its - contributors may be used to endorse or promote products derived from this - software without specific prior written permission. +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS", -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. ==================================================================================================== ==================================================================================================== -LIBRARY: libjpeg-turbo -ORIGIN: ../../../third_party/libjpeg-turbo/jsimd.h + ../../../third_party/libjpeg-turbo/simd/jsimdext.inc -TYPE: LicenseType.zlib -FILE: ../../../third_party/libjpeg-turbo/jsimd.h +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/src/hb-ot-post-table-v2subset.hh +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/src/hb-ot-post-table-v2subset.hh +FILE: ../../../third_party/harfbuzz/src/hb-ot-var-common.hh ---------------------------------------------------------------------------------------------------- -Copyright 2009 Pierre Ossman for Cendio AB -Copyright (C) 2011, 2014, D. R. Commander. -Copyright (C) 2015, Matthieu Darbois. +Copyright © 2021 Google, Inc. -Based on the x86 SIMD extension for IJG JPEG library, -Copyright (C) 1999-2006, MIYASAKA Masaru. + This is part of HarfBuzz, a text shaping library. -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. ==================================================================================================== ==================================================================================================== -LIBRARY: libjpeg-turbo -ORIGIN: ../../../third_party/libjpeg-turbo/jsimd_none.c + ../../../third_party/libjpeg-turbo/simd/jsimdext.inc -TYPE: LicenseType.zlib -FILE: ../../../third_party/libjpeg-turbo/jsimd_none.c +LIBRARY: harfbuzz +ORIGIN: ../../../third_party/harfbuzz/COPYING +TYPE: LicenseType.unknown +FILE: ../../../third_party/harfbuzz/.circleci/config.yml +FILE: ../../../third_party/harfbuzz/.codecov.yml +FILE: ../../../third_party/harfbuzz/.editorconfig +FILE: ../../../third_party/harfbuzz/THANKS +FILE: ../../../third_party/harfbuzz/TODO +FILE: ../../../third_party/harfbuzz/docs/HarfBuzz.png +FILE: ../../../third_party/harfbuzz/docs/HarfBuzz.svg +FILE: ../../../third_party/harfbuzz/docs/harfbuzz-docs.xml +FILE: ../../../third_party/harfbuzz/docs/meson.build +FILE: ../../../third_party/harfbuzz/docs/usermanual-buffers-language-script-and-direction.xml +FILE: ../../../third_party/harfbuzz/docs/usermanual-clusters.xml +FILE: ../../../third_party/harfbuzz/docs/usermanual-fonts-and-faces.xml +FILE: ../../../third_party/harfbuzz/docs/usermanual-getting-started.xml +FILE: ../../../third_party/harfbuzz/docs/usermanual-glyph-information.xml +FILE: ../../../third_party/harfbuzz/docs/usermanual-install-harfbuzz.xml +FILE: ../../../third_party/harfbuzz/docs/usermanual-integration.xml +FILE: ../../../third_party/harfbuzz/docs/usermanual-object-model.xml +FILE: ../../../third_party/harfbuzz/docs/usermanual-opentype-features.xml +FILE: ../../../third_party/harfbuzz/docs/usermanual-shaping-concepts.xml +FILE: ../../../third_party/harfbuzz/docs/usermanual-utilities.xml +FILE: ../../../third_party/harfbuzz/docs/usermanual-what-is-harfbuzz.xml +FILE: ../../../third_party/harfbuzz/docs/version.xml.in +FILE: ../../../third_party/harfbuzz/harfbuzz.doap +FILE: ../../../third_party/harfbuzz/meson.build +FILE: ../../../third_party/harfbuzz/perf/fonts/Amiri-Regular.ttf +FILE: ../../../third_party/harfbuzz/perf/fonts/NotoNastaliqUrdu-Regular.ttf +FILE: ../../../third_party/harfbuzz/perf/fonts/NotoSansDevanagari-Regular.ttf +FILE: ../../../third_party/harfbuzz/perf/fonts/Roboto-Regular.ttf +FILE: ../../../third_party/harfbuzz/perf/meson.build +FILE: ../../../third_party/harfbuzz/perf/perf-draw.hh +FILE: ../../../third_party/harfbuzz/perf/perf-extents.hh +FILE: ../../../third_party/harfbuzz/perf/perf-shaping.hh +FILE: ../../../third_party/harfbuzz/perf/perf.cc +FILE: ../../../third_party/harfbuzz/src/Makefile.sources +FILE: ../../../third_party/harfbuzz/src/harfbuzz-config.cmake.in +FILE: ../../../third_party/harfbuzz/src/harfbuzz-gobject.pc.in +FILE: ../../../third_party/harfbuzz/src/harfbuzz-icu.pc.in +FILE: ../../../third_party/harfbuzz/src/harfbuzz-subset.pc.in +FILE: ../../../third_party/harfbuzz/src/harfbuzz.cc +FILE: ../../../third_party/harfbuzz/src/harfbuzz.pc.in +FILE: ../../../third_party/harfbuzz/src/hb-ot-shape-complex-arabic-joining-list.hh +FILE: ../../../third_party/harfbuzz/src/hb-ot-shape-complex-arabic-table.hh +FILE: ../../../third_party/harfbuzz/src/hb-ot-shape-complex-indic-table.cc +FILE: ../../../third_party/harfbuzz/src/hb-ot-shape-complex-use-table.hh +FILE: ../../../third_party/harfbuzz/src/hb-ot-shape-complex-vowel-constraints.cc +FILE: ../../../third_party/harfbuzz/src/hb-ot-tag-table.hh +FILE: ../../../third_party/harfbuzz/src/hb-ucd-table.hh +FILE: ../../../third_party/harfbuzz/src/hb-unicode-emoji-table.hh +FILE: ../../../third_party/harfbuzz/src/meson.build +FILE: ../../../third_party/harfbuzz/src/update-unicode-tables.make +FILE: ../../../third_party/harfbuzz/subprojects/cairo.wrap +FILE: ../../../third_party/harfbuzz/subprojects/freetype2.wrap +FILE: ../../../third_party/harfbuzz/subprojects/glib.wrap +FILE: ../../../third_party/harfbuzz/subprojects/google-benchmark.wrap +FILE: ../../../third_party/harfbuzz/subprojects/packagefiles/ragel/meson.build +FILE: ../../../third_party/harfbuzz/subprojects/ragel.wrap +FILE: ../../../third_party/harfbuzz/subprojects/ttf-parser.wrap ---------------------------------------------------------------------------------------------------- -Copyright 2009 Pierre Ossman for Cendio AB -Copyright (C) 2009-2011, 2014, D. R. Commander. -Copyright (C) 2015, Matthieu Darbois. +HarfBuzz is licensed under the so-called "Old MIT" license. Details follow. +For parts of HarfBuzz that are licensed under different licenses see individual +files names COPYING in subdirectories where applicable. -Based on the x86 SIMD extension for IJG JPEG library, -Copyright (C) 1999-2006, MIYASAKA Masaru. +Copyright © 2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020 Google, Inc. +Copyright © 2018,2019,2020 Ebrahim Byagowi +Copyright © 2019,2020 Facebook, Inc. +Copyright © 2012 Mozilla Foundation +Copyright © 2011 Codethink Limited +Copyright © 2008,2010 Nokia Corporation and/or its subsidiary(-ies) +Copyright © 2009 Keith Stribley +Copyright © 2009 Martin Hosken and SIL International +Copyright © 2007 Chris Wilson +Copyright © 2005,2006,2020,2021 Behdad Esfahbod +Copyright © 2005 David Turner +Copyright © 2004,2007,2008,2009,2010 Red Hat, Inc. +Copyright © 1998-2004 David Turner and Werner Lemberg -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +For full copyright notices consult the individual files in the package. -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. ==================================================================================================== ==================================================================================================== -LIBRARY: libjpeg-turbo -ORIGIN: ../../../third_party/libjpeg-turbo/jsimddct.h + ../../../third_party/libjpeg-turbo/simd/jsimdext.inc -TYPE: LicenseType.zlib -FILE: ../../../third_party/libjpeg-turbo/jsimddct.h +LIBRARY: json +ORIGIN: ../../../third_party/json/LICENSE.MIT +TYPE: LicenseType.mit +FILE: ../../../third_party/json/.clang-tidy +FILE: ../../../third_party/json/.lgtm.yml +FILE: ../../../third_party/json/BUILD.bazel +FILE: ../../../third_party/json/CITATION.cff +FILE: ../../../third_party/json/WORKSPACE.bazel +FILE: ../../../third_party/json/cmake/config.cmake.in +FILE: ../../../third_party/json/cmake/nlohmann_jsonConfigVersion.cmake.in +FILE: ../../../third_party/json/cmake/pkg-config.pc.in +FILE: ../../../third_party/json/include/nlohmann/detail/json_custom_base_class.hpp +FILE: ../../../third_party/json/meson.build +FILE: ../../../third_party/json/nlohmann_json.natvis +FILE: ../../../third_party/json/tools/amalgamate/config_json.json +FILE: ../../../third_party/json/tools/amalgamate/config_json_fwd.json +FILE: ../../../third_party/json/tools/generate_natvis/nlohmann_json.natvis.j2 +FILE: ../../../third_party/json/tools/macro_builder/main.cpp +FILE: ../../../third_party/json/tools/serve_header/demo.png +FILE: ../../../third_party/json/tools/serve_header/serve_header.yml.example +FILE: ../../../third_party/json/wsjcpp.yml ---------------------------------------------------------------------------------------------------- -Copyright 2009 Pierre Ossman for Cendio AB +MIT License -Based on the x86 SIMD extension for IJG JPEG library, -Copyright (C) 1999-2006, MIYASAKA Masaru. +Copyright (c) 2013-2022 Niels Lohmann -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. ==================================================================================================== ==================================================================================================== -LIBRARY: libjpeg-turbo -ORIGIN: ../../../third_party/libjpeg-turbo/simd/jccolext-altivec.c -TYPE: LicenseType.zlib -FILE: ../../../third_party/libjpeg-turbo/simd/jccolext-altivec.c -FILE: ../../../third_party/libjpeg-turbo/simd/jcgryext-altivec.c +LIBRARY: angle +ORIGIN: ../../../third_party/angle/src/third_party/ceval/LICENSE +TYPE: LicenseType.mit +FILE: ../../../third_party/angle/src/third_party/ceval/ceval.h +FILE: ../../../third_party/angle/src/third_party/ceval/package.json +FILE: ../../../third_party/angle/src/third_party/ceval/patches/0001-remove-sprintf.patch ---------------------------------------------------------------------------------------------------- -Copyright (C) 2014-2015, D. R. Commander. All Rights Reserved. -Copyright (C) 2014, Jay Foad. All Rights Reserved. +MIT License -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +Copyright (c) 2021 e_t -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. ==================================================================================================== ==================================================================================================== -LIBRARY: libjpeg-turbo -ORIGIN: ../../../third_party/libjpeg-turbo/simd/jccolext-mmx.asm + ../../../third_party/libjpeg-turbo/simd/jsimdext.inc -TYPE: LicenseType.zlib -FILE: ../../../third_party/libjpeg-turbo/simd/jccolext-mmx.asm -FILE: ../../../third_party/libjpeg-turbo/simd/jcolsamp.inc -FILE: ../../../third_party/libjpeg-turbo/simd/jcsample-mmx.asm -FILE: ../../../third_party/libjpeg-turbo/simd/jcsample-sse2.asm -FILE: ../../../third_party/libjpeg-turbo/simd/jdcolext-mmx.asm -FILE: ../../../third_party/libjpeg-turbo/simd/jdct.inc -FILE: ../../../third_party/libjpeg-turbo/simd/jdmrgext-mmx.asm -FILE: ../../../third_party/libjpeg-turbo/simd/jdsample-mmx.asm -FILE: ../../../third_party/libjpeg-turbo/simd/jdsample-sse2.asm -FILE: ../../../third_party/libjpeg-turbo/simd/jfdctflt-3dn.asm -FILE: ../../../third_party/libjpeg-turbo/simd/jfdctflt-sse.asm -FILE: ../../../third_party/libjpeg-turbo/simd/jfdctfst-mmx.asm -FILE: ../../../third_party/libjpeg-turbo/simd/jfdctfst-sse2.asm -FILE: ../../../third_party/libjpeg-turbo/simd/jfdctint-mmx.asm -FILE: ../../../third_party/libjpeg-turbo/simd/jfdctint-sse2.asm -FILE: ../../../third_party/libjpeg-turbo/simd/jidctflt-3dn.asm -FILE: ../../../third_party/libjpeg-turbo/simd/jidctflt-sse.asm -FILE: ../../../third_party/libjpeg-turbo/simd/jidctflt-sse2.asm -FILE: ../../../third_party/libjpeg-turbo/simd/jidctfst-mmx.asm -FILE: ../../../third_party/libjpeg-turbo/simd/jidctfst-sse2.asm -FILE: ../../../third_party/libjpeg-turbo/simd/jidctint-mmx.asm -FILE: ../../../third_party/libjpeg-turbo/simd/jidctint-sse2.asm -FILE: ../../../third_party/libjpeg-turbo/simd/jidctred-mmx.asm -FILE: ../../../third_party/libjpeg-turbo/simd/jidctred-sse2.asm -FILE: ../../../third_party/libjpeg-turbo/simd/jquant-3dn.asm -FILE: ../../../third_party/libjpeg-turbo/simd/jquant-mmx.asm -FILE: ../../../third_party/libjpeg-turbo/simd/jquant-sse.asm -FILE: ../../../third_party/libjpeg-turbo/simd/jquantf-sse2.asm -FILE: ../../../third_party/libjpeg-turbo/simd/jquanti-sse2.asm -FILE: ../../../third_party/libjpeg-turbo/simd/jsimdcpu.asm +LIBRARY: root_certificates +ORIGIN: ../../../third_party/root_certificates/certdata.pem +TYPE: LicenseType.mpl +FILE: ../../../third_party/root_certificates/certdata.pem ---------------------------------------------------------------------------------------------------- -Copyright 2009 Pierre Ossman for Cendio AB - -Based on the x86 SIMD extension for IJG JPEG library -Copyright (C) 1999-2006, MIYASAKA Masaru. +Mozilla Public License +Version 2.0 -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +1. Definitions -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +1.1. “Contributor” -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. -==================================================================================================== +means each individual or legal entity that creates, contributes to the creation of, or owns Covered Software. -==================================================================================================== -LIBRARY: libjpeg-turbo -ORIGIN: ../../../third_party/libjpeg-turbo/simd/jccolext-sse2-64.asm + ../../../third_party/libjpeg-turbo/simd/jsimdext.inc -TYPE: LicenseType.zlib -FILE: ../../../third_party/libjpeg-turbo/simd/jccolext-sse2-64.asm -FILE: ../../../third_party/libjpeg-turbo/simd/jccolor-sse2-64.asm -FILE: ../../../third_party/libjpeg-turbo/simd/jccolor-sse2.asm ----------------------------------------------------------------------------------------------------- -Copyright (C) 2009, D. R. Commander. +1.2. “Contributor Version” -Based on the x86 SIMD extension for IJG JPEG library -Copyright (C) 1999-2006, MIYASAKA Masaru. +means the combination of the Contributions of others (if any) used by a Contributor and that particular Contributor’s Contribution. -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +1.3. “Contribution” -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +means Covered Software of a particular Contributor. -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. -==================================================================================================== +1.4. “Covered Software” -==================================================================================================== -LIBRARY: libjpeg-turbo -ORIGIN: ../../../third_party/libjpeg-turbo/simd/jccolext-sse2.asm + ../../../third_party/libjpeg-turbo/simd/jsimdext.inc -TYPE: LicenseType.zlib -FILE: ../../../third_party/libjpeg-turbo/simd/jccolext-sse2.asm ----------------------------------------------------------------------------------------------------- -Copyright (C) 1999-2006, MIYASAKA Masaru. +means Source Code Form to which the initial Contributor has attached the notice in Exhibit A, the Executable Form of such Source Code Form, and Modifications of such Source Code Form, in each case including portions thereof. -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +1.5. “Incompatible With Secondary Licenses” -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +means -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. -==================================================================================================== + a. that the initial Contributor has attached the notice described in Exhibit B to the Covered Software; or -==================================================================================================== -LIBRARY: libjpeg-turbo -ORIGIN: ../../../third_party/libjpeg-turbo/simd/jccolor-altivec.c -TYPE: LicenseType.zlib -FILE: ../../../third_party/libjpeg-turbo/simd/jccolor-altivec.c -FILE: ../../../third_party/libjpeg-turbo/simd/jcgray-altivec.c -FILE: ../../../third_party/libjpeg-turbo/simd/jfdctfst-altivec.c -FILE: ../../../third_party/libjpeg-turbo/simd/jfdctint-altivec.c ----------------------------------------------------------------------------------------------------- -Copyright (C) 2014, D. R. Commander. All Rights Reserved. + b. that the Covered Software was made available under the terms of version 1.1 or earlier of the License, but not also under the terms of a Secondary License. -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +1.6. “Executable Form” -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +means any form of the work other than Source Code Form. -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. -==================================================================================================== +1.7. “Larger Work” -==================================================================================================== -LIBRARY: libjpeg-turbo -ORIGIN: ../../../third_party/libjpeg-turbo/simd/jccolor-mmx.asm + ../../../third_party/libjpeg-turbo/simd/jsimdext.inc -TYPE: LicenseType.zlib -FILE: ../../../third_party/libjpeg-turbo/simd/jccolor-mmx.asm -FILE: ../../../third_party/libjpeg-turbo/simd/jcsample-sse2-64.asm -FILE: ../../../third_party/libjpeg-turbo/simd/jdcolor-mmx.asm -FILE: ../../../third_party/libjpeg-turbo/simd/jdcolor-sse2-64.asm -FILE: ../../../third_party/libjpeg-turbo/simd/jdcolor-sse2.asm -FILE: ../../../third_party/libjpeg-turbo/simd/jdmerge-mmx.asm -FILE: ../../../third_party/libjpeg-turbo/simd/jdmerge-sse2-64.asm -FILE: ../../../third_party/libjpeg-turbo/simd/jdmerge-sse2.asm -FILE: ../../../third_party/libjpeg-turbo/simd/jdsample-sse2-64.asm -FILE: ../../../third_party/libjpeg-turbo/simd/jfdctflt-sse-64.asm -FILE: ../../../third_party/libjpeg-turbo/simd/jfdctfst-sse2-64.asm -FILE: ../../../third_party/libjpeg-turbo/simd/jfdctint-sse2-64.asm -FILE: ../../../third_party/libjpeg-turbo/simd/jidctflt-sse2-64.asm -FILE: ../../../third_party/libjpeg-turbo/simd/jidctfst-sse2-64.asm -FILE: ../../../third_party/libjpeg-turbo/simd/jidctint-sse2-64.asm -FILE: ../../../third_party/libjpeg-turbo/simd/jidctred-sse2-64.asm -FILE: ../../../third_party/libjpeg-turbo/simd/jquantf-sse2-64.asm -FILE: ../../../third_party/libjpeg-turbo/simd/jquanti-sse2-64.asm ----------------------------------------------------------------------------------------------------- -Copyright 2009 Pierre Ossman for Cendio AB -Copyright (C) 2009, D. R. Commander. +means a work that combines Covered Software with other material, in a separate file or files, that is not Covered Software. -Based on the x86 SIMD extension for IJG JPEG library -Copyright (C) 1999-2006, MIYASAKA Masaru. +1.8. “License” -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +means this document. -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +1.9. “Licensable” -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. -==================================================================================================== +means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently, any and all of the rights conveyed by this License. -==================================================================================================== -LIBRARY: libjpeg-turbo -ORIGIN: ../../../third_party/libjpeg-turbo/simd/jcgray-mmx.asm + ../../../third_party/libjpeg-turbo/simd/jsimdext.inc -TYPE: LicenseType.zlib -FILE: ../../../third_party/libjpeg-turbo/simd/jcgray-mmx.asm -FILE: ../../../third_party/libjpeg-turbo/simd/jcgryext-mmx.asm ----------------------------------------------------------------------------------------------------- -Copyright 2009 Pierre Ossman for Cendio AB -Copyright (C) 2011, D. R. Commander. +1.10. “Modifications” -Based on the x86 SIMD extension for IJG JPEG library -Copyright (C) 1999-2006, MIYASAKA Masaru. +means any of the following: -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. + a. any file in Source Code Form that results from an addition to, deletion from, or modification of the contents of Covered Software; or -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: + b. any new file in Source Code Form that contains any Covered Software. -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. -==================================================================================================== +1.11. “Patent Claims” of a Contributor -==================================================================================================== -LIBRARY: libjpeg-turbo -ORIGIN: ../../../third_party/libjpeg-turbo/simd/jcgray-sse2-64.asm + ../../../third_party/libjpeg-turbo/simd/jsimdext.inc -TYPE: LicenseType.zlib -FILE: ../../../third_party/libjpeg-turbo/simd/jcgray-sse2-64.asm -FILE: ../../../third_party/libjpeg-turbo/simd/jcgray-sse2.asm -FILE: ../../../third_party/libjpeg-turbo/simd/jcgryext-sse2-64.asm -FILE: ../../../third_party/libjpeg-turbo/simd/jcgryext-sse2.asm ----------------------------------------------------------------------------------------------------- -Copyright (C) 2011, D. R. Commander. +means any patent claim(s), including without limitation, method, process, and apparatus claims, in any patent Licensable by such Contributor that would be infringed, but for the grant of the License, by the making, using, selling, offering for sale, having made, import, or transfer of either its Contributions or its Contributor Version. -Based on the x86 SIMD extension for IJG JPEG library -Copyright (C) 1999-2006, MIYASAKA Masaru. +1.12. “Secondary License” -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +means either the GNU General Public License, Version 2.0, the GNU Lesser General Public License, Version 2.1, the GNU Affero General Public License, Version 3.0, or any later versions of those licenses. -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +1.13. “Source Code Form” -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. -==================================================================================================== +means the form of the work preferred for making modifications. -==================================================================================================== -LIBRARY: libjpeg-turbo -ORIGIN: ../../../third_party/libjpeg-turbo/simd/jchuff-sse2-64.asm + ../../../third_party/libjpeg-turbo/simd/jsimdext.inc -TYPE: LicenseType.zlib -FILE: ../../../third_party/libjpeg-turbo/simd/jchuff-sse2-64.asm -FILE: ../../../third_party/libjpeg-turbo/simd/jchuff-sse2.asm ----------------------------------------------------------------------------------------------------- -Copyright (C) 2009-2011, 2014-2016, D. R. Commander. -Copyright (C) 2015, Matthieu Darbois. +1.14. “You” (or “Your”) -Based on the x86 SIMD extension for IJG JPEG library -Copyright (C) 1999-2006, MIYASAKA Masaru. +means an individual or a legal entity exercising rights under this License. For legal entities, “You” includes any entity that controls, is controlled by, or is under common control with You. For purposes of this definition, “control” means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +2. License Grants and Conditions -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +2.1. Grants -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. -==================================================================================================== +Each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license: -==================================================================================================== -LIBRARY: libjpeg-turbo -ORIGIN: ../../../third_party/libjpeg-turbo/simd/jcsample-altivec.c -TYPE: LicenseType.zlib -FILE: ../../../third_party/libjpeg-turbo/simd/jcsample-altivec.c -FILE: ../../../third_party/libjpeg-turbo/simd/jdcolext-altivec.c -FILE: ../../../third_party/libjpeg-turbo/simd/jdcolor-altivec.c -FILE: ../../../third_party/libjpeg-turbo/simd/jdmerge-altivec.c -FILE: ../../../third_party/libjpeg-turbo/simd/jdmrgext-altivec.c -FILE: ../../../third_party/libjpeg-turbo/simd/jdsample-altivec.c ----------------------------------------------------------------------------------------------------- -Copyright (C) 2015, D. R. Commander. All Rights Reserved. + a. under intellectual property rights (other than patent or trademark) Licensable by such Contributor to use, reproduce, make available, modify, display, perform, distribute, and otherwise exploit its Contributions, either on an unmodified basis, with Modifications, or as part of a Larger Work; and -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. + b. under Patent Claims of such Contributor to make, use, sell, offer for sale, have made, import, and otherwise transfer either its Contributions or its Contributor Version. -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +2.2. Effective Date -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. -==================================================================================================== +The licenses granted in Section 2.1 with respect to any Contribution become effective for each Contribution on the date the Contributor first distributes such Contribution. -==================================================================================================== -LIBRARY: libjpeg-turbo -ORIGIN: ../../../third_party/libjpeg-turbo/simd/jdcolext-sse2-64.asm + ../../../third_party/libjpeg-turbo/simd/jsimdext.inc -TYPE: LicenseType.zlib -FILE: ../../../third_party/libjpeg-turbo/simd/jdcolext-sse2-64.asm -FILE: ../../../third_party/libjpeg-turbo/simd/jdmrgext-sse2-64.asm ----------------------------------------------------------------------------------------------------- -Copyright 2009, 2012 Pierre Ossman for Cendio AB -Copyright (C) 2009, 2012, D. R. Commander. +2.3. Limitations on Grant Scope -Based on the x86 SIMD extension for IJG JPEG library -Copyright (C) 1999-2006, MIYASAKA Masaru. +The licenses granted in this Section 2 are the only rights granted under this License. No additional rights or licenses will be implied from the distribution or licensing of Covered Software under this License. Notwithstanding Section 2.1(b) above, no patent license is granted by a Contributor: -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. + a. for any code that a Contributor has removed from Covered Software; or -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: + b. for infringements caused by: (i) Your and any other third party’s modifications of Covered Software, or (ii) the combination of its Contributions with other software (except as part of its Contributor Version); or -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. -==================================================================================================== + c. under Patent Claims infringed by Covered Software in the absence of its Contributions. -==================================================================================================== -LIBRARY: libjpeg-turbo -ORIGIN: ../../../third_party/libjpeg-turbo/simd/jdcolext-sse2.asm + ../../../third_party/libjpeg-turbo/simd/jsimdext.inc -TYPE: LicenseType.zlib -FILE: ../../../third_party/libjpeg-turbo/simd/jdcolext-sse2.asm -FILE: ../../../third_party/libjpeg-turbo/simd/jdmrgext-sse2.asm ----------------------------------------------------------------------------------------------------- -Copyright 2009, 2012 Pierre Ossman for Cendio AB -Copyright (C) 2012, D. R. Commander. +This License does not grant any rights in the trademarks, service marks, or logos of any Contributor (except as may be necessary to comply with the notice requirements in Section 3.4). -Based on the x86 SIMD extension for IJG JPEG library -Copyright (C) 1999-2006, MIYASAKA Masaru. +2.4. Subsequent Licenses -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +No Contributor makes additional grants as a result of Your choice to distribute the Covered Software under a subsequent version of this License (see Section 10.2) or under the terms of a Secondary License (if permitted under the terms of Section 3.3). -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +2.5. Representation -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. -==================================================================================================== +Each Contributor represents that the Contributor believes its Contributions are its original creation(s) or it has sufficient rights to grant the rights to its Contributions conveyed by this License. -==================================================================================================== -LIBRARY: libjpeg-turbo -ORIGIN: ../../../third_party/libjpeg-turbo/simd/jidctfst-altivec.c -TYPE: LicenseType.zlib -FILE: ../../../third_party/libjpeg-turbo/simd/jidctfst-altivec.c -FILE: ../../../third_party/libjpeg-turbo/simd/jidctint-altivec.c -FILE: ../../../third_party/libjpeg-turbo/simd/jquanti-altivec.c -FILE: ../../../third_party/libjpeg-turbo/simd/jsimd_altivec.h ----------------------------------------------------------------------------------------------------- -Copyright (C) 2014-2015, D. R. Commander. All Rights Reserved. +2.6. Fair Use -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +This License is not intended to limit any rights You have under applicable copyright doctrines of fair use, fair dealing, or other equivalents. -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +2.7. Conditions -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. -==================================================================================================== +Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted in Section 2.1. -==================================================================================================== -LIBRARY: libjpeg-turbo -ORIGIN: ../../../third_party/libjpeg-turbo/simd/jsimd.h + ../../../third_party/libjpeg-turbo/simd/jsimdext.inc -TYPE: LicenseType.zlib -FILE: ../../../third_party/libjpeg-turbo/simd/jsimd.h ----------------------------------------------------------------------------------------------------- -Copyright 2009 Pierre Ossman for Cendio AB -Copyright (C) 2011, 2014-2016, D. R. Commander. -Copyright (C) 2013-2014, MIPS Technologies, Inc., California. -Copyright (C) 2014, Linaro Limited. -Copyright (C) 2015-2016, Matthieu Darbois. +3. Responsibilities + +3.1. Distribution of Source Form + +All distribution of Covered Software in Source Code Form, including any Modifications that You create or to which You contribute, must be under the terms of this License. You must inform recipients that the Source Code Form of the Covered Software is governed by the terms of this License, and how they can obtain a copy of this License. You may not attempt to alter or restrict the recipients’ rights in the Source Code Form. + +3.2. Distribution of Executable Form + +If You distribute Covered Software in Executable Form then: + + a. such Covered Software must also be made available in Source Code Form, as described in Section 3.1, and You must inform recipients of the Executable Form how they can obtain a copy of such Source Code Form by reasonable means in a timely manner, at a charge no more than the cost of distribution to the recipient; and + + b. You may distribute such Executable Form under the terms of this License, or sublicense it under different terms, provided that the license for the Executable Form does not attempt to limit or alter the recipients’ rights in the Source Code Form under this License. + +3.3. Distribution of a Larger Work -Based on the x86 SIMD extension for IJG JPEG library, -Copyright (C) 1999-2006, MIYASAKA Masaru. +You may create and distribute a Larger Work under terms of Your choice, provided that You also comply with the requirements of this License for the Covered Software. If the Larger Work is a combination of Covered Software with a work governed by one or more Secondary Licenses, and the Covered Software is not Incompatible With Secondary Licenses, this License permits You to additionally distribute such Covered Software under the terms of such Secondary License(s), so that the recipient of the Larger Work may, at their option, further distribute the Covered Software under the terms of either this License or such Secondary License(s). -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +3.4. Notices -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +You may not remove or alter the substance of any license notices (including copyright notices, patent notices, disclaimers of warranty, or limitations of liability) contained within the Source Code Form of the Covered Software, except that You may alter any license notices to the extent required to remedy known factual inaccuracies. -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. -==================================================================================================== +3.5. Application of Additional Terms -==================================================================================================== -LIBRARY: libjpeg-turbo -ORIGIN: ../../../third_party/libjpeg-turbo/simd/jsimd_arm.c + ../../../third_party/libjpeg-turbo/simd/jsimdext.inc -TYPE: LicenseType.zlib -FILE: ../../../third_party/libjpeg-turbo/simd/jsimd_arm.c -FILE: ../../../third_party/libjpeg-turbo/simd/jsimd_arm64.c ----------------------------------------------------------------------------------------------------- -Copyright 2009 Pierre Ossman for Cendio AB -Copyright (C) 2009-2011, 2013-2014, 2016, D. R. Commander. -Copyright (C) 2015-2016, Matthieu Darbois. +You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Software. However, You may do so only on Your own behalf, and not on behalf of any Contributor. You must make it absolutely clear that any such warranty, support, indemnity, or liability obligation is offered by You alone, and You hereby agree to indemnify every Contributor for any liability incurred by such Contributor as a result of warranty, support, indemnity or liability terms You offer. You may include additional disclaimers of warranty and limitations of liability specific to any jurisdiction. -Based on the x86 SIMD extension for IJG JPEG library, -Copyright (C) 1999-2006, MIYASAKA Masaru. +4. Inability to Comply Due to Statute or Regulation -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Software due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be placed in a text file included with all distributions of the Covered Software under this License. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +5. Termination -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. -==================================================================================================== +5.1. The rights granted under this License will terminate automatically if You fail to comply with any of its terms. However, if You become compliant, then the rights granted under this License from a particular Contributor are reinstated (a) provisionally, unless and until such Contributor explicitly and finally terminates Your grants, and (b) on an ongoing basis, if such Contributor fails to notify You of the non-compliance by some reasonable means prior to 60 days after You have come back into compliance. Moreover, Your grants from a particular Contributor are reinstated on an ongoing basis if such Contributor notifies You of the non-compliance by some reasonable means, this is the first time You have received notice of non-compliance with this License from such Contributor, and You become compliant prior to 30 days after Your receipt of the notice. -==================================================================================================== -LIBRARY: libjpeg-turbo -ORIGIN: ../../../third_party/libjpeg-turbo/simd/jsimd_arm64_neon.S -TYPE: LicenseType.zlib -FILE: ../../../third_party/libjpeg-turbo/simd/jsimd_arm64_neon.S ----------------------------------------------------------------------------------------------------- -Copyright (C) 2009-2011, Nokia Corporation and/or its subsidiary(-ies). -All Rights Reserved. -Author: Siarhei Siamashka -Copyright (C) 2013-2014, Linaro Limited. All Rights Reserved. -Author: Ragesh Radhakrishnan -Copyright (C) 2014-2016, D. R. Commander. All Rights Reserved. -Copyright (C) 2015-2016, Matthieu Darbois. All Rights Reserved. -Copyright (C) 2016, Siarhei Siamashka. All Rights Reserved. +5.2. If You initiate litigation against any entity by asserting a patent infringement claim (excluding declaratory judgment actions, counter-claims, and cross-claims) alleging that a Contributor Version directly or indirectly infringes any patent, then the rights granted to You by any and all Contributors for the Covered Software under Section 2.1 of this License shall terminate. -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +5.3. In the event of termination under Sections 5.1 or 5.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or Your distributors under this License prior to termination shall survive termination. -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +6. Disclaimer of Warranty -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. -==================================================================================================== + Covered Software is provided under this License on an “as is” basis, without warranty of any kind, either expressed, implied, or statutory, including, without limitation, warranties that the Covered Software is free of defects, merchantable, fit for a particular purpose or non-infringing. The entire risk as to the quality and performance of the Covered Software is with You. Should any Covered Software prove defective in any respect, You (not any Contributor) assume the cost of any necessary servicing, repair, or correction. This disclaimer of warranty constitutes an essential part of this License. No use of any Covered Software is authorized under this License except under this disclaimer. -==================================================================================================== -LIBRARY: libjpeg-turbo -ORIGIN: ../../../third_party/libjpeg-turbo/simd/jsimd_arm_neon.S -TYPE: LicenseType.zlib -FILE: ../../../third_party/libjpeg-turbo/simd/jsimd_arm_neon.S ----------------------------------------------------------------------------------------------------- -Copyright (C) 2009-2011, Nokia Corporation and/or its subsidiary(-ies). -All Rights Reserved. -Author: Siarhei Siamashka -Copyright (C) 2014, Siarhei Siamashka. All Rights Reserved. -Copyright (C) 2014, Linaro Limited. All Rights Reserved. -Copyright (C) 2015, D. R. Commander. All Rights Reserved. -Copyright (C) 2015-2016, Matthieu Darbois. All Rights Reserved. +7. Limitation of Liability -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. + Under no circumstances and under no legal theory, whether tort (including negligence), contract, or otherwise, shall any Contributor, or anyone who distributes Covered Software as permitted above, be liable to You for any direct, indirect, special, incidental, or consequential damages of any character including, without limitation, damages for lost profits, loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses, even if such party shall have been informed of the possibility of such damages. This limitation of liability shall not apply to liability for death or personal injury resulting from such party’s negligence to the extent applicable law prohibits such limitation. Some jurisdictions do not allow the exclusion or limitation of incidental or consequential damages, so this exclusion and limitation may not apply to You. -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +8. Litigation -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. -==================================================================================================== +Any litigation relating to this License may be brought only in the courts of a jurisdiction where the defendant maintains its principal place of business and such litigation shall be governed by laws of that jurisdiction, without reference to its conflict-of-law provisions. Nothing in this Section shall prevent a party’s ability to bring cross-claims or counter-claims. -==================================================================================================== -LIBRARY: libjpeg-turbo -ORIGIN: ../../../third_party/libjpeg-turbo/simd/jsimd_i386.c + ../../../third_party/libjpeg-turbo/simd/jsimdext.inc -TYPE: LicenseType.zlib -FILE: ../../../third_party/libjpeg-turbo/simd/jsimd_i386.c ----------------------------------------------------------------------------------------------------- -Copyright 2009 Pierre Ossman for Cendio AB -Copyright (C) 2009-2011, 2013-2014, 2016, D. R. Commander. -Copyright (C) 2015, Matthieu Darbois. +9. Miscellaneous -Based on the x86 SIMD extension for IJG JPEG library, -Copyright (C) 1999-2006, MIYASAKA Masaru. +This License represents the complete agreement concerning the subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not be used to construe this License against a Contributor. -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +10. Versions of the License -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +10.1. New Versions -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. -==================================================================================================== +Mozilla Foundation is the license steward. Except as provided in Section 10.3, no one other than the license steward has the right to modify or publish new versions of this License. Each version will be given a distinguishing version number. -==================================================================================================== -LIBRARY: libjpeg-turbo -ORIGIN: ../../../third_party/libjpeg-turbo/simd/jsimd_mips.c + ../../../third_party/libjpeg-turbo/simd/jsimdext.inc -TYPE: LicenseType.zlib -FILE: ../../../third_party/libjpeg-turbo/simd/jsimd_mips.c ----------------------------------------------------------------------------------------------------- -Copyright 2009 Pierre Ossman for Cendio AB -Copyright (C) 2009-2011, 2014, D. R. Commander. -Copyright (C) 2013-2014, MIPS Technologies, Inc., California. -Copyright (C) 2015, Matthieu Darbois. +10.2. Effect of New Versions -Based on the x86 SIMD extension for IJG JPEG library, -Copyright (C) 1999-2006, MIYASAKA Masaru. +You may distribute the Covered Software under the terms of the version of the License under which You originally received the Covered Software, or under the terms of any subsequent version published by the license steward. -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +10.3. Modified Versions -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +If you create software not governed by this License, and you want to create a new license for such software, you may create and use a modified version of this License if you rename the license and remove any references to the name of the license steward (except to note that such modified license differs from this License). -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. -==================================================================================================== +10.4. Distributing Source Code Form that is Incompatible With Secondary Licenses -==================================================================================================== -LIBRARY: libjpeg-turbo -ORIGIN: ../../../third_party/libjpeg-turbo/simd/jsimd_mips_dspr2.S -TYPE: LicenseType.zlib -FILE: ../../../third_party/libjpeg-turbo/simd/jsimd_mips_dspr2.S ----------------------------------------------------------------------------------------------------- -Copyright (C) 2013-2014, MIPS Technologies, Inc., California. -All Rights Reserved. -Authors: Teodora Novkovic (teodora.novkovic@imgtec.com) - Darko Laus (darko.laus@imgtec.com) -Copyright (C) 2015, D. R. Commander. All Rights Reserved. -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +If You choose to distribute Source Code Form that is Incompatible With Secondary Licenses under the terms of this version of the License, the notice described in Exhibit B of this License must be attached. -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +Exhibit A - Source Code Form License Notice -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. -==================================================================================================== + This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at https://mozilla.org/MPL/2.0/. -==================================================================================================== -LIBRARY: libjpeg-turbo -ORIGIN: ../../../third_party/libjpeg-turbo/simd/jsimd_mips_dspr2_asm.h -TYPE: LicenseType.zlib -FILE: ../../../third_party/libjpeg-turbo/simd/jsimd_mips_dspr2_asm.h ----------------------------------------------------------------------------------------------------- -Copyright (C) 2013, MIPS Technologies, Inc., California. -All Rights Reserved. -Authors: Teodora Novkovic (teodora.novkovic@imgtec.com) - Darko Laus (darko.laus@imgtec.com) -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +If it is not possible or desirable to put the notice in a particular file, then You may include the notice in a location (such as a LICENSE file in a relevant directory) where a recipient would be likely to look for such a notice. -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +You may add additional accurate notices of copyright ownership. -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. +Exhibit B - “Incompatible With Secondary Licenses” Notice + + This Source Code Form is “Incompatible With Secondary Licenses”, as defined by the Mozilla Public License, v. 2.0. ==================================================================================================== ==================================================================================================== -LIBRARY: libjpeg-turbo -ORIGIN: ../../../third_party/libjpeg-turbo/simd/jsimd_powerpc.c + ../../../third_party/libjpeg-turbo/simd/jsimdext.inc -TYPE: LicenseType.zlib -FILE: ../../../third_party/libjpeg-turbo/simd/jsimd_powerpc.c +LIBRARY: root_certificates +ORIGIN: ../../../third_party/root_certificates/LICENSE +TYPE: LicenseType.mpl +FILE: ../../../third_party/root_certificates/root_certificates.cc ---------------------------------------------------------------------------------------------------- -Copyright 2009 Pierre Ossman for Cendio AB -Copyright (C) 2009-2011, 2014-2015, D. R. Commander. -Copyright (C) 2015, Matthieu Darbois. +Mozilla Public License Version 2.0 +================================== -Based on the x86 SIMD extension for IJG JPEG library, -Copyright (C) 1999-2006, MIYASAKA Masaru. +1. Definitions + +1.1. "Contributor" + means each individual or legal entity that creates, contributes to + the creation of, or owns Covered Software. + +1.2. "Contributor Version" + means the combination of the Contributions of others (if any) used + by a Contributor and that particular Contributor's Contribution. + +1.3. "Contribution" + means Covered Software of a particular Contributor. -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +1.4. "Covered Software" + means Source Code Form to which the initial Contributor has attached + the notice in Exhibit A, the Executable Form of such Source Code + Form, and Modifications of such Source Code Form, in each case + including portions thereof. -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +1.5. "Incompatible With Secondary Licenses" + means -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. -==================================================================================================== + (a) that the initial Contributor has attached the notice described + in Exhibit B to the Covered Software; or -==================================================================================================== -LIBRARY: libjpeg-turbo -ORIGIN: ../../../third_party/libjpeg-turbo/simd/jsimd_x86_64.c + ../../../third_party/libjpeg-turbo/simd/jsimdext.inc -TYPE: LicenseType.zlib -FILE: ../../../third_party/libjpeg-turbo/simd/jsimd_x86_64.c ----------------------------------------------------------------------------------------------------- -Copyright 2009 Pierre Ossman for Cendio AB -Copyright (C) 2009-2011, 2014, 2016, D. R. Commander. -Copyright (C) 2015, Matthieu Darbois. + (b) that the Covered Software was made available under the terms of + version 1.1 or earlier of the License, but not also under the + terms of a Secondary License. -Based on the x86 SIMD extension for IJG JPEG library, -Copyright (C) 1999-2006, MIYASAKA Masaru. +1.6. "Executable Form" + means any form of the work other than Source Code Form. -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +1.7. "Larger Work" + means a work that combines Covered Software with other material, in + a separate file or files, that is not Covered Software. -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +1.8. "License" + means this document. -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. -==================================================================================================== +1.9. "Licensable" + means having the right to grant, to the maximum extent possible, + whether at the time of the initial grant or subsequently, any and + all of the rights conveyed by this License. -==================================================================================================== -LIBRARY: libjpeg-turbo -ORIGIN: ../../../third_party/libjpeg-turbo/simd/jsimdext.inc -TYPE: LicenseType.zlib -FILE: ../../../third_party/libjpeg-turbo/jconfig.h -FILE: ../../../third_party/libjpeg-turbo/jconfig.h.in -FILE: ../../../third_party/libjpeg-turbo/jconfigint.h -FILE: ../../../third_party/libjpeg-turbo/jconfigint.h.in -FILE: ../../../third_party/libjpeg-turbo/jpeg_nbits_table.h -FILE: ../../../third_party/libjpeg-turbo/libjpeg.map.in -FILE: ../../../third_party/libjpeg-turbo/simd/jpeg_nbits_table.inc -FILE: ../../../third_party/libjpeg-turbo/simd/jsimdcfg.inc -FILE: ../../../third_party/libjpeg-turbo/simd/jsimdcfg.inc.h -FILE: ../../../third_party/libjpeg-turbo/simd/jsimdext.inc -FILE: ../../../third_party/libjpeg-turbo/turbojpeg-mapfile -FILE: ../../../third_party/libjpeg-turbo/turbojpeg-mapfile.jni ----------------------------------------------------------------------------------------------------- -Copyright 2009 Pierre Ossman for Cendio AB -Copyright (C) 2010, D. R. Commander. +1.10. "Modifications" + means any of the following: -Based on the x86 SIMD extension for IJG JPEG library - version 1.02 + (a) any file in Source Code Form that results from an addition to, + deletion from, or modification of the contents of Covered + Software; or -Copyright (C) 1999-2006, MIYASAKA Masaru. + (b) any new file in Source Code Form that contains any Covered + Software. -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +1.11. "Patent Claims" of a Contributor + means any patent claim(s), including without limitation, method, + process, and apparatus claims, in any patent Licensable by such + Contributor that would be infringed, but for the grant of the + License, by the making, using, selling, offering for sale, having + made, import, or transfer of either its Contributions or its + Contributor Version. -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +1.12. "Secondary License" + means either the GNU General Public License, Version 2.0, the GNU + Lesser General Public License, Version 2.1, the GNU Affero General + Public License, Version 3.0, or any later versions of those + licenses. -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. -==================================================================================================== +1.13. "Source Code Form" + means the form of the work preferred for making modifications. -==================================================================================================== -LIBRARY: libjpeg-turbo -ORIGIN: ../../../third_party/libjpeg-turbo/tjunittest.c -TYPE: LicenseType.bsd -FILE: ../../../third_party/libjpeg-turbo/tjunittest.c ----------------------------------------------------------------------------------------------------- -Copyright (C)2009-2014 D. R. Commander. All Rights Reserved. +1.14. "You" (or "Your") + means an individual or a legal entity exercising rights under this + License. For legal entities, "You" includes any entity that + controls, is controlled by, or is under common control with You. For + purposes of this definition, "control" means (a) the power, direct + or indirect, to cause the direction or management of such entity, + whether by contract or otherwise, or (b) ownership of more than + fifty percent (50%) of the outstanding shares or beneficial + ownership of such entity. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: +2. License Grants and Conditions -- Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. -- Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. -- Neither the name of the libjpeg-turbo Project nor the names of its - contributors may be used to endorse or promote products derived from this - software without specific prior written permission. +2.1. Grants -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS", -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== +Each Contributor hereby grants You a world-wide, royalty-free, +non-exclusive license: -==================================================================================================== -LIBRARY: libjpeg-turbo -ORIGIN: ../../../third_party/libjpeg-turbo/turbojpeg-jni.c -TYPE: LicenseType.bsd -FILE: ../../../third_party/libjpeg-turbo/turbojpeg-jni.c ----------------------------------------------------------------------------------------------------- -Copyright (C)2011-2016 D. R. Commander. All Rights Reserved. +(a) under intellectual property rights (other than patent or trademark) + Licensable by such Contributor to use, reproduce, make available, + modify, display, perform, distribute, and otherwise exploit its + Contributions, either on an unmodified basis, with Modifications, or + as part of a Larger Work; and -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: +(b) under Patent Claims of such Contributor to make, use, sell, offer + for sale, have made, import, and otherwise transfer either its + Contributions or its Contributor Version. -- Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. -- Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. -- Neither the name of the libjpeg-turbo Project nor the names of its - contributors may be used to endorse or promote products derived from this - software without specific prior written permission. +2.2. Effective Date -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS", -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== +The licenses granted in Section 2.1 with respect to any Contribution +become effective for each Contribution on the date the Contributor first +distributes such Contribution. -==================================================================================================== -LIBRARY: libjpeg-turbo -ORIGIN: ../../../third_party/libjpeg-turbo/turbojpeg.c -TYPE: LicenseType.bsd -FILE: ../../../third_party/libjpeg-turbo/jconfig.h -FILE: ../../../third_party/libjpeg-turbo/jconfig.h.in -FILE: ../../../third_party/libjpeg-turbo/jconfigint.h -FILE: ../../../third_party/libjpeg-turbo/jconfigint.h.in -FILE: ../../../third_party/libjpeg-turbo/jpeg_nbits_table.h -FILE: ../../../third_party/libjpeg-turbo/libjpeg.map.in -FILE: ../../../third_party/libjpeg-turbo/simd/jpeg_nbits_table.inc -FILE: ../../../third_party/libjpeg-turbo/simd/jsimdcfg.inc -FILE: ../../../third_party/libjpeg-turbo/simd/jsimdcfg.inc.h -FILE: ../../../third_party/libjpeg-turbo/tjbench.c -FILE: ../../../third_party/libjpeg-turbo/turbojpeg-mapfile -FILE: ../../../third_party/libjpeg-turbo/turbojpeg-mapfile.jni -FILE: ../../../third_party/libjpeg-turbo/turbojpeg.c ----------------------------------------------------------------------------------------------------- -Copyright (C)2009-2016 D. R. Commander. All Rights Reserved. +2.3. Limitations on Grant Scope -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: +The licenses granted in this Section 2 are the only rights granted under +this License. No additional rights or licenses will be implied from the +distribution or licensing of Covered Software under this License. +Notwithstanding Section 2.1(b) above, no patent license is granted by a +Contributor: -- Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. -- Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. -- Neither the name of the libjpeg-turbo Project nor the names of its - contributors may be used to endorse or promote products derived from this - software without specific prior written permission. +(a) for any code that a Contributor has removed from Covered Software; + or -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS", -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== +(b) for infringements caused by: (i) Your and any other third party's + modifications of Covered Software, or (ii) the combination of its + Contributions with other software (except as part of its Contributor + Version); or -==================================================================================================== -LIBRARY: libjpeg-turbo -ORIGIN: ../../../third_party/libjpeg-turbo/turbojpeg.h -TYPE: LicenseType.bsd -FILE: ../../../third_party/libjpeg-turbo/turbojpeg.h ----------------------------------------------------------------------------------------------------- -Copyright (C)2009-2015 D. R. Commander. All Rights Reserved. +(c) under Patent Claims infringed by Covered Software in the absence of + its Contributions. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: +This License does not grant any rights in the trademarks, service marks, +or logos of any Contributor (except as may be necessary to comply with +the notice requirements in Section 3.4). -- Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. -- Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. -- Neither the name of the libjpeg-turbo Project nor the names of its - contributors may be used to endorse or promote products derived from this - software without specific prior written permission. +2.4. Subsequent Licenses -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS", -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== +No Contributor makes additional grants as a result of Your choice to +distribute the Covered Software under a subsequent version of this +License (see Section 10.2) or under the terms of a Secondary License (if +permitted under the terms of Section 3.3). -==================================================================================================== -LIBRARY: libpng -ORIGIN: ../../../third_party/libpng/LICENSE -TYPE: LicenseType.libpng -FILE: ../../../third_party/libpng/pngprefix.h ----------------------------------------------------------------------------------------------------- - -==================================================================================================== +2.5. Representation -==================================================================================================== -LIBRARY: libpng -ORIGIN: ../../../third_party/libpng/png.h -TYPE: LicenseType.libpng -FILE: ../../../third_party/libpng/arm/arm_init.c -FILE: ../../../third_party/libpng/arm/filter_neon.S -FILE: ../../../third_party/libpng/arm/filter_neon_intrinsics.c -FILE: ../../../third_party/libpng/arm/palette_neon_intrinsics.c -FILE: ../../../third_party/libpng/intel/filter_sse2_intrinsics.c -FILE: ../../../third_party/libpng/intel/intel_init.c -FILE: ../../../third_party/libpng/png.c -FILE: ../../../third_party/libpng/pngconf.h -FILE: ../../../third_party/libpng/pngdebug.h -FILE: ../../../third_party/libpng/pngerror.c -FILE: ../../../third_party/libpng/pngget.c -FILE: ../../../third_party/libpng/pnginfo.h -FILE: ../../../third_party/libpng/pnglibconf.h -FILE: ../../../third_party/libpng/pngmem.c -FILE: ../../../third_party/libpng/pngpread.c -FILE: ../../../third_party/libpng/pngpriv.h -FILE: ../../../third_party/libpng/pngread.c -FILE: ../../../third_party/libpng/pngrio.c -FILE: ../../../third_party/libpng/pngrtran.c -FILE: ../../../third_party/libpng/pngrutil.c -FILE: ../../../third_party/libpng/pngset.c -FILE: ../../../third_party/libpng/pngstruct.h -FILE: ../../../third_party/libpng/pngtest.c -FILE: ../../../third_party/libpng/pngtrans.c -FILE: ../../../third_party/libpng/pngwio.c -FILE: ../../../third_party/libpng/pngwrite.c -FILE: ../../../third_party/libpng/pngwtran.c -FILE: ../../../third_party/libpng/pngwutil.c ----------------------------------------------------------------------------------------------------- - -==================================================================================================== +Each Contributor represents that the Contributor believes its +Contributions are its original creation(s) or it has sufficient rights +to grant the rights to its Contributions conveyed by this License. -==================================================================================================== -LIBRARY: libtess2 -ORIGIN: ../../../third_party/libtess2/Contrib/nanosvg.c -TYPE: LicenseType.zlib -FILE: ../../../third_party/libtess2/Contrib/nanosvg.c -FILE: ../../../third_party/libtess2/Contrib/nanosvg.h ----------------------------------------------------------------------------------------------------- -Copyright (c) 2009 Mikko Mononen memon@inside.org +2.6. Fair Use -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. -==================================================================================================== +This License is not intended to limit any rights You have under +applicable copyright doctrines of fair use, fair dealing, or other +equivalents. -==================================================================================================== -LIBRARY: libtess2 -ORIGIN: ../../../third_party/libtess2/Include/tesselator.h -TYPE: LicenseType.mit -FILE: ../../../third_party/libtess2/Include/tesselator.h -FILE: ../../../third_party/libtess2/Source/bucketalloc.c -FILE: ../../../third_party/libtess2/Source/bucketalloc.h -FILE: ../../../third_party/libtess2/Source/dict.c -FILE: ../../../third_party/libtess2/Source/dict.h -FILE: ../../../third_party/libtess2/Source/geom.c -FILE: ../../../third_party/libtess2/Source/geom.h -FILE: ../../../third_party/libtess2/Source/mesh.c -FILE: ../../../third_party/libtess2/Source/mesh.h -FILE: ../../../third_party/libtess2/Source/priorityq.c -FILE: ../../../third_party/libtess2/Source/priorityq.h -FILE: ../../../third_party/libtess2/Source/sweep.c -FILE: ../../../third_party/libtess2/Source/sweep.h -FILE: ../../../third_party/libtess2/Source/tess.c -FILE: ../../../third_party/libtess2/Source/tess.h ----------------------------------------------------------------------------------------------------- -Copyright (C) [dates of first publication] Silicon Graphics, Inc. -All Rights Reserved. +2.7. Conditions -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: +Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted +in Section 2.1. -The above copyright notice including the dates of first publication and either this -permission notice or a reference to http://oss.sgi.com/projects/FreeB/ shall be -included in all copies or substantial portions of the Software. +3. Responsibilities -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, -INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A -PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL SILICON GRAPHICS, INC. -BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE -OR OTHER DEALINGS IN THE SOFTWARE. +3.1. Distribution of Source Form -Except as contained in this notice, the name of Silicon Graphics, Inc. shall not -be used in advertising or otherwise to promote the sale, use or other dealings in -this Software without prior written authorization from Silicon Graphics, Inc. -==================================================================================================== +All distribution of Covered Software in Source Code Form, including any +Modifications that You create or to which You contribute, must be under +the terms of this License. You must inform recipients that the Source +Code Form of the Covered Software is governed by the terms of this +License, and how they can obtain a copy of this License. You may not +attempt to alter or restrict the recipients' rights in the Source Code +Form. -==================================================================================================== -LIBRARY: libtess2 -ORIGIN: ../../../third_party/libtess2/LICENSE.txt -TYPE: LicenseType.mit -FILE: ../../../third_party/libtess2/Bin/bg.svg -FILE: ../../../third_party/libtess2/Bin/fg.svg -FILE: ../../../third_party/libtess2/premake4.lua ----------------------------------------------------------------------------------------------------- -SGI FREE SOFTWARE LICENSE B (Version 2.0, Sept. 18, 2008) -Copyright (C) [dates of first publication] Silicon Graphics, Inc. -All Rights Reserved. +3.2. Distribution of Executable Form -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: +If You distribute Covered Software in Executable Form then: -The above copyright notice including the dates of first publication and either this -permission notice or a reference to http://oss.sgi.com/projects/FreeB/ shall be -included in all copies or substantial portions of the Software. +(a) such Covered Software must also be made available in Source Code + Form, as described in Section 3.1, and You must inform recipients of + the Executable Form how they can obtain a copy of such Source Code + Form by reasonable means in a timely manner, at a charge no more + than the cost of distribution to the recipient; and -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, -INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A -PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL SILICON GRAPHICS, INC. -BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE -OR OTHER DEALINGS IN THE SOFTWARE. +(b) You may distribute such Executable Form under the terms of this + License, or sublicense it under different terms, provided that the + license for the Executable Form does not attempt to limit or alter + the recipients' rights in the Source Code Form under this License. -Except as contained in this notice, the name of Silicon Graphics, Inc. shall not -be used in advertising or otherwise to promote the sale, use or other dealings in -this Software without prior written authorization from Silicon Graphics, Inc. -==================================================================================================== +3.3. Distribution of a Larger Work -==================================================================================================== -LIBRARY: libwebp -ORIGIN: ../../../third_party/libwebp/COPYING -TYPE: LicenseType.bsd -FILE: ../../../third_party/libwebp/Makefile.vc -FILE: ../../../third_party/libwebp/cmake/WebPConfig.cmake.in -FILE: ../../../third_party/libwebp/cmake/config.h.in -FILE: ../../../third_party/libwebp/doc/TODO -FILE: ../../../third_party/libwebp/doc/template.html -FILE: ../../../third_party/libwebp/extras/webp_quality.c -FILE: ../../../third_party/libwebp/gradle.properties -FILE: ../../../third_party/libwebp/makefile.unix -FILE: ../../../third_party/libwebp/src/demux/libwebpdemux.pc.in -FILE: ../../../third_party/libwebp/src/demux/libwebpdemux.rc -FILE: ../../../third_party/libwebp/src/libwebp.pc.in -FILE: ../../../third_party/libwebp/src/libwebp.rc -FILE: ../../../third_party/libwebp/src/libwebpdecoder.pc.in -FILE: ../../../third_party/libwebp/src/libwebpdecoder.rc -FILE: ../../../third_party/libwebp/src/mux/libwebpmux.pc.in -FILE: ../../../third_party/libwebp/src/mux/libwebpmux.rc -FILE: ../../../third_party/libwebp/webp_js/index.html -FILE: ../../../third_party/libwebp/webp_js/index_wasm.html -FILE: ../../../third_party/libwebp/webp_js/test_webp_js.webp -FILE: ../../../third_party/libwebp/webp_js/test_webp_wasm.webp ----------------------------------------------------------------------------------------------------- -Copyright (c) 2010, Google Inc. All rights reserved. +You may create and distribute a Larger Work under terms of Your choice, +provided that You also comply with the requirements of this License for +the Covered Software. If the Larger Work is a combination of Covered +Software with a work governed by one or more Secondary Licenses, and the +Covered Software is not Incompatible With Secondary Licenses, this +License permits You to additionally distribute such Covered Software +under the terms of such Secondary License(s), so that the recipient of +the Larger Work may, at their option, further distribute the Covered +Software under the terms of either this License or such Secondary +License(s). -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +3.4. Notices - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +You may not remove or alter the substance of any license notices +(including copyright notices, patent notices, disclaimers of warranty, +or limitations of liability) contained within the Source Code Form of +the Covered Software, except that You may alter any license notices to +the extent required to remedy known factual inaccuracies. + +3.5. Application of Additional Terms - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. +You may choose to offer, and to charge a fee for, warranty, support, +indemnity or liability obligations to one or more recipients of Covered +Software. However, You may do so only on Your own behalf, and not on +behalf of any Contributor. You must make it absolutely clear that any +such warranty, support, indemnity, or liability obligation is offered by +You alone, and You hereby agree to indemnify every Contributor for any +liability incurred by such Contributor as a result of warranty, support, +indemnity or liability terms You offer. You may include additional +disclaimers of warranty and limitations of liability specific to any +jurisdiction. - * Neither the name of Google nor the names of its contributors may - be used to endorse or promote products derived from this software - without specific prior written permission. +4. Inability to Comply Due to Statute or Regulation -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== +If it is impossible for You to comply with any of the terms of this +License with respect to some or all of the Covered Software due to +statute, judicial order, or regulation then You must: (a) comply with +the terms of this License to the maximum extent possible; and (b) +describe the limitations and the code they affect. Such description must +be placed in a text file included with all distributions of the Covered +Software under this License. Except to the extent prohibited by statute +or regulation, such description must be sufficiently detailed for a +recipient of ordinary skill to be able to understand it. -==================================================================================================== -LIBRARY: libwebp -ORIGIN: ../../../third_party/libwebp/extras/extras.c + ../../../third_party/libwebp/COPYING -TYPE: LicenseType.bsd -FILE: ../../../third_party/libwebp/extras/extras.c -FILE: ../../../third_party/libwebp/extras/extras.h -FILE: ../../../third_party/libwebp/src/dec/common_dec.h -FILE: ../../../third_party/libwebp/src/demux/anim_decode.c -FILE: ../../../third_party/libwebp/src/dsp/alpha_processing_sse41.c -FILE: ../../../third_party/libwebp/src/dsp/cost_sse2.c -FILE: ../../../third_party/libwebp/src/dsp/dec_sse41.c -FILE: ../../../third_party/libwebp/src/dsp/enc_sse41.c -FILE: ../../../third_party/libwebp/src/dsp/filters_sse2.c -FILE: ../../../third_party/libwebp/src/dsp/lossless_enc.c -FILE: ../../../third_party/libwebp/src/dsp/lossless_enc_mips32.c -FILE: ../../../third_party/libwebp/src/dsp/lossless_enc_mips_dsp_r2.c -FILE: ../../../third_party/libwebp/src/dsp/lossless_enc_neon.c -FILE: ../../../third_party/libwebp/src/dsp/lossless_enc_sse2.c -FILE: ../../../third_party/libwebp/src/dsp/lossless_enc_sse41.c -FILE: ../../../third_party/libwebp/src/dsp/rescaler_neon.c -FILE: ../../../third_party/libwebp/src/dsp/rescaler_sse2.c ----------------------------------------------------------------------------------------------------- -Copyright 2015 Google Inc. All Rights Reserved. +5. Termination -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +5.1. The rights granted under this License will terminate automatically +if You fail to comply with any of its terms. However, if You become +compliant, then the rights granted under this License from a particular +Contributor are reinstated (a) provisionally, unless and until such +Contributor explicitly and finally terminates Your grants, and (b) on an +ongoing basis, if such Contributor fails to notify You of the +non-compliance by some reasonable means prior to 60 days after You have +come back into compliance. Moreover, Your grants from a particular +Contributor are reinstated on an ongoing basis if such Contributor +notifies You of the non-compliance by some reasonable means, this is the +first time You have received notice of non-compliance with this License +from such Contributor, and You become compliant prior to 30 days after +Your receipt of the notice. - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +5.2. If You initiate litigation against any entity by asserting a patent +infringement claim (excluding declaratory judgment actions, +counter-claims, and cross-claims) alleging that a Contributor Version +directly or indirectly infringes any patent, then the rights granted to +You by any and all Contributors for the Covered Software under Section +2.1 of this License shall terminate. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. +5.3. In the event of termination under Sections 5.1 or 5.2 above, all +end user license agreements (excluding distributors and resellers) which +have been validly granted by You or Your distributors under this License +prior to termination shall survive termination. - * Neither the name of Google nor the names of its contributors may - be used to endorse or promote products derived from this software - without specific prior written permission. +* 6. Disclaimer of Warranty -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== +* Covered Software is provided under this License on an "as is" +* basis, without warranty of any kind, either expressed, implied, or +* statutory, including, without limitation, warranties that the +* Covered Software is free of defects, merchantable, fit for a +* particular purpose or non-infringing. The entire risk as to the +* quality and performance of the Covered Software is with You. +* Should any Covered Software prove defective in any respect, You +* (not any Contributor) assume the cost of any necessary servicing, +* repair, or correction. This disclaimer of warranty constitutes an +* essential part of this License. No use of any Covered Software is +* authorized under this License except under this disclaimer. -==================================================================================================== -LIBRARY: libwebp -ORIGIN: ../../../third_party/libwebp/extras/get_disto.c + ../../../third_party/libwebp/COPYING -TYPE: LicenseType.bsd -FILE: ../../../third_party/libwebp/extras/get_disto.c -FILE: ../../../third_party/libwebp/extras/quality_estimate.c -FILE: ../../../third_party/libwebp/imageio/image_dec.c -FILE: ../../../third_party/libwebp/imageio/image_dec.h -FILE: ../../../third_party/libwebp/imageio/image_enc.c -FILE: ../../../third_party/libwebp/imageio/image_enc.h -FILE: ../../../third_party/libwebp/imageio/imageio_util.c -FILE: ../../../third_party/libwebp/imageio/imageio_util.h -FILE: ../../../third_party/libwebp/src/dsp/common_sse2.h -FILE: ../../../third_party/libwebp/src/dsp/common_sse41.h -FILE: ../../../third_party/libwebp/src/dsp/dec_msa.c -FILE: ../../../third_party/libwebp/src/dsp/enc_msa.c -FILE: ../../../third_party/libwebp/src/dsp/filters_msa.c -FILE: ../../../third_party/libwebp/src/dsp/lossless_enc_msa.c -FILE: ../../../third_party/libwebp/src/dsp/lossless_msa.c -FILE: ../../../third_party/libwebp/src/dsp/msa_macro.h -FILE: ../../../third_party/libwebp/src/dsp/rescaler_msa.c -FILE: ../../../third_party/libwebp/src/dsp/upsampling_msa.c -FILE: ../../../third_party/libwebp/src/enc/predictor_enc.c -FILE: ../../../third_party/libwebp/src/mux/animi.h ----------------------------------------------------------------------------------------------------- -Copyright 2016 Google Inc. All Rights Reserved. +* 7. Limitation of Liability -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +* Under no circumstances and under no legal theory, whether tort +* (including negligence), contract, or otherwise, shall any +* Contributor, or anyone who distributes Covered Software as +* permitted above, be liable to You for any direct, indirect, +* special, incidental, or consequential damages of any character +* including, without limitation, damages for lost profits, loss of +* goodwill, work stoppage, computer failure or malfunction, or any +* and all other commercial damages or losses, even if such party +* shall have been informed of the possibility of such damages. This +* limitation of liability shall not apply to liability for death or +* personal injury resulting from such party's negligence to the +* extent applicable law prohibits such limitation. Some +* jurisdictions do not allow the exclusion or limitation of +* incidental or consequential damages, so this exclusion and +* limitation may not apply to You. - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +8. Litigation - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. +Any litigation relating to this License may be brought only in the +courts of a jurisdiction where the defendant maintains its principal +place of business and such litigation shall be governed by laws of that +jurisdiction, without reference to its conflict-of-law provisions. +Nothing in this Section shall prevent a party's ability to bring +cross-claims or counter-claims. - * Neither the name of Google nor the names of its contributors may - be used to endorse or promote products derived from this software - without specific prior written permission. +9. Miscellaneous -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== +This License represents the complete agreement concerning the subject +matter hereof. If any provision of this License is held to be +unenforceable, such provision shall be reformed only to the extent +necessary to make it enforceable. Any law or regulation which provides +that the language of a contract shall be construed against the drafter +shall not be used to construe this License against a Contributor. -==================================================================================================== -LIBRARY: libwebp -ORIGIN: ../../../third_party/libwebp/extras/vwebp_sdl.c + ../../../third_party/libwebp/COPYING -TYPE: LicenseType.bsd -FILE: ../../../third_party/libwebp/extras/vwebp_sdl.c -FILE: ../../../third_party/libwebp/extras/webp_to_sdl.c -FILE: ../../../third_party/libwebp/extras/webp_to_sdl.h -FILE: ../../../third_party/libwebp/imageio/pnmdec.c -FILE: ../../../third_party/libwebp/imageio/pnmdec.h -FILE: ../../../third_party/libwebp/src/dsp/alpha_processing_neon.c -FILE: ../../../third_party/libwebp/src/dsp/filters_neon.c -FILE: ../../../third_party/libwebp/src/dsp/ssim.c -FILE: ../../../third_party/libwebp/src/dsp/ssim_sse2.c -FILE: ../../../third_party/libwebp/src/dsp/yuv_neon.c -FILE: ../../../third_party/libwebp/src/enc/backward_references_cost_enc.c ----------------------------------------------------------------------------------------------------- -Copyright 2017 Google Inc. All Rights Reserved. +10. Versions of the License -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +10.1. New Versions - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +Mozilla Foundation is the license steward. Except as provided in Section +10.3, no one other than the license steward has the right to modify or +publish new versions of this License. Each version will be given a +distinguishing version number. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. +10.2. Effect of New Versions - * Neither the name of Google nor the names of its contributors may - be used to endorse or promote products derived from this software - without specific prior written permission. +You may distribute the Covered Software under the terms of the version +of the License under which You originally received the Covered Software, +or under the terms of any subsequent version published by the license +steward. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== +10.3. Modified Versions + +If you create software not governed by this License, and you want to +create a new license for such software, you may create and use a +modified version of this License if you rename the license and remove +any references to the name of the license steward (except to note that +such modified license differs from this License). -==================================================================================================== -LIBRARY: libwebp -ORIGIN: ../../../third_party/libwebp/imageio/jpegdec.c + ../../../third_party/libwebp/COPYING -TYPE: LicenseType.bsd -FILE: ../../../third_party/libwebp/imageio/jpegdec.c -FILE: ../../../third_party/libwebp/imageio/jpegdec.h -FILE: ../../../third_party/libwebp/imageio/metadata.c -FILE: ../../../third_party/libwebp/imageio/metadata.h -FILE: ../../../third_party/libwebp/imageio/pngdec.c -FILE: ../../../third_party/libwebp/imageio/pngdec.h -FILE: ../../../third_party/libwebp/imageio/tiffdec.c -FILE: ../../../third_party/libwebp/imageio/tiffdec.h -FILE: ../../../third_party/libwebp/src/dec/vp8l_dec.c -FILE: ../../../third_party/libwebp/src/dec/vp8li_dec.h -FILE: ../../../third_party/libwebp/src/demux/demux.c -FILE: ../../../third_party/libwebp/src/dsp/dec_neon.c -FILE: ../../../third_party/libwebp/src/dsp/enc_neon.c -FILE: ../../../third_party/libwebp/src/dsp/lossless.c -FILE: ../../../third_party/libwebp/src/dsp/lossless.h -FILE: ../../../third_party/libwebp/src/dsp/lossless_common.h -FILE: ../../../third_party/libwebp/src/enc/backward_references_enc.c -FILE: ../../../third_party/libwebp/src/enc/backward_references_enc.h -FILE: ../../../third_party/libwebp/src/enc/histogram_enc.c -FILE: ../../../third_party/libwebp/src/enc/histogram_enc.h -FILE: ../../../third_party/libwebp/src/enc/vp8l_enc.c -FILE: ../../../third_party/libwebp/src/enc/vp8li_enc.h -FILE: ../../../third_party/libwebp/src/utils/color_cache_utils.c -FILE: ../../../third_party/libwebp/src/utils/color_cache_utils.h -FILE: ../../../third_party/libwebp/src/utils/huffman_utils.c -FILE: ../../../third_party/libwebp/src/utils/huffman_utils.h -FILE: ../../../third_party/libwebp/src/utils/rescaler_utils.c -FILE: ../../../third_party/libwebp/src/utils/rescaler_utils.h -FILE: ../../../third_party/libwebp/src/utils/utils.c -FILE: ../../../third_party/libwebp/src/utils/utils.h -FILE: ../../../third_party/libwebp/src/webp/demux.h -FILE: ../../../third_party/libwebp/src/webp/format_constants.h -FILE: ../../../third_party/libwebp/src/webp/mux_types.h ----------------------------------------------------------------------------------------------------- -Copyright 2012 Google Inc. All Rights Reserved. +10.4. Distributing Source Code Form that is Incompatible With Secondary +Licenses -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +If You choose to distribute Source Code Form that is Incompatible With +Secondary Licenses under the terms of this version of the License, the +notice described in Exhibit B of this License must be attached. - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +Exhibit A - Source Code Form License Notice - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. + This Source Code Form is subject to the terms of the Mozilla Public + License, v. 2.0. If a copy of the MPL was not distributed with this + file, You can obtain one at http://mozilla.org/MPL/2.0/. - * Neither the name of Google nor the names of its contributors may - be used to endorse or promote products derived from this software - without specific prior written permission. +If it is not possible or desirable to put the notice in a particular +file, then You may include the notice in a location (such as a LICENSE +file in a relevant directory) where a recipient would be likely to look +for such a notice. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +You may add additional accurate notices of copyright ownership. + +Exhibit B - "Incompatible With Secondary Licenses" Notice + + This Source Code Form is "Incompatible With Secondary Licenses", as + defined by the Mozilla Public License, v. 2.0. ==================================================================================================== ==================================================================================================== -LIBRARY: libwebp -ORIGIN: ../../../third_party/libwebp/imageio/webpdec.c + ../../../third_party/libwebp/COPYING -TYPE: LicenseType.bsd -FILE: ../../../third_party/libwebp/imageio/webpdec.c -FILE: ../../../third_party/libwebp/imageio/webpdec.h -FILE: ../../../third_party/libwebp/src/dsp/alpha_processing_mips_dsp_r2.c -FILE: ../../../third_party/libwebp/src/dsp/alpha_processing_sse2.c -FILE: ../../../third_party/libwebp/src/dsp/cost.c -FILE: ../../../third_party/libwebp/src/dsp/cost_mips32.c -FILE: ../../../third_party/libwebp/src/dsp/cost_mips_dsp_r2.c -FILE: ../../../third_party/libwebp/src/dsp/dec_clip_tables.c -FILE: ../../../third_party/libwebp/src/dsp/dec_mips32.c -FILE: ../../../third_party/libwebp/src/dsp/dec_mips_dsp_r2.c -FILE: ../../../third_party/libwebp/src/dsp/enc_mips32.c -FILE: ../../../third_party/libwebp/src/dsp/enc_mips_dsp_r2.c -FILE: ../../../third_party/libwebp/src/dsp/filters_mips_dsp_r2.c -FILE: ../../../third_party/libwebp/src/dsp/lossless_mips_dsp_r2.c -FILE: ../../../third_party/libwebp/src/dsp/lossless_neon.c -FILE: ../../../third_party/libwebp/src/dsp/lossless_sse2.c -FILE: ../../../third_party/libwebp/src/dsp/mips_macro.h -FILE: ../../../third_party/libwebp/src/dsp/neon.h -FILE: ../../../third_party/libwebp/src/dsp/rescaler.c -FILE: ../../../third_party/libwebp/src/dsp/rescaler_mips32.c -FILE: ../../../third_party/libwebp/src/dsp/rescaler_mips_dsp_r2.c -FILE: ../../../third_party/libwebp/src/dsp/upsampling_mips_dsp_r2.c -FILE: ../../../third_party/libwebp/src/dsp/yuv_mips32.c -FILE: ../../../third_party/libwebp/src/dsp/yuv_mips_dsp_r2.c -FILE: ../../../third_party/libwebp/src/dsp/yuv_sse2.c -FILE: ../../../third_party/libwebp/src/dsp/yuv_sse41.c -FILE: ../../../third_party/libwebp/src/enc/near_lossless_enc.c -FILE: ../../../third_party/libwebp/src/enc/picture_csp_enc.c -FILE: ../../../third_party/libwebp/src/enc/picture_psnr_enc.c -FILE: ../../../third_party/libwebp/src/enc/picture_rescale_enc.c -FILE: ../../../third_party/libwebp/src/enc/picture_tools_enc.c -FILE: ../../../third_party/libwebp/src/mux/anim_encode.c -FILE: ../../../third_party/libwebp/src/utils/bit_reader_inl_utils.h -FILE: ../../../third_party/libwebp/src/utils/endian_inl_utils.h +LIBRARY: boringssl +ORIGIN: ../../../third_party/boringssl/src/LICENSE +TYPE: LicenseType.openssl +FILE: ../../../third_party/boringssl/ios-aarch64/crypto/fipsmodule/sha256-armv8.S +FILE: ../../../third_party/boringssl/ios-aarch64/crypto/fipsmodule/sha512-armv8.S +FILE: ../../../third_party/boringssl/ios-arm/crypto/fipsmodule/bsaes-armv7.S +FILE: ../../../third_party/boringssl/ios-arm/crypto/fipsmodule/sha256-armv4.S +FILE: ../../../third_party/boringssl/ios-arm/crypto/fipsmodule/sha512-armv4.S +FILE: ../../../third_party/boringssl/linux-aarch64/crypto/fipsmodule/sha256-armv8.S +FILE: ../../../third_party/boringssl/linux-aarch64/crypto/fipsmodule/sha512-armv8.S +FILE: ../../../third_party/boringssl/linux-arm/crypto/fipsmodule/bsaes-armv7.S +FILE: ../../../third_party/boringssl/linux-arm/crypto/fipsmodule/sha256-armv4.S +FILE: ../../../third_party/boringssl/linux-arm/crypto/fipsmodule/sha512-armv4.S +FILE: ../../../third_party/boringssl/src/crypto/asn1/charmap.h +FILE: ../../../third_party/boringssl/src/crypto/err/asn1.errordata +FILE: ../../../third_party/boringssl/src/crypto/err/bio.errordata +FILE: ../../../third_party/boringssl/src/crypto/err/bn.errordata +FILE: ../../../third_party/boringssl/src/crypto/err/cipher.errordata +FILE: ../../../third_party/boringssl/src/crypto/err/conf.errordata +FILE: ../../../third_party/boringssl/src/crypto/err/dh.errordata +FILE: ../../../third_party/boringssl/src/crypto/err/digest.errordata +FILE: ../../../third_party/boringssl/src/crypto/err/dsa.errordata +FILE: ../../../third_party/boringssl/src/crypto/err/ec.errordata +FILE: ../../../third_party/boringssl/src/crypto/err/ecdh.errordata +FILE: ../../../third_party/boringssl/src/crypto/err/ecdsa.errordata +FILE: ../../../third_party/boringssl/src/crypto/err/engine.errordata +FILE: ../../../third_party/boringssl/src/crypto/err/evp.errordata +FILE: ../../../third_party/boringssl/src/crypto/err/hkdf.errordata +FILE: ../../../third_party/boringssl/src/crypto/err/obj.errordata +FILE: ../../../third_party/boringssl/src/crypto/err/pem.errordata +FILE: ../../../third_party/boringssl/src/crypto/err/pkcs7.errordata +FILE: ../../../third_party/boringssl/src/crypto/err/pkcs8.errordata +FILE: ../../../third_party/boringssl/src/crypto/err/rsa.errordata +FILE: ../../../third_party/boringssl/src/crypto/err/ssl.errordata +FILE: ../../../third_party/boringssl/src/crypto/err/trust_token.errordata +FILE: ../../../third_party/boringssl/src/crypto/err/x509.errordata +FILE: ../../../third_party/boringssl/src/crypto/err/x509v3.errordata +FILE: ../../../third_party/boringssl/src/crypto/evp/scrypt.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-gcc.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/rsaz_exp.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/bn/rsaz_exp.h +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/ec/make_tables.go +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/ec/p256-x86_64-table.h +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/ec/p256-x86_64.c +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/ec/p256-x86_64.h +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/fips_shared.lds +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/intcheck1.png +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/intcheck2.png +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/intcheck3.png +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Android-Security-Policy-20191020.docx!/[Content_Types].xml +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Android-Security-Policy-20191020.docx!/_rels/.rels +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Android-Security-Policy-20191020.docx!/customXml/_rels/item1.xml.rels +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Android-Security-Policy-20191020.docx!/customXml/item1.xml +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Android-Security-Policy-20191020.docx!/customXml/itemProps1.xml +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Android-Security-Policy-20191020.docx!/docProps/app.xml +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Android-Security-Policy-20191020.docx!/docProps/core.xml +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Android-Security-Policy-20191020.docx!/word/_rels/document.xml.rels +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Android-Security-Policy-20191020.docx!/word/document.xml +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Android-Security-Policy-20191020.docx!/word/endnotes.xml +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Android-Security-Policy-20191020.docx!/word/fontTable.xml +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Android-Security-Policy-20191020.docx!/word/footer1.xml +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Android-Security-Policy-20191020.docx!/word/footer2.xml +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Android-Security-Policy-20191020.docx!/word/footer3.xml +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Android-Security-Policy-20191020.docx!/word/footnotes.xml +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Android-Security-Policy-20191020.docx!/word/header1.xml +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Android-Security-Policy-20191020.docx!/word/header2.xml +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Android-Security-Policy-20191020.docx!/word/header3.xml +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Android-Security-Policy-20191020.docx!/word/media/image1.png +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Android-Security-Policy-20191020.docx!/word/media/image2.png +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Android-Security-Policy-20191020.docx!/word/numbering.xml +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Android-Security-Policy-20191020.docx!/word/settings.xml +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Android-Security-Policy-20191020.docx!/word/styles.xml +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Android-Security-Policy-20191020.docx!/word/theme/theme1.xml +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Android-Security-Policy-20191020.docx!/word/webSettings.xml +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20170615.docx!/[Content_Types].xml +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20170615.docx!/_rels/.rels +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20170615.docx!/customXml/_rels/item1.xml.rels +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20170615.docx!/customXml/item1.xml +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20170615.docx!/customXml/itemProps1.xml +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20170615.docx!/docProps/app.xml +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20170615.docx!/docProps/core.xml +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20170615.docx!/docProps/thumbnail.emf +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20170615.docx!/word/_rels/document.xml.rels +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20170615.docx!/word/document.xml +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20170615.docx!/word/endnotes.xml +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20170615.docx!/word/fontTable.xml +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20170615.docx!/word/footer1.xml +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20170615.docx!/word/footnotes.xml +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20170615.docx!/word/media/image1.jpeg +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20170615.docx!/word/media/image2.png +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20170615.docx!/word/numbering.xml +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20170615.docx!/word/settings.xml +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20170615.docx!/word/styles.xml +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20170615.docx!/word/theme/theme1.xml +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20170615.docx!/word/webSettings.xml +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20180730.docx!/[Content_Types].xml +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20180730.docx!/_rels/.rels +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20180730.docx!/customXml/_rels/item1.xml.rels +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20180730.docx!/customXml/item1.xml +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20180730.docx!/customXml/itemProps1.xml +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20180730.docx!/docProps/app.xml +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20180730.docx!/docProps/core.xml +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20180730.docx!/docProps/thumbnail.emf +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20180730.docx!/word/_rels/document.xml.rels +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20180730.docx!/word/document.xml +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20180730.docx!/word/endnotes.xml +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20180730.docx!/word/fontTable.xml +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20180730.docx!/word/footer1.xml +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20180730.docx!/word/footer2.xml +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20180730.docx!/word/footer3.xml +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20180730.docx!/word/footnotes.xml +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20180730.docx!/word/header1.xml +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20180730.docx!/word/header2.xml +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20180730.docx!/word/header3.xml +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20180730.docx!/word/media/image1.png +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20180730.docx!/word/media/image2.png +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20180730.docx!/word/numbering.xml +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20180730.docx!/word/settings.xml +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20180730.docx!/word/styles.xml +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20180730.docx!/word/theme/theme1.xml +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20180730.docx!/word/webSettings.xml +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20190808.docx!/[Content_Types].xml +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20190808.docx!/_rels/.rels +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20190808.docx!/customXml/_rels/item1.xml.rels +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20190808.docx!/customXml/item1.xml +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20190808.docx!/customXml/itemProps1.xml +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20190808.docx!/docProps/app.xml +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20190808.docx!/docProps/core.xml +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20190808.docx!/word/_rels/document.xml.rels +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20190808.docx!/word/document.xml +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20190808.docx!/word/endnotes.xml +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20190808.docx!/word/fontTable.xml +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20190808.docx!/word/footer1.xml +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20190808.docx!/word/footnotes.xml +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20190808.docx!/word/media/image1.png +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20190808.docx!/word/media/image2.png +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20190808.docx!/word/numbering.xml +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20190808.docx!/word/settings.xml +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20190808.docx!/word/styles.xml +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20190808.docx!/word/theme/theme1.xml +FILE: ../../../third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20190808.docx!/word/webSettings.xml +FILE: ../../../third_party/boringssl/src/crypto/hpke/test-vectors.json +FILE: ../../../third_party/boringssl/src/crypto/obj/obj_mac.num +FILE: ../../../third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S +FILE: ../../../third_party/boringssl/src/crypto/rsa_extra/rsa_print.c +FILE: ../../../third_party/boringssl/src/crypto/x509/x509_time_test.cc +FILE: ../../../third_party/boringssl/src/crypto/x509v3/v3_ocsp.c +FILE: ../../../third_party/boringssl/src/go.mod +FILE: ../../../third_party/boringssl/src/go.sum +FILE: ../../../third_party/boringssl/src/ssl/bio_ssl.cc +FILE: ../../../third_party/boringssl/src/ssl/ssl_c_test.c +FILE: ../../../third_party/boringssl/src/util/all_tests.json +FILE: ../../../third_party/boringssl/src/util/bot/UPDATING +FILE: ../../../third_party/boringssl/src/util/bot/cmake-win32.zip.sha1 +FILE: ../../../third_party/boringssl/src/util/bot/nasm-win32.exe.sha1 +FILE: ../../../third_party/boringssl/src/util/bot/perl-win32.zip.sha1 +FILE: ../../../third_party/boringssl/src/util/bot/sde-linux64.tar.bz2.sha1 +FILE: ../../../third_party/boringssl/src/util/bot/sde-win32.tar.bz2.sha1 +FILE: ../../../third_party/boringssl/src/util/doc.config +FILE: ../../../third_party/boringssl/src/util/doc.go +FILE: ../../../third_party/boringssl/src/util/fipstools/acvp/acvptool/parser.peg.go +FILE: ../../../third_party/boringssl/src/util/fipstools/cavp/run_cavp.go +FILE: ../../../third_party/boringssl/src/util/fipstools/delocate/delocate.peg.go +FILE: ../../../third_party/boringssl/win-aarch64/crypto/fipsmodule/sha256-armv8.S +FILE: ../../../third_party/boringssl/win-aarch64/crypto/fipsmodule/sha512-armv8.S ---------------------------------------------------------------------------------------------------- -Copyright 2014 Google Inc. All Rights Reserved. +OpenSSL License -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: + ==================================================================== + Copyright (c) 1998-2011 The OpenSSL Project. All rights reserved. - * Redistributions of source code must retain the above copyright + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright + 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - * Neither the name of Google nor the names of its contributors may - be used to endorse or promote products derived from this software - without specific prior written permission. + 3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.openssl.org/)" -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== + 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + openssl-core@openssl.org. -==================================================================================================== -LIBRARY: libwebp -ORIGIN: ../../../third_party/libwebp/imageio/wicdec.c + ../../../third_party/libwebp/COPYING -TYPE: LicenseType.bsd -FILE: ../../../third_party/libwebp/imageio/wicdec.c -FILE: ../../../third_party/libwebp/imageio/wicdec.h -FILE: ../../../third_party/libwebp/src/dec/alphai_dec.h -FILE: ../../../third_party/libwebp/src/dsp/alpha_processing.c -FILE: ../../../third_party/libwebp/src/utils/quant_levels_dec_utils.c -FILE: ../../../third_party/libwebp/src/utils/quant_levels_dec_utils.h -FILE: ../../../third_party/libwebp/src/utils/random_utils.c -FILE: ../../../third_party/libwebp/src/utils/random_utils.h ----------------------------------------------------------------------------------------------------- -Copyright 2013 Google Inc. All Rights Reserved. + 5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: + 6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.openssl.org/)" - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. + THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + OF THE POSSIBILITY OF SUCH DAMAGE. + ==================================================================== - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. + This product includes cryptographic software written by Eric Young + (eay@cryptsoft.com). This product includes software written by Tim + Hudson (tjh@cryptsoft.com). - * Neither the name of Google nor the names of its contributors may - be used to endorse or promote products derived from this software - without specific prior written permission. +Original SSLeay License -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== +* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) +* All rights reserved. -==================================================================================================== -LIBRARY: libwebp -ORIGIN: ../../../third_party/libwebp/src/dec/alpha_dec.c + ../../../third_party/libwebp/COPYING -TYPE: LicenseType.bsd -FILE: ../../../third_party/libwebp/src/dec/alpha_dec.c -FILE: ../../../third_party/libwebp/src/dec/buffer_dec.c -FILE: ../../../third_party/libwebp/src/dec/idec_dec.c -FILE: ../../../third_party/libwebp/src/dec/io_dec.c -FILE: ../../../third_party/libwebp/src/dec/webpi_dec.h -FILE: ../../../third_party/libwebp/src/dsp/cpu.c -FILE: ../../../third_party/libwebp/src/dsp/dec_sse2.c -FILE: ../../../third_party/libwebp/src/dsp/dsp.h -FILE: ../../../third_party/libwebp/src/dsp/enc.c -FILE: ../../../third_party/libwebp/src/dsp/enc_sse2.c -FILE: ../../../third_party/libwebp/src/dsp/filters.c -FILE: ../../../third_party/libwebp/src/dsp/upsampling.c -FILE: ../../../third_party/libwebp/src/dsp/upsampling_neon.c -FILE: ../../../third_party/libwebp/src/dsp/upsampling_sse2.c -FILE: ../../../third_party/libwebp/src/dsp/upsampling_sse41.c -FILE: ../../../third_party/libwebp/src/enc/alpha_enc.c -FILE: ../../../third_party/libwebp/src/enc/analysis_enc.c -FILE: ../../../third_party/libwebp/src/enc/config_enc.c -FILE: ../../../third_party/libwebp/src/enc/cost_enc.c -FILE: ../../../third_party/libwebp/src/enc/cost_enc.h -FILE: ../../../third_party/libwebp/src/enc/filter_enc.c -FILE: ../../../third_party/libwebp/src/enc/frame_enc.c -FILE: ../../../third_party/libwebp/src/enc/iterator_enc.c -FILE: ../../../third_party/libwebp/src/enc/picture_enc.c -FILE: ../../../third_party/libwebp/src/enc/quant_enc.c -FILE: ../../../third_party/libwebp/src/enc/syntax_enc.c -FILE: ../../../third_party/libwebp/src/enc/token_enc.c -FILE: ../../../third_party/libwebp/src/enc/tree_enc.c -FILE: ../../../third_party/libwebp/src/enc/vp8i_enc.h -FILE: ../../../third_party/libwebp/src/enc/webp_enc.c -FILE: ../../../third_party/libwebp/src/mux/muxedit.c -FILE: ../../../third_party/libwebp/src/mux/muxi.h -FILE: ../../../third_party/libwebp/src/mux/muxinternal.c -FILE: ../../../third_party/libwebp/src/mux/muxread.c -FILE: ../../../third_party/libwebp/src/utils/bit_writer_utils.c -FILE: ../../../third_party/libwebp/src/utils/bit_writer_utils.h -FILE: ../../../third_party/libwebp/src/utils/filters_utils.c -FILE: ../../../third_party/libwebp/src/utils/filters_utils.h -FILE: ../../../third_party/libwebp/src/utils/huffman_encode_utils.c -FILE: ../../../third_party/libwebp/src/utils/huffman_encode_utils.h -FILE: ../../../third_party/libwebp/src/utils/quant_levels_utils.c -FILE: ../../../third_party/libwebp/src/utils/quant_levels_utils.h -FILE: ../../../third_party/libwebp/src/utils/thread_utils.c -FILE: ../../../third_party/libwebp/src/utils/thread_utils.h -FILE: ../../../third_party/libwebp/src/webp/encode.h -FILE: ../../../third_party/libwebp/src/webp/mux.h ----------------------------------------------------------------------------------------------------- -Copyright 2011 Google Inc. All Rights Reserved. +* This package is an SSL implementation written +* by Eric Young (eay@cryptsoft.com). +* The implementation was written so as to conform with Netscapes SSL. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +* This library is free for commercial and non-commercial use as long as +* the following conditions are aheared to. The following conditions +* apply to all code found in this distribution, be it the RC4, RSA, +* lhash, DES, etc., code; not just the SSL code. The SSL documentation +* included with this distribution is covered by the same copyright terms +* except that the holder is Tim Hudson (tjh@cryptsoft.com). - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +* Copyright remains Eric Young's, and as such any Copyright notices in +* the code are not to be removed. +* If this package is used in a product, Eric Young should be given attribution +* as the author of the parts of the library used. +* This can be in the form of a textual message at program startup or +* in documentation (online or textual) provided with the package. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions +* are met: +* 1. Redistributions of source code must retain the copyright +* notice, this list of conditions and the following disclaimer. +* 2. Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* 3. All advertising materials mentioning features or use of this software +* must display the following acknowledgement: +* "This product includes cryptographic software written by +* Eric Young (eay@cryptsoft.com)" +* The word 'cryptographic' can be left out if the rouines from the library +* being used are not cryptographic related :-). +* 4. If you include any Windows specific code (or a derivative thereof) from +* the apps directory (application code) you must include an acknowledgement: +* "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * Neither the name of Google nor the names of its contributors may - be used to endorse or promote products derived from this software - without specific prior written permission. +* THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND +* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +* SUCH DAMAGE. + +* The licence and distribution terms for any publically available version or +* derivative of this code cannot be changed. i.e. this code cannot simply be +* copied and put under another distribution licence +* [including the GNU Public Licence.] + +ISC license used for completely new code in BoringSSL: + +/* Copyright (c) 2015, Google Inc. + + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY + * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION + * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN + * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== +The code in third_party/fiat carries the MIT license: -==================================================================================================== -LIBRARY: libwebp -ORIGIN: ../../../third_party/libwebp/src/dec/frame_dec.c + ../../../third_party/libwebp/COPYING -TYPE: LicenseType.bsd -FILE: ../../../third_party/libwebp/src/dec/frame_dec.c -FILE: ../../../third_party/libwebp/src/dec/quant_dec.c -FILE: ../../../third_party/libwebp/src/dec/tree_dec.c -FILE: ../../../third_party/libwebp/src/dec/vp8_dec.c -FILE: ../../../third_party/libwebp/src/dec/vp8_dec.h -FILE: ../../../third_party/libwebp/src/dec/vp8i_dec.h -FILE: ../../../third_party/libwebp/src/dec/webp_dec.c -FILE: ../../../third_party/libwebp/src/dsp/dec.c -FILE: ../../../third_party/libwebp/src/dsp/yuv.c -FILE: ../../../third_party/libwebp/src/dsp/yuv.h -FILE: ../../../third_party/libwebp/src/utils/bit_reader_utils.c -FILE: ../../../third_party/libwebp/src/utils/bit_reader_utils.h -FILE: ../../../third_party/libwebp/src/webp/decode.h -FILE: ../../../third_party/libwebp/src/webp/types.h ----------------------------------------------------------------------------------------------------- -Copyright 2010 Google Inc. All Rights Reserved. +Copyright (c) 2015-2016 the fiat-crypto authors (see +https://github.com/mit-plv/fiat-crypto/blob/master/AUTHORS). -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. - * Neither the name of Google nor the names of its contributors may - be used to endorse or promote products derived from this software - without specific prior written permission. +Licenses for support code -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== +Parts of the TLS test suite are under the Go license. This code is not included +in BoringSSL (i.e. libcrypto and libssl) when compiled, however, so +distributing code linked against BoringSSL does not trigger this license: -==================================================================================================== -LIBRARY: libwebp -ORIGIN: ../../../third_party/libwebp/src/dsp/cost_neon.c + ../../../third_party/libwebp/COPYING -TYPE: LicenseType.bsd -FILE: ../../../third_party/libwebp/src/dsp/cost_neon.c -FILE: ../../../third_party/libwebp/src/dsp/quant.h ----------------------------------------------------------------------------------------------------- -Copyright 2018 Google Inc. All Rights Reserved. +Copyright (c) 2009 The Go Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - - * Neither the name of Google nor the names of its contributors may - be used to endorse or promote products derived from this software - without specific prior written permission. + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY @@ -26360,94 +24729,98 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ==================================================================================================== ==================================================================================================== +LIBRARY: angle +LIBRARY: json LIBRARY: rapidjson -ORIGIN: ../../../third_party/rapidjson/LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/rapidjson/.gitmodules -FILE: ../../../third_party/rapidjson/RapidJSON.pc.in -FILE: ../../../third_party/rapidjson/RapidJSONConfig.cmake.in -FILE: ../../../third_party/rapidjson/RapidJSONConfigVersion.cmake.in -FILE: ../../../third_party/rapidjson/appveyor.yml -FILE: ../../../third_party/rapidjson/doc/Doxyfile.in -FILE: ../../../third_party/rapidjson/doc/Doxyfile.zh-cn.in -FILE: ../../../third_party/rapidjson/doc/diagram/architecture.dot -FILE: ../../../third_party/rapidjson/doc/diagram/architecture.png -FILE: ../../../third_party/rapidjson/doc/diagram/insituparsing.dot -FILE: ../../../third_party/rapidjson/doc/diagram/insituparsing.png -FILE: ../../../third_party/rapidjson/doc/diagram/iterative-parser-states-diagram.dot -FILE: ../../../third_party/rapidjson/doc/diagram/iterative-parser-states-diagram.png -FILE: ../../../third_party/rapidjson/doc/diagram/move1.dot -FILE: ../../../third_party/rapidjson/doc/diagram/move1.png -FILE: ../../../third_party/rapidjson/doc/diagram/move2.dot -FILE: ../../../third_party/rapidjson/doc/diagram/move2.png -FILE: ../../../third_party/rapidjson/doc/diagram/move3.dot -FILE: ../../../third_party/rapidjson/doc/diagram/move3.png -FILE: ../../../third_party/rapidjson/doc/diagram/normalparsing.dot -FILE: ../../../third_party/rapidjson/doc/diagram/normalparsing.png -FILE: ../../../third_party/rapidjson/doc/diagram/simpledom.dot -FILE: ../../../third_party/rapidjson/doc/diagram/simpledom.png -FILE: ../../../third_party/rapidjson/doc/diagram/tutorial.dot -FILE: ../../../third_party/rapidjson/doc/diagram/tutorial.png -FILE: ../../../third_party/rapidjson/doc/diagram/utilityclass.dot -FILE: ../../../third_party/rapidjson/doc/diagram/utilityclass.png -FILE: ../../../third_party/rapidjson/doc/logo/rapidjson.png -FILE: ../../../third_party/rapidjson/doc/logo/rapidjson.svg -FILE: ../../../third_party/rapidjson/doc/misc/DoxygenLayout.xml -FILE: ../../../third_party/rapidjson/doc/misc/footer.html -FILE: ../../../third_party/rapidjson/doc/misc/header.html -FILE: ../../../third_party/rapidjson/docker/debian/Dockerfile -FILE: ../../../third_party/rapidjson/example/archiver/archiver.cpp -FILE: ../../../third_party/rapidjson/example/archiver/archiver.h -FILE: ../../../third_party/rapidjson/example/archiver/archivertest.cpp -FILE: ../../../third_party/rapidjson/example/capitalize/capitalize.cpp -FILE: ../../../third_party/rapidjson/example/condense/condense.cpp -FILE: ../../../third_party/rapidjson/example/filterkey/filterkey.cpp -FILE: ../../../third_party/rapidjson/example/filterkeydom/filterkeydom.cpp -FILE: ../../../third_party/rapidjson/example/jsonx/jsonx.cpp -FILE: ../../../third_party/rapidjson/example/lookaheadparser/lookaheadparser.cpp -FILE: ../../../third_party/rapidjson/example/messagereader/messagereader.cpp -FILE: ../../../third_party/rapidjson/example/parsebyparts/parsebyparts.cpp -FILE: ../../../third_party/rapidjson/example/pretty/pretty.cpp -FILE: ../../../third_party/rapidjson/example/prettyauto/prettyauto.cpp -FILE: ../../../third_party/rapidjson/example/schemavalidator/schemavalidator.cpp -FILE: ../../../third_party/rapidjson/example/serialize/serialize.cpp -FILE: ../../../third_party/rapidjson/example/simpledom/simpledom.cpp -FILE: ../../../third_party/rapidjson/example/simplepullreader/simplepullreader.cpp -FILE: ../../../third_party/rapidjson/example/simplereader/simplereader.cpp -FILE: ../../../third_party/rapidjson/example/simplewriter/simplewriter.cpp -FILE: ../../../third_party/rapidjson/example/sortkeys/sortkeys.cpp -FILE: ../../../third_party/rapidjson/example/tutorial/tutorial.cpp -FILE: ../../../third_party/rapidjson/include_dirs.js -FILE: ../../../third_party/rapidjson/library.json -FILE: ../../../third_party/rapidjson/package.json +ORIGIN: ../../../third_party/angle/include/GLES2/gl2.h +TYPE: LicenseType.mit +FILE: ../../../third_party/angle/include/GLES2/gl2.h +FILE: ../../../third_party/angle/include/GLES2/gl2ext.h +FILE: ../../../third_party/angle/include/GLES3/gl3.h +FILE: ../../../third_party/angle/include/GLES3/gl31.h +FILE: ../../../third_party/angle/include/GLES3/gl32.h +FILE: ../../../third_party/angle/include/GLX/glxext.h +FILE: ../../../third_party/json/include/nlohmann/adl_serializer.hpp +FILE: ../../../third_party/json/include/nlohmann/byte_container_with_subtype.hpp +FILE: ../../../third_party/json/include/nlohmann/detail/abi_macros.hpp +FILE: ../../../third_party/json/include/nlohmann/detail/conversions/from_json.hpp +FILE: ../../../third_party/json/include/nlohmann/detail/conversions/to_chars.hpp +FILE: ../../../third_party/json/include/nlohmann/detail/conversions/to_json.hpp +FILE: ../../../third_party/json/include/nlohmann/detail/exceptions.hpp +FILE: ../../../third_party/json/include/nlohmann/detail/hash.hpp +FILE: ../../../third_party/json/include/nlohmann/detail/input/binary_reader.hpp +FILE: ../../../third_party/json/include/nlohmann/detail/input/input_adapters.hpp +FILE: ../../../third_party/json/include/nlohmann/detail/input/json_sax.hpp +FILE: ../../../third_party/json/include/nlohmann/detail/input/lexer.hpp +FILE: ../../../third_party/json/include/nlohmann/detail/input/parser.hpp +FILE: ../../../third_party/json/include/nlohmann/detail/input/position_t.hpp +FILE: ../../../third_party/json/include/nlohmann/detail/iterators/internal_iterator.hpp +FILE: ../../../third_party/json/include/nlohmann/detail/iterators/iter_impl.hpp +FILE: ../../../third_party/json/include/nlohmann/detail/iterators/iteration_proxy.hpp +FILE: ../../../third_party/json/include/nlohmann/detail/iterators/iterator_traits.hpp +FILE: ../../../third_party/json/include/nlohmann/detail/iterators/json_reverse_iterator.hpp +FILE: ../../../third_party/json/include/nlohmann/detail/iterators/primitive_iterator.hpp +FILE: ../../../third_party/json/include/nlohmann/detail/json_pointer.hpp +FILE: ../../../third_party/json/include/nlohmann/detail/json_ref.hpp +FILE: ../../../third_party/json/include/nlohmann/detail/macro_scope.hpp +FILE: ../../../third_party/json/include/nlohmann/detail/macro_unscope.hpp +FILE: ../../../third_party/json/include/nlohmann/detail/meta/call_std/begin.hpp +FILE: ../../../third_party/json/include/nlohmann/detail/meta/call_std/end.hpp +FILE: ../../../third_party/json/include/nlohmann/detail/meta/cpp_future.hpp +FILE: ../../../third_party/json/include/nlohmann/detail/meta/detected.hpp +FILE: ../../../third_party/json/include/nlohmann/detail/meta/identity_tag.hpp +FILE: ../../../third_party/json/include/nlohmann/detail/meta/is_sax.hpp +FILE: ../../../third_party/json/include/nlohmann/detail/meta/std_fs.hpp +FILE: ../../../third_party/json/include/nlohmann/detail/meta/type_traits.hpp +FILE: ../../../third_party/json/include/nlohmann/detail/meta/void_t.hpp +FILE: ../../../third_party/json/include/nlohmann/detail/output/binary_writer.hpp +FILE: ../../../third_party/json/include/nlohmann/detail/output/output_adapters.hpp +FILE: ../../../third_party/json/include/nlohmann/detail/output/serializer.hpp +FILE: ../../../third_party/json/include/nlohmann/detail/string_concat.hpp +FILE: ../../../third_party/json/include/nlohmann/detail/string_escape.hpp +FILE: ../../../third_party/json/include/nlohmann/detail/value_t.hpp +FILE: ../../../third_party/json/include/nlohmann/json.hpp +FILE: ../../../third_party/json/include/nlohmann/json_fwd.hpp +FILE: ../../../third_party/json/include/nlohmann/ordered_map.hpp +FILE: ../../../third_party/json/include/nlohmann/thirdparty/hedley/hedley.hpp +FILE: ../../../third_party/json/include/nlohmann/thirdparty/hedley/hedley_undef.hpp +FILE: ../../../third_party/json/single_include/nlohmann/json.hpp +FILE: ../../../third_party/json/single_include/nlohmann/json_fwd.hpp +FILE: ../../../third_party/rapidjson/include/rapidjson/allocators.h +FILE: ../../../third_party/rapidjson/include/rapidjson/cursorstreamwrapper.h +FILE: ../../../third_party/rapidjson/include/rapidjson/document.h +FILE: ../../../third_party/rapidjson/include/rapidjson/encodedstream.h +FILE: ../../../third_party/rapidjson/include/rapidjson/encodings.h +FILE: ../../../third_party/rapidjson/include/rapidjson/error/en.h +FILE: ../../../third_party/rapidjson/include/rapidjson/error/error.h +FILE: ../../../third_party/rapidjson/include/rapidjson/filereadstream.h +FILE: ../../../third_party/rapidjson/include/rapidjson/filewritestream.h +FILE: ../../../third_party/rapidjson/include/rapidjson/fwd.h +FILE: ../../../third_party/rapidjson/include/rapidjson/internal/biginteger.h +FILE: ../../../third_party/rapidjson/include/rapidjson/internal/diyfp.h +FILE: ../../../third_party/rapidjson/include/rapidjson/internal/dtoa.h +FILE: ../../../third_party/rapidjson/include/rapidjson/internal/ieee754.h +FILE: ../../../third_party/rapidjson/include/rapidjson/internal/itoa.h +FILE: ../../../third_party/rapidjson/include/rapidjson/internal/meta.h +FILE: ../../../third_party/rapidjson/include/rapidjson/internal/pow10.h +FILE: ../../../third_party/rapidjson/include/rapidjson/internal/regex.h +FILE: ../../../third_party/rapidjson/include/rapidjson/internal/stack.h +FILE: ../../../third_party/rapidjson/include/rapidjson/internal/strfunc.h +FILE: ../../../third_party/rapidjson/include/rapidjson/internal/strtod.h +FILE: ../../../third_party/rapidjson/include/rapidjson/internal/swap.h +FILE: ../../../third_party/rapidjson/include/rapidjson/istreamwrapper.h +FILE: ../../../third_party/rapidjson/include/rapidjson/memorybuffer.h +FILE: ../../../third_party/rapidjson/include/rapidjson/memorystream.h +FILE: ../../../third_party/rapidjson/include/rapidjson/ostreamwrapper.h +FILE: ../../../third_party/rapidjson/include/rapidjson/pointer.h +FILE: ../../../third_party/rapidjson/include/rapidjson/prettywriter.h +FILE: ../../../third_party/rapidjson/include/rapidjson/rapidjson.h +FILE: ../../../third_party/rapidjson/include/rapidjson/reader.h +FILE: ../../../third_party/rapidjson/include/rapidjson/schema.h +FILE: ../../../third_party/rapidjson/include/rapidjson/stream.h +FILE: ../../../third_party/rapidjson/include/rapidjson/stringbuffer.h +FILE: ../../../third_party/rapidjson/include/rapidjson/writer.h ---------------------------------------------------------------------------------------------------- -Tencent is pleased to support the open source community by making RapidJSON available. - -Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. - -If you have downloaded a copy of the RapidJSON binary from Tencent, please note that the RapidJSON binary is licensed under the MIT License. -If you have downloaded a copy of the RapidJSON source code from Tencent, please note that RapidJSON source code is licensed under the MIT License, except for the third-party components listed below which are subject to different license terms. Your integration of RapidJSON into your own projects may require compliance with the MIT License, as well as the other licenses applicable to the third-party components included within RapidJSON. - -A copy of the MIT License is included in this file. - -Other dependencies and licenses: - -Open Source Software Licensed Under the BSD License: - -The msinttypes r29 -Copyright (c) 2006-2013 Alexander Chemeris -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. -* Neither the name of copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -Terms of the MIT License: - Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. @@ -26456,96 +24829,199 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI ==================================================================================================== ==================================================================================================== -LIBRARY: rapidjson -ORIGIN: ../../../third_party/rapidjson/contrib/natvis/LICENSE +LIBRARY: libtess2 +ORIGIN: ../../../third_party/libtess2/LICENSE.txt TYPE: LicenseType.mit -FILE: ../../../third_party/rapidjson/contrib/natvis/rapidjson.natvis +FILE: ../../../third_party/libtess2/Bin/bg.svg +FILE: ../../../third_party/libtess2/Bin/fg.svg +FILE: ../../../third_party/libtess2/premake4.lua ---------------------------------------------------------------------------------------------------- -The MIT License (MIT) - -Copyright (c) 2017 Bart Muzzin +SGI FREE SOFTWARE LICENSE B (Version 2.0, Sept. 18, 2008) +Copyright (C) [dates of first publication] Silicon Graphics, Inc. +All Rights Reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -Derived from: - -The MIT License (MIT) - -Copyright (c) 2015 mojmir svoboda +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: +The above copyright notice including the dates of first publication and either this +permission notice or a reference to http://oss.sgi.com/projects/FreeB/ shall be +included in all copies or substantial portions of the Software. -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL SILICON GRAPHICS, INC. +BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE +OR OTHER DEALINGS IN THE SOFTWARE. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. +Except as contained in this notice, the name of Silicon Graphics, Inc. shall not +be used in advertising or otherwise to promote the sale, use or other dealings in +this Software without prior written authorization from Silicon Graphics, Inc. ==================================================================================================== ==================================================================================================== -LIBRARY: rapidjson -ORIGIN: ../../../third_party/rapidjson/include/rapidjson/msinttypes/inttypes.h -TYPE: LicenseType.bsd -FILE: ../../../third_party/rapidjson/include/rapidjson/msinttypes/inttypes.h -FILE: ../../../third_party/rapidjson/include/rapidjson/msinttypes/stdint.h +LIBRARY: icu +ORIGIN: ../../../third_party/icu/LICENSE +TYPE: LicenseType.unknown +FILE: ../../../third_party/icu/DIR_METADATA +FILE: ../../../third_party/icu/android/icudtl.dat +FILE: ../../../third_party/icu/cast/brkitr.patch +FILE: ../../../third_party/icu/cast/icudtl.dat +FILE: ../../../third_party/icu/chromeos/icudtl.dat +FILE: ../../../third_party/icu/chromeos/icudtl.dat.hash +FILE: ../../../third_party/icu/common/icudtb.dat +FILE: ../../../third_party/icu/common/icudtl.dat +FILE: ../../../third_party/icu/flutter/brkitr.patch +FILE: ../../../third_party/icu/flutter/icudtl.dat +FILE: ../../../third_party/icu/fuzzers/fuzzer_utils.h +FILE: ../../../third_party/icu/fuzzers/icu_appendable_fuzzer.cc +FILE: ../../../third_party/icu/fuzzers/icu_break_iterator_fuzzer.cc +FILE: ../../../third_party/icu/fuzzers/icu_break_iterator_utf32_fuzzer.cc +FILE: ../../../third_party/icu/fuzzers/icu_number_format_fuzzer.cc +FILE: ../../../third_party/icu/fuzzers/icu_to_case_fuzzer.cc +FILE: ../../../third_party/icu/fuzzers/icu_ucasemap_fuzzer.cc +FILE: ../../../third_party/icu/ios/icudtl.dat +FILE: ../../../third_party/icu/patches/AliasDataBuilder-readAlias.patch +FILE: ../../../third_party/icu/patches/DateIntervalFormatnormalizeHourMetacharacters.patch +FILE: ../../../third_party/icu/patches/ardatepattern.patch +FILE: ../../../third_party/icu/patches/atomic_template_instantiation.patch +FILE: ../../../third_party/icu/patches/calendar-get-out-of-bound.patch +FILE: ../../../third_party/icu/patches/calendar-get-out-of-bound2.patch +FILE: ../../../third_party/icu/patches/calendar_return_error_early.patch +FILE: ../../../third_party/icu/patches/cjdict.patch +FILE: ../../../third_party/icu/patches/collationdatabuilder.patch +FILE: ../../../third_party/icu/patches/configure.patch +FILE: ../../../third_party/icu/patches/cxx20enum.patch +FILE: ../../../third_party/icu/patches/data_symb.patch +FILE: ../../../third_party/icu/patches/formatted_string_builder.patch +FILE: ../../../third_party/icu/patches/fuchsia.patch +FILE: ../../../third_party/icu/patches/gb_table.patch +FILE: ../../../third_party/icu/patches/iso2022jp.patch +FILE: ../../../third_party/icu/patches/isvalidenum.patch +FILE: ../../../third_party/icu/patches/khmer-dictbe.patch +FILE: ../../../third_party/icu/patches/locale1.patch +FILE: ../../../third_party/icu/patches/locale_google.patch +FILE: ../../../third_party/icu/patches/number_range_format.patch +FILE: ../../../third_party/icu/patches/restrace.patch +FILE: ../../../third_party/icu/patches/rmATOMIC_VAR_INIT.patch +FILE: ../../../third_party/icu/patches/timezone-rawoffset.patch +FILE: ../../../third_party/icu/patches/unused-var-unary-operators.patch +FILE: ../../../third_party/icu/patches/wordbrk.patch +FILE: ../../../third_party/icu/patches/wpo.patch +FILE: ../../../third_party/icu/source/data/in/coll/ucadata-implicithan.icu +FILE: ../../../third_party/icu/source/data/in/coll/ucadata-unihan.icu +FILE: ../../../third_party/icu/source/data/in/nfc.nrm +FILE: ../../../third_party/icu/source/data/in/nfkc.nrm +FILE: ../../../third_party/icu/source/data/in/nfkc_cf.nrm +FILE: ../../../third_party/icu/source/data/in/pnames.icu +FILE: ../../../third_party/icu/source/data/in/ubidi.icu +FILE: ../../../third_party/icu/source/data/in/ucase.icu +FILE: ../../../third_party/icu/source/data/in/uemoji.icu +FILE: ../../../third_party/icu/source/data/in/ulayout.icu +FILE: ../../../third_party/icu/source/data/in/unames.icu +FILE: ../../../third_party/icu/source/data/in/uprops.icu +FILE: ../../../third_party/icu/source/data/in/uts46.nrm +FILE: ../../../third_party/icu/source/data/mappings/big5-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/euc-jp-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/euc-kr-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/gb18030.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm866-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-10-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-13-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-14-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-15-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-16-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-2-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-3-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-4-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-5-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-6-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-7-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-8-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/koi8-r-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/koi8-u-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/macintosh-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/shift_jis-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1250-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1251-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1252-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1253-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1254-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1255-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1256-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1257-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1258-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-874-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-936-2000.ucm +FILE: ../../../third_party/icu/source/data/mappings/x-mac-cyrillic-html.ucm +FILE: ../../../third_party/icu/source/extra/scrptrun/srtest.dsp +FILE: ../../../third_party/icu/source/extra/scrptrun/srtest.dsw +FILE: ../../../third_party/icu/source/tools/tzcode/asctime.c +FILE: ../../../third_party/icu/source/tools/tzcode/ialloc.c +FILE: ../../../third_party/icu/source/tools/tzcode/localtime.c +FILE: ../../../third_party/icu/source/tools/tzcode/private.h +FILE: ../../../third_party/icu/source/tools/tzcode/scheck.c +FILE: ../../../third_party/icu/source/tools/tzcode/tzfile.h +FILE: ../../../third_party/icu/source/tools/tzcode/tzselect.ksh +FILE: ../../../third_party/icu/source/tools/tzcode/zdump.c +FILE: ../../../third_party/icu/source/tools/tzcode/zic.c +FILE: ../../../third_party/icu/tzres/metaZones.res +FILE: ../../../third_party/icu/tzres/timezoneTypes.res +FILE: ../../../third_party/icu/tzres/zoneinfo64.res ---------------------------------------------------------------------------------------------------- -Copyright (c) 2006-2013 Alexander Chemeris +See Terms of Use +for definitions of Unicode Inc.’s Data Files and Software. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: +NOTICE TO USER: Carefully read the following legal agreement. +BY DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING UNICODE INC.'S +DATA FILES ("DATA FILES"), AND/OR SOFTWARE ("SOFTWARE"), +YOU UNEQUIVOCALLY ACCEPT, AND AGREE TO BE BOUND BY, ALL OF THE +TERMS AND CONDITIONS OF THIS AGREEMENT. +IF YOU DO NOT AGREE, DO NOT DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE +THE DATA FILES OR SOFTWARE. - 1. Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. +COPYRIGHT AND PERMISSION NOTICE - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. +Copyright © 1991-2022 Unicode, Inc. All rights reserved. +Distributed under the Terms of Use in https://www.unicode.org/copyright.html. - 3. Neither the name of the product nor the names of its contributors may - be used to endorse or promote products derived from this software - without specific prior written permission. +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Unicode data files and any associated documentation +(the "Data Files") or Unicode software and any associated documentation +(the "Software") to deal in the Data Files or Software +without restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, and/or sell copies of +the Data Files or Software, and to permit persons to whom the Data Files +or Software are furnished to do so, provided that either +(a) this copyright and permission notice appear with all copies +of the Data Files or Software, or +(b) this copyright and permission notice appear in associated +Documentation. + +THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE +WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT OF THIRD PARTY RIGHTS. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS +NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL +DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THE DATA FILES OR SOFTWARE. -THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED -WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO -EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; -OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF -ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +Except as contained in this notice, the name of a copyright holder +shall not be used in advertising or otherwise to promote the sale, +use or other dealings in these Data Files or Software without prior +written authorization of the copyright holder. ==================================================================================================== ==================================================================================================== LIBRARY: rapidjson -ORIGIN: ../../../third_party/rapidjson/license.txt +ORIGIN: ../../../third_party/rapidjson/LICENSE TYPE: LicenseType.bsd FILE: ../../../third_party/rapidjson/.gitmodules FILE: ../../../third_party/rapidjson/RapidJSON.pc.in @@ -26592,647 +25068,939 @@ FILE: ../../../third_party/rapidjson/example/lookaheadparser/lookaheadparser.cpp FILE: ../../../third_party/rapidjson/example/messagereader/messagereader.cpp FILE: ../../../third_party/rapidjson/example/parsebyparts/parsebyparts.cpp FILE: ../../../third_party/rapidjson/example/pretty/pretty.cpp -FILE: ../../../third_party/rapidjson/example/prettyauto/prettyauto.cpp -FILE: ../../../third_party/rapidjson/example/schemavalidator/schemavalidator.cpp -FILE: ../../../third_party/rapidjson/example/serialize/serialize.cpp -FILE: ../../../third_party/rapidjson/example/simpledom/simpledom.cpp -FILE: ../../../third_party/rapidjson/example/simplepullreader/simplepullreader.cpp -FILE: ../../../third_party/rapidjson/example/simplereader/simplereader.cpp -FILE: ../../../third_party/rapidjson/example/simplewriter/simplewriter.cpp -FILE: ../../../third_party/rapidjson/example/sortkeys/sortkeys.cpp -FILE: ../../../third_party/rapidjson/example/tutorial/tutorial.cpp -FILE: ../../../third_party/rapidjson/include_dirs.js -FILE: ../../../third_party/rapidjson/library.json -FILE: ../../../third_party/rapidjson/package.json ----------------------------------------------------------------------------------------------------- -Tencent is pleased to support the open source community by making RapidJSON available. - -Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. - -If you have downloaded a copy of the RapidJSON binary from Tencent, please note that the RapidJSON binary is licensed under the MIT License. -If you have downloaded a copy of the RapidJSON source code from Tencent, please note that RapidJSON source code is licensed under the MIT License, except for the third-party components listed below which are subject to different license terms. Your integration of RapidJSON into your own projects may require compliance with the MIT License, as well as the other licenses applicable to the third-party components included within RapidJSON. To avoid the problematic JSON license in your own projects, it's sufficient to exclude the bin/jsonchecker/ directory, as it's the only code under the JSON license. -A copy of the MIT License is included in this file. - -Other dependencies and licenses: - -Open Source Software Licensed Under the BSD License: - -The msinttypes r29 -Copyright (c) 2006-2013 Alexander Chemeris -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. -* Neither the name of copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -Open Source Software Licensed Under the JSON License: - -json.org -Copyright (c) 2002 JSON.org -All Rights Reserved. - -JSON_checker -Copyright (c) 2002 JSON.org -All Rights Reserved. - -Terms of the JSON License: - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -The Software shall be used for Good, not Evil. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -Terms of the MIT License: - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -==================================================================================================== - -==================================================================================================== -LIBRARY: root_certificates -ORIGIN: ../../../third_party/root_certificates/LICENSE -TYPE: LicenseType.mpl -FILE: ../../../third_party/root_certificates/root_certificates.cc ----------------------------------------------------------------------------------------------------- -Mozilla Public License Version 2.0 -================================== - -1. Definitions - -1.1. "Contributor" - means each individual or legal entity that creates, contributes to - the creation of, or owns Covered Software. - -1.2. "Contributor Version" - means the combination of the Contributions of others (if any) used - by a Contributor and that particular Contributor's Contribution. - -1.3. "Contribution" - means Covered Software of a particular Contributor. - -1.4. "Covered Software" - means Source Code Form to which the initial Contributor has attached - the notice in Exhibit A, the Executable Form of such Source Code - Form, and Modifications of such Source Code Form, in each case - including portions thereof. - -1.5. "Incompatible With Secondary Licenses" - means - - (a) that the initial Contributor has attached the notice described - in Exhibit B to the Covered Software; or - - (b) that the Covered Software was made available under the terms of - version 1.1 or earlier of the License, but not also under the - terms of a Secondary License. - -1.6. "Executable Form" - means any form of the work other than Source Code Form. - -1.7. "Larger Work" - means a work that combines Covered Software with other material, in - a separate file or files, that is not Covered Software. - -1.8. "License" - means this document. - -1.9. "Licensable" - means having the right to grant, to the maximum extent possible, - whether at the time of the initial grant or subsequently, any and - all of the rights conveyed by this License. - -1.10. "Modifications" - means any of the following: - - (a) any file in Source Code Form that results from an addition to, - deletion from, or modification of the contents of Covered - Software; or - - (b) any new file in Source Code Form that contains any Covered - Software. - -1.11. "Patent Claims" of a Contributor - means any patent claim(s), including without limitation, method, - process, and apparatus claims, in any patent Licensable by such - Contributor that would be infringed, but for the grant of the - License, by the making, using, selling, offering for sale, having - made, import, or transfer of either its Contributions or its - Contributor Version. - -1.12. "Secondary License" - means either the GNU General Public License, Version 2.0, the GNU - Lesser General Public License, Version 2.1, the GNU Affero General - Public License, Version 3.0, or any later versions of those - licenses. - -1.13. "Source Code Form" - means the form of the work preferred for making modifications. - -1.14. "You" (or "Your") - means an individual or a legal entity exercising rights under this - License. For legal entities, "You" includes any entity that - controls, is controlled by, or is under common control with You. For - purposes of this definition, "control" means (a) the power, direct - or indirect, to cause the direction or management of such entity, - whether by contract or otherwise, or (b) ownership of more than - fifty percent (50%) of the outstanding shares or beneficial - ownership of such entity. - -2. License Grants and Conditions - -2.1. Grants - -Each Contributor hereby grants You a world-wide, royalty-free, -non-exclusive license: - -(a) under intellectual property rights (other than patent or trademark) - Licensable by such Contributor to use, reproduce, make available, - modify, display, perform, distribute, and otherwise exploit its - Contributions, either on an unmodified basis, with Modifications, or - as part of a Larger Work; and - -(b) under Patent Claims of such Contributor to make, use, sell, offer - for sale, have made, import, and otherwise transfer either its - Contributions or its Contributor Version. - -2.2. Effective Date - -The licenses granted in Section 2.1 with respect to any Contribution -become effective for each Contribution on the date the Contributor first -distributes such Contribution. - -2.3. Limitations on Grant Scope - -The licenses granted in this Section 2 are the only rights granted under -this License. No additional rights or licenses will be implied from the -distribution or licensing of Covered Software under this License. -Notwithstanding Section 2.1(b) above, no patent license is granted by a -Contributor: - -(a) for any code that a Contributor has removed from Covered Software; - or - -(b) for infringements caused by: (i) Your and any other third party's - modifications of Covered Software, or (ii) the combination of its - Contributions with other software (except as part of its Contributor - Version); or - -(c) under Patent Claims infringed by Covered Software in the absence of - its Contributions. - -This License does not grant any rights in the trademarks, service marks, -or logos of any Contributor (except as may be necessary to comply with -the notice requirements in Section 3.4). - -2.4. Subsequent Licenses - -No Contributor makes additional grants as a result of Your choice to -distribute the Covered Software under a subsequent version of this -License (see Section 10.2) or under the terms of a Secondary License (if -permitted under the terms of Section 3.3). - -2.5. Representation - -Each Contributor represents that the Contributor believes its -Contributions are its original creation(s) or it has sufficient rights -to grant the rights to its Contributions conveyed by this License. - -2.6. Fair Use - -This License is not intended to limit any rights You have under -applicable copyright doctrines of fair use, fair dealing, or other -equivalents. - -2.7. Conditions - -Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted -in Section 2.1. - -3. Responsibilities - -3.1. Distribution of Source Form - -All distribution of Covered Software in Source Code Form, including any -Modifications that You create or to which You contribute, must be under -the terms of this License. You must inform recipients that the Source -Code Form of the Covered Software is governed by the terms of this -License, and how they can obtain a copy of this License. You may not -attempt to alter or restrict the recipients' rights in the Source Code -Form. - -3.2. Distribution of Executable Form +FILE: ../../../third_party/rapidjson/example/prettyauto/prettyauto.cpp +FILE: ../../../third_party/rapidjson/example/schemavalidator/schemavalidator.cpp +FILE: ../../../third_party/rapidjson/example/serialize/serialize.cpp +FILE: ../../../third_party/rapidjson/example/simpledom/simpledom.cpp +FILE: ../../../third_party/rapidjson/example/simplepullreader/simplepullreader.cpp +FILE: ../../../third_party/rapidjson/example/simplereader/simplereader.cpp +FILE: ../../../third_party/rapidjson/example/simplewriter/simplewriter.cpp +FILE: ../../../third_party/rapidjson/example/sortkeys/sortkeys.cpp +FILE: ../../../third_party/rapidjson/example/tutorial/tutorial.cpp +FILE: ../../../third_party/rapidjson/include_dirs.js +FILE: ../../../third_party/rapidjson/library.json +FILE: ../../../third_party/rapidjson/package.json +---------------------------------------------------------------------------------------------------- +Tencent is pleased to support the open source community by making RapidJSON available. -If You distribute Covered Software in Executable Form then: +Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. -(a) such Covered Software must also be made available in Source Code - Form, as described in Section 3.1, and You must inform recipients of - the Executable Form how they can obtain a copy of such Source Code - Form by reasonable means in a timely manner, at a charge no more - than the cost of distribution to the recipient; and +If you have downloaded a copy of the RapidJSON binary from Tencent, please note that the RapidJSON binary is licensed under the MIT License. +If you have downloaded a copy of the RapidJSON source code from Tencent, please note that RapidJSON source code is licensed under the MIT License, except for the third-party components listed below which are subject to different license terms. Your integration of RapidJSON into your own projects may require compliance with the MIT License, as well as the other licenses applicable to the third-party components included within RapidJSON. -(b) You may distribute such Executable Form under the terms of this - License, or sublicense it under different terms, provided that the - license for the Executable Form does not attempt to limit or alter - the recipients' rights in the Source Code Form under this License. +A copy of the MIT License is included in this file. -3.3. Distribution of a Larger Work +Other dependencies and licenses: -You may create and distribute a Larger Work under terms of Your choice, -provided that You also comply with the requirements of this License for -the Covered Software. If the Larger Work is a combination of Covered -Software with a work governed by one or more Secondary Licenses, and the -Covered Software is not Incompatible With Secondary Licenses, this -License permits You to additionally distribute such Covered Software -under the terms of such Secondary License(s), so that the recipient of -the Larger Work may, at their option, further distribute the Covered -Software under the terms of either this License or such Secondary -License(s). +Open Source Software Licensed Under the BSD License: -3.4. Notices +The msinttypes r29 +Copyright (c) 2006-2013 Alexander Chemeris +All rights reserved. -You may not remove or alter the substance of any license notices -(including copyright notices, patent notices, disclaimers of warranty, -or limitations of liability) contained within the Source Code Form of -the Covered Software, except that You may alter any license notices to -the extent required to remedy known factual inaccuracies. +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: -3.5. Application of Additional Terms +* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. +* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. +* Neither the name of copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. -You may choose to offer, and to charge a fee for, warranty, support, -indemnity or liability obligations to one or more recipients of Covered -Software. However, You may do so only on Your own behalf, and not on -behalf of any Contributor. You must make it absolutely clear that any -such warranty, support, indemnity, or liability obligation is offered by -You alone, and You hereby agree to indemnify every Contributor for any -liability incurred by such Contributor as a result of warranty, support, -indemnity or liability terms You offer. You may include additional -disclaimers of warranty and limitations of liability specific to any -jurisdiction. +THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -4. Inability to Comply Due to Statute or Regulation +Terms of the MIT License: -If it is impossible for You to comply with any of the terms of this -License with respect to some or all of the Covered Software due to -statute, judicial order, or regulation then You must: (a) comply with -the terms of this License to the maximum extent possible; and (b) -describe the limitations and the code they affect. Such description must -be placed in a text file included with all distributions of the Covered -Software under this License. Except to the extent prohibited by statute -or regulation, such description must be sufficiently detailed for a -recipient of ordinary skill to be able to understand it. +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: -5. Termination +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -5.1. The rights granted under this License will terminate automatically -if You fail to comply with any of its terms. However, if You become -compliant, then the rights granted under this License from a particular -Contributor are reinstated (a) provisionally, unless and until such -Contributor explicitly and finally terminates Your grants, and (b) on an -ongoing basis, if such Contributor fails to notify You of the -non-compliance by some reasonable means prior to 60 days after You have -come back into compliance. Moreover, Your grants from a particular -Contributor are reinstated on an ongoing basis if such Contributor -notifies You of the non-compliance by some reasonable means, this is the -first time You have received notice of non-compliance with this License -from such Contributor, and You become compliant prior to 30 days after -Your receipt of the notice. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +==================================================================================================== -5.2. If You initiate litigation against any entity by asserting a patent -infringement claim (excluding declaratory judgment actions, -counter-claims, and cross-claims) alleging that a Contributor Version -directly or indirectly infringes any patent, then the rights granted to -You by any and all Contributors for the Covered Software under Section -2.1 of this License shall terminate. +==================================================================================================== +LIBRARY: rapidjson +ORIGIN: ../../../third_party/rapidjson/license.txt +TYPE: LicenseType.bsd +FILE: ../../../third_party/rapidjson/.gitmodules +FILE: ../../../third_party/rapidjson/RapidJSON.pc.in +FILE: ../../../third_party/rapidjson/RapidJSONConfig.cmake.in +FILE: ../../../third_party/rapidjson/RapidJSONConfigVersion.cmake.in +FILE: ../../../third_party/rapidjson/appveyor.yml +FILE: ../../../third_party/rapidjson/doc/Doxyfile.in +FILE: ../../../third_party/rapidjson/doc/Doxyfile.zh-cn.in +FILE: ../../../third_party/rapidjson/doc/diagram/architecture.dot +FILE: ../../../third_party/rapidjson/doc/diagram/architecture.png +FILE: ../../../third_party/rapidjson/doc/diagram/insituparsing.dot +FILE: ../../../third_party/rapidjson/doc/diagram/insituparsing.png +FILE: ../../../third_party/rapidjson/doc/diagram/iterative-parser-states-diagram.dot +FILE: ../../../third_party/rapidjson/doc/diagram/iterative-parser-states-diagram.png +FILE: ../../../third_party/rapidjson/doc/diagram/move1.dot +FILE: ../../../third_party/rapidjson/doc/diagram/move1.png +FILE: ../../../third_party/rapidjson/doc/diagram/move2.dot +FILE: ../../../third_party/rapidjson/doc/diagram/move2.png +FILE: ../../../third_party/rapidjson/doc/diagram/move3.dot +FILE: ../../../third_party/rapidjson/doc/diagram/move3.png +FILE: ../../../third_party/rapidjson/doc/diagram/normalparsing.dot +FILE: ../../../third_party/rapidjson/doc/diagram/normalparsing.png +FILE: ../../../third_party/rapidjson/doc/diagram/simpledom.dot +FILE: ../../../third_party/rapidjson/doc/diagram/simpledom.png +FILE: ../../../third_party/rapidjson/doc/diagram/tutorial.dot +FILE: ../../../third_party/rapidjson/doc/diagram/tutorial.png +FILE: ../../../third_party/rapidjson/doc/diagram/utilityclass.dot +FILE: ../../../third_party/rapidjson/doc/diagram/utilityclass.png +FILE: ../../../third_party/rapidjson/doc/logo/rapidjson.png +FILE: ../../../third_party/rapidjson/doc/logo/rapidjson.svg +FILE: ../../../third_party/rapidjson/doc/misc/DoxygenLayout.xml +FILE: ../../../third_party/rapidjson/doc/misc/footer.html +FILE: ../../../third_party/rapidjson/doc/misc/header.html +FILE: ../../../third_party/rapidjson/docker/debian/Dockerfile +FILE: ../../../third_party/rapidjson/example/archiver/archiver.cpp +FILE: ../../../third_party/rapidjson/example/archiver/archiver.h +FILE: ../../../third_party/rapidjson/example/archiver/archivertest.cpp +FILE: ../../../third_party/rapidjson/example/capitalize/capitalize.cpp +FILE: ../../../third_party/rapidjson/example/condense/condense.cpp +FILE: ../../../third_party/rapidjson/example/filterkey/filterkey.cpp +FILE: ../../../third_party/rapidjson/example/filterkeydom/filterkeydom.cpp +FILE: ../../../third_party/rapidjson/example/jsonx/jsonx.cpp +FILE: ../../../third_party/rapidjson/example/lookaheadparser/lookaheadparser.cpp +FILE: ../../../third_party/rapidjson/example/messagereader/messagereader.cpp +FILE: ../../../third_party/rapidjson/example/parsebyparts/parsebyparts.cpp +FILE: ../../../third_party/rapidjson/example/pretty/pretty.cpp +FILE: ../../../third_party/rapidjson/example/prettyauto/prettyauto.cpp +FILE: ../../../third_party/rapidjson/example/schemavalidator/schemavalidator.cpp +FILE: ../../../third_party/rapidjson/example/serialize/serialize.cpp +FILE: ../../../third_party/rapidjson/example/simpledom/simpledom.cpp +FILE: ../../../third_party/rapidjson/example/simplepullreader/simplepullreader.cpp +FILE: ../../../third_party/rapidjson/example/simplereader/simplereader.cpp +FILE: ../../../third_party/rapidjson/example/simplewriter/simplewriter.cpp +FILE: ../../../third_party/rapidjson/example/sortkeys/sortkeys.cpp +FILE: ../../../third_party/rapidjson/example/tutorial/tutorial.cpp +FILE: ../../../third_party/rapidjson/include_dirs.js +FILE: ../../../third_party/rapidjson/library.json +FILE: ../../../third_party/rapidjson/package.json +---------------------------------------------------------------------------------------------------- +Tencent is pleased to support the open source community by making RapidJSON available. -5.3. In the event of termination under Sections 5.1 or 5.2 above, all -end user license agreements (excluding distributors and resellers) which -have been validly granted by You or Your distributors under this License -prior to termination shall survive termination. +Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. -* 6. Disclaimer of Warranty +If you have downloaded a copy of the RapidJSON binary from Tencent, please note that the RapidJSON binary is licensed under the MIT License. +If you have downloaded a copy of the RapidJSON source code from Tencent, please note that RapidJSON source code is licensed under the MIT License, except for the third-party components listed below which are subject to different license terms. Your integration of RapidJSON into your own projects may require compliance with the MIT License, as well as the other licenses applicable to the third-party components included within RapidJSON. To avoid the problematic JSON license in your own projects, it's sufficient to exclude the bin/jsonchecker/ directory, as it's the only code under the JSON license. +A copy of the MIT License is included in this file. -* Covered Software is provided under this License on an "as is" -* basis, without warranty of any kind, either expressed, implied, or -* statutory, including, without limitation, warranties that the -* Covered Software is free of defects, merchantable, fit for a -* particular purpose or non-infringing. The entire risk as to the -* quality and performance of the Covered Software is with You. -* Should any Covered Software prove defective in any respect, You -* (not any Contributor) assume the cost of any necessary servicing, -* repair, or correction. This disclaimer of warranty constitutes an -* essential part of this License. No use of any Covered Software is -* authorized under this License except under this disclaimer. +Other dependencies and licenses: -* 7. Limitation of Liability +Open Source Software Licensed Under the BSD License: -* Under no circumstances and under no legal theory, whether tort -* (including negligence), contract, or otherwise, shall any -* Contributor, or anyone who distributes Covered Software as -* permitted above, be liable to You for any direct, indirect, -* special, incidental, or consequential damages of any character -* including, without limitation, damages for lost profits, loss of -* goodwill, work stoppage, computer failure or malfunction, or any -* and all other commercial damages or losses, even if such party -* shall have been informed of the possibility of such damages. This -* limitation of liability shall not apply to liability for death or -* personal injury resulting from such party's negligence to the -* extent applicable law prohibits such limitation. Some -* jurisdictions do not allow the exclusion or limitation of -* incidental or consequential damages, so this exclusion and -* limitation may not apply to You. +The msinttypes r29 +Copyright (c) 2006-2013 Alexander Chemeris +All rights reserved. -8. Litigation +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: -Any litigation relating to this License may be brought only in the -courts of a jurisdiction where the defendant maintains its principal -place of business and such litigation shall be governed by laws of that -jurisdiction, without reference to its conflict-of-law provisions. -Nothing in this Section shall prevent a party's ability to bring -cross-claims or counter-claims. +* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. +* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. +* Neither the name of copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. -9. Miscellaneous +THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -This License represents the complete agreement concerning the subject -matter hereof. If any provision of this License is held to be -unenforceable, such provision shall be reformed only to the extent -necessary to make it enforceable. Any law or regulation which provides -that the language of a contract shall be construed against the drafter -shall not be used to construe this License against a Contributor. +Open Source Software Licensed Under the JSON License: -10. Versions of the License +json.org +Copyright (c) 2002 JSON.org +All Rights Reserved. -10.1. New Versions +JSON_checker +Copyright (c) 2002 JSON.org +All Rights Reserved. -Mozilla Foundation is the license steward. Except as provided in Section -10.3, no one other than the license steward has the right to modify or -publish new versions of this License. Each version will be given a -distinguishing version number. +Terms of the JSON License: -10.2. Effect of New Versions +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: -You may distribute the Covered Software under the terms of the version -of the License under which You originally received the Covered Software, -or under the terms of any subsequent version published by the license -steward. +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -10.3. Modified Versions +The Software shall be used for Good, not Evil. -If you create software not governed by this License, and you want to -create a new license for such software, you may create and use a -modified version of this License if you rename the license and remove -any references to the name of the license steward (except to note that -such modified license differs from this License). +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -10.4. Distributing Source Code Form that is Incompatible With Secondary -Licenses +Terms of the MIT License: -If You choose to distribute Source Code Form that is Incompatible With -Secondary Licenses under the terms of this version of the License, the -notice described in Exhibit B of this License must be attached. +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: -Exhibit A - Source Code Form License Notice +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - This Source Code Form is subject to the terms of the Mozilla Public - License, v. 2.0. If a copy of the MPL was not distributed with this - file, You can obtain one at http://mozilla.org/MPL/2.0/. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +==================================================================================================== -If it is not possible or desirable to put the notice in a particular -file, then You may include the notice in a location (such as a LICENSE -file in a relevant directory) where a recipient would be likely to look -for such a notice. +==================================================================================================== +LIBRARY: icu +ORIGIN: ../../../third_party/icu/LICENSE +TYPE: LicenseType.bsd +FILE: ../../../third_party/icu/DIR_METADATA +FILE: ../../../third_party/icu/android/icudtl.dat +FILE: ../../../third_party/icu/cast/brkitr.patch +FILE: ../../../third_party/icu/cast/icudtl.dat +FILE: ../../../third_party/icu/chromeos/icudtl.dat +FILE: ../../../third_party/icu/chromeos/icudtl.dat.hash +FILE: ../../../third_party/icu/common/icudtb.dat +FILE: ../../../third_party/icu/common/icudtl.dat +FILE: ../../../third_party/icu/flutter/brkitr.patch +FILE: ../../../third_party/icu/flutter/icudtl.dat +FILE: ../../../third_party/icu/fuzzers/fuzzer_utils.h +FILE: ../../../third_party/icu/fuzzers/icu_appendable_fuzzer.cc +FILE: ../../../third_party/icu/fuzzers/icu_break_iterator_fuzzer.cc +FILE: ../../../third_party/icu/fuzzers/icu_break_iterator_utf32_fuzzer.cc +FILE: ../../../third_party/icu/fuzzers/icu_number_format_fuzzer.cc +FILE: ../../../third_party/icu/fuzzers/icu_to_case_fuzzer.cc +FILE: ../../../third_party/icu/fuzzers/icu_ucasemap_fuzzer.cc +FILE: ../../../third_party/icu/ios/icudtl.dat +FILE: ../../../third_party/icu/patches/AliasDataBuilder-readAlias.patch +FILE: ../../../third_party/icu/patches/DateIntervalFormatnormalizeHourMetacharacters.patch +FILE: ../../../third_party/icu/patches/ardatepattern.patch +FILE: ../../../third_party/icu/patches/atomic_template_instantiation.patch +FILE: ../../../third_party/icu/patches/calendar-get-out-of-bound.patch +FILE: ../../../third_party/icu/patches/calendar-get-out-of-bound2.patch +FILE: ../../../third_party/icu/patches/calendar_return_error_early.patch +FILE: ../../../third_party/icu/patches/cjdict.patch +FILE: ../../../third_party/icu/patches/collationdatabuilder.patch +FILE: ../../../third_party/icu/patches/configure.patch +FILE: ../../../third_party/icu/patches/cxx20enum.patch +FILE: ../../../third_party/icu/patches/data_symb.patch +FILE: ../../../third_party/icu/patches/formatted_string_builder.patch +FILE: ../../../third_party/icu/patches/fuchsia.patch +FILE: ../../../third_party/icu/patches/gb_table.patch +FILE: ../../../third_party/icu/patches/iso2022jp.patch +FILE: ../../../third_party/icu/patches/isvalidenum.patch +FILE: ../../../third_party/icu/patches/khmer-dictbe.patch +FILE: ../../../third_party/icu/patches/locale1.patch +FILE: ../../../third_party/icu/patches/locale_google.patch +FILE: ../../../third_party/icu/patches/number_range_format.patch +FILE: ../../../third_party/icu/patches/restrace.patch +FILE: ../../../third_party/icu/patches/rmATOMIC_VAR_INIT.patch +FILE: ../../../third_party/icu/patches/timezone-rawoffset.patch +FILE: ../../../third_party/icu/patches/unused-var-unary-operators.patch +FILE: ../../../third_party/icu/patches/wordbrk.patch +FILE: ../../../third_party/icu/patches/wpo.patch +FILE: ../../../third_party/icu/source/data/in/coll/ucadata-implicithan.icu +FILE: ../../../third_party/icu/source/data/in/coll/ucadata-unihan.icu +FILE: ../../../third_party/icu/source/data/in/nfc.nrm +FILE: ../../../third_party/icu/source/data/in/nfkc.nrm +FILE: ../../../third_party/icu/source/data/in/nfkc_cf.nrm +FILE: ../../../third_party/icu/source/data/in/pnames.icu +FILE: ../../../third_party/icu/source/data/in/ubidi.icu +FILE: ../../../third_party/icu/source/data/in/ucase.icu +FILE: ../../../third_party/icu/source/data/in/uemoji.icu +FILE: ../../../third_party/icu/source/data/in/ulayout.icu +FILE: ../../../third_party/icu/source/data/in/unames.icu +FILE: ../../../third_party/icu/source/data/in/uprops.icu +FILE: ../../../third_party/icu/source/data/in/uts46.nrm +FILE: ../../../third_party/icu/source/data/mappings/big5-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/euc-jp-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/euc-kr-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/gb18030.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm866-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-10-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-13-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-14-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-15-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-16-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-2-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-3-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-4-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-5-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-6-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-7-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859-8-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/koi8-r-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/koi8-u-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/macintosh-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/shift_jis-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1250-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1251-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1252-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1253-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1254-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1255-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1256-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1257-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-1258-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-874-html.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-936-2000.ucm +FILE: ../../../third_party/icu/source/data/mappings/x-mac-cyrillic-html.ucm +FILE: ../../../third_party/icu/source/extra/scrptrun/srtest.dsp +FILE: ../../../third_party/icu/source/extra/scrptrun/srtest.dsw +FILE: ../../../third_party/icu/source/tools/tzcode/asctime.c +FILE: ../../../third_party/icu/source/tools/tzcode/ialloc.c +FILE: ../../../third_party/icu/source/tools/tzcode/localtime.c +FILE: ../../../third_party/icu/source/tools/tzcode/private.h +FILE: ../../../third_party/icu/source/tools/tzcode/scheck.c +FILE: ../../../third_party/icu/source/tools/tzcode/tzfile.h +FILE: ../../../third_party/icu/source/tools/tzcode/tzselect.ksh +FILE: ../../../third_party/icu/source/tools/tzcode/zdump.c +FILE: ../../../third_party/icu/source/tools/tzcode/zic.c +FILE: ../../../third_party/icu/tzres/metaZones.res +FILE: ../../../third_party/icu/tzres/timezoneTypes.res +FILE: ../../../third_party/icu/tzres/zoneinfo64.res +---------------------------------------------------------------------------------------------------- +The BSD License +http://opensource.org/licenses/bsd-license.php +Copyright (C) 2006-2008, Google Inc. -You may add additional accurate notices of copyright ownership. +All rights reserved. -Exhibit B - "Incompatible With Secondary Licenses" Notice +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: - This Source Code Form is "Incompatible With Secondary Licenses", as - defined by the Mozilla Public License, v. 2.0. + Redistributions of source code must retain the above copyright notice, +this list of conditions and the following disclaimer. + Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following +disclaimer in the documentation and/or other materials provided with +the distribution. + Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND +CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ==================================================================================================== ==================================================================================================== -LIBRARY: root_certificates -ORIGIN: ../../../third_party/root_certificates/certdata.pem -TYPE: LicenseType.mpl -FILE: ../../../third_party/root_certificates/certdata.pem +LIBRARY: freetype2 +ORIGIN: ../../../third_party/freetype2/docs/FTL.TXT +TYPE: LicenseType.freetype +FILE: ../../../third_party/freetype2/.gitlab-ci.yml +FILE: ../../../third_party/freetype2/.gitmodules +FILE: ../../../third_party/freetype2/devel/ft2build.h +FILE: ../../../third_party/freetype2/devel/ftoption.h +FILE: ../../../third_party/freetype2/include/freetype-flutter-config/freetype/config/public-macros.h +FILE: ../../../third_party/freetype2/include/freetype-flutter-config/ftmodule.h +FILE: ../../../third_party/freetype2/include/freetype-flutter-config/ftoption.h +FILE: ../../../third_party/freetype2/include/freetype/config/ftconfig.h +FILE: ../../../third_party/freetype2/include/freetype/config/ftheader.h +FILE: ../../../third_party/freetype2/include/freetype/config/ftmodule.h +FILE: ../../../third_party/freetype2/include/freetype/config/ftoption.h +FILE: ../../../third_party/freetype2/include/freetype/config/ftstdlib.h +FILE: ../../../third_party/freetype2/include/freetype/config/integer-types.h +FILE: ../../../third_party/freetype2/include/freetype/config/mac-support.h +FILE: ../../../third_party/freetype2/include/freetype/config/public-macros.h +FILE: ../../../third_party/freetype2/include/freetype/freetype.h +FILE: ../../../third_party/freetype2/include/freetype/ftadvanc.h +FILE: ../../../third_party/freetype2/include/freetype/ftbbox.h +FILE: ../../../third_party/freetype2/include/freetype/ftbdf.h +FILE: ../../../third_party/freetype2/include/freetype/ftbitmap.h +FILE: ../../../third_party/freetype2/include/freetype/ftbzip2.h +FILE: ../../../third_party/freetype2/include/freetype/ftcache.h +FILE: ../../../third_party/freetype2/include/freetype/ftchapters.h +FILE: ../../../third_party/freetype2/include/freetype/ftcid.h +FILE: ../../../third_party/freetype2/include/freetype/ftcolor.h +FILE: ../../../third_party/freetype2/include/freetype/ftdriver.h +FILE: ../../../third_party/freetype2/include/freetype/fterrdef.h +FILE: ../../../third_party/freetype2/include/freetype/fterrors.h +FILE: ../../../third_party/freetype2/include/freetype/ftfntfmt.h +FILE: ../../../third_party/freetype2/include/freetype/ftgasp.h +FILE: ../../../third_party/freetype2/include/freetype/ftglyph.h +FILE: ../../../third_party/freetype2/include/freetype/ftgxval.h +FILE: ../../../third_party/freetype2/include/freetype/ftgzip.h +FILE: ../../../third_party/freetype2/include/freetype/ftimage.h +FILE: ../../../third_party/freetype2/include/freetype/ftincrem.h +FILE: ../../../third_party/freetype2/include/freetype/ftlcdfil.h +FILE: ../../../third_party/freetype2/include/freetype/ftlist.h +FILE: ../../../third_party/freetype2/include/freetype/ftlogging.h +FILE: ../../../third_party/freetype2/include/freetype/ftlzw.h +FILE: ../../../third_party/freetype2/include/freetype/ftmac.h +FILE: ../../../third_party/freetype2/include/freetype/ftmm.h +FILE: ../../../third_party/freetype2/include/freetype/ftmodapi.h +FILE: ../../../third_party/freetype2/include/freetype/ftmoderr.h +FILE: ../../../third_party/freetype2/include/freetype/ftotval.h +FILE: ../../../third_party/freetype2/include/freetype/ftoutln.h +FILE: ../../../third_party/freetype2/include/freetype/ftparams.h +FILE: ../../../third_party/freetype2/include/freetype/ftpfr.h +FILE: ../../../third_party/freetype2/include/freetype/ftrender.h +FILE: ../../../third_party/freetype2/include/freetype/ftsizes.h +FILE: ../../../third_party/freetype2/include/freetype/ftsnames.h +FILE: ../../../third_party/freetype2/include/freetype/ftstroke.h +FILE: ../../../third_party/freetype2/include/freetype/ftsynth.h +FILE: ../../../third_party/freetype2/include/freetype/ftsystem.h +FILE: ../../../third_party/freetype2/include/freetype/fttrigon.h +FILE: ../../../third_party/freetype2/include/freetype/fttypes.h +FILE: ../../../third_party/freetype2/include/freetype/ftwinfnt.h +FILE: ../../../third_party/freetype2/include/freetype/internal/autohint.h +FILE: ../../../third_party/freetype2/include/freetype/internal/cffotypes.h +FILE: ../../../third_party/freetype2/include/freetype/internal/cfftypes.h +FILE: ../../../third_party/freetype2/include/freetype/internal/compiler-macros.h +FILE: ../../../third_party/freetype2/include/freetype/internal/ftcalc.h +FILE: ../../../third_party/freetype2/include/freetype/internal/ftdebug.h +FILE: ../../../third_party/freetype2/include/freetype/internal/ftdrv.h +FILE: ../../../third_party/freetype2/include/freetype/internal/ftgloadr.h +FILE: ../../../third_party/freetype2/include/freetype/internal/ftmemory.h +FILE: ../../../third_party/freetype2/include/freetype/internal/ftobjs.h +FILE: ../../../third_party/freetype2/include/freetype/internal/ftpsprop.h +FILE: ../../../third_party/freetype2/include/freetype/internal/ftrfork.h +FILE: ../../../third_party/freetype2/include/freetype/internal/ftserv.h +FILE: ../../../third_party/freetype2/include/freetype/internal/ftstream.h +FILE: ../../../third_party/freetype2/include/freetype/internal/fttrace.h +FILE: ../../../third_party/freetype2/include/freetype/internal/ftvalid.h +FILE: ../../../third_party/freetype2/include/freetype/internal/psaux.h +FILE: ../../../third_party/freetype2/include/freetype/internal/pshints.h +FILE: ../../../third_party/freetype2/include/freetype/internal/services/svbdf.h +FILE: ../../../third_party/freetype2/include/freetype/internal/services/svcfftl.h +FILE: ../../../third_party/freetype2/include/freetype/internal/services/svcid.h +FILE: ../../../third_party/freetype2/include/freetype/internal/services/svfntfmt.h +FILE: ../../../third_party/freetype2/include/freetype/internal/services/svgldict.h +FILE: ../../../third_party/freetype2/include/freetype/internal/services/svgxval.h +FILE: ../../../third_party/freetype2/include/freetype/internal/services/svkern.h +FILE: ../../../third_party/freetype2/include/freetype/internal/services/svmetric.h +FILE: ../../../third_party/freetype2/include/freetype/internal/services/svmm.h +FILE: ../../../third_party/freetype2/include/freetype/internal/services/svotval.h +FILE: ../../../third_party/freetype2/include/freetype/internal/services/svpfr.h +FILE: ../../../third_party/freetype2/include/freetype/internal/services/svpostnm.h +FILE: ../../../third_party/freetype2/include/freetype/internal/services/svprop.h +FILE: ../../../third_party/freetype2/include/freetype/internal/services/svpscmap.h +FILE: ../../../third_party/freetype2/include/freetype/internal/services/svpsinfo.h +FILE: ../../../third_party/freetype2/include/freetype/internal/services/svsfnt.h +FILE: ../../../third_party/freetype2/include/freetype/internal/services/svttcmap.h +FILE: ../../../third_party/freetype2/include/freetype/internal/services/svtteng.h +FILE: ../../../third_party/freetype2/include/freetype/internal/services/svttglyf.h +FILE: ../../../third_party/freetype2/include/freetype/internal/services/svwinfnt.h +FILE: ../../../third_party/freetype2/include/freetype/internal/sfnt.h +FILE: ../../../third_party/freetype2/include/freetype/internal/svginterface.h +FILE: ../../../third_party/freetype2/include/freetype/internal/t1types.h +FILE: ../../../third_party/freetype2/include/freetype/internal/tttypes.h +FILE: ../../../third_party/freetype2/include/freetype/internal/wofftypes.h +FILE: ../../../third_party/freetype2/include/freetype/otsvg.h +FILE: ../../../third_party/freetype2/include/freetype/t1tables.h +FILE: ../../../third_party/freetype2/include/freetype/ttnameid.h +FILE: ../../../third_party/freetype2/include/freetype/tttables.h +FILE: ../../../third_party/freetype2/include/freetype/tttags.h +FILE: ../../../third_party/freetype2/include/ft2build.h +FILE: ../../../third_party/freetype2/meson.build +FILE: ../../../third_party/freetype2/modules.cfg +FILE: ../../../third_party/freetype2/src/autofit/afblue.c +FILE: ../../../third_party/freetype2/src/autofit/afblue.cin +FILE: ../../../third_party/freetype2/src/autofit/afblue.dat +FILE: ../../../third_party/freetype2/src/autofit/afblue.h +FILE: ../../../third_party/freetype2/src/autofit/afblue.hin +FILE: ../../../third_party/freetype2/src/autofit/afcjk.c +FILE: ../../../third_party/freetype2/src/autofit/afcjk.h +FILE: ../../../third_party/freetype2/src/autofit/afcover.h +FILE: ../../../third_party/freetype2/src/autofit/afdummy.c +FILE: ../../../third_party/freetype2/src/autofit/afdummy.h +FILE: ../../../third_party/freetype2/src/autofit/aferrors.h +FILE: ../../../third_party/freetype2/src/autofit/afglobal.c +FILE: ../../../third_party/freetype2/src/autofit/afglobal.h +FILE: ../../../third_party/freetype2/src/autofit/afhints.c +FILE: ../../../third_party/freetype2/src/autofit/afhints.h +FILE: ../../../third_party/freetype2/src/autofit/afindic.c +FILE: ../../../third_party/freetype2/src/autofit/afindic.h +FILE: ../../../third_party/freetype2/src/autofit/aflatin.c +FILE: ../../../third_party/freetype2/src/autofit/aflatin.h +FILE: ../../../third_party/freetype2/src/autofit/afloader.c +FILE: ../../../third_party/freetype2/src/autofit/afloader.h +FILE: ../../../third_party/freetype2/src/autofit/afmodule.c +FILE: ../../../third_party/freetype2/src/autofit/afmodule.h +FILE: ../../../third_party/freetype2/src/autofit/afranges.c +FILE: ../../../third_party/freetype2/src/autofit/afranges.h +FILE: ../../../third_party/freetype2/src/autofit/afscript.h +FILE: ../../../third_party/freetype2/src/autofit/afshaper.c +FILE: ../../../third_party/freetype2/src/autofit/afshaper.h +FILE: ../../../third_party/freetype2/src/autofit/afstyles.h +FILE: ../../../third_party/freetype2/src/autofit/aftypes.h +FILE: ../../../third_party/freetype2/src/autofit/afws-decl.h +FILE: ../../../third_party/freetype2/src/autofit/afws-iter.h +FILE: ../../../third_party/freetype2/src/autofit/autofit.c +FILE: ../../../third_party/freetype2/src/base/ftadvanc.c +FILE: ../../../third_party/freetype2/src/base/ftbase.c +FILE: ../../../third_party/freetype2/src/base/ftbase.h +FILE: ../../../third_party/freetype2/src/base/ftbbox.c +FILE: ../../../third_party/freetype2/src/base/ftbdf.c +FILE: ../../../third_party/freetype2/src/base/ftbitmap.c +FILE: ../../../third_party/freetype2/src/base/ftcalc.c +FILE: ../../../third_party/freetype2/src/base/ftcid.c +FILE: ../../../third_party/freetype2/src/base/ftcolor.c +FILE: ../../../third_party/freetype2/src/base/ftdbgmem.c +FILE: ../../../third_party/freetype2/src/base/ftdebug.c +FILE: ../../../third_party/freetype2/src/base/fterrors.c +FILE: ../../../third_party/freetype2/src/base/ftfntfmt.c +FILE: ../../../third_party/freetype2/src/base/ftfstype.c +FILE: ../../../third_party/freetype2/src/base/ftgasp.c +FILE: ../../../third_party/freetype2/src/base/ftgloadr.c +FILE: ../../../third_party/freetype2/src/base/ftglyph.c +FILE: ../../../third_party/freetype2/src/base/ftgxval.c +FILE: ../../../third_party/freetype2/src/base/ftinit.c +FILE: ../../../third_party/freetype2/src/base/ftlcdfil.c +FILE: ../../../third_party/freetype2/src/base/ftmac.c +FILE: ../../../third_party/freetype2/src/base/ftmm.c +FILE: ../../../third_party/freetype2/src/base/ftobjs.c +FILE: ../../../third_party/freetype2/src/base/ftotval.c +FILE: ../../../third_party/freetype2/src/base/ftoutln.c +FILE: ../../../third_party/freetype2/src/base/ftpatent.c +FILE: ../../../third_party/freetype2/src/base/ftpfr.c +FILE: ../../../third_party/freetype2/src/base/ftpsprop.c +FILE: ../../../third_party/freetype2/src/base/ftrfork.c +FILE: ../../../third_party/freetype2/src/base/ftsnames.c +FILE: ../../../third_party/freetype2/src/base/ftstream.c +FILE: ../../../third_party/freetype2/src/base/ftstroke.c +FILE: ../../../third_party/freetype2/src/base/ftsynth.c +FILE: ../../../third_party/freetype2/src/base/ftsystem.c +FILE: ../../../third_party/freetype2/src/base/fttrigon.c +FILE: ../../../third_party/freetype2/src/base/fttype1.c +FILE: ../../../third_party/freetype2/src/base/ftutil.c +FILE: ../../../third_party/freetype2/src/base/ftver.rc +FILE: ../../../third_party/freetype2/src/base/ftwinfnt.c +FILE: ../../../third_party/freetype2/src/base/md5.c +FILE: ../../../third_party/freetype2/src/base/md5.h +FILE: ../../../third_party/freetype2/src/bzip2/ftbzip2.c +FILE: ../../../third_party/freetype2/src/cache/ftcache.c +FILE: ../../../third_party/freetype2/src/cache/ftcbasic.c +FILE: ../../../third_party/freetype2/src/cache/ftccache.c +FILE: ../../../third_party/freetype2/src/cache/ftccache.h +FILE: ../../../third_party/freetype2/src/cache/ftccback.h +FILE: ../../../third_party/freetype2/src/cache/ftccmap.c +FILE: ../../../third_party/freetype2/src/cache/ftcerror.h +FILE: ../../../third_party/freetype2/src/cache/ftcglyph.c +FILE: ../../../third_party/freetype2/src/cache/ftcglyph.h +FILE: ../../../third_party/freetype2/src/cache/ftcimage.c +FILE: ../../../third_party/freetype2/src/cache/ftcimage.h +FILE: ../../../third_party/freetype2/src/cache/ftcmanag.c +FILE: ../../../third_party/freetype2/src/cache/ftcmanag.h +FILE: ../../../third_party/freetype2/src/cache/ftcmru.c +FILE: ../../../third_party/freetype2/src/cache/ftcmru.h +FILE: ../../../third_party/freetype2/src/cache/ftcsbits.c +FILE: ../../../third_party/freetype2/src/cache/ftcsbits.h +FILE: ../../../third_party/freetype2/src/cff/cff.c +FILE: ../../../third_party/freetype2/src/cff/cffcmap.c +FILE: ../../../third_party/freetype2/src/cff/cffcmap.h +FILE: ../../../third_party/freetype2/src/cff/cffdrivr.c +FILE: ../../../third_party/freetype2/src/cff/cffdrivr.h +FILE: ../../../third_party/freetype2/src/cff/cfferrs.h +FILE: ../../../third_party/freetype2/src/cff/cffgload.c +FILE: ../../../third_party/freetype2/src/cff/cffgload.h +FILE: ../../../third_party/freetype2/src/cff/cffload.c +FILE: ../../../third_party/freetype2/src/cff/cffload.h +FILE: ../../../third_party/freetype2/src/cff/cffobjs.c +FILE: ../../../third_party/freetype2/src/cff/cffobjs.h +FILE: ../../../third_party/freetype2/src/cff/cffparse.c +FILE: ../../../third_party/freetype2/src/cff/cffparse.h +FILE: ../../../third_party/freetype2/src/cff/cfftoken.h +FILE: ../../../third_party/freetype2/src/cid/ciderrs.h +FILE: ../../../third_party/freetype2/src/cid/cidgload.c +FILE: ../../../third_party/freetype2/src/cid/cidgload.h +FILE: ../../../third_party/freetype2/src/cid/cidload.c +FILE: ../../../third_party/freetype2/src/cid/cidload.h +FILE: ../../../third_party/freetype2/src/cid/cidobjs.c +FILE: ../../../third_party/freetype2/src/cid/cidobjs.h +FILE: ../../../third_party/freetype2/src/cid/cidparse.c +FILE: ../../../third_party/freetype2/src/cid/cidparse.h +FILE: ../../../third_party/freetype2/src/cid/cidriver.c +FILE: ../../../third_party/freetype2/src/cid/cidriver.h +FILE: ../../../third_party/freetype2/src/cid/cidtoken.h +FILE: ../../../third_party/freetype2/src/cid/type1cid.c +FILE: ../../../third_party/freetype2/src/dlg/dlgwrap.c +FILE: ../../../third_party/freetype2/src/gxvalid/gxvalid.c +FILE: ../../../third_party/freetype2/src/gxvalid/gxvalid.h +FILE: ../../../third_party/freetype2/src/gxvalid/gxvbsln.c +FILE: ../../../third_party/freetype2/src/gxvalid/gxvcommn.c +FILE: ../../../third_party/freetype2/src/gxvalid/gxvcommn.h +FILE: ../../../third_party/freetype2/src/gxvalid/gxverror.h +FILE: ../../../third_party/freetype2/src/gxvalid/gxvfeat.c +FILE: ../../../third_party/freetype2/src/gxvalid/gxvfeat.h +FILE: ../../../third_party/freetype2/src/gxvalid/gxvfgen.c +FILE: ../../../third_party/freetype2/src/gxvalid/gxvjust.c +FILE: ../../../third_party/freetype2/src/gxvalid/gxvkern.c +FILE: ../../../third_party/freetype2/src/gxvalid/gxvlcar.c +FILE: ../../../third_party/freetype2/src/gxvalid/gxvmod.c +FILE: ../../../third_party/freetype2/src/gxvalid/gxvmod.h +FILE: ../../../third_party/freetype2/src/gxvalid/gxvmort.c +FILE: ../../../third_party/freetype2/src/gxvalid/gxvmort.h +FILE: ../../../third_party/freetype2/src/gxvalid/gxvmort0.c +FILE: ../../../third_party/freetype2/src/gxvalid/gxvmort1.c +FILE: ../../../third_party/freetype2/src/gxvalid/gxvmort2.c +FILE: ../../../third_party/freetype2/src/gxvalid/gxvmort4.c +FILE: ../../../third_party/freetype2/src/gxvalid/gxvmort5.c +FILE: ../../../third_party/freetype2/src/gxvalid/gxvmorx.c +FILE: ../../../third_party/freetype2/src/gxvalid/gxvmorx.h +FILE: ../../../third_party/freetype2/src/gxvalid/gxvmorx0.c +FILE: ../../../third_party/freetype2/src/gxvalid/gxvmorx1.c +FILE: ../../../third_party/freetype2/src/gxvalid/gxvmorx2.c +FILE: ../../../third_party/freetype2/src/gxvalid/gxvmorx4.c +FILE: ../../../third_party/freetype2/src/gxvalid/gxvmorx5.c +FILE: ../../../third_party/freetype2/src/gxvalid/gxvopbd.c +FILE: ../../../third_party/freetype2/src/gxvalid/gxvprop.c +FILE: ../../../third_party/freetype2/src/gxvalid/gxvtrak.c +FILE: ../../../third_party/freetype2/src/gzip/ftgzip.c +FILE: ../../../third_party/freetype2/src/lzw/ftlzw.c +FILE: ../../../third_party/freetype2/src/lzw/ftzopen.c +FILE: ../../../third_party/freetype2/src/lzw/ftzopen.h +FILE: ../../../third_party/freetype2/src/otvalid/otvalid.c +FILE: ../../../third_party/freetype2/src/otvalid/otvalid.h +FILE: ../../../third_party/freetype2/src/otvalid/otvbase.c +FILE: ../../../third_party/freetype2/src/otvalid/otvcommn.c +FILE: ../../../third_party/freetype2/src/otvalid/otvcommn.h +FILE: ../../../third_party/freetype2/src/otvalid/otverror.h +FILE: ../../../third_party/freetype2/src/otvalid/otvgdef.c +FILE: ../../../third_party/freetype2/src/otvalid/otvgpos.c +FILE: ../../../third_party/freetype2/src/otvalid/otvgpos.h +FILE: ../../../third_party/freetype2/src/otvalid/otvgsub.c +FILE: ../../../third_party/freetype2/src/otvalid/otvjstf.c +FILE: ../../../third_party/freetype2/src/otvalid/otvmath.c +FILE: ../../../third_party/freetype2/src/otvalid/otvmod.c +FILE: ../../../third_party/freetype2/src/otvalid/otvmod.h +FILE: ../../../third_party/freetype2/src/pcf/pcferror.h +FILE: ../../../third_party/freetype2/src/pfr/pfr.c +FILE: ../../../third_party/freetype2/src/pfr/pfrcmap.c +FILE: ../../../third_party/freetype2/src/pfr/pfrcmap.h +FILE: ../../../third_party/freetype2/src/pfr/pfrdrivr.c +FILE: ../../../third_party/freetype2/src/pfr/pfrdrivr.h +FILE: ../../../third_party/freetype2/src/pfr/pfrerror.h +FILE: ../../../third_party/freetype2/src/pfr/pfrgload.c +FILE: ../../../third_party/freetype2/src/pfr/pfrgload.h +FILE: ../../../third_party/freetype2/src/pfr/pfrload.c +FILE: ../../../third_party/freetype2/src/pfr/pfrload.h +FILE: ../../../third_party/freetype2/src/pfr/pfrobjs.c +FILE: ../../../third_party/freetype2/src/pfr/pfrobjs.h +FILE: ../../../third_party/freetype2/src/pfr/pfrsbit.c +FILE: ../../../third_party/freetype2/src/pfr/pfrsbit.h +FILE: ../../../third_party/freetype2/src/pfr/pfrtypes.h +FILE: ../../../third_party/freetype2/src/psaux/afmparse.c +FILE: ../../../third_party/freetype2/src/psaux/afmparse.h +FILE: ../../../third_party/freetype2/src/psaux/cffdecode.c +FILE: ../../../third_party/freetype2/src/psaux/cffdecode.h +FILE: ../../../third_party/freetype2/src/psaux/psarrst.c +FILE: ../../../third_party/freetype2/src/psaux/psarrst.h +FILE: ../../../third_party/freetype2/src/psaux/psaux.c +FILE: ../../../third_party/freetype2/src/psaux/psauxerr.h +FILE: ../../../third_party/freetype2/src/psaux/psauxmod.c +FILE: ../../../third_party/freetype2/src/psaux/psauxmod.h +FILE: ../../../third_party/freetype2/src/psaux/psblues.c +FILE: ../../../third_party/freetype2/src/psaux/psblues.h +FILE: ../../../third_party/freetype2/src/psaux/psconv.c +FILE: ../../../third_party/freetype2/src/psaux/psconv.h +FILE: ../../../third_party/freetype2/src/psaux/pserror.c +FILE: ../../../third_party/freetype2/src/psaux/pserror.h +FILE: ../../../third_party/freetype2/src/psaux/psfixed.h +FILE: ../../../third_party/freetype2/src/psaux/psfont.c +FILE: ../../../third_party/freetype2/src/psaux/psfont.h +FILE: ../../../third_party/freetype2/src/psaux/psft.c +FILE: ../../../third_party/freetype2/src/psaux/psft.h +FILE: ../../../third_party/freetype2/src/psaux/psglue.h +FILE: ../../../third_party/freetype2/src/psaux/pshints.c +FILE: ../../../third_party/freetype2/src/psaux/pshints.h +FILE: ../../../third_party/freetype2/src/psaux/psintrp.c +FILE: ../../../third_party/freetype2/src/psaux/psintrp.h +FILE: ../../../third_party/freetype2/src/psaux/psobjs.c +FILE: ../../../third_party/freetype2/src/psaux/psobjs.h +FILE: ../../../third_party/freetype2/src/psaux/psread.c +FILE: ../../../third_party/freetype2/src/psaux/psread.h +FILE: ../../../third_party/freetype2/src/psaux/psstack.c +FILE: ../../../third_party/freetype2/src/psaux/psstack.h +FILE: ../../../third_party/freetype2/src/psaux/pstypes.h +FILE: ../../../third_party/freetype2/src/psaux/t1cmap.c +FILE: ../../../third_party/freetype2/src/psaux/t1cmap.h +FILE: ../../../third_party/freetype2/src/psaux/t1decode.c +FILE: ../../../third_party/freetype2/src/psaux/t1decode.h +FILE: ../../../third_party/freetype2/src/pshinter/pshalgo.c +FILE: ../../../third_party/freetype2/src/pshinter/pshalgo.h +FILE: ../../../third_party/freetype2/src/pshinter/pshglob.c +FILE: ../../../third_party/freetype2/src/pshinter/pshglob.h +FILE: ../../../third_party/freetype2/src/pshinter/pshinter.c +FILE: ../../../third_party/freetype2/src/pshinter/pshmod.c +FILE: ../../../third_party/freetype2/src/pshinter/pshmod.h +FILE: ../../../third_party/freetype2/src/pshinter/pshnterr.h +FILE: ../../../third_party/freetype2/src/pshinter/pshrec.c +FILE: ../../../third_party/freetype2/src/pshinter/pshrec.h +FILE: ../../../third_party/freetype2/src/psnames/psmodule.c +FILE: ../../../third_party/freetype2/src/psnames/psmodule.h +FILE: ../../../third_party/freetype2/src/psnames/psnamerr.h +FILE: ../../../third_party/freetype2/src/psnames/psnames.c +FILE: ../../../third_party/freetype2/src/psnames/pstables.h +FILE: ../../../third_party/freetype2/src/raster/ftmisc.h +FILE: ../../../third_party/freetype2/src/raster/ftraster.c +FILE: ../../../third_party/freetype2/src/raster/ftraster.h +FILE: ../../../third_party/freetype2/src/raster/ftrend1.c +FILE: ../../../third_party/freetype2/src/raster/ftrend1.h +FILE: ../../../third_party/freetype2/src/raster/raster.c +FILE: ../../../third_party/freetype2/src/raster/rasterrs.h +FILE: ../../../third_party/freetype2/src/sdf/ftbsdf.c +FILE: ../../../third_party/freetype2/src/sdf/ftsdf.c +FILE: ../../../third_party/freetype2/src/sdf/ftsdf.h +FILE: ../../../third_party/freetype2/src/sdf/ftsdfcommon.c +FILE: ../../../third_party/freetype2/src/sdf/ftsdfcommon.h +FILE: ../../../third_party/freetype2/src/sdf/ftsdferrs.h +FILE: ../../../third_party/freetype2/src/sdf/ftsdfrend.c +FILE: ../../../third_party/freetype2/src/sdf/ftsdfrend.h +FILE: ../../../third_party/freetype2/src/sdf/sdf.c +FILE: ../../../third_party/freetype2/src/sfnt/pngshim.c +FILE: ../../../third_party/freetype2/src/sfnt/pngshim.h +FILE: ../../../third_party/freetype2/src/sfnt/sfdriver.c +FILE: ../../../third_party/freetype2/src/sfnt/sfdriver.h +FILE: ../../../third_party/freetype2/src/sfnt/sferrors.h +FILE: ../../../third_party/freetype2/src/sfnt/sfnt.c +FILE: ../../../third_party/freetype2/src/sfnt/sfobjs.c +FILE: ../../../third_party/freetype2/src/sfnt/sfobjs.h +FILE: ../../../third_party/freetype2/src/sfnt/sfwoff.c +FILE: ../../../third_party/freetype2/src/sfnt/sfwoff.h +FILE: ../../../third_party/freetype2/src/sfnt/sfwoff2.c +FILE: ../../../third_party/freetype2/src/sfnt/sfwoff2.h +FILE: ../../../third_party/freetype2/src/sfnt/ttbdf.c +FILE: ../../../third_party/freetype2/src/sfnt/ttbdf.h +FILE: ../../../third_party/freetype2/src/sfnt/ttcmap.c +FILE: ../../../third_party/freetype2/src/sfnt/ttcmap.h +FILE: ../../../third_party/freetype2/src/sfnt/ttcmapc.h +FILE: ../../../third_party/freetype2/src/sfnt/ttcolr.c +FILE: ../../../third_party/freetype2/src/sfnt/ttcolr.h +FILE: ../../../third_party/freetype2/src/sfnt/ttcpal.c +FILE: ../../../third_party/freetype2/src/sfnt/ttcpal.h +FILE: ../../../third_party/freetype2/src/sfnt/ttkern.c +FILE: ../../../third_party/freetype2/src/sfnt/ttkern.h +FILE: ../../../third_party/freetype2/src/sfnt/ttload.c +FILE: ../../../third_party/freetype2/src/sfnt/ttload.h +FILE: ../../../third_party/freetype2/src/sfnt/ttmtx.c +FILE: ../../../third_party/freetype2/src/sfnt/ttmtx.h +FILE: ../../../third_party/freetype2/src/sfnt/ttpost.c +FILE: ../../../third_party/freetype2/src/sfnt/ttpost.h +FILE: ../../../third_party/freetype2/src/sfnt/ttsbit.c +FILE: ../../../third_party/freetype2/src/sfnt/ttsbit.h +FILE: ../../../third_party/freetype2/src/sfnt/ttsvg.c +FILE: ../../../third_party/freetype2/src/sfnt/ttsvg.h +FILE: ../../../third_party/freetype2/src/sfnt/woff2tags.c +FILE: ../../../third_party/freetype2/src/sfnt/woff2tags.h +FILE: ../../../third_party/freetype2/src/smooth/ftgrays.c +FILE: ../../../third_party/freetype2/src/smooth/ftgrays.h +FILE: ../../../third_party/freetype2/src/smooth/ftsmerrs.h +FILE: ../../../third_party/freetype2/src/smooth/ftsmooth.c +FILE: ../../../third_party/freetype2/src/smooth/ftsmooth.h +FILE: ../../../third_party/freetype2/src/smooth/smooth.c +FILE: ../../../third_party/freetype2/src/svg/ftsvg.c +FILE: ../../../third_party/freetype2/src/svg/ftsvg.h +FILE: ../../../third_party/freetype2/src/svg/svg.c +FILE: ../../../third_party/freetype2/src/svg/svgtypes.h +FILE: ../../../third_party/freetype2/src/truetype/truetype.c +FILE: ../../../third_party/freetype2/src/truetype/ttdriver.c +FILE: ../../../third_party/freetype2/src/truetype/ttdriver.h +FILE: ../../../third_party/freetype2/src/truetype/tterrors.h +FILE: ../../../third_party/freetype2/src/truetype/ttgload.c +FILE: ../../../third_party/freetype2/src/truetype/ttgload.h +FILE: ../../../third_party/freetype2/src/truetype/ttgxvar.c +FILE: ../../../third_party/freetype2/src/truetype/ttgxvar.h +FILE: ../../../third_party/freetype2/src/truetype/ttinterp.c +FILE: ../../../third_party/freetype2/src/truetype/ttinterp.h +FILE: ../../../third_party/freetype2/src/truetype/ttobjs.c +FILE: ../../../third_party/freetype2/src/truetype/ttobjs.h +FILE: ../../../third_party/freetype2/src/truetype/ttpload.c +FILE: ../../../third_party/freetype2/src/truetype/ttpload.h +FILE: ../../../third_party/freetype2/src/truetype/ttsubpix.c +FILE: ../../../third_party/freetype2/src/truetype/ttsubpix.h +FILE: ../../../third_party/freetype2/src/type1/t1afm.c +FILE: ../../../third_party/freetype2/src/type1/t1afm.h +FILE: ../../../third_party/freetype2/src/type1/t1driver.c +FILE: ../../../third_party/freetype2/src/type1/t1driver.h +FILE: ../../../third_party/freetype2/src/type1/t1errors.h +FILE: ../../../third_party/freetype2/src/type1/t1gload.c +FILE: ../../../third_party/freetype2/src/type1/t1gload.h +FILE: ../../../third_party/freetype2/src/type1/t1load.c +FILE: ../../../third_party/freetype2/src/type1/t1load.h +FILE: ../../../third_party/freetype2/src/type1/t1objs.c +FILE: ../../../third_party/freetype2/src/type1/t1objs.h +FILE: ../../../third_party/freetype2/src/type1/t1parse.c +FILE: ../../../third_party/freetype2/src/type1/t1parse.h +FILE: ../../../third_party/freetype2/src/type1/t1tokens.h +FILE: ../../../third_party/freetype2/src/type1/type1.c +FILE: ../../../third_party/freetype2/src/type42/t42drivr.c +FILE: ../../../third_party/freetype2/src/type42/t42drivr.h +FILE: ../../../third_party/freetype2/src/type42/t42error.h +FILE: ../../../third_party/freetype2/src/type42/t42objs.c +FILE: ../../../third_party/freetype2/src/type42/t42objs.h +FILE: ../../../third_party/freetype2/src/type42/t42parse.c +FILE: ../../../third_party/freetype2/src/type42/t42parse.h +FILE: ../../../third_party/freetype2/src/type42/t42types.h +FILE: ../../../third_party/freetype2/src/type42/type42.c +FILE: ../../../third_party/freetype2/src/winfonts/fnterrs.h +FILE: ../../../third_party/freetype2/src/winfonts/winfnt.c +FILE: ../../../third_party/freetype2/src/winfonts/winfnt.h +FILE: ../../../third_party/freetype2/subprojects/libpng.wrap +FILE: ../../../third_party/freetype2/subprojects/zlib.wrap ---------------------------------------------------------------------------------------------------- -Mozilla Public License -Version 2.0 - -1. Definitions - -1.1. “Contributor” - -means each individual or legal entity that creates, contributes to the creation of, or owns Covered Software. - -1.2. “Contributor Version” - -means the combination of the Contributions of others (if any) used by a Contributor and that particular Contributor’s Contribution. - -1.3. “Contribution” - -means Covered Software of a particular Contributor. - -1.4. “Covered Software” - -means Source Code Form to which the initial Contributor has attached the notice in Exhibit A, the Executable Form of such Source Code Form, and Modifications of such Source Code Form, in each case including portions thereof. - -1.5. “Incompatible With Secondary Licenses” - -means - - a. that the initial Contributor has attached the notice described in Exhibit B to the Covered Software; or - - b. that the Covered Software was made available under the terms of version 1.1 or earlier of the License, but not also under the terms of a Secondary License. - -1.6. “Executable Form” - -means any form of the work other than Source Code Form. - -1.7. “Larger Work” - -means a work that combines Covered Software with other material, in a separate file or files, that is not Covered Software. - -1.8. “License” - -means this document. - -1.9. “Licensable” - -means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently, any and all of the rights conveyed by this License. - -1.10. “Modifications” - -means any of the following: - - a. any file in Source Code Form that results from an addition to, deletion from, or modification of the contents of Covered Software; or - - b. any new file in Source Code Form that contains any Covered Software. - -1.11. “Patent Claims” of a Contributor - -means any patent claim(s), including without limitation, method, process, and apparatus claims, in any patent Licensable by such Contributor that would be infringed, but for the grant of the License, by the making, using, selling, offering for sale, having made, import, or transfer of either its Contributions or its Contributor Version. - -1.12. “Secondary License” - -means either the GNU General Public License, Version 2.0, the GNU Lesser General Public License, Version 2.1, the GNU Affero General Public License, Version 3.0, or any later versions of those licenses. - -1.13. “Source Code Form” - -means the form of the work preferred for making modifications. - -1.14. “You” (or “Your”) - -means an individual or a legal entity exercising rights under this License. For legal entities, “You” includes any entity that controls, is controlled by, or is under common control with You. For purposes of this definition, “control” means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. - -2. License Grants and Conditions - -2.1. Grants - -Each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license: - - a. under intellectual property rights (other than patent or trademark) Licensable by such Contributor to use, reproduce, make available, modify, display, perform, distribute, and otherwise exploit its Contributions, either on an unmodified basis, with Modifications, or as part of a Larger Work; and - - b. under Patent Claims of such Contributor to make, use, sell, offer for sale, have made, import, and otherwise transfer either its Contributions or its Contributor Version. - -2.2. Effective Date - -The licenses granted in Section 2.1 with respect to any Contribution become effective for each Contribution on the date the Contributor first distributes such Contribution. - -2.3. Limitations on Grant Scope - -The licenses granted in this Section 2 are the only rights granted under this License. No additional rights or licenses will be implied from the distribution or licensing of Covered Software under this License. Notwithstanding Section 2.1(b) above, no patent license is granted by a Contributor: - - a. for any code that a Contributor has removed from Covered Software; or - - b. for infringements caused by: (i) Your and any other third party’s modifications of Covered Software, or (ii) the combination of its Contributions with other software (except as part of its Contributor Version); or - - c. under Patent Claims infringed by Covered Software in the absence of its Contributions. - -This License does not grant any rights in the trademarks, service marks, or logos of any Contributor (except as may be necessary to comply with the notice requirements in Section 3.4). - -2.4. Subsequent Licenses - -No Contributor makes additional grants as a result of Your choice to distribute the Covered Software under a subsequent version of this License (see Section 10.2) or under the terms of a Secondary License (if permitted under the terms of Section 3.3). - -2.5. Representation - -Each Contributor represents that the Contributor believes its Contributions are its original creation(s) or it has sufficient rights to grant the rights to its Contributions conveyed by this License. - -2.6. Fair Use - -This License is not intended to limit any rights You have under applicable copyright doctrines of fair use, fair dealing, or other equivalents. - -2.7. Conditions - -Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted in Section 2.1. - -3. Responsibilities - -3.1. Distribution of Source Form - -All distribution of Covered Software in Source Code Form, including any Modifications that You create or to which You contribute, must be under the terms of this License. You must inform recipients that the Source Code Form of the Covered Software is governed by the terms of this License, and how they can obtain a copy of this License. You may not attempt to alter or restrict the recipients’ rights in the Source Code Form. +The FreeType Project LICENSE -3.2. Distribution of Executable Form + 2006-Jan-27 -If You distribute Covered Software in Executable Form then: +Copyright 1996-2002, 2006 by +David Turner, Robert Wilhelm, and Werner Lemberg - a. such Covered Software must also be made available in Source Code Form, as described in Section 3.1, and You must inform recipients of the Executable Form how they can obtain a copy of such Source Code Form by reasonable means in a timely manner, at a charge no more than the cost of distribution to the recipient; and +Introduction +============ - b. You may distribute such Executable Form under the terms of this License, or sublicense it under different terms, provided that the license for the Executable Form does not attempt to limit or alter the recipients’ rights in the Source Code Form under this License. + The FreeType Project is distributed in several archive packages; + some of them may contain, in addition to the FreeType font engine, + various tools and contributions which rely on, or relate to, the + FreeType Project. -3.3. Distribution of a Larger Work + This license applies to all files found in such packages, and + which do not fall under their own explicit license. The license + affects thus the FreeType font engine, the test programs, + documentation and makefiles, at the very least. -You may create and distribute a Larger Work under terms of Your choice, provided that You also comply with the requirements of this License for the Covered Software. If the Larger Work is a combination of Covered Software with a work governed by one or more Secondary Licenses, and the Covered Software is not Incompatible With Secondary Licenses, this License permits You to additionally distribute such Covered Software under the terms of such Secondary License(s), so that the recipient of the Larger Work may, at their option, further distribute the Covered Software under the terms of either this License or such Secondary License(s). + This license was inspired by the BSD, Artistic, and IJG + (Independent JPEG Group) licenses, which all encourage inclusion + and use of free software in commercial and freeware products + alike. As a consequence, its main points are that: -3.4. Notices + o We don't promise that this software works. However, we will be + interested in any kind of bug reports. (`as is' distribution) -You may not remove or alter the substance of any license notices (including copyright notices, patent notices, disclaimers of warranty, or limitations of liability) contained within the Source Code Form of the Covered Software, except that You may alter any license notices to the extent required to remedy known factual inaccuracies. + o You can use this software for whatever you want, in parts or + full form, without having to pay us. (`royalty-free' usage) -3.5. Application of Additional Terms + o You may not pretend that you wrote this software. If you use + it, or only parts of it, in a program, you must acknowledge + somewhere in your documentation that you have used the + FreeType code. (`credits') -You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Software. However, You may do so only on Your own behalf, and not on behalf of any Contributor. You must make it absolutely clear that any such warranty, support, indemnity, or liability obligation is offered by You alone, and You hereby agree to indemnify every Contributor for any liability incurred by such Contributor as a result of warranty, support, indemnity or liability terms You offer. You may include additional disclaimers of warranty and limitations of liability specific to any jurisdiction. + We specifically permit and encourage the inclusion of this + software, with or without modifications, in commercial products. + We disclaim all warranties covering The FreeType Project and + assume no liability related to The FreeType Project. -4. Inability to Comply Due to Statute or Regulation + Finally, many people asked us for a preferred form for a + credit/disclaimer to use in compliance with this license. We thus + encourage you to use the following text: -If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Software due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be placed in a text file included with all distributions of the Covered Software under this License. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. + Portions of this software are copyright © The FreeType + Project (www.freetype.org). All rights reserved. -5. Termination + Please replace with the value from the FreeType version you + actually use. -5.1. The rights granted under this License will terminate automatically if You fail to comply with any of its terms. However, if You become compliant, then the rights granted under this License from a particular Contributor are reinstated (a) provisionally, unless and until such Contributor explicitly and finally terminates Your grants, and (b) on an ongoing basis, if such Contributor fails to notify You of the non-compliance by some reasonable means prior to 60 days after You have come back into compliance. Moreover, Your grants from a particular Contributor are reinstated on an ongoing basis if such Contributor notifies You of the non-compliance by some reasonable means, this is the first time You have received notice of non-compliance with this License from such Contributor, and You become compliant prior to 30 days after Your receipt of the notice. +Legal Terms +=========== -5.2. If You initiate litigation against any entity by asserting a patent infringement claim (excluding declaratory judgment actions, counter-claims, and cross-claims) alleging that a Contributor Version directly or indirectly infringes any patent, then the rights granted to You by any and all Contributors for the Covered Software under Section 2.1 of this License shall terminate. +0. Definitions -5.3. In the event of termination under Sections 5.1 or 5.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or Your distributors under this License prior to termination shall survive termination. + Throughout this license, the terms `package', `FreeType Project', + and `FreeType archive' refer to the set of files originally + distributed by the authors (David Turner, Robert Wilhelm, and + Werner Lemberg) as the `FreeType Project', be they named as alpha, + beta or final release. -6. Disclaimer of Warranty + `You' refers to the licensee, or person using the project, where + `using' is a generic term including compiling the project's source + code as well as linking it to form a `program' or `executable'. + This program is referred to as `a program using the FreeType + engine'. - Covered Software is provided under this License on an “as is” basis, without warranty of any kind, either expressed, implied, or statutory, including, without limitation, warranties that the Covered Software is free of defects, merchantable, fit for a particular purpose or non-infringing. The entire risk as to the quality and performance of the Covered Software is with You. Should any Covered Software prove defective in any respect, You (not any Contributor) assume the cost of any necessary servicing, repair, or correction. This disclaimer of warranty constitutes an essential part of this License. No use of any Covered Software is authorized under this License except under this disclaimer. + This license applies to all files distributed in the original + FreeType Project, including all source code, binaries and + documentation, unless otherwise stated in the file in its + original, unmodified form as distributed in the original archive. + If you are unsure whether or not a particular file is covered by + this license, you must contact us to verify this. -7. Limitation of Liability + The FreeType Project is copyright (C) 1996-2000 by David Turner, + Robert Wilhelm, and Werner Lemberg. All rights reserved except as + specified below. - Under no circumstances and under no legal theory, whether tort (including negligence), contract, or otherwise, shall any Contributor, or anyone who distributes Covered Software as permitted above, be liable to You for any direct, indirect, special, incidental, or consequential damages of any character including, without limitation, damages for lost profits, loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses, even if such party shall have been informed of the possibility of such damages. This limitation of liability shall not apply to liability for death or personal injury resulting from such party’s negligence to the extent applicable law prohibits such limitation. Some jurisdictions do not allow the exclusion or limitation of incidental or consequential damages, so this exclusion and limitation may not apply to You. +1. No Warranty -8. Litigation + THE FREETYPE PROJECT IS PROVIDED `AS IS' WITHOUT WARRANTY OF ANY + KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE. IN NO EVENT WILL ANY OF THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY DAMAGES CAUSED BY THE USE OR THE INABILITY TO + USE, OF THE FREETYPE PROJECT. -Any litigation relating to this License may be brought only in the courts of a jurisdiction where the defendant maintains its principal place of business and such litigation shall be governed by laws of that jurisdiction, without reference to its conflict-of-law provisions. Nothing in this Section shall prevent a party’s ability to bring cross-claims or counter-claims. +2. Redistribution -9. Miscellaneous + This license grants a worldwide, royalty-free, perpetual and + irrevocable right and license to use, execute, perform, compile, + display, copy, create derivative works of, distribute and + sublicense the FreeType Project (in both source and object code + forms) and derivative works thereof for any purpose; and to + authorize others to exercise some or all of the rights granted + herein, subject to the following conditions: -This License represents the complete agreement concerning the subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not be used to construe this License against a Contributor. + o Redistribution of source code must retain this license file + (`FTL.TXT') unaltered; any additions, deletions or changes to + the original files must be clearly indicated in accompanying + documentation. The copyright notices of the unaltered, + original files must be preserved in all copies of source + files. -10. Versions of the License + o Redistribution in binary form must provide a disclaimer that + states that the software is based in part of the work of the + FreeType Team, in the distribution documentation. We also + encourage you to put an URL to the FreeType web page in your + documentation, though this isn't mandatory. -10.1. New Versions + These conditions apply to any software derived from or based on + the FreeType Project, not just the unmodified files. If you use + our work, you must acknowledge us. However, no fee need be paid + to us. -Mozilla Foundation is the license steward. Except as provided in Section 10.3, no one other than the license steward has the right to modify or publish new versions of this License. Each version will be given a distinguishing version number. +3. Advertising -10.2. Effect of New Versions + Neither the FreeType authors and contributors nor you shall use + the name of the other for commercial, advertising, or promotional + purposes without specific prior written permission. -You may distribute the Covered Software under the terms of the version of the License under which You originally received the Covered Software, or under the terms of any subsequent version published by the license steward. + We suggest, but do not require, that you use one or more of the + following phrases to refer to this software in your documentation + or advertising materials: `FreeType Project', `FreeType Engine', + `FreeType library', or `FreeType Distribution'. -10.3. Modified Versions + As you have not signed this license, you are not required to + accept it. However, as the FreeType Project is copyrighted + material, only this license, or another one contracted with the + authors, grants you the right to use, distribute, and modify it. + Therefore, by using, distributing, or modifying the FreeType + Project, you indicate that you understand and accept all the terms + of this license. -If you create software not governed by this License, and you want to create a new license for such software, you may create and use a modified version of this License if you rename the license and remove any references to the name of the license steward (except to note that such modified license differs from this License). +4. Contacts -10.4. Distributing Source Code Form that is Incompatible With Secondary Licenses + There are two mailing lists related to FreeType: -If You choose to distribute Source Code Form that is Incompatible With Secondary Licenses under the terms of this version of the License, the notice described in Exhibit B of this License must be attached. + o freetype@nongnu.org -Exhibit A - Source Code Form License Notice + Discusses general use and applications of FreeType, as well as + future and wanted additions to the library and distribution. + If you are looking for support, start in this list if you + haven't found anything to help you in the documentation. - This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at https://mozilla.org/MPL/2.0/. + o freetype-devel@nongnu.org -If it is not possible or desirable to put the notice in a particular file, then You may include the notice in a location (such as a LICENSE file in a relevant directory) where a recipient would be likely to look for such a notice. + Discusses bugs, as well as engine internals, design issues, + specific licenses, porting, etc. -You may add additional accurate notices of copyright ownership. + Our home page can be found at -Exhibit B - “Incompatible With Secondary Licenses” Notice + https://www.freetype.org - This Source Code Form is “Incompatible With Secondary Licenses”, as defined by the Mozilla Public License, v. 2.0. +--- end of FTL.TXT --- ==================================================================================================== ==================================================================================================== -LIBRARY: smhasher -ORIGIN: ../../../third_party/angle/src/common/third_party/smhasher/LICENSE +LIBRARY: boringssl +ORIGIN: ../../../third_party/boringssl/src/third_party/fiat/LICENSE TYPE: LicenseType.mit -FILE: ../../../third_party/angle/src/common/third_party/smhasher/src/PMurHash.cpp -FILE: ../../../third_party/angle/src/common/third_party/smhasher/src/PMurHash.h +FILE: ../../../third_party/boringssl/src/third_party/fiat/METADATA +FILE: ../../../third_party/boringssl/src/third_party/fiat/curve25519_32.h +FILE: ../../../third_party/boringssl/src/third_party/fiat/curve25519_64.h +FILE: ../../../third_party/boringssl/src/third_party/fiat/p256_32.h +FILE: ../../../third_party/boringssl/src/third_party/fiat/p256_64.h ---------------------------------------------------------------------------------------------------- -All MurmurHash source files are placed in the public domain. - -The license below applies to all other code in SMHasher: +The MIT License (MIT) -Copyright (c) 2011 Google, Inc. +Copyright (c) 2015-2016 the fiat-crypto authors (see +https://github.com/mit-plv/fiat-crypto/blob/master/AUTHORS). Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -27241,133 +26009,27 @@ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -==================================================================================================== - -==================================================================================================== -LIBRARY: sqlite -ORIGIN: ../../../third_party/sqlite/LICENSE -TYPE: LicenseType.unknown -FILE: ../../../third_party/sqlite/GIT_REVISION -FILE: ../../../third_party/sqlite/LAST_UPDATE -FILE: ../../../third_party/sqlite/VERSION -FILE: ../../../third_party/sqlite/sqlite3.c -FILE: ../../../third_party/sqlite/sqlite3.h ----------------------------------------------------------------------------------------------------- -The source code for SQLite is in the public domain. No claim of -copyright is made on any part of the core source code. (The -documentation and test code is a different matter - some sections of -documentation and test logic are governed by open-source licenses.) -All contributors to the SQLite core software have signed affidavits -specifically disavowing any copyright interest in the code. This means -that anybody is able to legally do anything they want with the SQLite -source code. - -There are other SQL database engines with liberal licenses that allow -the code to be broadly and freely used. But those other engines are -still governed by copyright law. SQLite is different in that copyright -law simply does not apply. - -The source code files for other SQL database engines typically begin -with a comment describing your legal rights to view and copy that -file. The SQLite source code contains no license since it is not -governed by copyright. Instead of a license, the SQLite source code -offers a blessing: - -May you do good and not evil -May you find forgiveness for yourself and forgive others -May you share freely, never taking more than you give. -==================================================================================================== - -==================================================================================================== -LIBRARY: tcmalloc -ORIGIN: ../../../third_party/dart/third_party/tcmalloc/COPYING -TYPE: LicenseType.bsd -FILE: ../../../third_party/dart/third_party/tcmalloc/configure_command -FILE: ../../../third_party/dart/third_party/tcmalloc/include/config.h ----------------------------------------------------------------------------------------------------- -Copyright (c) 2005, Google Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: tcmalloc -ORIGIN: ../../../third_party/dart/third_party/tcmalloc/include/gperftools/tcmalloc.h -TYPE: LicenseType.bsd -FILE: ../../../third_party/dart/third_party/tcmalloc/include/gperftools/tcmalloc.h ----------------------------------------------------------------------------------------------------- -Copyright (c) 2003, Google Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. ==================================================================================================== ==================================================================================================== -LIBRARY: vulkan_memory_allocator -ORIGIN: ../../../third_party/vulkan_memory_allocator/include/vk_mem_alloc.h +LIBRARY: rapidjson +ORIGIN: ../../../third_party/rapidjson/contrib/natvis/LICENSE TYPE: LicenseType.mit -FILE: ../../../third_party/vulkan_memory_allocator/include/vk_mem_alloc.h +FILE: ../../../third_party/rapidjson/contrib/natvis/rapidjson.natvis ---------------------------------------------------------------------------------------------------- -Copyright (c) 2017-2022 Advanced Micro Devices, Inc. All rights reserved. +The MIT License (MIT) + +Copyright (c) 2017 Bart Muzzin Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -27376,707 +26038,2070 @@ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -==================================================================================================== - -==================================================================================================== -LIBRARY: xxhash -ORIGIN: ../../../third_party/angle/src/common/third_party/xxhash/xxhash.c -TYPE: LicenseType.bsd -FILE: ../../../third_party/angle/src/common/third_party/xxhash/xxhash.c ----------------------------------------------------------------------------------------------------- -Copyright (C) 2012-2016, Yann Collet - -BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php) - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - -* Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: xxhash -ORIGIN: ../../../third_party/angle/src/common/third_party/xxhash/xxhash.h -TYPE: LicenseType.bsd -FILE: ../../../third_party/angle/src/common/third_party/xxhash/xxhash.h ----------------------------------------------------------------------------------------------------- -Copyright (C) 2012-2016, Yann Collet. - -BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php) - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== +Derived from: -==================================================================================================== -LIBRARY: zlib -ORIGIN: ../../../third_party/zlib/LICENSE -TYPE: LicenseType.zlib -FILE: ../../../third_party/zlib/DIR_METADATA -FILE: ../../../third_party/zlib/contrib/minizip/ChangeLogUnzip -FILE: ../../../third_party/zlib/contrib/minizip/crypt.h -FILE: ../../../third_party/zlib/contrib/minizip/ioapi.c -FILE: ../../../third_party/zlib/contrib/minizip/ioapi.h -FILE: ../../../third_party/zlib/contrib/minizip/iowin32.c -FILE: ../../../third_party/zlib/contrib/minizip/iowin32.h -FILE: ../../../third_party/zlib/contrib/minizip/miniunz.c -FILE: ../../../third_party/zlib/contrib/minizip/minizip.c -FILE: ../../../third_party/zlib/contrib/minizip/mztools.c -FILE: ../../../third_party/zlib/contrib/minizip/mztools.h -FILE: ../../../third_party/zlib/contrib/minizip/unzip.c -FILE: ../../../third_party/zlib/contrib/minizip/zip.c -FILE: ../../../third_party/zlib/crc32.h -FILE: ../../../third_party/zlib/google/DEPS -FILE: ../../../third_party/zlib/inffixed.h -FILE: ../../../third_party/zlib/patches/0000-build.patch -FILE: ../../../third_party/zlib/patches/0001-simd.patch -FILE: ../../../third_party/zlib/patches/0002-uninitializedcheck.patch -FILE: ../../../third_party/zlib/patches/0003-uninitializedjump.patch -FILE: ../../../third_party/zlib/patches/0004-fix-uwp.patch -FILE: ../../../third_party/zlib/patches/0005-infcover-gtest.patch -FILE: ../../../third_party/zlib/patches/0006-fix-check_match.patch -FILE: ../../../third_party/zlib/patches/0007-zero-init-deflate-window.patch -FILE: ../../../third_party/zlib/patches/0008-minizip-zip-unzip-tools.patch -FILE: ../../../third_party/zlib/patches/0009-infcover-oob.patch -FILE: ../../../third_party/zlib/trees.h ----------------------------------------------------------------------------------------------------- -version 1.2.12, March 27th, 2022 +The MIT License (MIT) -Copyright (C) 1995-2022 Jean-loup Gailly and Mark Adler +Copyright (c) 2015 mojmir svoboda -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. ==================================================================================================== ==================================================================================================== -LIBRARY: zlib -ORIGIN: ../../../third_party/zlib/compress.c + ../../../third_party/zlib/zlib.h -TYPE: LicenseType.zlib -FILE: ../../../third_party/zlib/compress.c +LIBRARY: sqlite +ORIGIN: ../../../third_party/sqlite/LICENSE +TYPE: LicenseType.unknown +FILE: ../../../third_party/sqlite/GIT_REVISION +FILE: ../../../third_party/sqlite/LAST_UPDATE +FILE: ../../../third_party/sqlite/VERSION +FILE: ../../../third_party/sqlite/sqlite3.c +FILE: ../../../third_party/sqlite/sqlite3.h ---------------------------------------------------------------------------------------------------- -Copyright (C) 1995-2005, 2014, 2016 Jean-loup Gailly, Mark Adler +The source code for SQLite is in the public domain. No claim of +copyright is made on any part of the core source code. (The +documentation and test code is a different matter - some sections of +documentation and test logic are governed by open-source licenses.) +All contributors to the SQLite core software have signed affidavits +specifically disavowing any copyright interest in the code. This means +that anybody is able to legally do anything they want with the SQLite +source code. -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +There are other SQL database engines with liberal licenses that allow +the code to be broadly and freely used. But those other engines are +still governed by copyright law. SQLite is different in that copyright +law simply does not apply. -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +The source code files for other SQL database engines typically begin +with a comment describing your legal rights to view and copy that +file. The SQLite source code contains no license since it is not +governed by copyright. Instead of a license, the SQLite source code +offers a blessing: -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. +May you do good and not evil +May you find forgiveness for yourself and forgive others +May you share freely, never taking more than you give. ==================================================================================================== ==================================================================================================== -LIBRARY: zlib -ORIGIN: ../../../third_party/zlib/contrib/minizip/unzip.h -TYPE: LicenseType.zlib -FILE: ../../../third_party/zlib/contrib/minizip/unzip.h +LIBRARY: icu +ORIGIN: ../../../third_party/icu/source/common/unicode/appendable.h +TYPE: LicenseType.icu +FILE: ../../../third_party/icu/APIChangeReport.html +FILE: ../../../third_party/icu/source/Doxyfile.in +FILE: ../../../third_party/icu/source/common/BUILD.bazel +FILE: ../../../third_party/icu/source/common/appendable.cpp +FILE: ../../../third_party/icu/source/common/bmpset.cpp +FILE: ../../../third_party/icu/source/common/bmpset.h +FILE: ../../../third_party/icu/source/common/brkeng.cpp +FILE: ../../../third_party/icu/source/common/brkeng.h +FILE: ../../../third_party/icu/source/common/brkiter.cpp +FILE: ../../../third_party/icu/source/common/bytesinkutil.cpp +FILE: ../../../third_party/icu/source/common/bytesinkutil.h +FILE: ../../../third_party/icu/source/common/bytestream.cpp +FILE: ../../../third_party/icu/source/common/bytestrie.cpp +FILE: ../../../third_party/icu/source/common/bytestriebuilder.cpp +FILE: ../../../third_party/icu/source/common/bytestrieiterator.cpp +FILE: ../../../third_party/icu/source/common/caniter.cpp +FILE: ../../../third_party/icu/source/common/capi_helper.h +FILE: ../../../third_party/icu/source/common/characterproperties.cpp +FILE: ../../../third_party/icu/source/common/chariter.cpp +FILE: ../../../third_party/icu/source/common/charstr.cpp +FILE: ../../../third_party/icu/source/common/charstr.h +FILE: ../../../third_party/icu/source/common/charstrmap.h +FILE: ../../../third_party/icu/source/common/cmemory.cpp +FILE: ../../../third_party/icu/source/common/cmemory.h +FILE: ../../../third_party/icu/source/common/common.rc +FILE: ../../../third_party/icu/source/common/cpputils.h +FILE: ../../../third_party/icu/source/common/cstr.cpp +FILE: ../../../third_party/icu/source/common/cstr.h +FILE: ../../../third_party/icu/source/common/cstring.cpp +FILE: ../../../third_party/icu/source/common/cstring.h +FILE: ../../../third_party/icu/source/common/cwchar.cpp +FILE: ../../../third_party/icu/source/common/cwchar.h +FILE: ../../../third_party/icu/source/common/dictbe.cpp +FILE: ../../../third_party/icu/source/common/dictbe.h +FILE: ../../../third_party/icu/source/common/dictionarydata.cpp +FILE: ../../../third_party/icu/source/common/dictionarydata.h +FILE: ../../../third_party/icu/source/common/dtintrv.cpp +FILE: ../../../third_party/icu/source/common/edits.cpp +FILE: ../../../third_party/icu/source/common/emojiprops.cpp +FILE: ../../../third_party/icu/source/common/emojiprops.h +FILE: ../../../third_party/icu/source/common/errorcode.cpp +FILE: ../../../third_party/icu/source/common/filteredbrk.cpp +FILE: ../../../third_party/icu/source/common/filterednormalizer2.cpp +FILE: ../../../third_party/icu/source/common/hash.h +FILE: ../../../third_party/icu/source/common/icudataver.cpp +FILE: ../../../third_party/icu/source/common/icuplug.cpp +FILE: ../../../third_party/icu/source/common/icuplugimp.h +FILE: ../../../third_party/icu/source/common/loadednormalizer2impl.cpp +FILE: ../../../third_party/icu/source/common/localebuilder.cpp +FILE: ../../../third_party/icu/source/common/localematcher.cpp +FILE: ../../../third_party/icu/source/common/localeprioritylist.cpp +FILE: ../../../third_party/icu/source/common/localeprioritylist.h +FILE: ../../../third_party/icu/source/common/localsvc.h +FILE: ../../../third_party/icu/source/common/locavailable.cpp +FILE: ../../../third_party/icu/source/common/locbased.cpp +FILE: ../../../third_party/icu/source/common/locbased.h +FILE: ../../../third_party/icu/source/common/locdispnames.cpp +FILE: ../../../third_party/icu/source/common/locdistance.cpp +FILE: ../../../third_party/icu/source/common/locdistance.h +FILE: ../../../third_party/icu/source/common/locdspnm.cpp +FILE: ../../../third_party/icu/source/common/locid.cpp +FILE: ../../../third_party/icu/source/common/loclikely.cpp +FILE: ../../../third_party/icu/source/common/loclikelysubtags.cpp +FILE: ../../../third_party/icu/source/common/loclikelysubtags.h +FILE: ../../../third_party/icu/source/common/locmap.cpp +FILE: ../../../third_party/icu/source/common/locmap.h +FILE: ../../../third_party/icu/source/common/locresdata.cpp +FILE: ../../../third_party/icu/source/common/locutil.cpp +FILE: ../../../third_party/icu/source/common/locutil.h +FILE: ../../../third_party/icu/source/common/lsr.cpp +FILE: ../../../third_party/icu/source/common/lsr.h +FILE: ../../../third_party/icu/source/common/lstmbe.cpp +FILE: ../../../third_party/icu/source/common/lstmbe.h +FILE: ../../../third_party/icu/source/common/messageimpl.h +FILE: ../../../third_party/icu/source/common/messagepattern.cpp +FILE: ../../../third_party/icu/source/common/msvcres.h +FILE: ../../../third_party/icu/source/common/mutex.h +FILE: ../../../third_party/icu/source/common/norm2_nfc_data.h +FILE: ../../../third_party/icu/source/common/norm2allmodes.h +FILE: ../../../third_party/icu/source/common/normalizer2.cpp +FILE: ../../../third_party/icu/source/common/normalizer2impl.cpp +FILE: ../../../third_party/icu/source/common/normalizer2impl.h +FILE: ../../../third_party/icu/source/common/normlzr.cpp +FILE: ../../../third_party/icu/source/common/parsepos.cpp +FILE: ../../../third_party/icu/source/common/patternprops.cpp +FILE: ../../../third_party/icu/source/common/patternprops.h +FILE: ../../../third_party/icu/source/common/pluralmap.cpp +FILE: ../../../third_party/icu/source/common/pluralmap.h +FILE: ../../../third_party/icu/source/common/propname.cpp +FILE: ../../../third_party/icu/source/common/propname.h +FILE: ../../../third_party/icu/source/common/propname_data.h +FILE: ../../../third_party/icu/source/common/propsvec.cpp +FILE: ../../../third_party/icu/source/common/propsvec.h +FILE: ../../../third_party/icu/source/common/punycode.cpp +FILE: ../../../third_party/icu/source/common/punycode.h +FILE: ../../../third_party/icu/source/common/putil.cpp +FILE: ../../../third_party/icu/source/common/putilimp.h +FILE: ../../../third_party/icu/source/common/rbbi.cpp +FILE: ../../../third_party/icu/source/common/rbbi_cache.cpp +FILE: ../../../third_party/icu/source/common/rbbi_cache.h +FILE: ../../../third_party/icu/source/common/rbbidata.cpp +FILE: ../../../third_party/icu/source/common/rbbidata.h +FILE: ../../../third_party/icu/source/common/rbbinode.cpp +FILE: ../../../third_party/icu/source/common/rbbinode.h +FILE: ../../../third_party/icu/source/common/rbbirb.cpp +FILE: ../../../third_party/icu/source/common/rbbirb.h +FILE: ../../../third_party/icu/source/common/rbbirpt.h +FILE: ../../../third_party/icu/source/common/rbbiscan.cpp +FILE: ../../../third_party/icu/source/common/rbbiscan.h +FILE: ../../../third_party/icu/source/common/rbbisetb.cpp +FILE: ../../../third_party/icu/source/common/rbbisetb.h +FILE: ../../../third_party/icu/source/common/rbbistbl.cpp +FILE: ../../../third_party/icu/source/common/rbbitblb.cpp +FILE: ../../../third_party/icu/source/common/rbbitblb.h +FILE: ../../../third_party/icu/source/common/resbund.cpp +FILE: ../../../third_party/icu/source/common/resbund_cnv.cpp +FILE: ../../../third_party/icu/source/common/resource.cpp +FILE: ../../../third_party/icu/source/common/resource.h +FILE: ../../../third_party/icu/source/common/restrace.cpp +FILE: ../../../third_party/icu/source/common/restrace.h +FILE: ../../../third_party/icu/source/common/ruleiter.cpp +FILE: ../../../third_party/icu/source/common/ruleiter.h +FILE: ../../../third_party/icu/source/common/schriter.cpp +FILE: ../../../third_party/icu/source/common/serv.cpp +FILE: ../../../third_party/icu/source/common/serv.h +FILE: ../../../third_party/icu/source/common/servlk.cpp +FILE: ../../../third_party/icu/source/common/servlkf.cpp +FILE: ../../../third_party/icu/source/common/servloc.h +FILE: ../../../third_party/icu/source/common/servls.cpp +FILE: ../../../third_party/icu/source/common/servnotf.cpp +FILE: ../../../third_party/icu/source/common/servnotf.h +FILE: ../../../third_party/icu/source/common/servrbf.cpp +FILE: ../../../third_party/icu/source/common/servslkf.cpp +FILE: ../../../third_party/icu/source/common/sharedobject.cpp +FILE: ../../../third_party/icu/source/common/sharedobject.h +FILE: ../../../third_party/icu/source/common/simpleformatter.cpp +FILE: ../../../third_party/icu/source/common/sprpimpl.h +FILE: ../../../third_party/icu/source/common/static_unicode_sets.cpp +FILE: ../../../third_party/icu/source/common/static_unicode_sets.h +FILE: ../../../third_party/icu/source/common/stringpiece.cpp +FILE: ../../../third_party/icu/source/common/stringtriebuilder.cpp +FILE: ../../../third_party/icu/source/common/uarrsort.cpp +FILE: ../../../third_party/icu/source/common/uarrsort.h +FILE: ../../../third_party/icu/source/common/uassert.h +FILE: ../../../third_party/icu/source/common/ubidi.cpp +FILE: ../../../third_party/icu/source/common/ubidi_props.cpp +FILE: ../../../third_party/icu/source/common/ubidi_props.h +FILE: ../../../third_party/icu/source/common/ubidi_props_data.h +FILE: ../../../third_party/icu/source/common/ubidiimp.h +FILE: ../../../third_party/icu/source/common/ubidiln.cpp +FILE: ../../../third_party/icu/source/common/ubiditransform.cpp +FILE: ../../../third_party/icu/source/common/ubidiwrt.cpp +FILE: ../../../third_party/icu/source/common/ubrk.cpp +FILE: ../../../third_party/icu/source/common/ubrkimpl.h +FILE: ../../../third_party/icu/source/common/ucase.cpp +FILE: ../../../third_party/icu/source/common/ucase.h +FILE: ../../../third_party/icu/source/common/ucase_props_data.h +FILE: ../../../third_party/icu/source/common/ucasemap.cpp +FILE: ../../../third_party/icu/source/common/ucasemap_imp.h +FILE: ../../../third_party/icu/source/common/ucasemap_titlecase_brkiter.cpp +FILE: ../../../third_party/icu/source/common/ucat.cpp +FILE: ../../../third_party/icu/source/common/uchar.cpp +FILE: ../../../third_party/icu/source/common/uchar_props_data.h +FILE: ../../../third_party/icu/source/common/ucharstrie.cpp +FILE: ../../../third_party/icu/source/common/ucharstriebuilder.cpp +FILE: ../../../third_party/icu/source/common/ucharstrieiterator.cpp +FILE: ../../../third_party/icu/source/common/uchriter.cpp +FILE: ../../../third_party/icu/source/common/ucln.h +FILE: ../../../third_party/icu/source/common/ucln_cmn.cpp +FILE: ../../../third_party/icu/source/common/ucln_cmn.h +FILE: ../../../third_party/icu/source/common/ucln_imp.h +FILE: ../../../third_party/icu/source/common/ucmndata.cpp +FILE: ../../../third_party/icu/source/common/ucmndata.h +FILE: ../../../third_party/icu/source/common/ucnv.cpp +FILE: ../../../third_party/icu/source/common/ucnv2022.cpp +FILE: ../../../third_party/icu/source/common/ucnv_bld.cpp +FILE: ../../../third_party/icu/source/common/ucnv_bld.h +FILE: ../../../third_party/icu/source/common/ucnv_cb.cpp +FILE: ../../../third_party/icu/source/common/ucnv_cnv.cpp +FILE: ../../../third_party/icu/source/common/ucnv_cnv.h +FILE: ../../../third_party/icu/source/common/ucnv_ct.cpp +FILE: ../../../third_party/icu/source/common/ucnv_err.cpp +FILE: ../../../third_party/icu/source/common/ucnv_ext.cpp +FILE: ../../../third_party/icu/source/common/ucnv_ext.h +FILE: ../../../third_party/icu/source/common/ucnv_imp.h +FILE: ../../../third_party/icu/source/common/ucnv_io.cpp +FILE: ../../../third_party/icu/source/common/ucnv_io.h +FILE: ../../../third_party/icu/source/common/ucnv_lmb.cpp +FILE: ../../../third_party/icu/source/common/ucnv_set.cpp +FILE: ../../../third_party/icu/source/common/ucnv_u16.cpp +FILE: ../../../third_party/icu/source/common/ucnv_u32.cpp +FILE: ../../../third_party/icu/source/common/ucnv_u7.cpp +FILE: ../../../third_party/icu/source/common/ucnv_u8.cpp +FILE: ../../../third_party/icu/source/common/ucnvbocu.cpp +FILE: ../../../third_party/icu/source/common/ucnvdisp.cpp +FILE: ../../../third_party/icu/source/common/ucnvhz.cpp +FILE: ../../../third_party/icu/source/common/ucnvisci.cpp +FILE: ../../../third_party/icu/source/common/ucnvlat1.cpp +FILE: ../../../third_party/icu/source/common/ucnvmbcs.cpp +FILE: ../../../third_party/icu/source/common/ucnvmbcs.h +FILE: ../../../third_party/icu/source/common/ucnvscsu.cpp +FILE: ../../../third_party/icu/source/common/ucnvsel.cpp +FILE: ../../../third_party/icu/source/common/ucol_data.h +FILE: ../../../third_party/icu/source/common/ucol_swp.cpp +FILE: ../../../third_party/icu/source/common/ucol_swp.h +FILE: ../../../third_party/icu/source/common/ucptrie.cpp +FILE: ../../../third_party/icu/source/common/ucptrie_impl.h +FILE: ../../../third_party/icu/source/common/ucurr.cpp +FILE: ../../../third_party/icu/source/common/ucurrimp.h +FILE: ../../../third_party/icu/source/common/udata.cpp +FILE: ../../../third_party/icu/source/common/udatamem.cpp +FILE: ../../../third_party/icu/source/common/udatamem.h +FILE: ../../../third_party/icu/source/common/udataswp.cpp +FILE: ../../../third_party/icu/source/common/udataswp.h +FILE: ../../../third_party/icu/source/common/uelement.h +FILE: ../../../third_party/icu/source/common/uenum.cpp +FILE: ../../../third_party/icu/source/common/uenumimp.h +FILE: ../../../third_party/icu/source/common/uhash.cpp +FILE: ../../../third_party/icu/source/common/uhash.h +FILE: ../../../third_party/icu/source/common/uhash_us.cpp +FILE: ../../../third_party/icu/source/common/uidna.cpp +FILE: ../../../third_party/icu/source/common/uinit.cpp +FILE: ../../../third_party/icu/source/common/uinvchar.cpp +FILE: ../../../third_party/icu/source/common/uinvchar.h +FILE: ../../../third_party/icu/source/common/uiter.cpp +FILE: ../../../third_party/icu/source/common/ulayout_props.h +FILE: ../../../third_party/icu/source/common/ulist.cpp +FILE: ../../../third_party/icu/source/common/ulist.h +FILE: ../../../third_party/icu/source/common/uloc.cpp +FILE: ../../../third_party/icu/source/common/uloc_keytype.cpp +FILE: ../../../third_party/icu/source/common/uloc_tag.cpp +FILE: ../../../third_party/icu/source/common/ulocimp.h +FILE: ../../../third_party/icu/source/common/umapfile.cpp +FILE: ../../../third_party/icu/source/common/umapfile.h +FILE: ../../../third_party/icu/source/common/umath.cpp +FILE: ../../../third_party/icu/source/common/umutablecptrie.cpp +FILE: ../../../third_party/icu/source/common/umutex.cpp +FILE: ../../../third_party/icu/source/common/umutex.h +FILE: ../../../third_party/icu/source/common/unames.cpp +FILE: ../../../third_party/icu/source/common/unicode/appendable.h +FILE: ../../../third_party/icu/source/common/unicode/brkiter.h +FILE: ../../../third_party/icu/source/common/unicode/bytestream.h +FILE: ../../../third_party/icu/source/common/unicode/bytestrie.h +FILE: ../../../third_party/icu/source/common/unicode/bytestriebuilder.h +FILE: ../../../third_party/icu/source/common/unicode/caniter.h +FILE: ../../../third_party/icu/source/common/unicode/casemap.h +FILE: ../../../third_party/icu/source/common/unicode/char16ptr.h +FILE: ../../../third_party/icu/source/common/unicode/chariter.h +FILE: ../../../third_party/icu/source/common/unicode/dbbi.h +FILE: ../../../third_party/icu/source/common/unicode/docmain.h +FILE: ../../../third_party/icu/source/common/unicode/dtintrv.h +FILE: ../../../third_party/icu/source/common/unicode/edits.h +FILE: ../../../third_party/icu/source/common/unicode/enumset.h +FILE: ../../../third_party/icu/source/common/unicode/errorcode.h +FILE: ../../../third_party/icu/source/common/unicode/filteredbrk.h +FILE: ../../../third_party/icu/source/common/unicode/icudataver.h +FILE: ../../../third_party/icu/source/common/unicode/icuplug.h +FILE: ../../../third_party/icu/source/common/unicode/idna.h +FILE: ../../../third_party/icu/source/common/unicode/localebuilder.h +FILE: ../../../third_party/icu/source/common/unicode/localematcher.h +FILE: ../../../third_party/icu/source/common/unicode/localpointer.h +FILE: ../../../third_party/icu/source/common/unicode/locdspnm.h +FILE: ../../../third_party/icu/source/common/unicode/locid.h +FILE: ../../../third_party/icu/source/common/unicode/messagepattern.h +FILE: ../../../third_party/icu/source/common/unicode/normalizer2.h +FILE: ../../../third_party/icu/source/common/unicode/normlzr.h +FILE: ../../../third_party/icu/source/common/unicode/parseerr.h +FILE: ../../../third_party/icu/source/common/unicode/parsepos.h +FILE: ../../../third_party/icu/source/common/unicode/platform.h +FILE: ../../../third_party/icu/source/common/unicode/ptypes.h +FILE: ../../../third_party/icu/source/common/unicode/putil.h +FILE: ../../../third_party/icu/source/common/unicode/rbbi.h +FILE: ../../../third_party/icu/source/common/unicode/rep.h +FILE: ../../../third_party/icu/source/common/unicode/resbund.h +FILE: ../../../third_party/icu/source/common/unicode/schriter.h +FILE: ../../../third_party/icu/source/common/unicode/simpleformatter.h +FILE: ../../../third_party/icu/source/common/unicode/std_string.h +FILE: ../../../third_party/icu/source/common/unicode/strenum.h +FILE: ../../../third_party/icu/source/common/unicode/stringoptions.h +FILE: ../../../third_party/icu/source/common/unicode/stringpiece.h +FILE: ../../../third_party/icu/source/common/unicode/stringtriebuilder.h +FILE: ../../../third_party/icu/source/common/unicode/symtable.h +FILE: ../../../third_party/icu/source/common/unicode/ubidi.h +FILE: ../../../third_party/icu/source/common/unicode/ubiditransform.h +FILE: ../../../third_party/icu/source/common/unicode/ubrk.h +FILE: ../../../third_party/icu/source/common/unicode/ucasemap.h +FILE: ../../../third_party/icu/source/common/unicode/ucat.h +FILE: ../../../third_party/icu/source/common/unicode/uchar.h +FILE: ../../../third_party/icu/source/common/unicode/ucharstrie.h +FILE: ../../../third_party/icu/source/common/unicode/ucharstriebuilder.h +FILE: ../../../third_party/icu/source/common/unicode/uchriter.h +FILE: ../../../third_party/icu/source/common/unicode/uclean.h +FILE: ../../../third_party/icu/source/common/unicode/ucnv.h +FILE: ../../../third_party/icu/source/common/unicode/ucnv_cb.h +FILE: ../../../third_party/icu/source/common/unicode/ucnv_err.h +FILE: ../../../third_party/icu/source/common/unicode/ucnvsel.h +FILE: ../../../third_party/icu/source/common/unicode/uconfig.h +FILE: ../../../third_party/icu/source/common/unicode/ucpmap.h +FILE: ../../../third_party/icu/source/common/unicode/ucptrie.h +FILE: ../../../third_party/icu/source/common/unicode/ucurr.h +FILE: ../../../third_party/icu/source/common/unicode/udata.h +FILE: ../../../third_party/icu/source/common/unicode/udisplaycontext.h +FILE: ../../../third_party/icu/source/common/unicode/uenum.h +FILE: ../../../third_party/icu/source/common/unicode/uidna.h +FILE: ../../../third_party/icu/source/common/unicode/uiter.h +FILE: ../../../third_party/icu/source/common/unicode/uldnames.h +FILE: ../../../third_party/icu/source/common/unicode/uloc.h +FILE: ../../../third_party/icu/source/common/unicode/umachine.h +FILE: ../../../third_party/icu/source/common/unicode/umisc.h +FILE: ../../../third_party/icu/source/common/unicode/umutablecptrie.h +FILE: ../../../third_party/icu/source/common/unicode/unifilt.h +FILE: ../../../third_party/icu/source/common/unicode/unifunct.h +FILE: ../../../third_party/icu/source/common/unicode/unimatch.h +FILE: ../../../third_party/icu/source/common/unicode/uniset.h +FILE: ../../../third_party/icu/source/common/unicode/unistr.h +FILE: ../../../third_party/icu/source/common/unicode/unorm.h +FILE: ../../../third_party/icu/source/common/unicode/unorm2.h +FILE: ../../../third_party/icu/source/common/unicode/uobject.h +FILE: ../../../third_party/icu/source/common/unicode/urename.h +FILE: ../../../third_party/icu/source/common/unicode/urep.h +FILE: ../../../third_party/icu/source/common/unicode/ures.h +FILE: ../../../third_party/icu/source/common/unicode/uscript.h +FILE: ../../../third_party/icu/source/common/unicode/uset.h +FILE: ../../../third_party/icu/source/common/unicode/usetiter.h +FILE: ../../../third_party/icu/source/common/unicode/ushape.h +FILE: ../../../third_party/icu/source/common/unicode/usprep.h +FILE: ../../../third_party/icu/source/common/unicode/ustring.h +FILE: ../../../third_party/icu/source/common/unicode/ustringtrie.h +FILE: ../../../third_party/icu/source/common/unicode/utext.h +FILE: ../../../third_party/icu/source/common/unicode/utf.h +FILE: ../../../third_party/icu/source/common/unicode/utf16.h +FILE: ../../../third_party/icu/source/common/unicode/utf32.h +FILE: ../../../third_party/icu/source/common/unicode/utf8.h +FILE: ../../../third_party/icu/source/common/unicode/utf_old.h +FILE: ../../../third_party/icu/source/common/unicode/utrace.h +FILE: ../../../third_party/icu/source/common/unicode/utypes.h +FILE: ../../../third_party/icu/source/common/unicode/uvernum.h +FILE: ../../../third_party/icu/source/common/unicode/uversion.h +FILE: ../../../third_party/icu/source/common/unifiedcache.cpp +FILE: ../../../third_party/icu/source/common/unifiedcache.h +FILE: ../../../third_party/icu/source/common/unifilt.cpp +FILE: ../../../third_party/icu/source/common/unifunct.cpp +FILE: ../../../third_party/icu/source/common/uniquecharstr.h +FILE: ../../../third_party/icu/source/common/uniset.cpp +FILE: ../../../third_party/icu/source/common/uniset_closure.cpp +FILE: ../../../third_party/icu/source/common/uniset_props.cpp +FILE: ../../../third_party/icu/source/common/unisetspan.cpp +FILE: ../../../third_party/icu/source/common/unisetspan.h +FILE: ../../../third_party/icu/source/common/unistr.cpp +FILE: ../../../third_party/icu/source/common/unistr_case.cpp +FILE: ../../../third_party/icu/source/common/unistr_case_locale.cpp +FILE: ../../../third_party/icu/source/common/unistr_cnv.cpp +FILE: ../../../third_party/icu/source/common/unistr_props.cpp +FILE: ../../../third_party/icu/source/common/unistr_titlecase_brkiter.cpp +FILE: ../../../third_party/icu/source/common/unistrappender.h +FILE: ../../../third_party/icu/source/common/unorm.cpp +FILE: ../../../third_party/icu/source/common/unormcmp.cpp +FILE: ../../../third_party/icu/source/common/unormimp.h +FILE: ../../../third_party/icu/source/common/uobject.cpp +FILE: ../../../third_party/icu/source/common/uposixdefs.h +FILE: ../../../third_party/icu/source/common/uprops.cpp +FILE: ../../../third_party/icu/source/common/uprops.h +FILE: ../../../third_party/icu/source/common/ures_cnv.cpp +FILE: ../../../third_party/icu/source/common/uresbund.cpp +FILE: ../../../third_party/icu/source/common/uresdata.cpp +FILE: ../../../third_party/icu/source/common/uresdata.h +FILE: ../../../third_party/icu/source/common/uresimp.h +FILE: ../../../third_party/icu/source/common/ureslocs.h +FILE: ../../../third_party/icu/source/common/usc_impl.cpp +FILE: ../../../third_party/icu/source/common/usc_impl.h +FILE: ../../../third_party/icu/source/common/uscript.cpp +FILE: ../../../third_party/icu/source/common/uscript_props.cpp +FILE: ../../../third_party/icu/source/common/uset.cpp +FILE: ../../../third_party/icu/source/common/uset_imp.h +FILE: ../../../third_party/icu/source/common/uset_props.cpp +FILE: ../../../third_party/icu/source/common/usetiter.cpp +FILE: ../../../third_party/icu/source/common/ushape.cpp +FILE: ../../../third_party/icu/source/common/usprep.cpp +FILE: ../../../third_party/icu/source/common/ustack.cpp +FILE: ../../../third_party/icu/source/common/ustr_cnv.cpp +FILE: ../../../third_party/icu/source/common/ustr_cnv.h +FILE: ../../../third_party/icu/source/common/ustr_imp.h +FILE: ../../../third_party/icu/source/common/ustr_titlecase_brkiter.cpp +FILE: ../../../third_party/icu/source/common/ustr_wcs.cpp +FILE: ../../../third_party/icu/source/common/ustrcase.cpp +FILE: ../../../third_party/icu/source/common/ustrcase_locale.cpp +FILE: ../../../third_party/icu/source/common/ustrenum.cpp +FILE: ../../../third_party/icu/source/common/ustrenum.h +FILE: ../../../third_party/icu/source/common/ustrfmt.cpp +FILE: ../../../third_party/icu/source/common/ustrfmt.h +FILE: ../../../third_party/icu/source/common/ustring.cpp +FILE: ../../../third_party/icu/source/common/ustrtrns.cpp +FILE: ../../../third_party/icu/source/common/utext.cpp +FILE: ../../../third_party/icu/source/common/utf_impl.cpp +FILE: ../../../third_party/icu/source/common/util.cpp +FILE: ../../../third_party/icu/source/common/util.h +FILE: ../../../third_party/icu/source/common/util_props.cpp +FILE: ../../../third_party/icu/source/common/utrace.cpp +FILE: ../../../third_party/icu/source/common/utracimp.h +FILE: ../../../third_party/icu/source/common/utrie.cpp +FILE: ../../../third_party/icu/source/common/utrie.h +FILE: ../../../third_party/icu/source/common/utrie2.cpp +FILE: ../../../third_party/icu/source/common/utrie2.h +FILE: ../../../third_party/icu/source/common/utrie2_builder.cpp +FILE: ../../../third_party/icu/source/common/utrie2_impl.h +FILE: ../../../third_party/icu/source/common/utrie_swap.cpp +FILE: ../../../third_party/icu/source/common/uts46.cpp +FILE: ../../../third_party/icu/source/common/utypeinfo.h +FILE: ../../../third_party/icu/source/common/utypes.cpp +FILE: ../../../third_party/icu/source/common/uvector.cpp +FILE: ../../../third_party/icu/source/common/uvector.h +FILE: ../../../third_party/icu/source/common/uvectr32.cpp +FILE: ../../../third_party/icu/source/common/uvectr32.h +FILE: ../../../third_party/icu/source/common/uvectr64.cpp +FILE: ../../../third_party/icu/source/common/uvectr64.h +FILE: ../../../third_party/icu/source/common/wintz.cpp +FILE: ../../../third_party/icu/source/common/wintz.h +FILE: ../../../third_party/icu/source/config/icu-config-bottom +FILE: ../../../third_party/icu/source/config/icu-config.1.in +FILE: ../../../third_party/icu/source/config/icu.pc.in +FILE: ../../../third_party/icu/source/config/make2sh.sed +FILE: ../../../third_party/icu/source/config/mh-aix-gcc +FILE: ../../../third_party/icu/source/config/mh-aix-va +FILE: ../../../third_party/icu/source/config/mh-alpha-linux-cc +FILE: ../../../third_party/icu/source/config/mh-alpha-linux-gcc +FILE: ../../../third_party/icu/source/config/mh-alpha-osf +FILE: ../../../third_party/icu/source/config/mh-beos +FILE: ../../../third_party/icu/source/config/mh-bsd-gcc +FILE: ../../../third_party/icu/source/config/mh-cygwin +FILE: ../../../third_party/icu/source/config/mh-cygwin-msvc +FILE: ../../../third_party/icu/source/config/mh-cygwin64 +FILE: ../../../third_party/icu/source/config/mh-darwin +FILE: ../../../third_party/icu/source/config/mh-haiku +FILE: ../../../third_party/icu/source/config/mh-hpux-acc +FILE: ../../../third_party/icu/source/config/mh-hpux-gcc +FILE: ../../../third_party/icu/source/config/mh-irix +FILE: ../../../third_party/icu/source/config/mh-linux +FILE: ../../../third_party/icu/source/config/mh-linux-va +FILE: ../../../third_party/icu/source/config/mh-mingw +FILE: ../../../third_party/icu/source/config/mh-mingw64 +FILE: ../../../third_party/icu/source/config/mh-mpras +FILE: ../../../third_party/icu/source/config/mh-msys-msvc +FILE: ../../../third_party/icu/source/config/mh-os390 +FILE: ../../../third_party/icu/source/config/mh-os400 +FILE: ../../../third_party/icu/source/config/mh-qnx +FILE: ../../../third_party/icu/source/config/mh-solaris +FILE: ../../../third_party/icu/source/config/mh-solaris-gcc +FILE: ../../../third_party/icu/source/config/mh-unknown +FILE: ../../../third_party/icu/source/config/windows-update.sed.in +FILE: ../../../third_party/icu/source/data/brkitr/LOCALE_DEPS.json +FILE: ../../../third_party/icu/source/data/build.xml +FILE: ../../../third_party/icu/source/data/coll/LOCALE_DEPS.json +FILE: ../../../third_party/icu/source/data/curr/LOCALE_DEPS.json +FILE: ../../../third_party/icu/source/data/dtd/cldr-35.1/common/dtd/ldml.dtd +FILE: ../../../third_party/icu/source/data/dtd/cldr-35.1/common/dtd/ldmlICU.dtd +FILE: ../../../third_party/icu/source/data/dtd/cldr-40/common/dtd/ldml.dtd +FILE: ../../../third_party/icu/source/data/dtd/cldr-40/common/dtd/ldmlICU.dtd +FILE: ../../../third_party/icu/source/data/dtd/cldr/common/dtd/ldml.dtd +FILE: ../../../third_party/icu/source/data/dtd/cldr/common/dtd/ldmlICU.dtd +FILE: ../../../third_party/icu/source/data/icupkg.inc.in +FILE: ../../../third_party/icu/source/data/lang/LOCALE_DEPS.json +FILE: ../../../third_party/icu/source/data/locales/LOCALE_DEPS.json +FILE: ../../../third_party/icu/source/data/makedata.mak +FILE: ../../../third_party/icu/source/data/mappings/cns-11643-1992.ucm +FILE: ../../../third_party/icu/source/data/mappings/ebcdic-xml-us.ucm +FILE: ../../../third_party/icu/source/data/mappings/euc-jp-2007.ucm +FILE: ../../../third_party/icu/source/data/mappings/euc-tw-2014.ucm +FILE: ../../../third_party/icu/source/data/mappings/gsm-03.38-2009.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-1006_P100-1995.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-1025_P100-1995.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-1026_P100-1995.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-1047_P100-1995.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-1051_P100-1995.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-1089_P100-1995.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-1097_P100-1995.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-1098_P100-1995.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-1112_P100-1995.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-1122_P100-1999.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-1123_P100-1995.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-1124_P100-1996.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-1125_P100-1997.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-1129_P100-1997.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-1130_P100-1997.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-1131_P100-1997.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-1132_P100-1998.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-1133_P100-1997.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-1137_P100-1999.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-1140_P100-1997.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-1141_P100-1997.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-1142_P100-1997.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-1143_P100-1997.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-1144_P100-1997.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-1145_P100-1997.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-1146_P100-1997.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-1147_P100-1997.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-1148_P100-1997.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-1149_P100-1997.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-1153_P100-1999.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-1154_P100-1999.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-1155_P100-1999.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-1156_P100-1999.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-1157_P100-1999.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-1158_P100-1999.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-1160_P100-1999.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-1162_P100-1999.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-1164_P100-1999.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-1168_P100-2002.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-1250_P100-1995.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-1251_P100-1995.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-1252_P100-2000.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-1253_P100-1995.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-1254_P100-1995.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-1255_P100-1995.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-1256_P110-1997.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-1257_P100-1995.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-1258_P100-1997.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-12712_P100-1998.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-1276_P100-1995.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-1363_P110-1997.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-1363_P11B-1998.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-1364_P110-2007.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-1371_P100-1999.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-1373_P100-2002.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-1375_P100-2008.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-1383_P110-1999.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-1386_P100-2001.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-1388_P103-2001.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-1390_P110-2003.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-1399_P110-2003.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-16684_P110-2003.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-16804_X110-1999.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-273_P100-1995.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-277_P100-1995.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-278_P100-1995.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-280_P100-1995.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-284_P100-1995.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-285_P100-1995.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-290_P100-1995.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-297_P100-1995.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-33722_P120-1999.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-33722_P12A_P12A-2004_U2.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-33722_P12A_P12A-2009_U2.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-37_P100-1995.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-420_X120-1999.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-424_P100-1995.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-437_P100-1995.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-4517_P100-2005.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-4899_P100-1998.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-4909_P100-1999.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-4971_P100-1999.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-500_P100-1995.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-5012_P100-1999.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-5123_P100-1999.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-5346_P100-1998.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-5347_P100-1998.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-5348_P100-1997.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-5349_P100-1998.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-5350_P100-1998.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-5351_P100-1998.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-5352_P100-1998.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-5353_P100-1998.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-5354_P100-1998.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-5471_P100-2006.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-5478_P100-1995.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-720_P100-1997.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-737_P100-1997.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-775_P100-1996.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-803_P100-1999.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-813_P100-1995.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-838_P100-1995.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-8482_P100-1999.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-850_P100-1995.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-851_P100-1995.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-852_P100-1995.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-855_P100-1995.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-856_P100-1995.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-857_P100-1995.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-858_P100-1997.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-860_P100-1995.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-861_P100-1995.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-862_P100-1995.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-863_P100-1995.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-864_X110-1999.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-865_P100-1995.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-866_P100-1995.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-867_P100-1998.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-868_P100-1995.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-869_P100-1995.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-870_P100-1995.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-871_P100-1995.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-874_P100-1995.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-875_P100-1995.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-878_P100-1996.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-9005_X110-2007.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-901_P100-1999.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-902_P100-1999.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-9067_X100-2005.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-912_P100-1995.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-913_P100-2000.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-914_P100-1995.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-915_P100-1995.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-916_P100-1995.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-918_P100-1995.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-920_P100-1995.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-921_P100-1995.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-922_P100-1999.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-923_P100-1998.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-930_P120-1999.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-933_P110-1995.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-935_P110-1999.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-937_P110-1999.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-939_P120-1999.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-942_P12A-1999.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-943_P130-1999.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-943_P15A-2003.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-9447_P100-2002.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-9448_X100-2005.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-9449_P100-2002.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-949_P110-1999.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-949_P11A-1999.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-950_P110-1999.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-954_P101-2007.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-964_P110-1999.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-970_P110_P110-2006_U2.ucm +FILE: ../../../third_party/icu/source/data/mappings/ibm-971_P100-1995.ucm +FILE: ../../../third_party/icu/source/data/mappings/icu-internal-25546.ucm +FILE: ../../../third_party/icu/source/data/mappings/icu-internal-compound-d1.ucm +FILE: ../../../third_party/icu/source/data/mappings/icu-internal-compound-d2.ucm +FILE: ../../../third_party/icu/source/data/mappings/icu-internal-compound-d3.ucm +FILE: ../../../third_party/icu/source/data/mappings/icu-internal-compound-d4.ucm +FILE: ../../../third_party/icu/source/data/mappings/icu-internal-compound-d5.ucm +FILE: ../../../third_party/icu/source/data/mappings/icu-internal-compound-d6.ucm +FILE: ../../../third_party/icu/source/data/mappings/icu-internal-compound-d7.ucm +FILE: ../../../third_party/icu/source/data/mappings/icu-internal-compound-s1.ucm +FILE: ../../../third_party/icu/source/data/mappings/icu-internal-compound-s2.ucm +FILE: ../../../third_party/icu/source/data/mappings/icu-internal-compound-s3.ucm +FILE: ../../../third_party/icu/source/data/mappings/icu-internal-compound-t.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859_10-1998.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859_11-2001.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-8859_14-1998.ucm +FILE: ../../../third_party/icu/source/data/mappings/iso-ir-165.ucm +FILE: ../../../third_party/icu/source/data/mappings/jisx-212.ucm +FILE: ../../../third_party/icu/source/data/mappings/lmb-excp.ucm +FILE: ../../../third_party/icu/source/data/mappings/macos-0_2-10.2.ucm +FILE: ../../../third_party/icu/source/data/mappings/macos-29-10.2.ucm +FILE: ../../../third_party/icu/source/data/mappings/macos-35-10.2.ucm +FILE: ../../../third_party/icu/source/data/mappings/macos-6_2-10.4.ucm +FILE: ../../../third_party/icu/source/data/mappings/macos-7_3-10.2.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-874-2000.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-949-2000.ucm +FILE: ../../../third_party/icu/source/data/mappings/windows-950-2000.ucm +FILE: ../../../third_party/icu/source/data/misc/icudata.rc +FILE: ../../../third_party/icu/source/data/rbnf/LOCALE_DEPS.json +FILE: ../../../third_party/icu/source/data/region/LOCALE_DEPS.json +FILE: ../../../third_party/icu/source/data/unidata/norm2/BUILD.bazel +FILE: ../../../third_party/icu/source/data/unit/LOCALE_DEPS.json +FILE: ../../../third_party/icu/source/data/zone/LOCALE_DEPS.json +FILE: ../../../third_party/icu/source/extra/scrptrun/scrptrun.cpp +FILE: ../../../third_party/icu/source/extra/scrptrun/scrptrun.h +FILE: ../../../third_party/icu/source/extra/scrptrun/srtest.cpp +FILE: ../../../third_party/icu/source/extra/uconv/makedata.mak +FILE: ../../../third_party/icu/source/extra/uconv/pkgdata.inc.in +FILE: ../../../third_party/icu/source/extra/uconv/uconv.1.in +FILE: ../../../third_party/icu/source/extra/uconv/uconv.cpp +FILE: ../../../third_party/icu/source/extra/uconv/unicode/uwmsg.h +FILE: ../../../third_party/icu/source/extra/uconv/uwmsg.c +FILE: ../../../third_party/icu/source/i18n/BUILD.bazel +FILE: ../../../third_party/icu/source/i18n/alphaindex.cpp +FILE: ../../../third_party/icu/source/i18n/anytrans.cpp +FILE: ../../../third_party/icu/source/i18n/anytrans.h +FILE: ../../../third_party/icu/source/i18n/astro.cpp +FILE: ../../../third_party/icu/source/i18n/astro.h +FILE: ../../../third_party/icu/source/i18n/basictz.cpp +FILE: ../../../third_party/icu/source/i18n/bocsu.cpp +FILE: ../../../third_party/icu/source/i18n/bocsu.h +FILE: ../../../third_party/icu/source/i18n/brktrans.cpp +FILE: ../../../third_party/icu/source/i18n/brktrans.h +FILE: ../../../third_party/icu/source/i18n/buddhcal.cpp +FILE: ../../../third_party/icu/source/i18n/buddhcal.h +FILE: ../../../third_party/icu/source/i18n/calendar.cpp +FILE: ../../../third_party/icu/source/i18n/casetrn.cpp +FILE: ../../../third_party/icu/source/i18n/casetrn.h +FILE: ../../../third_party/icu/source/i18n/cecal.cpp +FILE: ../../../third_party/icu/source/i18n/cecal.h +FILE: ../../../third_party/icu/source/i18n/chnsecal.cpp +FILE: ../../../third_party/icu/source/i18n/chnsecal.h +FILE: ../../../third_party/icu/source/i18n/choicfmt.cpp +FILE: ../../../third_party/icu/source/i18n/coleitr.cpp +FILE: ../../../third_party/icu/source/i18n/coll.cpp +FILE: ../../../third_party/icu/source/i18n/collation.cpp +FILE: ../../../third_party/icu/source/i18n/collation.h +FILE: ../../../third_party/icu/source/i18n/collationbuilder.cpp +FILE: ../../../third_party/icu/source/i18n/collationbuilder.h +FILE: ../../../third_party/icu/source/i18n/collationcompare.cpp +FILE: ../../../third_party/icu/source/i18n/collationcompare.h +FILE: ../../../third_party/icu/source/i18n/collationdata.cpp +FILE: ../../../third_party/icu/source/i18n/collationdata.h +FILE: ../../../third_party/icu/source/i18n/collationdatabuilder.cpp +FILE: ../../../third_party/icu/source/i18n/collationdatabuilder.h +FILE: ../../../third_party/icu/source/i18n/collationdatareader.cpp +FILE: ../../../third_party/icu/source/i18n/collationdatareader.h +FILE: ../../../third_party/icu/source/i18n/collationdatawriter.cpp +FILE: ../../../third_party/icu/source/i18n/collationdatawriter.h +FILE: ../../../third_party/icu/source/i18n/collationfastlatin.cpp +FILE: ../../../third_party/icu/source/i18n/collationfastlatin.h +FILE: ../../../third_party/icu/source/i18n/collationfastlatinbuilder.cpp +FILE: ../../../third_party/icu/source/i18n/collationfastlatinbuilder.h +FILE: ../../../third_party/icu/source/i18n/collationfcd.cpp +FILE: ../../../third_party/icu/source/i18n/collationfcd.h +FILE: ../../../third_party/icu/source/i18n/collationiterator.cpp +FILE: ../../../third_party/icu/source/i18n/collationiterator.h +FILE: ../../../third_party/icu/source/i18n/collationkeys.cpp +FILE: ../../../third_party/icu/source/i18n/collationkeys.h +FILE: ../../../third_party/icu/source/i18n/collationroot.cpp +FILE: ../../../third_party/icu/source/i18n/collationroot.h +FILE: ../../../third_party/icu/source/i18n/collationrootelements.cpp +FILE: ../../../third_party/icu/source/i18n/collationrootelements.h +FILE: ../../../third_party/icu/source/i18n/collationruleparser.cpp +FILE: ../../../third_party/icu/source/i18n/collationruleparser.h +FILE: ../../../third_party/icu/source/i18n/collationsets.cpp +FILE: ../../../third_party/icu/source/i18n/collationsets.h +FILE: ../../../third_party/icu/source/i18n/collationsettings.cpp +FILE: ../../../third_party/icu/source/i18n/collationsettings.h +FILE: ../../../third_party/icu/source/i18n/collationtailoring.cpp +FILE: ../../../third_party/icu/source/i18n/collationtailoring.h +FILE: ../../../third_party/icu/source/i18n/collationweights.cpp +FILE: ../../../third_party/icu/source/i18n/collationweights.h +FILE: ../../../third_party/icu/source/i18n/collunsafe.h +FILE: ../../../third_party/icu/source/i18n/compactdecimalformat.cpp +FILE: ../../../third_party/icu/source/i18n/coptccal.cpp +FILE: ../../../third_party/icu/source/i18n/coptccal.h +FILE: ../../../third_party/icu/source/i18n/cpdtrans.cpp +FILE: ../../../third_party/icu/source/i18n/cpdtrans.h +FILE: ../../../third_party/icu/source/i18n/csdetect.cpp +FILE: ../../../third_party/icu/source/i18n/csdetect.h +FILE: ../../../third_party/icu/source/i18n/csmatch.cpp +FILE: ../../../third_party/icu/source/i18n/csmatch.h +FILE: ../../../third_party/icu/source/i18n/csr2022.cpp +FILE: ../../../third_party/icu/source/i18n/csr2022.h +FILE: ../../../third_party/icu/source/i18n/csrecog.cpp +FILE: ../../../third_party/icu/source/i18n/csrecog.h +FILE: ../../../third_party/icu/source/i18n/csrmbcs.cpp +FILE: ../../../third_party/icu/source/i18n/csrmbcs.h +FILE: ../../../third_party/icu/source/i18n/csrsbcs.cpp +FILE: ../../../third_party/icu/source/i18n/csrsbcs.h +FILE: ../../../third_party/icu/source/i18n/csrucode.cpp +FILE: ../../../third_party/icu/source/i18n/csrucode.h +FILE: ../../../third_party/icu/source/i18n/csrutf8.cpp +FILE: ../../../third_party/icu/source/i18n/csrutf8.h +FILE: ../../../third_party/icu/source/i18n/curramt.cpp +FILE: ../../../third_party/icu/source/i18n/currfmt.cpp +FILE: ../../../third_party/icu/source/i18n/currfmt.h +FILE: ../../../third_party/icu/source/i18n/currpinf.cpp +FILE: ../../../third_party/icu/source/i18n/currunit.cpp +FILE: ../../../third_party/icu/source/i18n/dangical.cpp +FILE: ../../../third_party/icu/source/i18n/dangical.h +FILE: ../../../third_party/icu/source/i18n/datefmt.cpp +FILE: ../../../third_party/icu/source/i18n/dayperiodrules.cpp +FILE: ../../../third_party/icu/source/i18n/dayperiodrules.h +FILE: ../../../third_party/icu/source/i18n/dcfmtsym.cpp +FILE: ../../../third_party/icu/source/i18n/decContext.cpp +FILE: ../../../third_party/icu/source/i18n/decContext.h +FILE: ../../../third_party/icu/source/i18n/decNumber.cpp +FILE: ../../../third_party/icu/source/i18n/decNumber.h +FILE: ../../../third_party/icu/source/i18n/decNumberLocal.h +FILE: ../../../third_party/icu/source/i18n/decimfmt.cpp +FILE: ../../../third_party/icu/source/i18n/double-conversion-bignum-dtoa.cpp +FILE: ../../../third_party/icu/source/i18n/double-conversion-bignum-dtoa.h +FILE: ../../../third_party/icu/source/i18n/double-conversion-bignum.cpp +FILE: ../../../third_party/icu/source/i18n/double-conversion-bignum.h +FILE: ../../../third_party/icu/source/i18n/double-conversion-cached-powers.cpp +FILE: ../../../third_party/icu/source/i18n/double-conversion-cached-powers.h +FILE: ../../../third_party/icu/source/i18n/double-conversion-diy-fp.h +FILE: ../../../third_party/icu/source/i18n/double-conversion-double-to-string.cpp +FILE: ../../../third_party/icu/source/i18n/double-conversion-double-to-string.h +FILE: ../../../third_party/icu/source/i18n/double-conversion-fast-dtoa.cpp +FILE: ../../../third_party/icu/source/i18n/double-conversion-fast-dtoa.h +FILE: ../../../third_party/icu/source/i18n/double-conversion-ieee.h +FILE: ../../../third_party/icu/source/i18n/double-conversion-string-to-double.cpp +FILE: ../../../third_party/icu/source/i18n/double-conversion-string-to-double.h +FILE: ../../../third_party/icu/source/i18n/double-conversion-strtod.cpp +FILE: ../../../third_party/icu/source/i18n/double-conversion-strtod.h +FILE: ../../../third_party/icu/source/i18n/double-conversion-utils.h +FILE: ../../../third_party/icu/source/i18n/double-conversion.h +FILE: ../../../third_party/icu/source/i18n/dt_impl.h +FILE: ../../../third_party/icu/source/i18n/dtfmtsym.cpp +FILE: ../../../third_party/icu/source/i18n/dtitv_impl.h +FILE: ../../../third_party/icu/source/i18n/dtitvfmt.cpp +FILE: ../../../third_party/icu/source/i18n/dtitvinf.cpp +FILE: ../../../third_party/icu/source/i18n/dtptngen.cpp +FILE: ../../../third_party/icu/source/i18n/dtptngen_impl.h +FILE: ../../../third_party/icu/source/i18n/dtrule.cpp +FILE: ../../../third_party/icu/source/i18n/erarules.cpp +FILE: ../../../third_party/icu/source/i18n/erarules.h +FILE: ../../../third_party/icu/source/i18n/esctrn.cpp +FILE: ../../../third_party/icu/source/i18n/esctrn.h +FILE: ../../../third_party/icu/source/i18n/ethpccal.cpp +FILE: ../../../third_party/icu/source/i18n/ethpccal.h +FILE: ../../../third_party/icu/source/i18n/fmtable.cpp +FILE: ../../../third_party/icu/source/i18n/fmtable_cnv.cpp +FILE: ../../../third_party/icu/source/i18n/fmtableimp.h +FILE: ../../../third_party/icu/source/i18n/format.cpp +FILE: ../../../third_party/icu/source/i18n/formatted_string_builder.cpp +FILE: ../../../third_party/icu/source/i18n/formatted_string_builder.h +FILE: ../../../third_party/icu/source/i18n/formattedval_impl.h +FILE: ../../../third_party/icu/source/i18n/formattedval_iterimpl.cpp +FILE: ../../../third_party/icu/source/i18n/formattedval_sbimpl.cpp +FILE: ../../../third_party/icu/source/i18n/formattedvalue.cpp +FILE: ../../../third_party/icu/source/i18n/fphdlimp.cpp +FILE: ../../../third_party/icu/source/i18n/fphdlimp.h +FILE: ../../../third_party/icu/source/i18n/fpositer.cpp +FILE: ../../../third_party/icu/source/i18n/funcrepl.cpp +FILE: ../../../third_party/icu/source/i18n/funcrepl.h +FILE: ../../../third_party/icu/source/i18n/gender.cpp +FILE: ../../../third_party/icu/source/i18n/gregocal.cpp +FILE: ../../../third_party/icu/source/i18n/gregoimp.cpp +FILE: ../../../third_party/icu/source/i18n/gregoimp.h +FILE: ../../../third_party/icu/source/i18n/hebrwcal.cpp +FILE: ../../../third_party/icu/source/i18n/hebrwcal.h +FILE: ../../../third_party/icu/source/i18n/i18n.rc +FILE: ../../../third_party/icu/source/i18n/indiancal.cpp +FILE: ../../../third_party/icu/source/i18n/indiancal.h +FILE: ../../../third_party/icu/source/i18n/inputext.cpp +FILE: ../../../third_party/icu/source/i18n/inputext.h +FILE: ../../../third_party/icu/source/i18n/islamcal.cpp +FILE: ../../../third_party/icu/source/i18n/islamcal.h +FILE: ../../../third_party/icu/source/i18n/japancal.cpp +FILE: ../../../third_party/icu/source/i18n/japancal.h +FILE: ../../../third_party/icu/source/i18n/listformatter.cpp +FILE: ../../../third_party/icu/source/i18n/measfmt.cpp +FILE: ../../../third_party/icu/source/i18n/measunit.cpp +FILE: ../../../third_party/icu/source/i18n/measunit_extra.cpp +FILE: ../../../third_party/icu/source/i18n/measunit_impl.h +FILE: ../../../third_party/icu/source/i18n/measure.cpp +FILE: ../../../third_party/icu/source/i18n/msgfmt.cpp +FILE: ../../../third_party/icu/source/i18n/msgfmt_impl.h +FILE: ../../../third_party/icu/source/i18n/name2uni.cpp +FILE: ../../../third_party/icu/source/i18n/name2uni.h +FILE: ../../../third_party/icu/source/i18n/nfrlist.h +FILE: ../../../third_party/icu/source/i18n/nfrs.cpp +FILE: ../../../third_party/icu/source/i18n/nfrs.h +FILE: ../../../third_party/icu/source/i18n/nfrule.cpp +FILE: ../../../third_party/icu/source/i18n/nfrule.h +FILE: ../../../third_party/icu/source/i18n/nfsubs.cpp +FILE: ../../../third_party/icu/source/i18n/nfsubs.h +FILE: ../../../third_party/icu/source/i18n/nortrans.cpp +FILE: ../../../third_party/icu/source/i18n/nortrans.h +FILE: ../../../third_party/icu/source/i18n/nultrans.cpp +FILE: ../../../third_party/icu/source/i18n/nultrans.h +FILE: ../../../third_party/icu/source/i18n/number_affixutils.cpp +FILE: ../../../third_party/icu/source/i18n/number_affixutils.h +FILE: ../../../third_party/icu/source/i18n/number_asformat.cpp +FILE: ../../../third_party/icu/source/i18n/number_asformat.h +FILE: ../../../third_party/icu/source/i18n/number_capi.cpp +FILE: ../../../third_party/icu/source/i18n/number_compact.cpp +FILE: ../../../third_party/icu/source/i18n/number_compact.h +FILE: ../../../third_party/icu/source/i18n/number_currencysymbols.cpp +FILE: ../../../third_party/icu/source/i18n/number_currencysymbols.h +FILE: ../../../third_party/icu/source/i18n/number_decimalquantity.cpp +FILE: ../../../third_party/icu/source/i18n/number_decimalquantity.h +FILE: ../../../third_party/icu/source/i18n/number_decimfmtprops.cpp +FILE: ../../../third_party/icu/source/i18n/number_decimfmtprops.h +FILE: ../../../third_party/icu/source/i18n/number_decnum.h +FILE: ../../../third_party/icu/source/i18n/number_fluent.cpp +FILE: ../../../third_party/icu/source/i18n/number_formatimpl.cpp +FILE: ../../../third_party/icu/source/i18n/number_formatimpl.h +FILE: ../../../third_party/icu/source/i18n/number_grouping.cpp +FILE: ../../../third_party/icu/source/i18n/number_integerwidth.cpp +FILE: ../../../third_party/icu/source/i18n/number_longnames.cpp +FILE: ../../../third_party/icu/source/i18n/number_longnames.h +FILE: ../../../third_party/icu/source/i18n/number_mapper.cpp +FILE: ../../../third_party/icu/source/i18n/number_mapper.h +FILE: ../../../third_party/icu/source/i18n/number_microprops.h +FILE: ../../../third_party/icu/source/i18n/number_modifiers.cpp +FILE: ../../../third_party/icu/source/i18n/number_modifiers.h +FILE: ../../../third_party/icu/source/i18n/number_multiplier.cpp +FILE: ../../../third_party/icu/source/i18n/number_multiplier.h +FILE: ../../../third_party/icu/source/i18n/number_notation.cpp +FILE: ../../../third_party/icu/source/i18n/number_output.cpp +FILE: ../../../third_party/icu/source/i18n/number_padding.cpp +FILE: ../../../third_party/icu/source/i18n/number_patternmodifier.cpp +FILE: ../../../third_party/icu/source/i18n/number_patternmodifier.h +FILE: ../../../third_party/icu/source/i18n/number_patternstring.cpp +FILE: ../../../third_party/icu/source/i18n/number_patternstring.h +FILE: ../../../third_party/icu/source/i18n/number_rounding.cpp +FILE: ../../../third_party/icu/source/i18n/number_roundingutils.h +FILE: ../../../third_party/icu/source/i18n/number_scientific.cpp +FILE: ../../../third_party/icu/source/i18n/number_scientific.h +FILE: ../../../third_party/icu/source/i18n/number_skeletons.cpp +FILE: ../../../third_party/icu/source/i18n/number_skeletons.h +FILE: ../../../third_party/icu/source/i18n/number_symbolswrapper.cpp +FILE: ../../../third_party/icu/source/i18n/number_types.h +FILE: ../../../third_party/icu/source/i18n/number_usageprefs.cpp +FILE: ../../../third_party/icu/source/i18n/number_usageprefs.h +FILE: ../../../third_party/icu/source/i18n/number_utils.cpp +FILE: ../../../third_party/icu/source/i18n/number_utils.h +FILE: ../../../third_party/icu/source/i18n/number_utypes.h +FILE: ../../../third_party/icu/source/i18n/numfmt.cpp +FILE: ../../../third_party/icu/source/i18n/numparse_affixes.cpp +FILE: ../../../third_party/icu/source/i18n/numparse_affixes.h +FILE: ../../../third_party/icu/source/i18n/numparse_compositions.cpp +FILE: ../../../third_party/icu/source/i18n/numparse_compositions.h +FILE: ../../../third_party/icu/source/i18n/numparse_currency.cpp +FILE: ../../../third_party/icu/source/i18n/numparse_currency.h +FILE: ../../../third_party/icu/source/i18n/numparse_decimal.cpp +FILE: ../../../third_party/icu/source/i18n/numparse_decimal.h +FILE: ../../../third_party/icu/source/i18n/numparse_impl.cpp +FILE: ../../../third_party/icu/source/i18n/numparse_impl.h +FILE: ../../../third_party/icu/source/i18n/numparse_parsednumber.cpp +FILE: ../../../third_party/icu/source/i18n/numparse_scientific.cpp +FILE: ../../../third_party/icu/source/i18n/numparse_scientific.h +FILE: ../../../third_party/icu/source/i18n/numparse_symbols.cpp +FILE: ../../../third_party/icu/source/i18n/numparse_symbols.h +FILE: ../../../third_party/icu/source/i18n/numparse_types.h +FILE: ../../../third_party/icu/source/i18n/numparse_utils.h +FILE: ../../../third_party/icu/source/i18n/numparse_validators.cpp +FILE: ../../../third_party/icu/source/i18n/numparse_validators.h +FILE: ../../../third_party/icu/source/i18n/numrange_capi.cpp +FILE: ../../../third_party/icu/source/i18n/numrange_fluent.cpp +FILE: ../../../third_party/icu/source/i18n/numrange_impl.cpp +FILE: ../../../third_party/icu/source/i18n/numrange_impl.h +FILE: ../../../third_party/icu/source/i18n/numsys.cpp +FILE: ../../../third_party/icu/source/i18n/numsys_impl.h +FILE: ../../../third_party/icu/source/i18n/olsontz.cpp +FILE: ../../../third_party/icu/source/i18n/olsontz.h +FILE: ../../../third_party/icu/source/i18n/persncal.cpp +FILE: ../../../third_party/icu/source/i18n/persncal.h +FILE: ../../../third_party/icu/source/i18n/pluralranges.cpp +FILE: ../../../third_party/icu/source/i18n/pluralranges.h +FILE: ../../../third_party/icu/source/i18n/plurfmt.cpp +FILE: ../../../third_party/icu/source/i18n/plurrule.cpp +FILE: ../../../third_party/icu/source/i18n/plurrule_impl.h +FILE: ../../../third_party/icu/source/i18n/quant.cpp +FILE: ../../../third_party/icu/source/i18n/quant.h +FILE: ../../../third_party/icu/source/i18n/quantityformatter.cpp +FILE: ../../../third_party/icu/source/i18n/quantityformatter.h +FILE: ../../../third_party/icu/source/i18n/rbnf.cpp +FILE: ../../../third_party/icu/source/i18n/rbt.cpp +FILE: ../../../third_party/icu/source/i18n/rbt.h +FILE: ../../../third_party/icu/source/i18n/rbt_data.cpp +FILE: ../../../third_party/icu/source/i18n/rbt_data.h +FILE: ../../../third_party/icu/source/i18n/rbt_pars.cpp +FILE: ../../../third_party/icu/source/i18n/rbt_pars.h +FILE: ../../../third_party/icu/source/i18n/rbt_rule.cpp +FILE: ../../../third_party/icu/source/i18n/rbt_rule.h +FILE: ../../../third_party/icu/source/i18n/rbt_set.cpp +FILE: ../../../third_party/icu/source/i18n/rbt_set.h +FILE: ../../../third_party/icu/source/i18n/rbtz.cpp +FILE: ../../../third_party/icu/source/i18n/regexcmp.cpp +FILE: ../../../third_party/icu/source/i18n/regexcmp.h +FILE: ../../../third_party/icu/source/i18n/regexcst.h +FILE: ../../../third_party/icu/source/i18n/regeximp.cpp +FILE: ../../../third_party/icu/source/i18n/regeximp.h +FILE: ../../../third_party/icu/source/i18n/regexst.cpp +FILE: ../../../third_party/icu/source/i18n/regexst.h +FILE: ../../../third_party/icu/source/i18n/regextxt.cpp +FILE: ../../../third_party/icu/source/i18n/regextxt.h +FILE: ../../../third_party/icu/source/i18n/region.cpp +FILE: ../../../third_party/icu/source/i18n/region_impl.h +FILE: ../../../third_party/icu/source/i18n/reldatefmt.cpp +FILE: ../../../third_party/icu/source/i18n/reldtfmt.cpp +FILE: ../../../third_party/icu/source/i18n/reldtfmt.h +FILE: ../../../third_party/icu/source/i18n/rematch.cpp +FILE: ../../../third_party/icu/source/i18n/remtrans.cpp +FILE: ../../../third_party/icu/source/i18n/remtrans.h +FILE: ../../../third_party/icu/source/i18n/repattrn.cpp +FILE: ../../../third_party/icu/source/i18n/rulebasedcollator.cpp +FILE: ../../../third_party/icu/source/i18n/scientificnumberformatter.cpp +FILE: ../../../third_party/icu/source/i18n/scriptset.cpp +FILE: ../../../third_party/icu/source/i18n/scriptset.h +FILE: ../../../third_party/icu/source/i18n/search.cpp +FILE: ../../../third_party/icu/source/i18n/selfmt.cpp +FILE: ../../../third_party/icu/source/i18n/selfmtimpl.h +FILE: ../../../third_party/icu/source/i18n/sharedbreakiterator.cpp +FILE: ../../../third_party/icu/source/i18n/sharedbreakiterator.h +FILE: ../../../third_party/icu/source/i18n/sharedcalendar.h +FILE: ../../../third_party/icu/source/i18n/shareddateformatsymbols.h +FILE: ../../../third_party/icu/source/i18n/sharednumberformat.h +FILE: ../../../third_party/icu/source/i18n/sharedpluralrules.h +FILE: ../../../third_party/icu/source/i18n/simpletz.cpp +FILE: ../../../third_party/icu/source/i18n/smpdtfmt.cpp +FILE: ../../../third_party/icu/source/i18n/smpdtfst.cpp +FILE: ../../../third_party/icu/source/i18n/smpdtfst.h +FILE: ../../../third_party/icu/source/i18n/sortkey.cpp +FILE: ../../../third_party/icu/source/i18n/standardplural.cpp +FILE: ../../../third_party/icu/source/i18n/standardplural.h +FILE: ../../../third_party/icu/source/i18n/string_segment.cpp +FILE: ../../../third_party/icu/source/i18n/string_segment.h +FILE: ../../../third_party/icu/source/i18n/strmatch.cpp +FILE: ../../../third_party/icu/source/i18n/strmatch.h +FILE: ../../../third_party/icu/source/i18n/strrepl.cpp +FILE: ../../../third_party/icu/source/i18n/strrepl.h +FILE: ../../../third_party/icu/source/i18n/stsearch.cpp +FILE: ../../../third_party/icu/source/i18n/taiwncal.cpp +FILE: ../../../third_party/icu/source/i18n/taiwncal.h +FILE: ../../../third_party/icu/source/i18n/timezone.cpp +FILE: ../../../third_party/icu/source/i18n/titletrn.cpp +FILE: ../../../third_party/icu/source/i18n/titletrn.h +FILE: ../../../third_party/icu/source/i18n/tmunit.cpp +FILE: ../../../third_party/icu/source/i18n/tmutamt.cpp +FILE: ../../../third_party/icu/source/i18n/tmutfmt.cpp +FILE: ../../../third_party/icu/source/i18n/tolowtrn.cpp +FILE: ../../../third_party/icu/source/i18n/tolowtrn.h +FILE: ../../../third_party/icu/source/i18n/toupptrn.cpp +FILE: ../../../third_party/icu/source/i18n/toupptrn.h +FILE: ../../../third_party/icu/source/i18n/translit.cpp +FILE: ../../../third_party/icu/source/i18n/transreg.cpp +FILE: ../../../third_party/icu/source/i18n/transreg.h +FILE: ../../../third_party/icu/source/i18n/tridpars.cpp +FILE: ../../../third_party/icu/source/i18n/tridpars.h +FILE: ../../../third_party/icu/source/i18n/tzfmt.cpp +FILE: ../../../third_party/icu/source/i18n/tzgnames.cpp +FILE: ../../../third_party/icu/source/i18n/tzgnames.h +FILE: ../../../third_party/icu/source/i18n/tznames.cpp +FILE: ../../../third_party/icu/source/i18n/tznames_impl.cpp +FILE: ../../../third_party/icu/source/i18n/tznames_impl.h +FILE: ../../../third_party/icu/source/i18n/tzrule.cpp +FILE: ../../../third_party/icu/source/i18n/tztrans.cpp +FILE: ../../../third_party/icu/source/i18n/ucal.cpp +FILE: ../../../third_party/icu/source/i18n/ucln_in.cpp +FILE: ../../../third_party/icu/source/i18n/ucln_in.h +FILE: ../../../third_party/icu/source/i18n/ucol.cpp +FILE: ../../../third_party/icu/source/i18n/ucol_imp.h +FILE: ../../../third_party/icu/source/i18n/ucol_res.cpp +FILE: ../../../third_party/icu/source/i18n/ucol_sit.cpp +FILE: ../../../third_party/icu/source/i18n/ucoleitr.cpp +FILE: ../../../third_party/icu/source/i18n/ucsdet.cpp +FILE: ../../../third_party/icu/source/i18n/udat.cpp +FILE: ../../../third_party/icu/source/i18n/udateintervalformat.cpp +FILE: ../../../third_party/icu/source/i18n/udatpg.cpp +FILE: ../../../third_party/icu/source/i18n/ufieldpositer.cpp +FILE: ../../../third_party/icu/source/i18n/uitercollationiterator.cpp +FILE: ../../../third_party/icu/source/i18n/uitercollationiterator.h +FILE: ../../../third_party/icu/source/i18n/ulistformatter.cpp +FILE: ../../../third_party/icu/source/i18n/ulocdata.cpp +FILE: ../../../third_party/icu/source/i18n/umsg.cpp +FILE: ../../../third_party/icu/source/i18n/umsg_imp.h +FILE: ../../../third_party/icu/source/i18n/unesctrn.cpp +FILE: ../../../third_party/icu/source/i18n/unesctrn.h +FILE: ../../../third_party/icu/source/i18n/uni2name.cpp +FILE: ../../../third_party/icu/source/i18n/uni2name.h +FILE: ../../../third_party/icu/source/i18n/unicode/alphaindex.h +FILE: ../../../third_party/icu/source/i18n/unicode/basictz.h +FILE: ../../../third_party/icu/source/i18n/unicode/calendar.h +FILE: ../../../third_party/icu/source/i18n/unicode/choicfmt.h +FILE: ../../../third_party/icu/source/i18n/unicode/coleitr.h +FILE: ../../../third_party/icu/source/i18n/unicode/coll.h +FILE: ../../../third_party/icu/source/i18n/unicode/compactdecimalformat.h +FILE: ../../../third_party/icu/source/i18n/unicode/curramt.h +FILE: ../../../third_party/icu/source/i18n/unicode/currpinf.h +FILE: ../../../third_party/icu/source/i18n/unicode/currunit.h +FILE: ../../../third_party/icu/source/i18n/unicode/datefmt.h +FILE: ../../../third_party/icu/source/i18n/unicode/dcfmtsym.h +FILE: ../../../third_party/icu/source/i18n/unicode/decimfmt.h +FILE: ../../../third_party/icu/source/i18n/unicode/dtfmtsym.h +FILE: ../../../third_party/icu/source/i18n/unicode/dtitvfmt.h +FILE: ../../../third_party/icu/source/i18n/unicode/dtitvinf.h +FILE: ../../../third_party/icu/source/i18n/unicode/dtptngen.h +FILE: ../../../third_party/icu/source/i18n/unicode/dtrule.h +FILE: ../../../third_party/icu/source/i18n/unicode/fieldpos.h +FILE: ../../../third_party/icu/source/i18n/unicode/fmtable.h +FILE: ../../../third_party/icu/source/i18n/unicode/format.h +FILE: ../../../third_party/icu/source/i18n/unicode/formattedvalue.h +FILE: ../../../third_party/icu/source/i18n/unicode/fpositer.h +FILE: ../../../third_party/icu/source/i18n/unicode/gender.h +FILE: ../../../third_party/icu/source/i18n/unicode/gregocal.h +FILE: ../../../third_party/icu/source/i18n/unicode/listformatter.h +FILE: ../../../third_party/icu/source/i18n/unicode/measfmt.h +FILE: ../../../third_party/icu/source/i18n/unicode/measunit.h +FILE: ../../../third_party/icu/source/i18n/unicode/measure.h +FILE: ../../../third_party/icu/source/i18n/unicode/msgfmt.h +FILE: ../../../third_party/icu/source/i18n/unicode/nounit.h +FILE: ../../../third_party/icu/source/i18n/unicode/numberformatter.h +FILE: ../../../third_party/icu/source/i18n/unicode/numberrangeformatter.h +FILE: ../../../third_party/icu/source/i18n/unicode/numfmt.h +FILE: ../../../third_party/icu/source/i18n/unicode/numsys.h +FILE: ../../../third_party/icu/source/i18n/unicode/plurfmt.h +FILE: ../../../third_party/icu/source/i18n/unicode/plurrule.h +FILE: ../../../third_party/icu/source/i18n/unicode/rbnf.h +FILE: ../../../third_party/icu/source/i18n/unicode/rbtz.h +FILE: ../../../third_party/icu/source/i18n/unicode/regex.h +FILE: ../../../third_party/icu/source/i18n/unicode/region.h +FILE: ../../../third_party/icu/source/i18n/unicode/reldatefmt.h +FILE: ../../../third_party/icu/source/i18n/unicode/scientificnumberformatter.h +FILE: ../../../third_party/icu/source/i18n/unicode/search.h +FILE: ../../../third_party/icu/source/i18n/unicode/selfmt.h +FILE: ../../../third_party/icu/source/i18n/unicode/simpletz.h +FILE: ../../../third_party/icu/source/i18n/unicode/smpdtfmt.h +FILE: ../../../third_party/icu/source/i18n/unicode/sortkey.h +FILE: ../../../third_party/icu/source/i18n/unicode/stsearch.h +FILE: ../../../third_party/icu/source/i18n/unicode/tblcoll.h +FILE: ../../../third_party/icu/source/i18n/unicode/timezone.h +FILE: ../../../third_party/icu/source/i18n/unicode/tmunit.h +FILE: ../../../third_party/icu/source/i18n/unicode/tmutamt.h +FILE: ../../../third_party/icu/source/i18n/unicode/tmutfmt.h +FILE: ../../../third_party/icu/source/i18n/unicode/translit.h +FILE: ../../../third_party/icu/source/i18n/unicode/tzfmt.h +FILE: ../../../third_party/icu/source/i18n/unicode/tznames.h +FILE: ../../../third_party/icu/source/i18n/unicode/tzrule.h +FILE: ../../../third_party/icu/source/i18n/unicode/tztrans.h +FILE: ../../../third_party/icu/source/i18n/unicode/ucal.h +FILE: ../../../third_party/icu/source/i18n/unicode/ucol.h +FILE: ../../../third_party/icu/source/i18n/unicode/ucoleitr.h +FILE: ../../../third_party/icu/source/i18n/unicode/ucsdet.h +FILE: ../../../third_party/icu/source/i18n/unicode/udat.h +FILE: ../../../third_party/icu/source/i18n/unicode/udateintervalformat.h +FILE: ../../../third_party/icu/source/i18n/unicode/udatpg.h +FILE: ../../../third_party/icu/source/i18n/unicode/ufieldpositer.h +FILE: ../../../third_party/icu/source/i18n/unicode/uformattable.h +FILE: ../../../third_party/icu/source/i18n/unicode/uformattedvalue.h +FILE: ../../../third_party/icu/source/i18n/unicode/ugender.h +FILE: ../../../third_party/icu/source/i18n/unicode/ulistformatter.h +FILE: ../../../third_party/icu/source/i18n/unicode/ulocdata.h +FILE: ../../../third_party/icu/source/i18n/unicode/umsg.h +FILE: ../../../third_party/icu/source/i18n/unicode/unirepl.h +FILE: ../../../third_party/icu/source/i18n/unicode/unounclass.h +FILE: ../../../third_party/icu/source/i18n/unicode/unum.h +FILE: ../../../third_party/icu/source/i18n/unicode/unumberformatter.h +FILE: ../../../third_party/icu/source/i18n/unicode/unumberrangeformatter.h +FILE: ../../../third_party/icu/source/i18n/unicode/unumsys.h +FILE: ../../../third_party/icu/source/i18n/unicode/upluralrules.h +FILE: ../../../third_party/icu/source/i18n/unicode/uregex.h +FILE: ../../../third_party/icu/source/i18n/unicode/uregion.h +FILE: ../../../third_party/icu/source/i18n/unicode/ureldatefmt.h +FILE: ../../../third_party/icu/source/i18n/unicode/usearch.h +FILE: ../../../third_party/icu/source/i18n/unicode/uspoof.h +FILE: ../../../third_party/icu/source/i18n/unicode/utmscale.h +FILE: ../../../third_party/icu/source/i18n/unicode/utrans.h +FILE: ../../../third_party/icu/source/i18n/unicode/vtzone.h +FILE: ../../../third_party/icu/source/i18n/units_complexconverter.cpp +FILE: ../../../third_party/icu/source/i18n/units_complexconverter.h +FILE: ../../../third_party/icu/source/i18n/units_converter.cpp +FILE: ../../../third_party/icu/source/i18n/units_converter.h +FILE: ../../../third_party/icu/source/i18n/units_data.cpp +FILE: ../../../third_party/icu/source/i18n/units_data.h +FILE: ../../../third_party/icu/source/i18n/units_router.cpp +FILE: ../../../third_party/icu/source/i18n/units_router.h +FILE: ../../../third_party/icu/source/i18n/unum.cpp +FILE: ../../../third_party/icu/source/i18n/unumsys.cpp +FILE: ../../../third_party/icu/source/i18n/upluralrules.cpp +FILE: ../../../third_party/icu/source/i18n/uregex.cpp +FILE: ../../../third_party/icu/source/i18n/uregexc.cpp +FILE: ../../../third_party/icu/source/i18n/uregion.cpp +FILE: ../../../third_party/icu/source/i18n/usearch.cpp +FILE: ../../../third_party/icu/source/i18n/uspoof.cpp +FILE: ../../../third_party/icu/source/i18n/uspoof_build.cpp +FILE: ../../../third_party/icu/source/i18n/uspoof_conf.cpp +FILE: ../../../third_party/icu/source/i18n/uspoof_conf.h +FILE: ../../../third_party/icu/source/i18n/uspoof_impl.cpp +FILE: ../../../third_party/icu/source/i18n/uspoof_impl.h +FILE: ../../../third_party/icu/source/i18n/usrchimp.h +FILE: ../../../third_party/icu/source/i18n/utf16collationiterator.cpp +FILE: ../../../third_party/icu/source/i18n/utf16collationiterator.h +FILE: ../../../third_party/icu/source/i18n/utf8collationiterator.cpp +FILE: ../../../third_party/icu/source/i18n/utf8collationiterator.h +FILE: ../../../third_party/icu/source/i18n/utmscale.cpp +FILE: ../../../third_party/icu/source/i18n/utrans.cpp +FILE: ../../../third_party/icu/source/i18n/vtzone.cpp +FILE: ../../../third_party/icu/source/i18n/vzone.cpp +FILE: ../../../third_party/icu/source/i18n/vzone.h +FILE: ../../../third_party/icu/source/i18n/windtfmt.cpp +FILE: ../../../third_party/icu/source/i18n/windtfmt.h +FILE: ../../../third_party/icu/source/i18n/winnmfmt.cpp +FILE: ../../../third_party/icu/source/i18n/winnmfmt.h +FILE: ../../../third_party/icu/source/i18n/wintzimpl.cpp +FILE: ../../../third_party/icu/source/i18n/wintzimpl.h +FILE: ../../../third_party/icu/source/i18n/zonemeta.cpp +FILE: ../../../third_party/icu/source/i18n/zonemeta.h +FILE: ../../../third_party/icu/source/i18n/zrule.cpp +FILE: ../../../third_party/icu/source/i18n/zrule.h +FILE: ../../../third_party/icu/source/i18n/ztrans.cpp +FILE: ../../../third_party/icu/source/i18n/ztrans.h +FILE: ../../../third_party/icu/source/icudefs.mk.in +FILE: ../../../third_party/icu/source/io/io.rc +FILE: ../../../third_party/icu/source/io/locbund.cpp +FILE: ../../../third_party/icu/source/io/locbund.h +FILE: ../../../third_party/icu/source/io/sprintf.cpp +FILE: ../../../third_party/icu/source/io/sscanf.cpp +FILE: ../../../third_party/icu/source/io/ucln_io.cpp +FILE: ../../../third_party/icu/source/io/ucln_io.h +FILE: ../../../third_party/icu/source/io/ufile.cpp +FILE: ../../../third_party/icu/source/io/ufile.h +FILE: ../../../third_party/icu/source/io/ufmt_cmn.cpp +FILE: ../../../third_party/icu/source/io/ufmt_cmn.h +FILE: ../../../third_party/icu/source/io/unicode/ustdio.h +FILE: ../../../third_party/icu/source/io/unicode/ustream.h +FILE: ../../../third_party/icu/source/io/uprintf.cpp +FILE: ../../../third_party/icu/source/io/uprintf.h +FILE: ../../../third_party/icu/source/io/uprntf_p.cpp +FILE: ../../../third_party/icu/source/io/uscanf.cpp +FILE: ../../../third_party/icu/source/io/uscanf.h +FILE: ../../../third_party/icu/source/io/uscanf_p.cpp +FILE: ../../../third_party/icu/source/io/ustdio.cpp +FILE: ../../../third_party/icu/source/io/ustream.cpp +FILE: ../../../third_party/icu/source/python/icutools/databuilder/filtration_schema.json +FILE: ../../../third_party/icu/source/stubdata/BUILD.bazel +FILE: ../../../third_party/icu/source/stubdata/stubdata.cpp +FILE: ../../../third_party/icu/source/tools/ctestfw/ctest.c +FILE: ../../../third_party/icu/source/tools/ctestfw/datamap.cpp +FILE: ../../../third_party/icu/source/tools/ctestfw/testdata.cpp +FILE: ../../../third_party/icu/source/tools/ctestfw/tstdtmod.cpp +FILE: ../../../third_party/icu/source/tools/ctestfw/ucln_ct.c +FILE: ../../../third_party/icu/source/tools/ctestfw/unicode/ctest.h +FILE: ../../../third_party/icu/source/tools/ctestfw/unicode/datamap.h +FILE: ../../../third_party/icu/source/tools/ctestfw/unicode/testdata.h +FILE: ../../../third_party/icu/source/tools/ctestfw/unicode/testlog.h +FILE: ../../../third_party/icu/source/tools/ctestfw/unicode/testtype.h +FILE: ../../../third_party/icu/source/tools/ctestfw/unicode/tstdtmod.h +FILE: ../../../third_party/icu/source/tools/ctestfw/unicode/uperf.h +FILE: ../../../third_party/icu/source/tools/ctestfw/unicode/utimer.h +FILE: ../../../third_party/icu/source/tools/ctestfw/uperf.cpp +FILE: ../../../third_party/icu/source/tools/escapesrc/cptbl.h +FILE: ../../../third_party/icu/source/tools/escapesrc/escapesrc.cpp +FILE: ../../../third_party/icu/source/tools/escapesrc/expect-simple.cpp +FILE: ../../../third_party/icu/source/tools/escapesrc/tblgen.cpp +FILE: ../../../third_party/icu/source/tools/escapesrc/test-nochange.cpp +FILE: ../../../third_party/icu/source/tools/escapesrc/test-simple.cpp +FILE: ../../../third_party/icu/source/tools/genbrk/genbrk.1.in +FILE: ../../../third_party/icu/source/tools/genbrk/genbrk.cpp +FILE: ../../../third_party/icu/source/tools/genccode/genccode.8.in +FILE: ../../../third_party/icu/source/tools/genccode/genccode.c +FILE: ../../../third_party/icu/source/tools/gencfu/gencfu.1.in +FILE: ../../../third_party/icu/source/tools/gencfu/gencfu.cpp +FILE: ../../../third_party/icu/source/tools/gencmn/gencmn.8.in +FILE: ../../../third_party/icu/source/tools/gencmn/gencmn.c +FILE: ../../../third_party/icu/source/tools/gencnval/gencnval.1.in +FILE: ../../../third_party/icu/source/tools/gencnval/gencnval.c +FILE: ../../../third_party/icu/source/tools/gencolusb/extract_unsafe_backwards.cpp +FILE: ../../../third_party/icu/source/tools/gencolusb/verify_uset.cpp +FILE: ../../../third_party/icu/source/tools/gendict/gendict.1.in +FILE: ../../../third_party/icu/source/tools/gendict/gendict.cpp +FILE: ../../../third_party/icu/source/tools/gennorm2/BUILD.bazel +FILE: ../../../third_party/icu/source/tools/gennorm2/extradata.cpp +FILE: ../../../third_party/icu/source/tools/gennorm2/extradata.h +FILE: ../../../third_party/icu/source/tools/gennorm2/gennorm2.cpp +FILE: ../../../third_party/icu/source/tools/gennorm2/n2builder.cpp +FILE: ../../../third_party/icu/source/tools/gennorm2/n2builder.h +FILE: ../../../third_party/icu/source/tools/gennorm2/norms.cpp +FILE: ../../../third_party/icu/source/tools/gennorm2/norms.h +FILE: ../../../third_party/icu/source/tools/genrb/derb.1.in +FILE: ../../../third_party/icu/source/tools/genrb/derb.cpp +FILE: ../../../third_party/icu/source/tools/genrb/errmsg.c +FILE: ../../../third_party/icu/source/tools/genrb/errmsg.h +FILE: ../../../third_party/icu/source/tools/genrb/filterrb.cpp +FILE: ../../../third_party/icu/source/tools/genrb/filterrb.h +FILE: ../../../third_party/icu/source/tools/genrb/genrb.1.in +FILE: ../../../third_party/icu/source/tools/genrb/genrb.cpp +FILE: ../../../third_party/icu/source/tools/genrb/genrb.h +FILE: ../../../third_party/icu/source/tools/genrb/parse.cpp +FILE: ../../../third_party/icu/source/tools/genrb/parse.h +FILE: ../../../third_party/icu/source/tools/genrb/prscmnts.cpp +FILE: ../../../third_party/icu/source/tools/genrb/prscmnts.h +FILE: ../../../third_party/icu/source/tools/genrb/rbutil.c +FILE: ../../../third_party/icu/source/tools/genrb/rbutil.h +FILE: ../../../third_party/icu/source/tools/genrb/read.c +FILE: ../../../third_party/icu/source/tools/genrb/read.h +FILE: ../../../third_party/icu/source/tools/genrb/reslist.cpp +FILE: ../../../third_party/icu/source/tools/genrb/reslist.h +FILE: ../../../third_party/icu/source/tools/genrb/rle.c +FILE: ../../../third_party/icu/source/tools/genrb/rle.h +FILE: ../../../third_party/icu/source/tools/genrb/ustr.c +FILE: ../../../third_party/icu/source/tools/genrb/ustr.h +FILE: ../../../third_party/icu/source/tools/genrb/wrtjava.cpp +FILE: ../../../third_party/icu/source/tools/genrb/wrtxml.cpp +FILE: ../../../third_party/icu/source/tools/gensprep/gensprep.8.in +FILE: ../../../third_party/icu/source/tools/gensprep/gensprep.c +FILE: ../../../third_party/icu/source/tools/gensprep/gensprep.h +FILE: ../../../third_party/icu/source/tools/gensprep/store.c +FILE: ../../../third_party/icu/source/tools/gentest/genres32.c +FILE: ../../../third_party/icu/source/tools/gentest/gentest.c +FILE: ../../../third_party/icu/source/tools/gentest/gentest.h +FILE: ../../../third_party/icu/source/tools/icuexportdata/icuexportdata.1.in +FILE: ../../../third_party/icu/source/tools/icuexportdata/icuexportdata.cpp +FILE: ../../../third_party/icu/source/tools/icuinfo/icuinfo.cpp +FILE: ../../../third_party/icu/source/tools/icuinfo/testplug.c +FILE: ../../../third_party/icu/source/tools/icupkg/icupkg.8.in +FILE: ../../../third_party/icu/source/tools/icupkg/icupkg.cpp +FILE: ../../../third_party/icu/source/tools/icuswap/icuswap.cpp +FILE: ../../../third_party/icu/source/tools/makeconv/gencnvex.c +FILE: ../../../third_party/icu/source/tools/makeconv/genmbcs.cpp +FILE: ../../../third_party/icu/source/tools/makeconv/genmbcs.h +FILE: ../../../third_party/icu/source/tools/makeconv/makeconv.1.in +FILE: ../../../third_party/icu/source/tools/makeconv/makeconv.cpp +FILE: ../../../third_party/icu/source/tools/makeconv/makeconv.h +FILE: ../../../third_party/icu/source/tools/makeconv/ucnvstat.c +FILE: ../../../third_party/icu/source/tools/pkgdata/pkgdata.1.in +FILE: ../../../third_party/icu/source/tools/pkgdata/pkgdata.cpp +FILE: ../../../third_party/icu/source/tools/pkgdata/pkgtypes.c +FILE: ../../../third_party/icu/source/tools/pkgdata/pkgtypes.h +FILE: ../../../third_party/icu/source/tools/toolutil/BUILD.bazel +FILE: ../../../third_party/icu/source/tools/toolutil/collationinfo.cpp +FILE: ../../../third_party/icu/source/tools/toolutil/collationinfo.h +FILE: ../../../third_party/icu/source/tools/toolutil/dbgutil.cpp +FILE: ../../../third_party/icu/source/tools/toolutil/dbgutil.h +FILE: ../../../third_party/icu/source/tools/toolutil/denseranges.cpp +FILE: ../../../third_party/icu/source/tools/toolutil/denseranges.h +FILE: ../../../third_party/icu/source/tools/toolutil/filestrm.cpp +FILE: ../../../third_party/icu/source/tools/toolutil/filestrm.h +FILE: ../../../third_party/icu/source/tools/toolutil/filetools.cpp +FILE: ../../../third_party/icu/source/tools/toolutil/filetools.h +FILE: ../../../third_party/icu/source/tools/toolutil/flagparser.cpp +FILE: ../../../third_party/icu/source/tools/toolutil/flagparser.h +FILE: ../../../third_party/icu/source/tools/toolutil/package.cpp +FILE: ../../../third_party/icu/source/tools/toolutil/package.h +FILE: ../../../third_party/icu/source/tools/toolutil/pkg_genc.cpp +FILE: ../../../third_party/icu/source/tools/toolutil/pkg_genc.h +FILE: ../../../third_party/icu/source/tools/toolutil/pkg_gencmn.cpp +FILE: ../../../third_party/icu/source/tools/toolutil/pkg_gencmn.h +FILE: ../../../third_party/icu/source/tools/toolutil/pkg_icu.cpp +FILE: ../../../third_party/icu/source/tools/toolutil/pkg_icu.h +FILE: ../../../third_party/icu/source/tools/toolutil/pkg_imp.h +FILE: ../../../third_party/icu/source/tools/toolutil/pkgitems.cpp +FILE: ../../../third_party/icu/source/tools/toolutil/ppucd.cpp +FILE: ../../../third_party/icu/source/tools/toolutil/ppucd.h +FILE: ../../../third_party/icu/source/tools/toolutil/swapimpl.cpp +FILE: ../../../third_party/icu/source/tools/toolutil/swapimpl.h +FILE: ../../../third_party/icu/source/tools/toolutil/toolutil.cpp +FILE: ../../../third_party/icu/source/tools/toolutil/toolutil.h +FILE: ../../../third_party/icu/source/tools/toolutil/ucbuf.cpp +FILE: ../../../third_party/icu/source/tools/toolutil/ucbuf.h +FILE: ../../../third_party/icu/source/tools/toolutil/ucln_tu.cpp +FILE: ../../../third_party/icu/source/tools/toolutil/ucm.cpp +FILE: ../../../third_party/icu/source/tools/toolutil/ucm.h +FILE: ../../../third_party/icu/source/tools/toolutil/ucmstate.cpp +FILE: ../../../third_party/icu/source/tools/toolutil/udbgutil.cpp +FILE: ../../../third_party/icu/source/tools/toolutil/udbgutil.h +FILE: ../../../third_party/icu/source/tools/toolutil/unewdata.cpp +FILE: ../../../third_party/icu/source/tools/toolutil/unewdata.h +FILE: ../../../third_party/icu/source/tools/toolutil/uoptions.cpp +FILE: ../../../third_party/icu/source/tools/toolutil/uoptions.h +FILE: ../../../third_party/icu/source/tools/toolutil/uparse.cpp +FILE: ../../../third_party/icu/source/tools/toolutil/uparse.h +FILE: ../../../third_party/icu/source/tools/toolutil/writesrc.cpp +FILE: ../../../third_party/icu/source/tools/toolutil/writesrc.h +FILE: ../../../third_party/icu/source/tools/toolutil/xmlparser.cpp +FILE: ../../../third_party/icu/source/tools/toolutil/xmlparser.h +FILE: ../../../third_party/icu/source/tools/tzcode/icuregions +FILE: ../../../third_party/icu/source/tools/tzcode/icuzdump.cpp +FILE: ../../../third_party/icu/source/tools/tzcode/icuzones +FILE: ../../../third_party/icu/source/tools/tzcode/tz2icu.cpp +FILE: ../../../third_party/icu/source/tools/tzcode/tz2icu.h ---------------------------------------------------------------------------------------------------- -Copyright (C) 1998-2010 Gilles Vollant (minizip) ( http://www.winimage.com/zLibDll/minizip.html ) - -Modifications of Unzip for Zip64 -Copyright (C) 2007-2008 Even Rouault - -Modifications for Zip64 support on both zip and unzip -Copyright (C) 2009-2010 Mathias Svensson ( http://result42.com ) - -For more info read MiniZip_info.txt +Unicode® Copyright and Terms of Use +For the general privacy policy governing access to this site, see the Unicode Privacy Policy. -Condition of use and distribution are the same than zlib : +A. Unicode Copyright +1. Copyright © 1991-2022 Unicode, Inc. All rights reserved. +B. Definitions +Unicode Data Files ("DATA FILES") include all data files under the directories: +https://www.unicode.org/Public +https://www.unicode.org/reports +https://www.unicode.org/ivd/data -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +Unicode Data Files do not include PDF online code charts under the directory: +https://www.unicode.org/Public -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +Unicode Software ("SOFTWARE") includes any source code published in the Unicode Standard +or any source code or compiled code under the directories: +https://www.unicode.org/Public/PROGRAMS +https://www.unicode.org/Public/cldr +http://site.icu-project.org/download +C. Terms of Use +1. Certain documents and files on this website contain a legend indicating that "Modification is permitted." Any person is hereby authorized, without fee, to modify such documents and files to create derivative works conforming to the Unicode® Standard, subject to Terms and Conditions herein. +2. Any person is hereby authorized, without fee, to view, use, reproduce, and distribute all documents and files, subject to the Terms and Conditions herein. +3. Further specifications of rights and restrictions pertaining to the use of the Unicode DATA FILES and SOFTWARE can be found in the Unicode Data Files and Software License. +4. Each version of the Unicode Standard has further specifications of rights and restrictions of use. For the book editions (Unicode 5.0 and earlier), these are found on the back of the title page. +5. The Unicode PDF online code charts carry specific restrictions. Those restrictions are incorporated as the first page of each PDF code chart. +6. All other files, including online documentation of the core specification for Unicode 6.0 and later, are covered under these general Terms of Use. +7. No license is granted to "mirror" the Unicode website where a fee is charged for access to the "mirror" site. +8. Modification is not permitted with respect to this document. All copies of this document must be verbatim. +D. Restricted Rights Legend +1. Any technical data or software which is licensed to the United States of America, its agencies and/or instrumentalities under this Agreement is commercial technical data or commercial computer software developed exclusively at private expense as defined in FAR 2.101, or DFARS 252.227-7014 (June 1995), as applicable. For technical data, use, duplication, or disclosure by the Government is subject to restrictions as set forth in DFARS 202.227-7015 Technical Data, Commercial and Items (Nov 1995) and this Agreement. For Software, in accordance with FAR 12-212 or DFARS 227-7202, as applicable, use, duplication or disclosure by the Government is subject to the restrictions set forth in this Agreement. +E.Warranties and Disclaimers +1. This publication and/or website may include technical or typographical errors or other inaccuracies. Changes are periodically added to the information herein; these changes will be incorporated in new editions of the publication and/or website. Unicode, Inc. may make improvements and/or changes in the product(s) and/or program(s) described in this publication and/or website at any time. +2. If this file has been purchased on magnetic or optical media from Unicode, Inc. the sole and exclusive remedy for any claim will be exchange of the defective media within ninety (90) days of original purchase. +3. EXCEPT AS PROVIDED IN SECTION E.2, THIS PUBLICATION AND/OR SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND EITHER EXPRESS, IMPLIED, OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT. UNICODE, INC. AND ITS LICENSORS ASSUME NO RESPONSIBILITY FOR ERRORS OR OMISSIONS IN THIS PUBLICATION AND/OR SOFTWARE OR OTHER DOCUMENTS WHICH ARE REFERENCED BY OR LINKED TO THIS PUBLICATION OR THE UNICODE WEBSITE. +F. Waiver of Damages +1. In no event shall Unicode, Inc. or its licensors be liable for any special, incidental, indirect or consequential damages of any kind, or any damages whatsoever, whether or not Unicode, Inc. was advised of the possibility of the damage, including, without limitation, those resulting from the following: loss of use, data or profits, in connection with the use, modification or distribution of this information or its derivatives. +G. Trademarks & Logos +1. The Unicode Word Mark and the Unicode Logo are trademarks of Unicode, Inc. “The Unicode Consortium” and “Unicode, Inc.” are trade names of Unicode, Inc. Use of the information and materials found on this website indicates your acknowledgement of Unicode, Inc.’s exclusive worldwide rights in the Unicode Word Mark, the Unicode Logo, and the Unicode trade names. +3. The Unicode Consortium Name and Trademark Usage Policy (“Trademark Policy”) are incorporated herein by reference and you agree to abide by the provisions of the Trademark Policy, which may be changed from time to time in the sole discretion of Unicode, Inc. +4. All third party trademarks referenced herein are the property of their respective owners. +H. Miscellaneous +1. Jurisdiction and Venue. This website is operated from a location in the State of California, United States of America. Unicode, Inc. makes no representation that the materials are appropriate for use in other locations. If you access this website from other locations, you are responsible for compliance with local laws. This Agreement, all use of this website and any claims and damages resulting from use of this website are governed solely by the laws of the State of California without regard to any principles which would apply the laws of a different jurisdiction. The user agrees that any disputes regarding this website shall be resolved solely in the courts located in Santa Clara County, California. The user agrees said courts have personal jurisdiction and agree to waive any right to transfer the dispute to any other forum. +2. Modification by Unicode, Inc. Unicode, Inc. shall have the right to modify this Agreement at any time by posting it to this website. The user may not assign any part of this Agreement without Unicode, Inc.’s prior written consent. +3. Taxes. The user agrees to pay any taxes arising from access to this website or use of the information herein, except for those based on Unicode’s net income. +4. Severability. If any provision of this Agreement is declared invalid or unenforceable, the remaining provisions of this Agreement shall remain in effect. +5. Entire Agreement. This Agreement constitutes the entire agreement between the parties. -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. -==================================================================================================== +EXHIBIT 1 +UNICODE, INC. LICENSE AGREEMENT - DATA FILES AND SOFTWARE -==================================================================================================== -LIBRARY: zlib -ORIGIN: ../../../third_party/zlib/contrib/minizip/zip.h -TYPE: LicenseType.zlib -FILE: ../../../third_party/zlib/contrib/minizip/zip.h ----------------------------------------------------------------------------------------------------- -Copyright (C) 1998-2010 Gilles Vollant (minizip) ( http://www.winimage.com/zLibDll/minizip.html ) +See Terms of Use +for definitions of Unicode Inc.’s Data Files and Software. -Modifications for Zip64 support -Copyright (C) 2009-2010 Mathias Svensson ( http://result42.com ) +NOTICE TO USER: Carefully read the following legal agreement. +BY DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING UNICODE INC.'S +DATA FILES ("DATA FILES"), AND/OR SOFTWARE ("SOFTWARE"), +YOU UNEQUIVOCALLY ACCEPT, AND AGREE TO BE BOUND BY, ALL OF THE +TERMS AND CONDITIONS OF THIS AGREEMENT. +IF YOU DO NOT AGREE, DO NOT DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE +THE DATA FILES OR SOFTWARE. -For more info read MiniZip_info.txt +COPYRIGHT AND PERMISSION NOTICE -Condition of use and distribution are the same than zlib : +Copyright © 1991-2022 Unicode, Inc. All rights reserved. +Distributed under the Terms of Use in https://www.unicode.org/copyright.html. -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Unicode data files and any associated documentation +(the "Data Files") or Unicode software and any associated documentation +(the "Software") to deal in the Data Files or Software +without restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, and/or sell copies of +the Data Files or Software, and to permit persons to whom the Data Files +or Software are furnished to do so, provided that either +(a) this copyright and permission notice appear with all copies +of the Data Files or Software, or +(b) this copyright and permission notice appear in associated +Documentation. -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE +WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT OF THIRD PARTY RIGHTS. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS +NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL +DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THE DATA FILES OR SOFTWARE. -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. +Except as contained in this notice, the name of a copyright holder +shall not be used in advertising or otherwise to promote the sale, +use or other dealings in these Data Files or Software without prior +written authorization of the copyright holder. ==================================================================================================== ==================================================================================================== -LIBRARY: zlib -ORIGIN: ../../../third_party/zlib/contrib/optimizations/chunkcopy.h + ../../../LICENSE +LIBRARY: libcxx +LIBRARY: libcxxabi +ORIGIN: null TYPE: LicenseType.bsd -FILE: ../../../third_party/zlib/contrib/optimizations/chunkcopy.h ----------------------------------------------------------------------------------------------------- -Copyright (C) 2017 ARM, Inc. -Copyright 2017 The Chromium Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== - -==================================================================================================== -LIBRARY: zlib -ORIGIN: ../../../third_party/zlib/contrib/optimizations/inffast_chunk.h + ../../../third_party/zlib/zlib.h -TYPE: LicenseType.zlib -FILE: ../../../third_party/zlib/contrib/optimizations/inffast_chunk.h +FILE: ../../../third_party/libcxx/.clang-tidy +FILE: ../../../third_party/libcxx/appveyor-reqs-install.cmd +FILE: ../../../third_party/libcxx/appveyor.yml +FILE: ../../../third_party/libcxx/benchmarks/GenerateInput.h +FILE: ../../../third_party/libcxx/benchmarks/algorithms.partition_point.bench.cpp +FILE: ../../../third_party/libcxx/benchmarks/filesystem.bench.cpp +FILE: ../../../third_party/libcxx/benchmarks/lit.site.cfg.py.in +FILE: ../../../third_party/libcxx/benchmarks/string.bench.cpp +FILE: ../../../third_party/libcxx/benchmarks/stringstream.bench.cpp +FILE: ../../../third_party/libcxx/benchmarks/unordered_set_operations.bench.cpp +FILE: ../../../third_party/libcxx/benchmarks/variant_visit_1.bench.cpp +FILE: ../../../third_party/libcxx/benchmarks/variant_visit_2.bench.cpp +FILE: ../../../third_party/libcxx/benchmarks/variant_visit_3.bench.cpp +FILE: ../../../third_party/libcxx/benchmarks/vector_operations.bench.cpp +FILE: ../../../third_party/libcxx/docs/AddingNewCIJobs.rst +FILE: ../../../third_party/libcxx/docs/BuildingLibcxx.rst +FILE: ../../../third_party/libcxx/docs/DesignDocs/ABIVersioning.rst +FILE: ../../../third_party/libcxx/docs/DesignDocs/AtomicDesign.rst +FILE: ../../../third_party/libcxx/docs/DesignDocs/CapturingConfigInfo.rst +FILE: ../../../third_party/libcxx/docs/DesignDocs/DebugMode.rst +FILE: ../../../third_party/libcxx/docs/DesignDocs/ExperimentalFeatures.rst +FILE: ../../../third_party/libcxx/docs/DesignDocs/ExtendedCXX03Support.rst +FILE: ../../../third_party/libcxx/docs/DesignDocs/FeatureTestMacros.rst +FILE: ../../../third_party/libcxx/docs/DesignDocs/FileTimeType.rst +FILE: ../../../third_party/libcxx/docs/DesignDocs/NoexceptPolicy.rst +FILE: ../../../third_party/libcxx/docs/DesignDocs/ThreadingSupportAPI.rst +FILE: ../../../third_party/libcxx/docs/DesignDocs/UniquePtrTrivialAbi.rst +FILE: ../../../third_party/libcxx/docs/DesignDocs/UnspecifiedBehaviorRandomization.rst +FILE: ../../../third_party/libcxx/docs/DesignDocs/VisibilityMacros.rst +FILE: ../../../third_party/libcxx/docs/FeatureTestMacroTable.rst +FILE: ../../../third_party/libcxx/docs/Helpers/Styles.rst +FILE: ../../../third_party/libcxx/docs/ReleaseNotes.rst +FILE: ../../../third_party/libcxx/docs/Status/Cxx14.rst +FILE: ../../../third_party/libcxx/docs/Status/Cxx14Issues.csv +FILE: ../../../third_party/libcxx/docs/Status/Cxx14Papers.csv +FILE: ../../../third_party/libcxx/docs/Status/Cxx17.rst +FILE: ../../../third_party/libcxx/docs/Status/Cxx17Issues.csv +FILE: ../../../third_party/libcxx/docs/Status/Cxx17Papers.csv +FILE: ../../../third_party/libcxx/docs/Status/Cxx20.rst +FILE: ../../../third_party/libcxx/docs/Status/Cxx20Issues.csv +FILE: ../../../third_party/libcxx/docs/Status/Cxx20Papers.csv +FILE: ../../../third_party/libcxx/docs/Status/Cxx2b.rst +FILE: ../../../third_party/libcxx/docs/Status/Cxx2bIssues.csv +FILE: ../../../third_party/libcxx/docs/Status/Cxx2bPapers.csv +FILE: ../../../third_party/libcxx/docs/Status/Format.rst +FILE: ../../../third_party/libcxx/docs/Status/FormatIssues.csv +FILE: ../../../third_party/libcxx/docs/Status/FormatPaper.csv +FILE: ../../../third_party/libcxx/docs/Status/Ranges.rst +FILE: ../../../third_party/libcxx/docs/Status/RangesAlgorithms.csv +FILE: ../../../third_party/libcxx/docs/Status/RangesIssues.csv +FILE: ../../../third_party/libcxx/docs/Status/RangesPaper.csv +FILE: ../../../third_party/libcxx/docs/Status/Spaceship.rst +FILE: ../../../third_party/libcxx/docs/Status/SpaceshipPapers.csv +FILE: ../../../third_party/libcxx/docs/Status/SpaceshipProjects.csv +FILE: ../../../third_party/libcxx/docs/Status/Zip.rst +FILE: ../../../third_party/libcxx/docs/Status/ZipProjects.csv +FILE: ../../../third_party/libcxx/docs/TestingLibcxx.rst +FILE: ../../../third_party/libcxx/docs/UsingLibcxx.rst +FILE: ../../../third_party/libcxx/docs/index.rst +FILE: ../../../third_party/libcxx/include/module.modulemap.in +FILE: ../../../third_party/libcxx/lib/abi/arm64-apple-darwin.libcxxabi.v1.stable.exceptions.nonew.debug.incomplete.abilist +FILE: ../../../third_party/libcxx/lib/abi/arm64-apple-darwin.libcxxabi.v1.stable.exceptions.nonew.nodebug.noincomplete.abilist +FILE: ../../../third_party/libcxx/lib/abi/powerpc-ibm-aix.libcxxabi.v1.stable.exceptions.nonew.debug.incomplete.abilist +FILE: ../../../third_party/libcxx/lib/abi/powerpc64-ibm-aix.libcxxabi.v1.stable.exceptions.nonew.debug.incomplete.abilist +FILE: ../../../third_party/libcxx/lib/abi/x86_64-apple-darwin.libcxxabi.v1.stable.exceptions.nonew.debug.incomplete.abilist +FILE: ../../../third_party/libcxx/lib/abi/x86_64-apple-darwin.libcxxabi.v1.stable.exceptions.nonew.nodebug.noincomplete.abilist +FILE: ../../../third_party/libcxx/lib/abi/x86_64-unknown-linux-gnu.libcxxabi.v1.stable.exceptions.nonew.debug.incomplete.abilist +FILE: ../../../third_party/libcxx/lib/abi/x86_64-unknown-linux-gnu.libcxxabi.v1.stable.exceptions.nonew.debug.noincomplete.abilist +FILE: ../../../third_party/libcxx/lib/abi/x86_64-unknown-linux-gnu.libcxxabi.v1.stable.exceptions.nonew.nodebug.incomplete.abilist +FILE: ../../../third_party/libcxx/lib/abi/x86_64-unknown-linux-gnu.libcxxabi.v1.stable.noexceptions.nonew.debug.incomplete.abilist +FILE: ../../../third_party/libcxx/lib/libc++abi.exp +FILE: ../../../third_party/libcxx/lib/libc++unexp.exp +FILE: ../../../third_party/libcxx/lib/notweak.exp +FILE: ../../../third_party/libcxx/lib/weak.exp +FILE: ../../../third_party/libcxx/src/chrono_system_time_init.h +FILE: ../../../third_party/libcxx/src/experimental/memory_resource_init_helper.h +FILE: ../../../third_party/libcxx/src/iostream_init.h +FILE: ../../../third_party/libcxxabi/fuzz/cxa_demangle_fuzzer.cpp +FILE: ../../../third_party/libcxxabi/lib/exceptions.exp +FILE: ../../../third_party/libcxxabi/lib/itanium-base.exp +FILE: ../../../third_party/libcxxabi/lib/new-delete.exp +FILE: ../../../third_party/libcxxabi/lib/personality-sjlj.exp +FILE: ../../../third_party/libcxxabi/lib/personality-v0.exp ---------------------------------------------------------------------------------------------------- -Copyright (C) 1995-2003, 2010 Mark Adler -Copyright (C) 2017 ARM, Inc. +University of Illinois/NCSA +Open Source License -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +Copyright (c) 2009-2019 by the contributors listed in CREDITS.TXT -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +All rights reserved. -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. -==================================================================================================== +Developed by: -==================================================================================================== -LIBRARY: zlib -ORIGIN: ../../../third_party/zlib/contrib/optimizations/inflate.c + ../../../third_party/zlib/zlib.h -TYPE: LicenseType.zlib -FILE: ../../../third_party/zlib/contrib/optimizations/inflate.c -FILE: ../../../third_party/zlib/crc32.c -FILE: ../../../third_party/zlib/infback.c -FILE: ../../../third_party/zlib/inflate.c -FILE: ../../../third_party/zlib/inftrees.c ----------------------------------------------------------------------------------------------------- -Copyright (C) 1995-2022 Mark Adler + LLVM Team -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. + University of Illinois at Urbana-Champaign -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: + http://llvm.org -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. -==================================================================================================== +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal with +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: -==================================================================================================== -LIBRARY: zlib -ORIGIN: ../../../third_party/zlib/contrib/optimizations/insert_string.h + ../../../LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/zlib/contrib/optimizations/insert_string.h -FILE: ../../../third_party/zlib/google/compression_utils_portable.cc -FILE: ../../../third_party/zlib/google/compression_utils_portable.h ----------------------------------------------------------------------------------------------------- -Copyright 2019 The Chromium Authors. All rights reserved. + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimers. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimers in the + documentation and/or other materials provided with the distribution. - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. + * Neither the names of the LLVM Team, University of Illinois at + Urbana-Champaign, nor the names of its contributors may be used to + endorse or promote products derived from this Software without specific + prior written permission. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE +SOFTWARE. ==================================================================================================== ==================================================================================================== -LIBRARY: zlib -ORIGIN: ../../../third_party/zlib/crc_folding.c + ../../../third_party/zlib/zlib.h -TYPE: LicenseType.zlib -FILE: ../../../third_party/zlib/crc_folding.c +LIBRARY: libjpeg-turbo +ORIGIN: ../../../third_party/libjpeg-turbo/README.ijg +TYPE: LicenseType.ijg +FILE: ../../../third_party/libjpeg-turbo/cderror.h +FILE: ../../../third_party/libjpeg-turbo/cdjpeg.c +FILE: ../../../third_party/libjpeg-turbo/cdjpeg.h +FILE: ../../../third_party/libjpeg-turbo/cjpeg.c +FILE: ../../../third_party/libjpeg-turbo/djpeg.c +FILE: ../../../third_party/libjpeg-turbo/jaricom.c +FILE: ../../../third_party/libjpeg-turbo/jcapimin.c +FILE: ../../../third_party/libjpeg-turbo/jcapistd.c +FILE: ../../../third_party/libjpeg-turbo/jcarith.c +FILE: ../../../third_party/libjpeg-turbo/jccoefct.c +FILE: ../../../third_party/libjpeg-turbo/jccolext.c +FILE: ../../../third_party/libjpeg-turbo/jccolor.c +FILE: ../../../third_party/libjpeg-turbo/jcdctmgr.c +FILE: ../../../third_party/libjpeg-turbo/jchuff.c +FILE: ../../../third_party/libjpeg-turbo/jchuff.h +FILE: ../../../third_party/libjpeg-turbo/jcinit.c +FILE: ../../../third_party/libjpeg-turbo/jcmainct.c +FILE: ../../../third_party/libjpeg-turbo/jcmarker.c +FILE: ../../../third_party/libjpeg-turbo/jcmaster.c +FILE: ../../../third_party/libjpeg-turbo/jcomapi.c +FILE: ../../../third_party/libjpeg-turbo/jconfig.h +FILE: ../../../third_party/libjpeg-turbo/jconfig.h.in +FILE: ../../../third_party/libjpeg-turbo/jconfigint.h +FILE: ../../../third_party/libjpeg-turbo/jconfigint.h.in +FILE: ../../../third_party/libjpeg-turbo/jcparam.c +FILE: ../../../third_party/libjpeg-turbo/jcphuff.c +FILE: ../../../third_party/libjpeg-turbo/jcprepct.c +FILE: ../../../third_party/libjpeg-turbo/jcsample.c +FILE: ../../../third_party/libjpeg-turbo/jctrans.c +FILE: ../../../third_party/libjpeg-turbo/jdapimin.c +FILE: ../../../third_party/libjpeg-turbo/jdapistd.c +FILE: ../../../third_party/libjpeg-turbo/jdarith.c +FILE: ../../../third_party/libjpeg-turbo/jdatadst-tj.c +FILE: ../../../third_party/libjpeg-turbo/jdatadst.c +FILE: ../../../third_party/libjpeg-turbo/jdatasrc-tj.c +FILE: ../../../third_party/libjpeg-turbo/jdatasrc.c +FILE: ../../../third_party/libjpeg-turbo/jdcoefct.c +FILE: ../../../third_party/libjpeg-turbo/jdcoefct.h +FILE: ../../../third_party/libjpeg-turbo/jdcol565.c +FILE: ../../../third_party/libjpeg-turbo/jdcolext.c +FILE: ../../../third_party/libjpeg-turbo/jdcolor.c +FILE: ../../../third_party/libjpeg-turbo/jdct.h +FILE: ../../../third_party/libjpeg-turbo/jddctmgr.c +FILE: ../../../third_party/libjpeg-turbo/jdhuff.c +FILE: ../../../third_party/libjpeg-turbo/jdhuff.h +FILE: ../../../third_party/libjpeg-turbo/jdinput.c +FILE: ../../../third_party/libjpeg-turbo/jdmainct.c +FILE: ../../../third_party/libjpeg-turbo/jdmainct.h +FILE: ../../../third_party/libjpeg-turbo/jdmarker.c +FILE: ../../../third_party/libjpeg-turbo/jdmaster.c +FILE: ../../../third_party/libjpeg-turbo/jdmaster.h +FILE: ../../../third_party/libjpeg-turbo/jdmerge.c +FILE: ../../../third_party/libjpeg-turbo/jdmrg565.c +FILE: ../../../third_party/libjpeg-turbo/jdmrgext.c +FILE: ../../../third_party/libjpeg-turbo/jdphuff.c +FILE: ../../../third_party/libjpeg-turbo/jdpostct.c +FILE: ../../../third_party/libjpeg-turbo/jdsample.c +FILE: ../../../third_party/libjpeg-turbo/jdsample.h +FILE: ../../../third_party/libjpeg-turbo/jdtrans.c +FILE: ../../../third_party/libjpeg-turbo/jerror.c +FILE: ../../../third_party/libjpeg-turbo/jerror.h +FILE: ../../../third_party/libjpeg-turbo/jfdctflt.c +FILE: ../../../third_party/libjpeg-turbo/jfdctfst.c +FILE: ../../../third_party/libjpeg-turbo/jfdctint.c +FILE: ../../../third_party/libjpeg-turbo/jidctflt.c +FILE: ../../../third_party/libjpeg-turbo/jidctfst.c +FILE: ../../../third_party/libjpeg-turbo/jidctint.c +FILE: ../../../third_party/libjpeg-turbo/jidctred.c +FILE: ../../../third_party/libjpeg-turbo/jinclude.h +FILE: ../../../third_party/libjpeg-turbo/jmemmgr.c +FILE: ../../../third_party/libjpeg-turbo/jmemnobs.c +FILE: ../../../third_party/libjpeg-turbo/jmemsys.h +FILE: ../../../third_party/libjpeg-turbo/jmorecfg.h +FILE: ../../../third_party/libjpeg-turbo/jpeg_nbits_table.h +FILE: ../../../third_party/libjpeg-turbo/jpegcomp.h +FILE: ../../../third_party/libjpeg-turbo/jpegint.h +FILE: ../../../third_party/libjpeg-turbo/jpeglib.h +FILE: ../../../third_party/libjpeg-turbo/jpegtran.c +FILE: ../../../third_party/libjpeg-turbo/jquant1.c +FILE: ../../../third_party/libjpeg-turbo/jquant2.c +FILE: ../../../third_party/libjpeg-turbo/jstdhuff.c +FILE: ../../../third_party/libjpeg-turbo/jutils.c +FILE: ../../../third_party/libjpeg-turbo/jversion.h +FILE: ../../../third_party/libjpeg-turbo/libjpeg.map.in +FILE: ../../../third_party/libjpeg-turbo/rdbmp.c +FILE: ../../../third_party/libjpeg-turbo/rdcolmap.c +FILE: ../../../third_party/libjpeg-turbo/rdgif.c +FILE: ../../../third_party/libjpeg-turbo/rdjpgcom.c +FILE: ../../../third_party/libjpeg-turbo/rdppm.c +FILE: ../../../third_party/libjpeg-turbo/rdrle.c +FILE: ../../../third_party/libjpeg-turbo/rdswitch.c +FILE: ../../../third_party/libjpeg-turbo/rdtarga.c +FILE: ../../../third_party/libjpeg-turbo/simd/jcsample.h +FILE: ../../../third_party/libjpeg-turbo/simd/jpeg_nbits_table.inc +FILE: ../../../third_party/libjpeg-turbo/simd/jsimdcfg.inc +FILE: ../../../third_party/libjpeg-turbo/simd/jsimdcfg.inc.h +FILE: ../../../third_party/libjpeg-turbo/transupp.c +FILE: ../../../third_party/libjpeg-turbo/transupp.h +FILE: ../../../third_party/libjpeg-turbo/turbojpeg-mapfile +FILE: ../../../third_party/libjpeg-turbo/turbojpeg-mapfile.jni +FILE: ../../../third_party/libjpeg-turbo/wrbmp.c +FILE: ../../../third_party/libjpeg-turbo/wrgif.c +FILE: ../../../third_party/libjpeg-turbo/wrjpgcom.c +FILE: ../../../third_party/libjpeg-turbo/wrppm.c +FILE: ../../../third_party/libjpeg-turbo/wrppm.h +FILE: ../../../third_party/libjpeg-turbo/wrrle.c +FILE: ../../../third_party/libjpeg-turbo/wrtarga.c ---------------------------------------------------------------------------------------------------- -Copyright (C) 2013 Intel Corporation. All rights reserved. -Authors: - Wajdi Feghali - Jim Guilford - Vinodh Gopal - Erdinc Ozturk - Jim Kukunas +libjpeg-turbo note: This file has been modified by The libjpeg-turbo Project +to include only information relevant to libjpeg-turbo, to wordsmith certain +sections, and to remove impolitic language that existed in the libjpeg v8 +README. It is included only for reference. Please see README.md for +information specific to libjpeg-turbo. -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +The Independent JPEG Group's JPEG software +========================================== -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +This distribution contains a release of the Independent JPEG Group's free JPEG +software. You are welcome to redistribute this software and to use it for any +purpose, subject to the conditions under LEGAL ISSUES, below. -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. -==================================================================================================== +This software is the work of Tom Lane, Guido Vollbeding, Philip Gladstone, +Bill Allombert, Jim Boucher, Lee Crocker, Bob Friesenhahn, Ben Jackson, +Julian Minguillon, Luis Ortiz, George Phillips, Davide Rossi, Ge' Weijers, +and other members of the Independent JPEG Group. -==================================================================================================== -LIBRARY: zlib -ORIGIN: ../../../third_party/zlib/deflate.h + ../../../third_party/zlib/zlib.h -TYPE: LicenseType.zlib -FILE: ../../../third_party/zlib/deflate.h ----------------------------------------------------------------------------------------------------- -Copyright (C) 1995-2018 Jean-loup Gailly +IJG is not affiliated with the ISO/IEC JTC1/SC29/WG1 standards committee +(also known as JPEG, together with ITU-T SG16). -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +DOCUMENTATION ROADMAP +===================== -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +This file contains the following sections: -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. -==================================================================================================== +OVERVIEW General description of JPEG and the IJG software. +LEGAL ISSUES Copyright, lack of warranty, terms of distribution. +REFERENCES Where to learn more about JPEG. +ARCHIVE LOCATIONS Where to find newer versions of this software. +FILE FORMAT WARS Software *not* to get. +TO DO Plans for future IJG releases. -==================================================================================================== -LIBRARY: zlib -ORIGIN: ../../../third_party/zlib/google/redact.h + ../../../LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/zlib/google/redact.h ----------------------------------------------------------------------------------------------------- -Copyright (c) 2022 The Chromium Authors. All rights reserved. +Other documentation files in the distribution are: -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +User documentation: + usage.txt Usage instructions for cjpeg, djpeg, jpegtran, + rdjpgcom, and wrjpgcom. + *.1 Unix-style man pages for programs (same info as usage.txt). + wizard.txt Advanced usage instructions for JPEG wizards only. + change.log Version-to-version change highlights. +Programmer and internal documentation: + libjpeg.txt How to use the JPEG library in your own programs. + example.c Sample code for calling the JPEG library. + structure.txt Overview of the JPEG library's internal structure. + coderules.txt Coding style rules --- please read if you contribute code. - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. +Please read at least usage.txt. Some information can also be found in the JPEG +FAQ (Frequently Asked Questions) article. See ARCHIVE LOCATIONS below to find +out where to obtain the FAQ article. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== +If you want to understand how the JPEG code works, we suggest reading one or +more of the REFERENCES, then looking at the documentation files (in roughly +the order listed) before diving into the code. -==================================================================================================== -LIBRARY: zlib -ORIGIN: ../../../third_party/zlib/google/zip.cc + ../../../LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/zlib/google/zip.cc -FILE: ../../../third_party/zlib/google/zip_reader.cc ----------------------------------------------------------------------------------------------------- -Copyright (c) 2012 The Chromium Authors. All rights reserved. +OVERVIEW +======== -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +This package contains C software to implement JPEG image encoding, decoding, +and transcoding. JPEG (pronounced "jay-peg") is a standardized compression +method for full-color and grayscale images. JPEG's strong suit is compressing +photographic images or other types of images that have smooth color and +brightness transitions between neighboring pixels. Images with sharp lines or +other abrupt features may not compress well with JPEG, and a higher JPEG +quality may have to be used to avoid visible compression artifacts with such +images. - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. +JPEG is lossy, meaning that the output pixels are not necessarily identical to +the input pixels. However, on photographic content and other "smooth" images, +very good compression ratios can be obtained with no visible compression +artifacts, and extremely high compression ratios are possible if you are +willing to sacrifice image quality (by reducing the "quality" setting in the +compressor.) -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== +This software implements JPEG baseline, extended-sequential, and progressive +compression processes. Provision is made for supporting all variants of these +processes, although some uncommon parameter settings aren't implemented yet. +We have made no provision for supporting the hierarchical or lossless +processes defined in the standard. -==================================================================================================== -LIBRARY: zlib -ORIGIN: ../../../third_party/zlib/gzclose.c + ../../../third_party/zlib/zlib.h -TYPE: LicenseType.zlib -FILE: ../../../third_party/zlib/gzclose.c ----------------------------------------------------------------------------------------------------- -Copyright (C) 2004, 2010 Mark Adler +We provide a set of library routines for reading and writing JPEG image files, +plus two sample applications "cjpeg" and "djpeg", which use the library to +perform conversion between JPEG and some other popular image file formats. +The library is intended to be reused in other applications. -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +In order to support file conversion and viewing software, we have included +considerable functionality beyond the bare JPEG coding/decoding capability; +for example, the color quantization modules are not strictly part of JPEG +decoding, but they are essential for output to colormapped file formats or +colormapped displays. These extra functions can be compiled out of the +library if not required for a particular application. -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +We have also included "jpegtran", a utility for lossless transcoding between +different JPEG processes, and "rdjpgcom" and "wrjpgcom", two simple +applications for inserting and extracting textual comments in JFIF files. -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. -==================================================================================================== +The emphasis in designing this software has been on achieving portability and +flexibility, while also making it fast enough to be useful. In particular, +the software is not intended to be read as a tutorial on JPEG. (See the +REFERENCES section for introductory material.) Rather, it is intended to +be reliable, portable, industrial-strength code. We do not claim to have +achieved that goal in every aspect of the software, but we strive for it. -==================================================================================================== -LIBRARY: zlib -ORIGIN: ../../../third_party/zlib/gzguts.h + ../../../third_party/zlib/zlib.h -TYPE: LicenseType.zlib -FILE: ../../../third_party/zlib/gzguts.h -FILE: ../../../third_party/zlib/gzlib.c -FILE: ../../../third_party/zlib/gzwrite.c ----------------------------------------------------------------------------------------------------- -Copyright (C) 2004-2019 Mark Adler +We welcome the use of this software as a component of commercial products. +No royalty is required, but we do ask for an acknowledgement in product +documentation, as described under LEGAL ISSUES. -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +LEGAL ISSUES +============ -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +In plain English: -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. -==================================================================================================== +1. We don't promise that this software works. (But if you find any bugs, + please let us know!) +2. You can use this software for whatever you want. You don't have to pay us. +3. You may not pretend that you wrote this software. If you use it in a + program, you must acknowledge somewhere in your documentation that + you've used the IJG code. -==================================================================================================== -LIBRARY: zlib -ORIGIN: ../../../third_party/zlib/gzread.c + ../../../third_party/zlib/zlib.h -TYPE: LicenseType.zlib -FILE: ../../../third_party/zlib/gzread.c ----------------------------------------------------------------------------------------------------- -Copyright (C) 2004-2017 Mark Adler +In legalese: -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +The authors make NO WARRANTY or representation, either express or implied, +with respect to this software, its quality, accuracy, merchantability, or +fitness for a particular purpose. This software is provided "AS IS", and you, +its user, assume the entire risk as to its quality and accuracy. -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +This software is copyright (C) 1991-2016, Thomas G. Lane, Guido Vollbeding. +All Rights Reserved except as specified below. -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. -==================================================================================================== +Permission is hereby granted to use, copy, modify, and distribute this +software (or portions thereof) for any purpose, without fee, subject to these +conditions: +(1) If any part of the source code for this software is distributed, then this +README file must be included, with this copyright and no-warranty notice +unaltered; and any additions, deletions, or changes to the original files +must be clearly indicated in accompanying documentation. +(2) If only executable code is distributed, then the accompanying +documentation must state that "this software is based in part on the work of +the Independent JPEG Group". +(3) Permission for use of this software is granted only if the user accepts +full responsibility for any undesirable consequences; the authors accept +NO LIABILITY for damages of any kind. + +These conditions apply to any software derived from or based on the IJG code, +not just to the unmodified library. If you use our work, you ought to +acknowledge us. -==================================================================================================== -LIBRARY: zlib -ORIGIN: ../../../third_party/zlib/inflate.h + ../../../third_party/zlib/zlib.h -TYPE: LicenseType.zlib -FILE: ../../../third_party/zlib/inflate.h ----------------------------------------------------------------------------------------------------- -Copyright (C) 1995-2019 Mark Adler +Permission is NOT granted for the use of any IJG author's name or company name +in advertising or publicity relating to this software or products derived from +it. This software may be referred to only as "the Independent JPEG Group's +software". -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +We specifically permit and encourage the use of this software as the basis of +commercial products, provided that all warranty or liability claims are +assumed by the product vendor. -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +The Unix configuration script "configure" was produced with GNU Autoconf. +It is copyright by the Free Software Foundation but is freely distributable. +The same holds for its supporting scripts (config.guess, config.sub, +ltmain.sh). Another support script, install-sh, is copyright by X Consortium +but is also freely distributable. -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. -==================================================================================================== +The IJG distribution formerly included code to read and write GIF files. +To avoid entanglement with the Unisys LZW patent (now expired), GIF reading +support has been removed altogether, and the GIF writer has been simplified +to produce "uncompressed GIFs". This technique does not use the LZW +algorithm; the resulting GIF files are larger than usual, but are readable +by all standard GIF decoders. -==================================================================================================== -LIBRARY: zlib -ORIGIN: ../../../third_party/zlib/slide_hash_simd.h + ../../../LICENSE -TYPE: LicenseType.bsd -FILE: ../../../third_party/zlib/slide_hash_simd.h ----------------------------------------------------------------------------------------------------- -Copyright 2022 The Chromium Authors. All rights reserved. +We are required to state that + "The Graphics Interchange Format(c) is the Copyright property of + CompuServe Incorporated. GIF(sm) is a Service Mark property of + CompuServe Incorporated." -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +REFERENCES +========== - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. +We recommend reading one or more of these references before trying to +understand the innards of the JPEG software. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==================================================================================================== +The best short technical introduction to the JPEG compression algorithm is + Wallace, Gregory K. "The JPEG Still Picture Compression Standard", + Communications of the ACM, April 1991 (vol. 34 no. 4), pp. 30-44. +(Adjacent articles in that issue discuss MPEG motion picture compression, +applications of JPEG, and related topics.) If you don't have the CACM issue +handy, a PDF file containing a revised version of Wallace's article is +available at http://www.ijg.org/files/Wallace.JPEG.pdf. The file (actually +a preprint for an article that appeared in IEEE Trans. Consumer Electronics) +omits the sample images that appeared in CACM, but it includes corrections +and some added material. Note: the Wallace article is copyright ACM and IEEE, +and it may not be used for commercial purposes. -==================================================================================================== -LIBRARY: zlib -ORIGIN: ../../../third_party/zlib/trees.c + ../../../third_party/zlib/zlib.h -TYPE: LicenseType.zlib -FILE: ../../../third_party/zlib/trees.c ----------------------------------------------------------------------------------------------------- -Copyright (C) 1995-2021 Jean-loup Gailly -detect_data_type() function provided freely by Cosmin Truta, 2006 +A somewhat less technical, more leisurely introduction to JPEG can be found in +"The Data Compression Book" by Mark Nelson and Jean-loup Gailly, published by +M&T Books (New York), 2nd ed. 1996, ISBN 1-55851-434-1. This book provides +good explanations and example C code for a multitude of compression methods +including JPEG. It is an excellent source if you are comfortable reading C +code but don't know much about data compression in general. The book's JPEG +sample code is far from industrial-strength, but when you are ready to look +at a full implementation, you've got one here... -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +The best currently available description of JPEG is the textbook "JPEG Still +Image Data Compression Standard" by William B. Pennebaker and Joan L. +Mitchell, published by Van Nostrand Reinhold, 1993, ISBN 0-442-01272-1. +Price US$59.95, 638 pp. The book includes the complete text of the ISO JPEG +standards (DIS 10918-1 and draft DIS 10918-2). -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +The original JPEG standard is divided into two parts, Part 1 being the actual +specification, while Part 2 covers compliance testing methods. Part 1 is +titled "Digital Compression and Coding of Continuous-tone Still Images, +Part 1: Requirements and guidelines" and has document numbers ISO/IEC IS +10918-1, ITU-T T.81. Part 2 is titled "Digital Compression and Coding of +Continuous-tone Still Images, Part 2: Compliance testing" and has document +numbers ISO/IEC IS 10918-2, ITU-T T.83. -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. -==================================================================================================== +The JPEG standard does not specify all details of an interchangeable file +format. For the omitted details we follow the "JFIF" conventions, revision +1.02. JFIF 1.02 has been adopted as an Ecma International Technical Report +and thus received a formal publication status. It is available as a free +download in PDF format from +http://www.ecma-international.org/publications/techreports/E-TR-098.htm. +A PostScript version of the JFIF document is available at +http://www.ijg.org/files/jfif.ps.gz. There is also a plain text version at +http://www.ijg.org/files/jfif.txt.gz, but it is missing the figures. -==================================================================================================== -LIBRARY: zlib -ORIGIN: ../../../third_party/zlib/uncompr.c + ../../../third_party/zlib/zlib.h -TYPE: LicenseType.zlib -FILE: ../../../third_party/zlib/uncompr.c ----------------------------------------------------------------------------------------------------- -Copyright (C) 1995-2003, 2010, 2014, 2016 Jean-loup Gailly, Mark Adler +The TIFF 6.0 file format specification can be obtained by FTP from +ftp://ftp.sgi.com/graphics/tiff/TIFF6.ps.gz. The JPEG incorporation scheme +found in the TIFF 6.0 spec of 3-June-92 has a number of serious problems. +IJG does not recommend use of the TIFF 6.0 design (TIFF Compression tag 6). +Instead, we recommend the JPEG design proposed by TIFF Technical Note #2 +(Compression tag 7). Copies of this Note can be obtained from +http://www.ijg.org/files/. It is expected that the next revision +of the TIFF spec will replace the 6.0 JPEG design with the Note's design. +Although IJG's own code does not support TIFF/JPEG, the free libtiff library +uses our library to implement TIFF/JPEG per the Note. -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +ARCHIVE LOCATIONS +================= -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +The "official" archive site for this software is www.ijg.org. +The most recent released version can always be found there in +directory "files". -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. -==================================================================================================== +The JPEG FAQ (Frequently Asked Questions) article is a source of some +general information about JPEG. +It is available on the World Wide Web at http://www.faqs.org/faqs/jpeg-faq +and other news.answers archive sites, including the official news.answers +archive at rtfm.mit.edu: ftp://rtfm.mit.edu/pub/usenet/news.answers/jpeg-faq/. +If you don't have Web or FTP access, send e-mail to mail-server@rtfm.mit.edu +with body + send usenet/news.answers/jpeg-faq/part1 + send usenet/news.answers/jpeg-faq/part2 -==================================================================================================== -LIBRARY: zlib -ORIGIN: ../../../third_party/zlib/zlib.h -TYPE: LicenseType.zlib -FILE: ../../../third_party/zlib/deflate.c -FILE: ../../../third_party/zlib/zlib.h ----------------------------------------------------------------------------------------------------- -Copyright (C) 1995-2022 Jean-loup Gailly and Mark Adler +FILE FORMAT WARS +================ -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +The ISO/IEC JTC1/SC29/WG1 standards committee (also known as JPEG, together +with ITU-T SG16) currently promotes different formats containing the name +"JPEG" which are incompatible with original DCT-based JPEG. IJG therefore does +not support these formats (see REFERENCES). Indeed, one of the original +reasons for developing this free software was to help force convergence on +common, interoperable format standards for JPEG files. +Don't use an incompatible file format! +(In any case, our decoder will remain capable of reading existing JPEG +image files indefinitely.) -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +TO DO +===== -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. +Please send bug reports, offers of help, etc. to jpeg-info@jpegclub.org. ==================================================================================================== ==================================================================================================== LIBRARY: zlib -ORIGIN: ../../../third_party/zlib/zutil.h + ../../../third_party/zlib/zlib.h +ORIGIN: ../../../third_party/zlib/LICENSE TYPE: LicenseType.zlib -FILE: ../../../third_party/zlib/zutil.h +FILE: ../../../third_party/zlib/DIR_METADATA +FILE: ../../../third_party/zlib/contrib/minizip/ChangeLogUnzip +FILE: ../../../third_party/zlib/contrib/minizip/crypt.h +FILE: ../../../third_party/zlib/contrib/minizip/ioapi.c +FILE: ../../../third_party/zlib/contrib/minizip/ioapi.h +FILE: ../../../third_party/zlib/contrib/minizip/iowin32.c +FILE: ../../../third_party/zlib/contrib/minizip/iowin32.h +FILE: ../../../third_party/zlib/contrib/minizip/miniunz.c +FILE: ../../../third_party/zlib/contrib/minizip/minizip.c +FILE: ../../../third_party/zlib/contrib/minizip/mztools.c +FILE: ../../../third_party/zlib/contrib/minizip/mztools.h +FILE: ../../../third_party/zlib/contrib/minizip/unzip.c +FILE: ../../../third_party/zlib/contrib/minizip/zip.c +FILE: ../../../third_party/zlib/crc32.h +FILE: ../../../third_party/zlib/google/DEPS +FILE: ../../../third_party/zlib/inffixed.h +FILE: ../../../third_party/zlib/patches/0000-build.patch +FILE: ../../../third_party/zlib/patches/0001-simd.patch +FILE: ../../../third_party/zlib/patches/0002-uninitializedcheck.patch +FILE: ../../../third_party/zlib/patches/0003-uninitializedjump.patch +FILE: ../../../third_party/zlib/patches/0004-fix-uwp.patch +FILE: ../../../third_party/zlib/patches/0005-infcover-gtest.patch +FILE: ../../../third_party/zlib/patches/0006-fix-check_match.patch +FILE: ../../../third_party/zlib/patches/0007-zero-init-deflate-window.patch +FILE: ../../../third_party/zlib/patches/0008-minizip-zip-unzip-tools.patch +FILE: ../../../third_party/zlib/patches/0009-infcover-oob.patch +FILE: ../../../third_party/zlib/trees.h ---------------------------------------------------------------------------------------------------- -Copyright (C) 1995-2022 Jean-loup Gailly, Mark Adler +version 1.2.12, March 27th, 2022 + +Copyright (C) 1995-2022 Jean-loup Gailly and Mark Adler This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages diff --git a/ci/licenses_golden/tool_signature b/ci/licenses_golden/tool_signature index 1e798f4665ec3..30b974e105733 100644 --- a/ci/licenses_golden/tool_signature +++ b/ci/licenses_golden/tool_signature @@ -1,2 +1,2 @@ -Signature: eeb0c647625047671a862bb877890a5f +Signature: 960c777bbc4aed25629fa86a8d7bf10b diff --git a/ci/lint.sh b/ci/lint.sh index d42defb51f990..00e31b85259b2 100755 --- a/ci/lint.sh +++ b/ci/lint.sh @@ -32,22 +32,32 @@ SRC_DIR="$(cd "$SCRIPT_DIR/../.."; pwd -P)" FLUTTER_DIR="$(cd "$SCRIPT_DIR/.."; pwd -P)" DART_BIN="${SRC_DIR}/third_party/dart/tools/sdks/dart-sdk/bin" DART="${DART_BIN}/dart" +# TODO(https://github.com/flutter/flutter/issues/113848): Migrate all platforms +# to have this as an error. +MAC_HOST_WARNINGS_AS_ERRORS="performance-move-const-arg,performance-unnecessary-value-param" COMPILE_COMMANDS="$SRC_DIR/out/host_debug/compile_commands.json" if [ ! -f "$COMPILE_COMMANDS" ]; then (cd "$SRC_DIR"; ./flutter/tools/gn) fi +echo "$(date +%T) Running clang_tidy" + cd "$SCRIPT_DIR" "$DART" \ --disable-dart-dev \ "$SRC_DIR/flutter/tools/clang_tidy/bin/main.dart" \ --src-dir="$SRC_DIR" \ + --mac-host-warnings-as-errors="$MAC_HOST_WARNINGS_AS_ERRORS" \ "$@" +echo "$(date +%T) Running pylint" + cd "$FLUTTER_DIR" pylint-2.7 --rcfile=.pylintrc \ "build/" \ "ci/" \ "impeller/" \ "tools/gn" + +echo "$(date +%T) Linting complete" diff --git a/common/config.gni b/common/config.gni index 9354bfb784ad5..affe61af22dad 100644 --- a/common/config.gni +++ b/common/config.gni @@ -22,6 +22,9 @@ declare_args() { # Whether to use a prebuilt Dart SDK instead of building one. flutter_prebuilt_dart_sdk = false + + # Whether to build the flutter web sdk outline/DDC artifacts. + flutter_build_web_sdk = false } # feature_defines_list --------------------------------------------------------- @@ -114,7 +117,7 @@ if (flutter_prebuilt_dart_sdk) { # There is no prebuilt Dart SDK targeting Fuchsia, but we also don't need # one, so even when the build is targeting Fuchsia, use the prebuilt # Dart SDK for the host. - if (current_toolchain == host_toolchain || is_fuchsia) { + if (current_toolchain == host_toolchain || is_fuchsia || is_wasm) { prebuilt_dart_sdk = host_prebuilt_dart_sdk prebuilt_dart_sdk_config = _host_prebuilt_dart_sdk_config } else { diff --git a/common/graphics/BUILD.gn b/common/graphics/BUILD.gn index 772e8711f4a0d..480aefb234342 100644 --- a/common/graphics/BUILD.gn +++ b/common/graphics/BUILD.gn @@ -21,6 +21,7 @@ source_set("graphics") { # additions here could result in added app sizes across embeddings. deps = [ "//flutter/assets", + "//flutter/display_list", "//flutter/fml", "//flutter/shell/version:version", "//third_party/boringssl", diff --git a/common/graphics/texture.h b/common/graphics/texture.h index 0edb84526f994..16a97658d9fed 100644 --- a/common/graphics/texture.h +++ b/common/graphics/texture.h @@ -7,6 +7,8 @@ #include +#include "flutter/display_list/display_list_builder.h" +#include "flutter/display_list/display_list_paint.h" #include "flutter/fml/macros.h" #include "flutter/fml/synchronization/waitable_event.h" #include "third_party/skia/include/core/SkCanvas.h" @@ -14,6 +16,10 @@ class GrDirectContext; +namespace impeller { +class AiksContext; +}; + namespace flutter { class ContextListener { @@ -33,16 +39,23 @@ class ContextListener { class Texture : public ContextListener { public: + struct PaintContext { + SkCanvas* canvas = nullptr; + DisplayListBuilder* builder = nullptr; + GrDirectContext* gr_context = nullptr; + impeller::AiksContext* aiks_context = nullptr; + const SkPaint* sk_paint = nullptr; + const DlPaint* dl_paint = nullptr; + }; + explicit Texture(int64_t id); // Called from UI or raster thread. virtual ~Texture(); // Called from raster thread. // Called from raster thread. - virtual void Paint(SkCanvas& canvas, + virtual void Paint(PaintContext& context, const SkRect& bounds, bool freeze, - GrDirectContext* context, - const SkSamplingOptions& sampling, - const SkPaint* paint = nullptr) = 0; + const SkSamplingOptions& sampling) = 0; // Called on raster thread. virtual void MarkNewFrameAvailable() = 0; diff --git a/display_list/BUILD.gn b/display_list/BUILD.gn index 077209220e69b..fa21c52820405 100644 --- a/display_list/BUILD.gn +++ b/display_list/BUILD.gn @@ -53,6 +53,8 @@ source_set("display_list") { "display_list_path_effect.h", "display_list_rtree.cc", "display_list_rtree.h", + "display_list_runtime_effect.cc", + "display_list_runtime_effect.h", "display_list_sampling_options.h", "display_list_tile_mode.h", "display_list_utils.cc", @@ -64,6 +66,7 @@ source_set("display_list") { public_deps = [ "//flutter/fml", + "//flutter/impeller/runtime_stage", "//third_party/skia", ] } diff --git a/display_list/display_list.cc b/display_list/display_list.cc index 264ca3fe75f98..202333459656f 100644 --- a/display_list/display_list.cc +++ b/display_list/display_list.cc @@ -75,7 +75,6 @@ void DisplayList::ComputeRTree() { void DisplayList::Dispatch(Dispatcher& dispatcher, uint8_t* ptr, uint8_t* end) const { - TRACE_EVENT0("flutter", "DisplayList::Dispatch"); while (ptr < end) { auto op = reinterpret_cast(ptr); ptr += op->size; diff --git a/display_list/display_list.h b/display_list/display_list.h index 8eab4494ef9b6..e30968a1f64a5 100644 --- a/display_list/display_list.h +++ b/display_list/display_list.h @@ -283,7 +283,10 @@ class DisplayList : public SkRefCnt { const SkRect& cull_rect, bool can_apply_group_opacity); - std::unique_ptr> storage_; + struct SkFreeDeleter { + void operator()(uint8_t* p) { sk_free(p); } + }; + std::unique_ptr storage_; size_t byte_count_; unsigned int op_count_; diff --git a/display_list/display_list_builder.cc b/display_list/display_list_builder.cc index c9de7c4f2c3a4..ccef2769aeaaf 100644 --- a/display_list/display_list_builder.cc +++ b/display_list/display_list_builder.cc @@ -359,10 +359,9 @@ void DisplayListBuilder::setAttributesFromDlPaint( if (flags.applies_image_filter()) { setImageFilter(paint.getImageFilter().get()); } - // Waiting for https://github.com/flutter/engine/pull/32159 - // if (flags.applies_path_effect()) { - // setPathEffect(sk_ref_sp(paint.getPathEffect())); - // } + if (flags.applies_path_effect()) { + setPathEffect(paint.getPathEffect().get()); + } if (flags.applies_mask_filter()) { setMaskFilter(paint.getMaskFilter().get()); } @@ -864,7 +863,7 @@ void DisplayListBuilder::drawPoints(SkCanvas::PointMode mode, } void DisplayListBuilder::drawSkVertices(const sk_sp vertices, SkBlendMode mode) { - Push(0, 1, std::move(vertices), mode); + Push(0, 1, vertices, mode); // DrawVertices applies its colors to the paint so we have no way // of controlling opacity using the current paint attributes. // Although, examination of the |mode| might find some predictable @@ -893,8 +892,8 @@ void DisplayListBuilder::drawImage(const sk_sp image, DlImageSampling sampling, bool render_with_attributes) { render_with_attributes - ? Push(0, 1, std::move(image), point, sampling) - : Push(0, 1, std::move(image), point, sampling); + ? Push(0, 1, image, point, sampling) + : Push(0, 1, image, point, sampling); CheckLayerOpacityCompatibility(render_with_attributes); } void DisplayListBuilder::drawImage(const sk_sp& image, @@ -915,8 +914,8 @@ void DisplayListBuilder::drawImageRect(const sk_sp image, DlImageSampling sampling, bool render_with_attributes, SkCanvas::SrcRectConstraint constraint) { - Push(0, 1, std::move(image), src, dst, sampling, - render_with_attributes, constraint); + Push(0, 1, image, src, dst, sampling, render_with_attributes, + constraint); CheckLayerOpacityCompatibility(render_with_attributes); } void DisplayListBuilder::drawImageRect(const sk_sp& image, @@ -939,9 +938,8 @@ void DisplayListBuilder::drawImageNine(const sk_sp image, DlFilterMode filter, bool render_with_attributes) { render_with_attributes - ? Push(0, 1, std::move(image), center, dst, - filter) - : Push(0, 1, std::move(image), center, dst, filter); + ? Push(0, 1, image, center, dst, filter) + : Push(0, 1, image, center, dst, filter); CheckLayerOpacityCompatibility(render_with_attributes); } void DisplayListBuilder::drawImageNine(const sk_sp& image, @@ -972,9 +970,9 @@ void DisplayListBuilder::drawImageLattice(const sk_sp image, (x_div_count + y_div_count) * sizeof(int) + cell_count * (sizeof(SkColor) + sizeof(SkCanvas::Lattice::RectType)); SkIRect src = lattice.fBounds ? *lattice.fBounds : image->bounds(); - void* pod = this->Push( - bytes, 1, std::move(image), x_div_count, y_div_count, cell_count, src, - dst, filter, render_with_attributes); + void* pod = this->Push(bytes, 1, image, x_div_count, + y_div_count, cell_count, src, dst, + filter, render_with_attributes); CopyV(pod, lattice.fXDivs, x_div_count, lattice.fYDivs, y_div_count, lattice.fColors, cell_count, lattice.fRectTypes, cell_count); CheckLayerOpacityCompatibility(render_with_attributes); @@ -993,22 +991,22 @@ void DisplayListBuilder::drawAtlas(const sk_sp atlas, if (colors != nullptr) { bytes += count * sizeof(DlColor); if (cull_rect != nullptr) { - data_ptr = Push(bytes, 1, std::move(atlas), count, - mode, sampling, true, *cull_rect, - render_with_attributes); + data_ptr = + Push(bytes, 1, atlas, count, mode, sampling, true, + *cull_rect, render_with_attributes); } else { - data_ptr = Push(bytes, 1, std::move(atlas), count, mode, - sampling, true, render_with_attributes); + data_ptr = Push(bytes, 1, atlas, count, mode, sampling, true, + render_with_attributes); } CopyV(data_ptr, xform, count, tex, count, colors, count); } else { if (cull_rect != nullptr) { - data_ptr = Push(bytes, 1, std::move(atlas), count, - mode, sampling, false, *cull_rect, - render_with_attributes); + data_ptr = + Push(bytes, 1, atlas, count, mode, sampling, false, + *cull_rect, render_with_attributes); } else { - data_ptr = Push(bytes, 1, std::move(atlas), count, mode, - sampling, false, render_with_attributes); + data_ptr = Push(bytes, 1, atlas, count, mode, sampling, + false, render_with_attributes); } CopyV(data_ptr, xform, count, tex, count); } @@ -1070,7 +1068,7 @@ void DisplayListBuilder::drawDisplayList( void DisplayListBuilder::drawTextBlob(const sk_sp blob, SkScalar x, SkScalar y) { - Push(0, 1, std::move(blob), x, y); + Push(0, 1, blob, x, y); CheckLayerOpacityCompatibility(); } void DisplayListBuilder::drawShadow(const SkPath& path, diff --git a/display_list/display_list_color_source.cc b/display_list/display_list_color_source.cc index 4348abbe8b5cf..0344de312161b 100644 --- a/display_list/display_list_color_source.cc +++ b/display_list/display_list_color_source.cc @@ -3,8 +3,10 @@ // found in the LICENSE file. #include "flutter/display_list/display_list_color_source.h" -#include "display_list_color_source.h" + +#include "flutter/display_list/display_list_runtime_effect.h" #include "flutter/display_list/display_list_sampling_options.h" +#include "flutter/fml/logging.h" namespace flutter { @@ -130,9 +132,10 @@ std::shared_ptr DlColorSource::MakeSweep( } std::shared_ptr DlColorSource::MakeRuntimeEffect( - sk_sp runtime_effect, + sk_sp runtime_effect, std::vector> samplers, - sk_sp uniform_data) { + std::shared_ptr> uniform_data) { + FML_DCHECK(uniform_data != nullptr); return std::make_shared( std::move(runtime_effect), std::move(samplers), std::move(uniform_data)); } diff --git a/display_list/display_list_color_source.h b/display_list/display_list_color_source.h index d38217bd25f59..95892f41c053d 100644 --- a/display_list/display_list_color_source.h +++ b/display_list/display_list_color_source.h @@ -5,10 +5,15 @@ #ifndef FLUTTER_DISPLAY_LIST_DISPLAY_LIST_COLOR_SOURCE_H_ #define FLUTTER_DISPLAY_LIST_DISPLAY_LIST_COLOR_SOURCE_H_ +#include +#include +#include + #include "flutter/display_list/display_list.h" #include "flutter/display_list/display_list_attributes.h" #include "flutter/display_list/display_list_color.h" #include "flutter/display_list/display_list_image.h" +#include "flutter/display_list/display_list_runtime_effect.h" #include "flutter/display_list/display_list_sampling_options.h" #include "flutter/display_list/display_list_tile_mode.h" #include "flutter/display_list/types.h" @@ -108,9 +113,9 @@ class DlColorSource const SkMatrix* matrix = nullptr); static std::shared_ptr MakeRuntimeEffect( - sk_sp runtime_effect, + sk_sp runtime_effect, std::vector> samplers, - sk_sp uniform_data); + std::shared_ptr> uniform_data); virtual bool is_opaque() const = 0; @@ -658,9 +663,9 @@ class DlSweepGradientColorSource final : public DlGradientColorSourceBase { class DlRuntimeEffectColorSource final : public DlColorSource { public: DlRuntimeEffectColorSource( - sk_sp runtime_effect, + sk_sp runtime_effect, std::vector> samplers, - sk_sp uniform_data) + std::shared_ptr> uniform_data) : runtime_effect_(std::move(runtime_effect)), samplers_(std::move(samplers)), uniform_data_(std::move(uniform_data)) {} @@ -681,24 +686,39 @@ class DlRuntimeEffectColorSource final : public DlColorSource { bool is_opaque() const override { return false; } - const sk_sp runtime_effect() const { + const sk_sp runtime_effect() const { return runtime_effect_; } const std::vector> samplers() const { return samplers_; } - const sk_sp uniform_data() const { return uniform_data_; } + const std::shared_ptr> uniform_data() const { + return uniform_data_; + } sk_sp skia_object() const override { if (!runtime_effect_) { return nullptr; } + if (!runtime_effect_->skia_runtime_effect()) { + return nullptr; + } std::vector> sk_samplers(samplers_.size()); for (size_t i = 0; i < samplers_.size(); i++) { sk_samplers[i] = samplers_[i]->skia_object(); } - return runtime_effect_->makeShader(uniform_data_, sk_samplers.data(), - sk_samplers.size()); + + auto ref = new std::shared_ptr>(uniform_data_); + auto uniform_data = SkData::MakeWithProc( + uniform_data_->data(), uniform_data_->size(), + [](const void* ptr, void* context) { + delete reinterpret_cast>*>( + context); + }, + ref); + + return runtime_effect_->skia_runtime_effect()->makeShader( + uniform_data, sk_samplers.data(), sk_samplers.size()); } protected: @@ -723,16 +743,17 @@ class DlRuntimeEffectColorSource final : public DlColorSource { } private: - sk_sp runtime_effect_; + sk_sp runtime_effect_; std::vector> samplers_; - sk_sp uniform_data_; + std::shared_ptr> uniform_data_; FML_DISALLOW_COPY_ASSIGN_AND_MOVE(DlRuntimeEffectColorSource); }; class DlUnknownColorSource final : public DlColorSource { public: - DlUnknownColorSource(sk_sp shader) : sk_shader_(shader) {} + DlUnknownColorSource(sk_sp shader) + : sk_shader_(std::move(shader)) {} std::shared_ptr shared() const override { return std::make_shared(sk_shader_); diff --git a/display_list/display_list_color_source_unittests.cc b/display_list/display_list_color_source_unittests.cc index 351d94a4f08a6..8e9044b3223b2 100644 --- a/display_list/display_list_color_source_unittests.cc +++ b/display_list/display_list_color_source_unittests.cc @@ -2,10 +2,14 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +#include +#include + #include "flutter/display_list/display_list_attributes_testing.h" #include "flutter/display_list/display_list_builder.h" #include "flutter/display_list/display_list_color_source.h" #include "flutter/display_list/display_list_image.h" +#include "flutter/display_list/display_list_runtime_effect.h" #include "flutter/display_list/display_list_sampling_options.h" #include "flutter/display_list/types.h" #include "third_party/skia/include/core/SkString.h" @@ -28,14 +32,16 @@ static sk_sp MakeTestImage(int w, int h, SkColor color) { return DlImage::Make(surface->makeImageSnapshot()); } -static const sk_sp kTestRuntimeEffect1 = - SkRuntimeEffect::MakeForShader( - SkString("vec4 main(vec2 p) { return vec4(0); }")) - .effect; -static const sk_sp kTestRuntimeEffect2 = - SkRuntimeEffect::MakeForShader( - SkString("vec4 main(vec2 p) { return vec4(1); }")) - .effect; +static const sk_sp kTestRuntimeEffect1 = + DlRuntimeEffect::MakeSkia( + SkRuntimeEffect::MakeForShader( + SkString("vec4 main(vec2 p) { return vec4(0); }")) + .effect); +static const sk_sp kTestRuntimeEffect2 = + DlRuntimeEffect::MakeSkia( + SkRuntimeEffect::MakeForShader( + SkString("vec4 main(vec2 p) { return vec4(1); }")) + .effect); static const sk_sp kTestImage1 = MakeTestImage(10, 10, SK_ColorGREEN); static const sk_sp kTestAlphaImage1 = @@ -939,11 +945,14 @@ TEST(DisplayListColorSource, UnknownNotEquals) { TEST(DisplayListColorSource, RuntimeEffect) { std::shared_ptr source1 = - DlColorSource::MakeRuntimeEffect(kTestRuntimeEffect1, {}, nullptr); + DlColorSource::MakeRuntimeEffect( + kTestRuntimeEffect1, {}, std::make_shared>()); std::shared_ptr source2 = - DlColorSource::MakeRuntimeEffect(kTestRuntimeEffect2, {}, nullptr); + DlColorSource::MakeRuntimeEffect( + kTestRuntimeEffect2, {}, std::make_shared>()); std::shared_ptr source3 = - DlColorSource::MakeRuntimeEffect(nullptr, {}, nullptr); + DlColorSource::MakeRuntimeEffect( + nullptr, {}, std::make_shared>()); ASSERT_EQ(source1->type(), DlColorSourceType::kRuntimeEffect); ASSERT_EQ(source1->asRuntimeEffect(), source1.get()); diff --git a/display_list/display_list_paint.h b/display_list/display_list_paint.h index 2892d13685633..b260180294eba 100644 --- a/display_list/display_list_paint.h +++ b/display_list/display_list_paint.h @@ -166,7 +166,7 @@ class DlPaint { return colorFilter_; } const DlColorFilter* getColorFilterPtr() const { return colorFilter_.get(); } - DlPaint& setColorFilter(std::shared_ptr filter) { + DlPaint& setColorFilter(std::shared_ptr filter) { colorFilter_ = filter ? filter->shared() : nullptr; return *this; } @@ -179,7 +179,7 @@ class DlPaint { return imageFilter_; } const DlImageFilter* getImageFilterPtr() const { return imageFilter_.get(); } - DlPaint& setImageFilter(std::shared_ptr filter) { + DlPaint& setImageFilter(std::shared_ptr filter) { imageFilter_ = filter; return *this; } diff --git a/display_list/display_list_runtime_effect.cc b/display_list/display_list_runtime_effect.cc new file mode 100644 index 0000000000000..377bcea8b4981 --- /dev/null +++ b/display_list/display_list_runtime_effect.cc @@ -0,0 +1,66 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "flutter/display_list/display_list_runtime_effect.h" + +#include "third_party/skia/include/core/SkRefCnt.h" + +namespace flutter { + +//------------------------------------------------------------------------------ +/// DlRuntimeEffect +/// + +DlRuntimeEffect::DlRuntimeEffect() = default; +DlRuntimeEffect::~DlRuntimeEffect() = default; + +sk_sp DlRuntimeEffect::MakeSkia( + const sk_sp& runtime_effect) { + return sk_make_sp(runtime_effect); +} + +sk_sp DlRuntimeEffect::MakeImpeller( + std::shared_ptr runtime_stage) { + return sk_make_sp(std::move(runtime_stage)); +} + +//------------------------------------------------------------------------------ +/// DlRuntimeEffectSkia +/// + +DlRuntimeEffectSkia::~DlRuntimeEffectSkia() = default; + +DlRuntimeEffectSkia::DlRuntimeEffectSkia( + const sk_sp& runtime_effect) + : skia_runtime_effect_(runtime_effect) {} + +sk_sp DlRuntimeEffectSkia::skia_runtime_effect() const { + return skia_runtime_effect_; +} + +std::shared_ptr DlRuntimeEffectSkia::runtime_stage() + const { + return nullptr; +} + +//------------------------------------------------------------------------------ +/// DlRuntimeEffectImpeller +/// + +DlRuntimeEffectImpeller::~DlRuntimeEffectImpeller() = default; + +DlRuntimeEffectImpeller::DlRuntimeEffectImpeller( + std::shared_ptr runtime_stage) + : runtime_stage_(std::move(runtime_stage)){}; + +sk_sp DlRuntimeEffectImpeller::skia_runtime_effect() const { + return nullptr; +} + +std::shared_ptr DlRuntimeEffectImpeller::runtime_stage() + const { + return runtime_stage_; +} + +} // namespace flutter diff --git a/display_list/display_list_runtime_effect.h b/display_list/display_list_runtime_effect.h new file mode 100644 index 0000000000000..2a4cc704f3e20 --- /dev/null +++ b/display_list/display_list_runtime_effect.h @@ -0,0 +1,85 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef FLUTTER_DISPLAY_LIST_RUNTIME_EFFECT_H_ +#define FLUTTER_DISPLAY_LIST_RUNTIME_EFFECT_H_ + +#include + +#include "flutter/fml/macros.h" +#include "flutter/impeller/runtime_stage/runtime_stage.h" + +#include "third_party/skia/include/core/SkRefCnt.h" +#include "third_party/skia/include/effects/SkRuntimeEffect.h" + +namespace flutter { + +class DlRuntimeEffect : public SkRefCnt { + public: + static sk_sp MakeSkia( + const sk_sp& runtime_effect); + + static sk_sp MakeImpeller( + std::shared_ptr runtime_stage); + + virtual sk_sp skia_runtime_effect() const = 0; + + virtual std::shared_ptr runtime_stage() const = 0; + + protected: + DlRuntimeEffect(); + virtual ~DlRuntimeEffect(); + + private: + FML_DISALLOW_COPY_AND_ASSIGN(DlRuntimeEffect); +}; + +class DlRuntimeEffectSkia final : public DlRuntimeEffect { + public: + explicit DlRuntimeEffectSkia(const sk_sp& runtime_effect); + + // |DlRuntimeEffect| + sk_sp skia_runtime_effect() const override; + + // |DlRuntimeEffect| + std::shared_ptr runtime_stage() const override; + + private: + DlRuntimeEffectSkia() = delete; + // |DlRuntimeEffect| + ~DlRuntimeEffectSkia() override; + + sk_sp skia_runtime_effect_; + + FML_DISALLOW_COPY_AND_ASSIGN(DlRuntimeEffectSkia); + + friend DlRuntimeEffect; +}; + +class DlRuntimeEffectImpeller final : public DlRuntimeEffect { + public: + explicit DlRuntimeEffectImpeller( + std::shared_ptr runtime_stage); + + // |DlRuntimeEffect| + sk_sp skia_runtime_effect() const override; + + // |DlRuntimeEffect| + std::shared_ptr runtime_stage() const override; + + private: + DlRuntimeEffectImpeller() = delete; + // |DlRuntimeEffect| + ~DlRuntimeEffectImpeller() override; + + std::shared_ptr runtime_stage_; + + FML_DISALLOW_COPY_AND_ASSIGN(DlRuntimeEffectImpeller); + + friend DlRuntimeEffect; +}; + +} // namespace flutter + +#endif // FLUTTER_DISPLAY_LIST_RUNTIME_EFFECT_H_ diff --git a/flow/compositor_context.cc b/flow/compositor_context.cc index b40df6a186dab..90dcc6ac42282 100644 --- a/flow/compositor_context.cc +++ b/flow/compositor_context.cc @@ -81,12 +81,14 @@ std::unique_ptr CompositorContext::AcquireFrame( const SkMatrix& root_surface_transformation, bool instrumentation_enabled, bool surface_supports_readback, - fml::RefPtr raster_thread_merger, - DisplayListBuilder* display_list_builder) { + fml::RefPtr + raster_thread_merger, // NOLINT(performance-unnecessary-value-param) + DisplayListBuilder* display_list_builder, + impeller::AiksContext* aiks_context) { return std::make_unique( *this, gr_context, canvas, view_embedder, root_surface_transformation, instrumentation_enabled, surface_supports_readback, raster_thread_merger, - display_list_builder); + display_list_builder, aiks_context); } CompositorContext::ScopedFrame::ScopedFrame( @@ -98,11 +100,13 @@ CompositorContext::ScopedFrame::ScopedFrame( bool instrumentation_enabled, bool surface_supports_readback, fml::RefPtr raster_thread_merger, - DisplayListBuilder* display_list_builder) + DisplayListBuilder* display_list_builder, + impeller::AiksContext* aiks_context) : context_(context), gr_context_(gr_context), canvas_(canvas), display_list_builder_(display_list_builder), + aiks_context_(aiks_context), view_embedder_(view_embedder), root_surface_transformation_(root_surface_transformation), instrumentation_enabled_(instrumentation_enabled), diff --git a/flow/compositor_context.h b/flow/compositor_context.h index 68535a6194061..3e9552bd94f7f 100644 --- a/flow/compositor_context.h +++ b/flow/compositor_context.h @@ -114,7 +114,8 @@ class CompositorContext { bool instrumentation_enabled, bool surface_supports_readback, fml::RefPtr raster_thread_merger, - DisplayListBuilder* display_list_builder); + DisplayListBuilder* display_list_builder, + impeller::AiksContext* aiks_context); virtual ~ScopedFrame(); @@ -136,6 +137,8 @@ class CompositorContext { GrDirectContext* gr_context() const { return gr_context_; } + impeller::AiksContext* aiks_context() const { return aiks_context_; } + virtual RasterStatus Raster(LayerTree& layer_tree, bool ignore_raster_cache, FrameDamage* frame_damage); @@ -145,6 +148,7 @@ class CompositorContext { GrDirectContext* gr_context_; SkCanvas* canvas_; DisplayListBuilder* display_list_builder_; + impeller::AiksContext* aiks_context_; ExternalViewEmbedder* view_embedder_; const SkMatrix& root_surface_transformation_; const bool instrumentation_enabled_; @@ -168,7 +172,8 @@ class CompositorContext { bool instrumentation_enabled, bool surface_supports_readback, fml::RefPtr raster_thread_merger, - DisplayListBuilder* display_list_builder); + DisplayListBuilder* display_list_builder, + impeller::AiksContext* aiks_context); void OnGrContextCreated(); diff --git a/flow/diff_context.cc b/flow/diff_context.cc index 6e57ac4623f99..a828dcef968d2 100644 --- a/flow/diff_context.cc +++ b/flow/diff_context.cc @@ -202,7 +202,7 @@ void DiffContext::AddReadbackRegion(const SkIRect& rect) { readback.position = rects_->size(); // Push empty rect as a placeholder for position in current subtree rects_->push_back(SkRect::MakeEmpty()); - readbacks_.push_back(std::move(readback)); + readbacks_.push_back(readback); } PaintRegion DiffContext::CurrentSubtreeRegion() const { diff --git a/flow/embedded_views.cc b/flow/embedded_views.cc index ebc1812755488..cc74ae85d38c3 100644 --- a/flow/embedded_views.cc +++ b/flow/embedded_views.cc @@ -70,6 +70,7 @@ void DisplayListEmbedderViewSlice::render_into(DisplayListBuilder* builder) { } void ExternalViewEmbedder::SubmitFrame(GrDirectContext* context, + uint64_t frame_view_id, std::unique_ptr frame) { frame->Submit(); }; @@ -100,8 +101,10 @@ void MutatorsStack::PushOpacity(const int& alpha) { }; void MutatorsStack::PushBackdropFilter( - const std::shared_ptr& filter) { - std::shared_ptr element = std::make_shared(filter); + const std::shared_ptr& filter, + const SkRect& filter_rect) { + std::shared_ptr element = + std::make_shared(filter, filter_rect); vector_.push_back(element); }; diff --git a/flow/embedded_views.h b/flow/embedded_views.h index 14ca2ba12b348..4f85395ac3643 100644 --- a/flow/embedded_views.h +++ b/flow/embedded_views.h @@ -32,6 +32,33 @@ enum MutatorType { kBackdropFilter }; +// Represents an image filter mutation. +// +// Should be used for image_filter_layer and backdrop_filter_layer. +// TODO(cyanglaz): Refactor this into a ImageFilterMutator class. +// https://github.com/flutter/flutter/issues/108470 +class ImageFilterMutation { + public: + ImageFilterMutation(std::shared_ptr filter, + const SkRect& filter_rect) + : filter_(filter), filter_rect_(filter_rect) {} + + const DlImageFilter& GetFilter() const { return *filter_; } + const SkRect& GetFilterRect() const { return filter_rect_; } + + bool operator==(const ImageFilterMutation& other) const { + return *filter_ == *other.filter_ && filter_rect_ == other.filter_rect_; + } + + bool operator!=(const ImageFilterMutation& other) const { + return !operator==(other); + } + + private: + std::shared_ptr filter_; + const SkRect filter_rect_; +}; + // Stores mutation information like clipping or kTransform. // // The `type` indicates the type of the mutation: kClipRect, kTransform and etc. @@ -59,7 +86,7 @@ class Mutator { alpha_ = other.alpha_; break; case kBackdropFilter: - filter_ = other.filter_; + filter_mutation_ = other.filter_mutation_; break; default: break; @@ -73,15 +100,20 @@ class Mutator { explicit Mutator(const SkMatrix& matrix) : type_(kTransform), matrix_(matrix) {} explicit Mutator(const int& alpha) : type_(kOpacity), alpha_(alpha) {} - explicit Mutator(std::shared_ptr filter) - : type_(kBackdropFilter), filter_(filter) {} + explicit Mutator(std::shared_ptr filter, + const SkRect& filter_rect) + : type_(kBackdropFilter), + filter_mutation_( + std::make_shared(filter, filter_rect)) {} const MutatorType& GetType() const { return type_; } const SkRect& GetRect() const { return rect_; } const SkRRect& GetRRect() const { return rrect_; } const SkPath& GetPath() const { return *path_; } const SkMatrix& GetMatrix() const { return matrix_; } - const DlImageFilter& GetFilter() const { return *filter_; } + const ImageFilterMutation& GetFilterMutation() const { + return *filter_mutation_; + } const int& GetAlpha() const { return alpha_; } float GetAlphaFloat() const { return (alpha_ / 255.0); } @@ -101,7 +133,7 @@ class Mutator { case kOpacity: return alpha_ == other.alpha_; case kBackdropFilter: - return *filter_ == *other.filter_; + return *filter_mutation_ == *other.filter_mutation_; } return false; @@ -132,8 +164,7 @@ class Mutator { int alpha_; }; - std::shared_ptr filter_; - + std::shared_ptr filter_mutation_; }; // Mutator // A stack of mutators that can be applied to an embedded platform view. @@ -154,7 +185,8 @@ class MutatorsStack { void PushClipPath(const SkPath& path); void PushTransform(const SkMatrix& matrix); void PushOpacity(const int& alpha); - void PushBackdropFilter(const std::shared_ptr& filter); + void PushBackdropFilter(const std::shared_ptr& filter, + const SkRect& filter_rect); // Removes the `Mutator` on the top of the stack // and destroys it. @@ -249,8 +281,9 @@ class EmbeddedViewParams { const SkRect& finalBoundingRect() const { return final_bounding_rect_; } // Pushes the stored DlImageFilter object to the mutators stack. - void PushImageFilter(std::shared_ptr filter) { - mutators_stack_.PushBackdropFilter(filter); + void PushImageFilter(std::shared_ptr filter, + const SkRect& filter_rect) { + mutators_stack_.PushBackdropFilter(filter, filter_rect); } // Whether the embedder should construct DisplayList objects to hold the @@ -405,6 +438,7 @@ class ExternalViewEmbedder { // // It can also allocate frames for overlay surfaces to compose hybrid views. virtual void SubmitFrame(GrDirectContext* context, + uint64_t frame_view_id, std::unique_ptr frame); // This method provides the embedder a way to do additional tasks after @@ -454,7 +488,8 @@ class ExternalViewEmbedder { // See also: |PushVisitedPlatformView| for pushing platform view ids to the // visited platform views list. virtual void PushFilterToVisitedPlatformViews( - std::shared_ptr filter) {} + std::shared_ptr filter, + const SkRect& filter_rect) {} private: bool used_this_frame_ = false; diff --git a/flow/flow_run_all_unittests.cc b/flow/flow_run_all_unittests.cc index e2106829a83c4..eb7a58b5a8cd1 100644 --- a/flow/flow_run_all_unittests.cc +++ b/flow/flow_run_all_unittests.cc @@ -13,7 +13,7 @@ int main(int argc, char** argv) { fml::InstallCrashHandler(); testing::InitGoogleTest(&argc, argv); - fml::CommandLine cmd = fml::CommandLineFromArgcArgv(argc, argv); + fml::CommandLine cmd = fml::CommandLineFromPlatformOrArgcArgv(argc, argv); #if defined(OS_FUCHSIA) flutter::SetGoldenDir(cmd.GetOptionValueWithDefault( diff --git a/flow/layers/backdrop_filter_layer.cc b/flow/layers/backdrop_filter_layer.cc index 9f67b746b1c9b..fa89d8021d08a 100644 --- a/flow/layers/backdrop_filter_layer.cc +++ b/flow/layers/backdrop_filter_layer.cc @@ -44,7 +44,8 @@ void BackdropFilterLayer::Preroll(PrerollContext* context, Layer::AutoPrerollSaveLayerState save = Layer::AutoPrerollSaveLayerState::Create(context, true, bool(filter_)); if (context->view_embedder != nullptr) { - context->view_embedder->PushFilterToVisitedPlatformViews(filter_); + context->view_embedder->PushFilterToVisitedPlatformViews( + filter_, context->cull_rect); } SkRect child_paint_bounds = SkRect::MakeEmpty(); PrerollChildren(context, matrix, &child_paint_bounds); @@ -54,7 +55,6 @@ void BackdropFilterLayer::Preroll(PrerollContext* context, } void BackdropFilterLayer::Paint(PaintContext& context) const { - TRACE_EVENT0("flutter", "BackdropFilterLayer::Paint"); FML_DCHECK(needs_painting(context)); AutoCachePaint save_paint(context); diff --git a/flow/layers/clip_path_layer.cc b/flow/layers/clip_path_layer.cc index 51426168e02ce..65c7f898ea211 100644 --- a/flow/layers/clip_path_layer.cc +++ b/flow/layers/clip_path_layer.cc @@ -10,12 +10,10 @@ ClipPathLayer::ClipPathLayer(const SkPath& clip_path, Clip clip_behavior) : ClipShapeLayer(clip_path, clip_behavior) {} void ClipPathLayer::Preroll(PrerollContext* context, const SkMatrix& matrix) { - TRACE_EVENT0("flutter", "ClipPathLayer::Preroll"); ClipShapeLayer::Preroll(context, matrix); } void ClipPathLayer::Paint(PaintContext& context) const { - TRACE_EVENT0("flutter", "ClipPathLayer::Paint"); ClipShapeLayer::Paint(context); } diff --git a/flow/layers/clip_rect_layer.cc b/flow/layers/clip_rect_layer.cc index e2db2aeac03fc..6b7ff2002f0a8 100644 --- a/flow/layers/clip_rect_layer.cc +++ b/flow/layers/clip_rect_layer.cc @@ -10,12 +10,10 @@ ClipRectLayer::ClipRectLayer(const SkRect& clip_rect, Clip clip_behavior) : ClipShapeLayer(clip_rect, clip_behavior) {} void ClipRectLayer::Preroll(PrerollContext* context, const SkMatrix& matrix) { - TRACE_EVENT0("flutter", "ClipRectLayer::Preroll"); ClipShapeLayer::Preroll(context, matrix); } void ClipRectLayer::Paint(PaintContext& context) const { - TRACE_EVENT0("flutter", "ClipRectLayer::Paint"); ClipShapeLayer::Paint(context); } diff --git a/flow/layers/clip_rrect_layer.cc b/flow/layers/clip_rrect_layer.cc index 6c1a5cca6cb86..2bf5b069332f0 100644 --- a/flow/layers/clip_rrect_layer.cc +++ b/flow/layers/clip_rrect_layer.cc @@ -10,12 +10,10 @@ ClipRRectLayer::ClipRRectLayer(const SkRRect& clip_rrect, Clip clip_behavior) : ClipShapeLayer(clip_rrect, clip_behavior) {} void ClipRRectLayer::Preroll(PrerollContext* context, const SkMatrix& matrix) { - TRACE_EVENT0("flutter", "ClipRRectLayer::Preroll"); ClipShapeLayer::Preroll(context, matrix); } void ClipRRectLayer::Paint(PaintContext& context) const { - TRACE_EVENT0("flutter", "ClipRRectLayer::Paint"); ClipShapeLayer::Paint(context); } diff --git a/flow/layers/color_filter_layer.cc b/flow/layers/color_filter_layer.cc index 5b2181f014f9a..d3da4763fce77 100644 --- a/flow/layers/color_filter_layer.cc +++ b/flow/layers/color_filter_layer.cc @@ -52,7 +52,6 @@ void ColorFilterLayer::Preroll(PrerollContext* context, } void ColorFilterLayer::Paint(PaintContext& context) const { - TRACE_EVENT0("flutter", "ColorFilterLayer::Paint"); FML_DCHECK(needs_painting(context)); if (context.raster_cache) { diff --git a/flow/layers/container_layer.cc b/flow/layers/container_layer.cc index a37f7d92f4759..cd1157565ddb9 100644 --- a/flow/layers/container_layer.cc +++ b/flow/layers/container_layer.cc @@ -108,8 +108,6 @@ void ContainerLayer::Add(std::shared_ptr layer) { } void ContainerLayer::Preroll(PrerollContext* context, const SkMatrix& matrix) { - TRACE_EVENT0("flutter", "ContainerLayer::Preroll"); - SkRect child_paint_bounds = SkRect::MakeEmpty(); PrerollChildren(context, matrix, &child_paint_bounds); set_paint_bounds(child_paint_bounds); diff --git a/flow/layers/display_list_layer.cc b/flow/layers/display_list_layer.cc index d37bbaf7eac0c..0d75bd88ff457 100644 --- a/flow/layers/display_list_layer.cc +++ b/flow/layers/display_list_layer.cc @@ -97,7 +97,6 @@ bool DisplayListLayer::Compare(DiffContext::Statistics& statistics, void DisplayListLayer::Preroll(PrerollContext* context, const SkMatrix& matrix) { - TRACE_EVENT0("flutter", "DisplayListLayer::Preroll"); DisplayList* disp_list = display_list(); SkMatrix child_matrix = matrix; @@ -110,7 +109,6 @@ void DisplayListLayer::Preroll(PrerollContext* context, } void DisplayListLayer::Paint(PaintContext& context) const { - TRACE_EVENT0("flutter", "DisplayListLayer::Paint"); FML_DCHECK(display_list_.skia_object()); FML_DCHECK(needs_painting(context)); diff --git a/flow/layers/display_list_layer_unittests.cc b/flow/layers/display_list_layer_unittests.cc index 4db87af8d0451..336b7118d19e2 100644 --- a/flow/layers/display_list_layer_unittests.cc +++ b/flow/layers/display_list_layer_unittests.cc @@ -98,6 +98,20 @@ TEST_F(DisplayListLayerTest, SimpleDisplayList) { EXPECT_EQ(mock_canvas().draw_calls(), expected_draw_calls); } +TEST_F(DisplayListLayerTest, CachingDoesNotChangeCullRect) { + const SkPoint layer_offset = SkPoint::Make(10, 10); + DisplayListBuilder builder; + builder.drawRect({10, 10, 20, 20}); + auto display_list = builder.Build(); + auto layer = std::make_shared( + layer_offset, SkiaGPUObject(display_list, unref_queue()), true, false); + + SkRect original_cull_rect = preroll_context()->cull_rect; + use_mock_raster_cache(); + layer->Preroll(preroll_context(), SkMatrix::I()); + ASSERT_EQ(preroll_context()->cull_rect, original_cull_rect); +} + TEST_F(DisplayListLayerTest, SimpleDisplayListOpacityInheritance) { const SkPoint layer_offset = SkPoint::Make(1.5f, -0.5f); const SkRect picture_bounds = SkRect::MakeLTRB(5.0f, 6.0f, 20.5f, 21.5f); diff --git a/flow/layers/display_list_raster_cache_item.cc b/flow/layers/display_list_raster_cache_item.cc index 10a64cff3a45e..8712fb1a7ba26 100644 --- a/flow/layers/display_list_raster_cache_item.cc +++ b/flow/layers/display_list_raster_cache_item.cc @@ -108,7 +108,7 @@ void DisplayListRasterCacheItem::PrerollFinalize(PrerollContext* context, // if the rect is intersect we will get the entry access_count to confirm if // it great than the threshold. Otherwise we only increase the entry // access_count. - bool visible = context->cull_rect.intersect(bounds); + bool visible = context->cull_rect.intersects(bounds); int accesses = raster_cache->MarkSeen(key_id_, matrix, visible); if (!visible || accesses <= raster_cache->access_threshold()) { cache_state_ = kNone; diff --git a/flow/layers/image_filter_layer.cc b/flow/layers/image_filter_layer.cc index 249d74a2450cc..b08baad68f85e 100644 --- a/flow/layers/image_filter_layer.cc +++ b/flow/layers/image_filter_layer.cc @@ -48,8 +48,6 @@ void ImageFilterLayer::Diff(DiffContext* context, const Layer* old_layer) { void ImageFilterLayer::Preroll(PrerollContext* context, const SkMatrix& matrix) { - TRACE_EVENT0("flutter", "ImageFilterLayer::Preroll"); - Layer::AutoPrerollSaveLayerState save = Layer::AutoPrerollSaveLayerState::Create(context); SkMatrix child_matrix = matrix; @@ -89,7 +87,6 @@ void ImageFilterLayer::Preroll(PrerollContext* context, } void ImageFilterLayer::Paint(PaintContext& context) const { - TRACE_EVENT0("flutter", "ImageFilterLayer::Paint"); FML_DCHECK(needs_painting(context)); AutoCachePaint cache_paint(context); diff --git a/flow/layers/layer.h b/flow/layers/layer.h index 09f47b5de4d50..0e7100f45255b 100644 --- a/flow/layers/layer.h +++ b/flow/layers/layer.h @@ -154,6 +154,7 @@ struct PaintContext { SkScalar inherited_opacity = SK_Scalar1; DisplayListBuilder* leaf_nodes_builder = nullptr; DisplayListBuilderMultiplexer* builder_multiplexer = nullptr; + impeller::AiksContext* aiks_context; }; // Represents a single composited layer. Created on the UI thread but then diff --git a/flow/layers/layer_tree.cc b/flow/layers/layer_tree.cc index 0e5aacc98fe92..6eccffefda3ad 100644 --- a/flow/layers/layer_tree.cc +++ b/flow/layers/layer_tree.cc @@ -158,6 +158,7 @@ void LayerTree::Paint(CompositorContext::ScopedFrame& frame, .inherited_opacity = SK_Scalar1, .leaf_nodes_builder = builder, .builder_multiplexer = builder ? &builder_multiplexer : nullptr, + .aiks_context = frame.aiks_context(), // clang-format on }; diff --git a/flow/layers/layer_tree_unittests.cc b/flow/layers/layer_tree_unittests.cc index 950e542c3a685..882e2039a47a1 100644 --- a/flow/layers/layer_tree_unittests.cc +++ b/flow/layers/layer_tree_unittests.cc @@ -28,6 +28,7 @@ class LayerTreeTest : public CanvasTest { false, true, nullptr, + nullptr, nullptr)) {} LayerTree& layer_tree() { return layer_tree_; } diff --git a/flow/layers/opacity_layer.cc b/flow/layers/opacity_layer.cc index 6ee0db3187d61..111fbf798ea5b 100644 --- a/flow/layers/opacity_layer.cc +++ b/flow/layers/opacity_layer.cc @@ -37,7 +37,6 @@ void OpacityLayer::Diff(DiffContext* context, const Layer* old_layer) { } void OpacityLayer::Preroll(PrerollContext* context, const SkMatrix& matrix) { - TRACE_EVENT0("flutter", "OpacityLayer::Preroll"); FML_DCHECK(!layers().empty()); // We can't be a leaf. SkMatrix child_matrix = matrix; @@ -85,7 +84,6 @@ void OpacityLayer::Preroll(PrerollContext* context, const SkMatrix& matrix) { } void OpacityLayer::Paint(PaintContext& context) const { - TRACE_EVENT0("flutter", "OpacityLayer::Paint"); FML_DCHECK(needs_painting(context)); SkAutoCanvasRestore save(context.internal_nodes_canvas, true); diff --git a/flow/layers/performance_overlay_layer.cc b/flow/layers/performance_overlay_layer.cc index d211959a89c52..fe8b76288a90c 100644 --- a/flow/layers/performance_overlay_layer.cc +++ b/flow/layers/performance_overlay_layer.cc @@ -93,7 +93,6 @@ void PerformanceOverlayLayer::Paint(PaintContext& context) const { return; } - TRACE_EVENT0("flutter", "PerformanceOverlayLayer::Paint"); SkScalar x = paint_bounds().x() + padding; SkScalar y = paint_bounds().y() + padding; SkScalar width = paint_bounds().width() - (padding * 2); diff --git a/flow/layers/physical_shape_layer.cc b/flow/layers/physical_shape_layer.cc index 0a08efb9062b0..d84320228b5ea 100644 --- a/flow/layers/physical_shape_layer.cc +++ b/flow/layers/physical_shape_layer.cc @@ -52,7 +52,6 @@ void PhysicalShapeLayer::Diff(DiffContext* context, const Layer* old_layer) { void PhysicalShapeLayer::Preroll(PrerollContext* context, const SkMatrix& matrix) { - TRACE_EVENT0("flutter", "PhysicalShapeLayer::Preroll"); Layer::AutoPrerollSaveLayerState save = Layer::AutoPrerollSaveLayerState::Create(context, UsesSaveLayer()); @@ -77,7 +76,6 @@ void PhysicalShapeLayer::Preroll(PrerollContext* context, } void PhysicalShapeLayer::Paint(PaintContext& context) const { - TRACE_EVENT0("flutter", "PhysicalShapeLayer::Paint"); FML_DCHECK(needs_painting(context)); if (elevation_ != 0) { diff --git a/flow/layers/shader_mask_layer.cc b/flow/layers/shader_mask_layer.cc index 61d83fe69fd51..1b88bc88dfd61 100644 --- a/flow/layers/shader_mask_layer.cc +++ b/flow/layers/shader_mask_layer.cc @@ -49,7 +49,6 @@ void ShaderMaskLayer::Preroll(PrerollContext* context, const SkMatrix& matrix) { } void ShaderMaskLayer::Paint(PaintContext& context) const { - TRACE_EVENT0("flutter", "ShaderMaskLayer::Paint"); FML_DCHECK(needs_painting(context)); AutoCachePaint cache_paint(context); diff --git a/flow/layers/texture_layer.cc b/flow/layers/texture_layer.cc index 7ece96ebd4364..c141820232441 100644 --- a/flow/layers/texture_layer.cc +++ b/flow/layers/texture_layer.cc @@ -41,8 +41,6 @@ void TextureLayer::Diff(DiffContext* context, const Layer* old_layer) { } void TextureLayer::Preroll(PrerollContext* context, const SkMatrix& matrix) { - TRACE_EVENT0("flutter", "TextureLayer::Preroll"); - set_paint_bounds(SkRect::MakeXYWH(offset_.x(), offset_.y(), size_.width(), size_.height())); context->has_texture_layer = true; @@ -50,7 +48,6 @@ void TextureLayer::Preroll(PrerollContext* context, const SkMatrix& matrix) { } void TextureLayer::Paint(PaintContext& context) const { - TRACE_EVENT0("flutter", "TextureLayer::Paint"); FML_DCHECK(needs_painting(context)); std::shared_ptr texture = @@ -62,8 +59,15 @@ void TextureLayer::Paint(PaintContext& context) const { return; } AutoCachePaint cache_paint(context); - texture->Paint(*context.leaf_nodes_canvas, paint_bounds(), freeze_, - context.gr_context, ToSk(sampling_), cache_paint.sk_paint()); + Texture::PaintContext ctx{ + .canvas = context.leaf_nodes_canvas, + .builder = context.leaf_nodes_builder, + .gr_context = context.gr_context, + .aiks_context = context.aiks_context, + .sk_paint = cache_paint.sk_paint(), + .dl_paint = cache_paint.dl_paint(), + }; + texture->Paint(ctx, paint_bounds(), freeze_, ToSk(sampling_)); } } // namespace flutter diff --git a/flow/layers/transform_layer.cc b/flow/layers/transform_layer.cc index 478f09f835f5a..335c80d070739 100644 --- a/flow/layers/transform_layer.cc +++ b/flow/layers/transform_layer.cc @@ -41,8 +41,6 @@ void TransformLayer::Diff(DiffContext* context, const Layer* old_layer) { } void TransformLayer::Preroll(PrerollContext* context, const SkMatrix& matrix) { - TRACE_EVENT0("flutter", "TransformLayer::Preroll"); - SkMatrix child_matrix; child_matrix.setConcat(matrix, transform_); context->mutators_stack.PushTransform(transform_); @@ -71,7 +69,6 @@ void TransformLayer::Preroll(PrerollContext* context, const SkMatrix& matrix) { } void TransformLayer::Paint(PaintContext& context) const { - TRACE_EVENT0("flutter", "TransformLayer::Paint"); FML_DCHECK(needs_painting(context)); SkAutoCanvasRestore save(context.internal_nodes_canvas, true); diff --git a/flow/mutators_stack_unittests.cc b/flow/mutators_stack_unittests.cc index 54b6b516e4a72..42ce6363d47ff 100644 --- a/flow/mutators_stack_unittests.cc +++ b/flow/mutators_stack_unittests.cc @@ -94,14 +94,19 @@ TEST(MutatorsStack, PushBackdropFilter) { const int num_of_mutators = 10; for (int i = 0; i < num_of_mutators; i++) { auto filter = std::make_shared(i, 5, DlTileMode::kClamp); - stack.PushBackdropFilter(filter); + stack.PushBackdropFilter(filter, SkRect::MakeXYWH(i, i, i, i)); } auto iter = stack.Begin(); int i = 0; while (iter != stack.End()) { ASSERT_EQ(iter->get()->GetType(), MutatorType::kBackdropFilter); - ASSERT_EQ(iter->get()->GetFilter().asBlur()->sigma_x(), i); + ASSERT_EQ(iter->get()->GetFilterMutation().GetFilter().asBlur()->sigma_x(), + i); + ASSERT_EQ(iter->get()->GetFilterMutation().GetFilterRect().x(), i); + ASSERT_EQ(iter->get()->GetFilterMutation().GetFilterRect().x(), i); + ASSERT_EQ(iter->get()->GetFilterMutation().GetFilterRect().width(), i); + ASSERT_EQ(iter->get()->GetFilterMutation().GetFilterRect().height(), i); ++iter; ++i; } @@ -164,7 +169,7 @@ TEST(MutatorsStack, Equality) { int alpha = 240; stack.PushOpacity(alpha); auto filter = std::make_shared(5, 5, DlTileMode::kClamp); - stack.PushBackdropFilter(filter); + stack.PushBackdropFilter(filter, SkRect::MakeEmpty()); MutatorsStack stack_other; SkMatrix matrix_other = SkMatrix::Scale(1, 1); @@ -179,7 +184,7 @@ TEST(MutatorsStack, Equality) { stack_other.PushOpacity(other_alpha); auto other_filter = std::make_shared(5, 5, DlTileMode::kClamp); - stack_other.PushBackdropFilter(other_filter); + stack_other.PushBackdropFilter(other_filter, SkRect::MakeEmpty()); ASSERT_TRUE(stack == stack_other); } @@ -211,9 +216,9 @@ TEST(Mutator, Initialization) { ASSERT_TRUE(mutator5.GetType() == MutatorType::kOpacity); auto filter = std::make_shared(5, 5, DlTileMode::kClamp); - Mutator mutator6 = Mutator(filter); + Mutator mutator6 = Mutator(filter, SkRect::MakeEmpty()); ASSERT_TRUE(mutator6.GetType() == MutatorType::kBackdropFilter); - ASSERT_TRUE(mutator6.GetFilter() == *filter); + ASSERT_TRUE(mutator6.GetFilterMutation().GetFilter() == *filter); } TEST(Mutator, CopyConstructor) { @@ -244,7 +249,7 @@ TEST(Mutator, CopyConstructor) { ASSERT_TRUE(mutator5 == copy5); auto filter = std::make_shared(5, 5, DlTileMode::kClamp); - Mutator mutator6 = Mutator(filter); + Mutator mutator6 = Mutator(filter, SkRect::MakeEmpty()); Mutator copy6 = Mutator(mutator6); ASSERT_TRUE(mutator6 == copy6); } @@ -276,9 +281,10 @@ TEST(Mutator, Equality) { Mutator other_mutator5 = Mutator(alpha); ASSERT_TRUE(mutator5 == other_mutator5); - auto filter = std::make_shared(5, 5, DlTileMode::kClamp); - Mutator mutator6 = Mutator(filter); - Mutator other_mutator6 = Mutator(filter); + auto filter1 = std::make_shared(5, 5, DlTileMode::kClamp); + auto filter2 = std::make_shared(5, 5, DlTileMode::kClamp); + Mutator mutator6 = Mutator(filter1, SkRect::MakeEmpty()); + Mutator other_mutator6 = Mutator(filter2, SkRect::MakeEmpty()); ASSERT_TRUE(mutator6 == other_mutator6); } @@ -299,8 +305,8 @@ TEST(Mutator, UnEquality) { auto filter = std::make_shared(5, 5, DlTileMode::kClamp); auto filter2 = std::make_shared(10, 10, DlTileMode::kClamp); - Mutator mutator3 = Mutator(filter); - Mutator other_mutator3 = Mutator(filter2); + Mutator mutator3 = Mutator(filter, SkRect::MakeEmpty()); + Mutator other_mutator3 = Mutator(filter2, SkRect::MakeEmpty()); ASSERT_TRUE(mutator3 != other_mutator3); } diff --git a/flow/raster_cache.cc b/flow/raster_cache.cc index 21183da293c4b..c25f656e13c22 100644 --- a/flow/raster_cache.cc +++ b/flow/raster_cache.cc @@ -29,7 +29,6 @@ RasterCacheResult::RasterCacheResult(sk_sp image, : image_(std::move(image)), logical_rect_(logical_rect), flow_(type) {} void RasterCacheResult::draw(SkCanvas& canvas, const SkPaint* paint) const { - TRACE_EVENT0("flutter", "RasterCacheResult::draw"); SkAutoCanvasRestore auto_restore(&canvas, true); auto matrix = RasterCacheUtil::GetIntegralTransCTM(canvas.getTotalMatrix()); @@ -55,7 +54,6 @@ std::unique_ptr RasterCache::Rasterize( const std::function& draw_function, const std::function& draw_checkerboard) const { - TRACE_EVENT0("flutter", "RasterCachePopulate"); auto matrix = RasterCacheUtil::GetIntegralTransCTM(context.matrix); SkRect dest_rect = RasterCacheUtil::GetRoundedOutDeviceBounds(context.logical_rect, matrix); diff --git a/flow/testing/mock_texture.cc b/flow/testing/mock_texture.cc index ccb11e85437f1..3fe4fd116813c 100644 --- a/flow/testing/mock_texture.cc +++ b/flow/testing/mock_texture.cc @@ -3,6 +3,7 @@ // found in the LICENSE file. #include "flutter/flow/testing/mock_texture.h" +#include "flutter/flow/layers/layer.h" #include "flutter/flow/testing/skia_gpu_object_layer_test.h" namespace flutter { @@ -10,14 +11,13 @@ namespace testing { MockTexture::MockTexture(int64_t textureId) : Texture(textureId) {} -void MockTexture::Paint(SkCanvas& canvas, +void MockTexture::Paint(PaintContext& context, const SkRect& bounds, bool freeze, - GrDirectContext* context, - const SkSamplingOptions& sampling, - const SkPaint* paint) { - paint_calls_.emplace_back( - PaintCall{canvas, bounds, freeze, context, sampling, paint}); + const SkSamplingOptions& sampling) { + paint_calls_.emplace_back(PaintCall{*(context.canvas), bounds, freeze, + context.gr_context, sampling, + context.sk_paint}); } bool operator==(const MockTexture::PaintCall& a, diff --git a/flow/testing/mock_texture.h b/flow/testing/mock_texture.h index ee4ba6d460a61..8b1dfb05b493d 100644 --- a/flow/testing/mock_texture.h +++ b/flow/testing/mock_texture.h @@ -28,12 +28,10 @@ class MockTexture : public Texture { explicit MockTexture(int64_t textureId); // Called from raster thread. - void Paint(SkCanvas& canvas, + void Paint(PaintContext& context, const SkRect& bounds, bool freeze, - GrDirectContext* context, - const SkSamplingOptions& sampling, - const SkPaint* paint = nullptr) override; + const SkSamplingOptions& sampling) override; void OnGrContextCreated() override { gr_context_created_ = true; } void OnGrContextDestroyed() override { gr_context_destroyed_ = true; } diff --git a/flow/testing/mock_texture_unittests.cc b/flow/testing/mock_texture_unittests.cc index 5968928b6cd2c..5dd12f82cfeea 100644 --- a/flow/testing/mock_texture_unittests.cc +++ b/flow/testing/mock_texture_unittests.cc @@ -34,9 +34,11 @@ TEST(MockTextureTest, PaintCalls) { MockTexture::PaintCall{canvas, paint_bounds1, false, nullptr, sampling}, MockTexture::PaintCall{canvas, paint_bounds2, true, nullptr, sampling}}; auto texture = std::make_shared(0); - - texture->Paint(canvas, paint_bounds1, false, nullptr, sampling); - texture->Paint(canvas, paint_bounds2, true, nullptr, sampling); + Texture::PaintContext context{ + .canvas = &canvas, + }; + texture->Paint(context, paint_bounds1, false, sampling); + texture->Paint(context, paint_bounds2, true, sampling); EXPECT_EQ(texture->paint_calls(), expected_paint_calls); } @@ -49,9 +51,11 @@ TEST(MockTextureTest, PaintCallsWithLinearSampling) { MockTexture::PaintCall{canvas, paint_bounds1, false, nullptr, sampling}, MockTexture::PaintCall{canvas, paint_bounds2, true, nullptr, sampling}}; auto texture = std::make_shared(0); - - texture->Paint(canvas, paint_bounds1, false, nullptr, sampling); - texture->Paint(canvas, paint_bounds2, true, nullptr, sampling); + Texture::PaintContext context{ + .canvas = &canvas, + }; + texture->Paint(context, paint_bounds1, false, sampling); + texture->Paint(context, paint_bounds2, true, sampling); EXPECT_EQ(texture->paint_calls(), expected_paint_calls); } diff --git a/flutter_vma/BUILD.gn b/flutter_vma/BUILD.gn new file mode 100644 index 0000000000000..26e6566a3d60c --- /dev/null +++ b/flutter_vma/BUILD.gn @@ -0,0 +1,40 @@ +# Copyright 2013 The Flutter Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +import("//flutter/flutter_vma/config.gni") + +source_set("flutter_vma") { + sources = [ + "flutter_vma.cc", + "flutter_vma.h", + ] + + if (disable_vma_stl_shared_mutex) { + defines = [ "VMA_USE_STL_SHARED_MUTEX=0" ] + } + + deps = [ + "//third_party/vulkan-deps/vulkan-headers/src:vulkan_headers", + "//third_party/vulkan_memory_allocator", + ] + + public_configs = [ "//flutter:config" ] +} + +source_set("flutter_skia_vma") { + sources = [ + "flutter_skia_vma.cc", + "flutter_skia_vma.h", + ] + + public_deps = [ ":flutter_vma" ] + + deps = [ + "//flutter/fml", + "//flutter/vulkan/procs", + "//third_party/skia", + "//third_party/vulkan-deps/vulkan-headers/src:vulkan_headers", + "//third_party/vulkan_memory_allocator", + ] +} diff --git a/flutter_vma/config.gni b/flutter_vma/config.gni new file mode 100644 index 0000000000000..bb3be5faa20cc --- /dev/null +++ b/flutter_vma/config.gni @@ -0,0 +1,7 @@ +# Copyright 2013 The Flutter Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +declare_args() { + disable_vma_stl_shared_mutex = false +} diff --git a/flutter_vma/flutter_skia_vma.cc b/flutter_vma/flutter_skia_vma.cc new file mode 100644 index 0000000000000..5b4eb89ae4a39 --- /dev/null +++ b/flutter_vma/flutter_skia_vma.cc @@ -0,0 +1,274 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "flutter/flutter_vma/flutter_skia_vma.h" + +#include "flutter/fml/memory/ref_ptr.h" +#include "flutter/vulkan/procs/vulkan_handle.h" +#include "flutter/vulkan/procs/vulkan_proc_table.h" + +namespace flutter { + +sk_sp FlutterSkiaVulkanMemoryAllocator::Make( + uint32_t vulkan_api_version, + VkInstance instance, + VkPhysicalDevice physicalDevice, + VkDevice device, + const fml::RefPtr& vk, + bool mustUseCoherentHostVisibleMemory) { +#define PROVIDE_PROC(tbl, proc, provider) tbl.vk##proc = provider->proc; + + VmaVulkanFunctions proc_table = {}; + proc_table.vkGetInstanceProcAddr = vk->NativeGetInstanceProcAddr(); + PROVIDE_PROC(proc_table, GetDeviceProcAddr, vk); + PROVIDE_PROC(proc_table, GetPhysicalDeviceProperties, vk); + PROVIDE_PROC(proc_table, GetPhysicalDeviceMemoryProperties, vk); + PROVIDE_PROC(proc_table, AllocateMemory, vk); + PROVIDE_PROC(proc_table, FreeMemory, vk); + PROVIDE_PROC(proc_table, MapMemory, vk); + PROVIDE_PROC(proc_table, UnmapMemory, vk); + PROVIDE_PROC(proc_table, FlushMappedMemoryRanges, vk); + PROVIDE_PROC(proc_table, InvalidateMappedMemoryRanges, vk); + PROVIDE_PROC(proc_table, BindBufferMemory, vk); + PROVIDE_PROC(proc_table, BindImageMemory, vk); + PROVIDE_PROC(proc_table, GetBufferMemoryRequirements, vk); + PROVIDE_PROC(proc_table, GetImageMemoryRequirements, vk); + PROVIDE_PROC(proc_table, CreateBuffer, vk); + PROVIDE_PROC(proc_table, DestroyBuffer, vk); + PROVIDE_PROC(proc_table, CreateImage, vk); + PROVIDE_PROC(proc_table, DestroyImage, vk); + PROVIDE_PROC(proc_table, CmdCopyBuffer, vk); + +#define PROVIDE_PROC_COALESCE(tbl, proc, provider) \ + tbl.vk##proc##KHR = provider->proc ? provider->proc : provider->proc##KHR; + // See the following link for why we have to pick either KHR version or + // promoted non-KHR version: + // https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator/issues/203 + PROVIDE_PROC_COALESCE(proc_table, GetBufferMemoryRequirements2, vk); + PROVIDE_PROC_COALESCE(proc_table, GetImageMemoryRequirements2, vk); + PROVIDE_PROC_COALESCE(proc_table, BindBufferMemory2, vk); + PROVIDE_PROC_COALESCE(proc_table, BindImageMemory2, vk); + PROVIDE_PROC_COALESCE(proc_table, GetPhysicalDeviceMemoryProperties2, vk); +#undef PROVIDE_PROC_COALESCE + +#undef PROVIDE_PROC + + VmaAllocatorCreateInfo allocator_info = {}; + allocator_info.vulkanApiVersion = vulkan_api_version; + allocator_info.physicalDevice = physicalDevice; + allocator_info.device = device; + allocator_info.instance = instance; + allocator_info.pVulkanFunctions = &proc_table; + + VmaAllocator allocator; + vmaCreateAllocator(&allocator_info, &allocator); + + return sk_sp( + new FlutterSkiaVulkanMemoryAllocator(vk, allocator, + mustUseCoherentHostVisibleMemory)); +} + +FlutterSkiaVulkanMemoryAllocator::FlutterSkiaVulkanMemoryAllocator( + fml::RefPtr vk_proc_table, + VmaAllocator allocator, + bool mustUseCoherentHostVisibleMemory) + : vk_proc_table_(std::move(vk_proc_table)), + allocator_(allocator), + must_use_coherent_host_visible_memory_(mustUseCoherentHostVisibleMemory) { +} + +FlutterSkiaVulkanMemoryAllocator::~FlutterSkiaVulkanMemoryAllocator() { + vmaDestroyAllocator(allocator_); + allocator_ = VK_NULL_HANDLE; +} + +VkResult FlutterSkiaVulkanMemoryAllocator::allocateImageMemory( + VkImage image, + uint32_t allocationPropertyFlags, + skgpu::VulkanBackendMemory* backendMemory) { + VmaAllocationCreateInfo info; + info.flags = 0; + info.usage = VMA_MEMORY_USAGE_UNKNOWN; + info.requiredFlags = VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT; + info.preferredFlags = 0; + info.memoryTypeBits = 0; + info.pool = VK_NULL_HANDLE; + info.pUserData = nullptr; + + if (kDedicatedAllocation_AllocationPropertyFlag & allocationPropertyFlags) { + info.flags |= VMA_ALLOCATION_CREATE_DEDICATED_MEMORY_BIT; + } + if (kLazyAllocation_AllocationPropertyFlag & allocationPropertyFlags) { + info.requiredFlags |= VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT; + } + if (kProtected_AllocationPropertyFlag & allocationPropertyFlags) { + info.requiredFlags |= VK_MEMORY_PROPERTY_PROTECTED_BIT; + } + + VmaAllocation allocation; + VkResult result = + vmaAllocateMemoryForImage(allocator_, image, &info, &allocation, nullptr); + if (VK_SUCCESS == result) { + *backendMemory = reinterpret_cast(allocation); + } + return result; +} + +VkResult FlutterSkiaVulkanMemoryAllocator::allocateBufferMemory( + VkBuffer buffer, + BufferUsage usage, + uint32_t allocationPropertyFlags, + skgpu::VulkanBackendMemory* backendMemory) { + VmaAllocationCreateInfo info; + info.flags = 0; + info.usage = VMA_MEMORY_USAGE_UNKNOWN; + info.memoryTypeBits = 0; + info.pool = VK_NULL_HANDLE; + info.pUserData = nullptr; + + switch (usage) { + case BufferUsage::kGpuOnly: + info.requiredFlags = VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT; + info.preferredFlags = 0; + break; + case BufferUsage::kCpuWritesGpuReads: + // When doing cpu writes and gpu reads the general rule of thumb is to use + // coherent memory. Though this depends on the fact that we are not doing + // any cpu reads and the cpu writes are sequential. For sparse writes we'd + // want cpu cached memory, however we don't do these types of writes in + // Skia. + // + // TODO (kaushikiska): In the future there may be times where specific + // types of memory could benefit from a coherent and cached memory. + // Typically these allow for the gpu to read cpu writes from the cache + // without needing to flush the writes throughout the cache. The reverse + // is not true and GPU writes tend to invalidate the cache regardless. + // Also these gpu cache read access are typically lower bandwidth than + // non-cached memory. For now Skia doesn't really have a need or want of + // this type of memory. But if we ever do we could pass in an + // AllocationPropertyFlag that requests the cached property. + info.requiredFlags = VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | + VK_MEMORY_PROPERTY_HOST_COHERENT_BIT; + info.preferredFlags = VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT; + break; + case BufferUsage::kTransfersFromCpuToGpu: + info.requiredFlags = VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | + VK_MEMORY_PROPERTY_HOST_COHERENT_BIT; + info.preferredFlags = 0; + break; + case BufferUsage::kTransfersFromGpuToCpu: + info.requiredFlags = VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT; + info.preferredFlags = VK_MEMORY_PROPERTY_HOST_CACHED_BIT; + break; + } + + if (must_use_coherent_host_visible_memory_ && + (info.requiredFlags & VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT)) { + info.requiredFlags |= VK_MEMORY_PROPERTY_HOST_COHERENT_BIT; + } + if (kDedicatedAllocation_AllocationPropertyFlag & allocationPropertyFlags) { + info.flags |= VMA_ALLOCATION_CREATE_DEDICATED_MEMORY_BIT; + } + if ((kLazyAllocation_AllocationPropertyFlag & allocationPropertyFlags) && + BufferUsage::kGpuOnly == usage) { + info.preferredFlags |= VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT; + } + + if (kPersistentlyMapped_AllocationPropertyFlag & allocationPropertyFlags) { + SkASSERT(BufferUsage::kGpuOnly != usage); + info.flags |= VMA_ALLOCATION_CREATE_MAPPED_BIT; + } + + VmaAllocation allocation; + VkResult result = vmaAllocateMemoryForBuffer(allocator_, buffer, &info, + &allocation, nullptr); + if (VK_SUCCESS == result) { + *backendMemory = reinterpret_cast(allocation); + } + + return result; +} + +void FlutterSkiaVulkanMemoryAllocator::freeMemory( + const skgpu::VulkanBackendMemory& memoryHandle) { + const VmaAllocation allocation = + reinterpret_cast(memoryHandle); + vmaFreeMemory(allocator_, allocation); +} + +void FlutterSkiaVulkanMemoryAllocator::getAllocInfo( + const skgpu::VulkanBackendMemory& memoryHandle, + skgpu::VulkanAlloc* alloc) const { + const VmaAllocation allocation = + reinterpret_cast(memoryHandle); + VmaAllocationInfo vmaInfo; + vmaGetAllocationInfo(allocator_, allocation, &vmaInfo); + + VkMemoryPropertyFlags memFlags; + vmaGetMemoryTypeProperties(allocator_, vmaInfo.memoryType, &memFlags); + + uint32_t flags = 0; + if (VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT & memFlags) { + flags |= skgpu::VulkanAlloc::kMappable_Flag; + } + if (!SkToBool(VK_MEMORY_PROPERTY_HOST_COHERENT_BIT & memFlags)) { + flags |= skgpu::VulkanAlloc::kNoncoherent_Flag; + } + if (VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT & memFlags) { + flags |= skgpu::VulkanAlloc::kLazilyAllocated_Flag; + } + + alloc->fMemory = vmaInfo.deviceMemory; + alloc->fOffset = vmaInfo.offset; + alloc->fSize = vmaInfo.size; + alloc->fFlags = flags; + alloc->fBackendMemory = memoryHandle; +} + +VkResult FlutterSkiaVulkanMemoryAllocator::mapMemory( + const skgpu::VulkanBackendMemory& memoryHandle, + void** data) { + const VmaAllocation allocation = + reinterpret_cast(memoryHandle); + return vmaMapMemory(allocator_, allocation, data); +} + +void FlutterSkiaVulkanMemoryAllocator::unmapMemory( + const skgpu::VulkanBackendMemory& memoryHandle) { + const VmaAllocation allocation = + reinterpret_cast(memoryHandle); + vmaUnmapMemory(allocator_, allocation); +} + +VkResult FlutterSkiaVulkanMemoryAllocator::flushMemory( + const skgpu::VulkanBackendMemory& memoryHandle, + VkDeviceSize offset, + VkDeviceSize size) { + const VmaAllocation allocation = + reinterpret_cast(memoryHandle); + return vmaFlushAllocation(allocator_, allocation, offset, size); +} + +VkResult FlutterSkiaVulkanMemoryAllocator::invalidateMemory( + const skgpu::VulkanBackendMemory& memoryHandle, + VkDeviceSize offset, + VkDeviceSize size) { + const VmaAllocation allocation = + reinterpret_cast(memoryHandle); + return vmaInvalidateAllocation(allocator_, allocation, offset, size); +} + +uint64_t FlutterSkiaVulkanMemoryAllocator::totalUsedMemory() const { + VmaTotalStatistics stats; + vmaCalculateStatistics(allocator_, &stats); + return stats.total.statistics.allocationBytes; +} + +uint64_t FlutterSkiaVulkanMemoryAllocator::totalAllocatedMemory() const { + VmaTotalStatistics stats; + vmaCalculateStatistics(allocator_, &stats); + return stats.total.statistics.blockBytes; +} + +} // namespace flutter diff --git a/flutter_vma/flutter_skia_vma.h b/flutter_vma/flutter_skia_vma.h new file mode 100644 index 0000000000000..fd6a6078d4e39 --- /dev/null +++ b/flutter_vma/flutter_skia_vma.h @@ -0,0 +1,70 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#pragma once + +#include "flutter/flutter_vma/flutter_vma.h" + +#include "flutter/fml/memory/ref_ptr.h" +#include "flutter/vulkan/procs/vulkan_proc_table.h" +#include "third_party/skia/include/gpu/vk/GrVkBackendContext.h" + +namespace flutter { + +class FlutterSkiaVulkanMemoryAllocator : public skgpu::VulkanMemoryAllocator { + public: + static sk_sp Make( + uint32_t vulkan_api_version, + VkInstance instance, + VkPhysicalDevice physicalDevice, + VkDevice device, + const fml::RefPtr& vk, + bool mustUseCoherentHostVisibleMemory); + + ~FlutterSkiaVulkanMemoryAllocator() override; + + VkResult allocateImageMemory(VkImage image, + uint32_t allocationPropertyFlags, + skgpu::VulkanBackendMemory*) override; + + VkResult allocateBufferMemory(VkBuffer buffer, + BufferUsage usage, + uint32_t allocationPropertyFlags, + skgpu::VulkanBackendMemory*) override; + + void freeMemory(const skgpu::VulkanBackendMemory&) override; + + void getAllocInfo(const skgpu::VulkanBackendMemory&, + skgpu::VulkanAlloc*) const override; + + VkResult mapMemory(const skgpu::VulkanBackendMemory&, void** data) override; + void unmapMemory(const skgpu::VulkanBackendMemory&) override; + + VkResult flushMemory(const skgpu::VulkanBackendMemory&, + VkDeviceSize offset, + VkDeviceSize size) override; + VkResult invalidateMemory(const skgpu::VulkanBackendMemory&, + VkDeviceSize offset, + VkDeviceSize size) override; + + uint64_t totalUsedMemory() const override; + uint64_t totalAllocatedMemory() const override; + + private: + FlutterSkiaVulkanMemoryAllocator( + fml::RefPtr vk_proc_table, + VmaAllocator allocator, + bool mustUseCoherentHostVisibleMemory); + + fml::RefPtr vk_proc_table_; + VmaAllocator allocator_; + + // For host visible allocations do we require they are coherent or not. All + // devices are required to support a host visible and coherent memory type. + // This is used to work around bugs for devices that don't handle non coherent + // memory correctly. + bool must_use_coherent_host_visible_memory_; +}; + +} // namespace flutter diff --git a/flutter_vma/flutter_vma.cc b/flutter_vma/flutter_vma.cc new file mode 100644 index 0000000000000..81df956c1daed --- /dev/null +++ b/flutter_vma/flutter_vma.cc @@ -0,0 +1,19 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifdef VMA_STATIC_VULKAN_FUNCTIONS +#undef VMA_STATIC_VULKAN_FUNCTIONS +#endif // VMA_STATIC_VULKAN_FUNCTIONS + +#ifdef VMA_DYNAMIC_VULKAN_FUNCTIONS +#undef VMA_DYNAMIC_VULKAN_FUNCTIONS +#endif // VMA_DYNAMIC_VULKAN_FUNCTIONS + +// We use our own functions pointers +#define VMA_STATIC_VULKAN_FUNCTIONS 0 +#define VMA_DYNAMIC_VULKAN_FUNCTIONS 0 + +#define VMA_IMPLEMENTATION + +#include "flutter/flutter_vma/flutter_vma.h" diff --git a/impeller/entity/contents/solid_fill_utils.cc b/flutter_vma/flutter_vma.h similarity index 61% rename from impeller/entity/contents/solid_fill_utils.cc rename to flutter_vma/flutter_vma.h index 13c0684127bfd..f218c7a876121 100644 --- a/impeller/entity/contents/solid_fill_utils.cc +++ b/flutter_vma/flutter_vma.h @@ -2,10 +2,6 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "impeller/entity/contents/solid_fill_utils.h" +#pragma once -namespace impeller { - -// - -} // namespace impeller +#include "vk_mem_alloc.h" diff --git a/fml/BUILD.gn b/fml/BUILD.gn index 3caa047f4b30c..2656313e03764 100644 --- a/fml/BUILD.gn +++ b/fml/BUILD.gn @@ -96,7 +96,7 @@ source_set("fml") { "wakeable.h", ] - if (is_mac || is_linux || (is_ios && is_debug)) { + if (is_mac || is_linux || is_win || (is_ios && is_debug)) { sources += [ "backtrace.cc" ] } else { sources += [ "backtrace_stub.cc" ] @@ -115,7 +115,7 @@ source_set("fml") { "//third_party/icu", ] - if (is_mac || is_linux || (is_ios && is_debug)) { + if (is_mac || is_linux || is_win || (is_ios && is_debug)) { # This abseil dependency is only used by backtrace.cc. deps += [ "//third_party/abseil-cpp/absl/debugging:symbolize" ] } diff --git a/fml/backtrace.cc b/fml/backtrace.cc index 34b0ef06b146b..264fa7d0bcda5 100644 --- a/fml/backtrace.cc +++ b/fml/backtrace.cc @@ -4,68 +4,56 @@ #include "flutter/fml/backtrace.h" -#include -#include -#include - #include #include -#if FML_OS_WIN -#include -#include -#endif - +#include "flutter/fml/build_config.h" #include "flutter/fml/logging.h" #include "flutter/fml/paths.h" #include "third_party/abseil-cpp/absl/debugging/symbolize.h" +#ifdef FML_OS_WIN +#include +#include +#include +#else // FML_OS_WIN +#include +#endif // FML_OS_WIN + namespace fml { static std::string kKUnknownFrameName = "Unknown"; -static std::string DemangleSymbolName(const std::string& mangled) { - if (mangled == kKUnknownFrameName) { - return kKUnknownFrameName; - } - - int status = 0; - size_t length = 0; - char* demangled = __cxxabiv1::__cxa_demangle( - mangled.data(), // mangled name - nullptr, // output buffer (malloc-ed if nullptr) - &length, // demangled length - &status); - - if (demangled == nullptr || status != 0) { - return mangled; - } - - auto demangled_string = std::string{demangled, length}; - free(demangled); - return demangled_string; -} - static std::string GetSymbolName(void* symbol) { char name[1024]; if (!absl::Symbolize(symbol, name, sizeof(name))) { return kKUnknownFrameName; } + return name; +} - return DemangleSymbolName({name}); +static int Backtrace(void** symbols, int size) { +#if FML_OS_WIN + return CaptureStackBackTrace(0, size, symbols, NULL); +#else + return ::backtrace(symbols, size); +#endif // FML_OS_WIN } std::string BacktraceHere(size_t offset) { constexpr size_t kMaxFrames = 256; void* symbols[kMaxFrames]; - const auto available_frames = ::backtrace(symbols, kMaxFrames); + const auto available_frames = Backtrace(symbols, kMaxFrames); if (available_frames <= 0) { return ""; } + // Exclude here. + offset += 2; + std::stringstream stream; - for (int i = 1 + offset; i < available_frames; ++i) { - stream << "Frame " << i - 1 - offset << ": " << symbols[i] << " " + for (int i = offset; i < available_frames; ++i) { + stream << "Frame " << i - offset << ": " << symbols[i] << " " << GetSymbolName(symbols[i]) << std::endl; } return stream.str(); @@ -74,12 +62,14 @@ std::string BacktraceHere(size_t offset) { static size_t kKnownSignalHandlers[] = { SIGABRT, // abort program SIGFPE, // floating-point exception - SIGBUS, // bus error + SIGTERM, // software termination signal SIGSEGV, // segmentation violation +#if !FML_OS_WIN + SIGBUS, // bus error SIGSYS, // non-existent system call invoked SIGPIPE, // write on a pipe with no reader SIGALRM, // real-time timer expired - SIGTERM, // software termination signal +#endif // !FML_OS_WIN }; static std::string SignalNameToString(int signal) { @@ -88,18 +78,20 @@ static std::string SignalNameToString(int signal) { return "SIGABRT"; case SIGFPE: return "SIGFPE"; - case SIGBUS: - return "SIGBUS"; case SIGSEGV: return "SIGSEGV"; + case SIGTERM: + return "SIGTERM"; +#if !FML_OS_WIN + case SIGBUS: + return "SIGBUS"; case SIGSYS: return "SIGSYS"; case SIGPIPE: return "SIGPIPE"; case SIGALRM: return "SIGALRM"; - case SIGTERM: - return "SIGTERM"; +#endif // !FML_OS_WIN }; return std::to_string(signal); } diff --git a/fml/backtrace.h b/fml/backtrace.h index 18f17933b355b..167ce956206f6 100644 --- a/fml/backtrace.h +++ b/fml/backtrace.h @@ -11,6 +11,9 @@ namespace fml { +// Retrieve the backtrace, for debugging. +// +// If the |offset| is 0, the backtrace is included caller function. std::string BacktraceHere(size_t offset = 0); void InstallCrashHandler(); diff --git a/fml/command_line.h b/fml/command_line.h index c3f27803b9b3b..c920da4023b65 100644 --- a/fml/command_line.h +++ b/fml/command_line.h @@ -222,11 +222,32 @@ inline CommandLine CommandLineFromIteratorsWithArgv0(const std::string& argv0, return builder.Build(); } +// Builds a |CommandLine| by obtaining the arguments of the process using host +// platform APIs. The resulting |CommandLine| will be encoded in UTF-8. +// Returns an empty optional if this is not supported on the host platform. +// +// This can be useful on platforms where argv may not be provided as UTF-8. +std::optional CommandLineFromPlatform(); + // Builds a |CommandLine| from the usual argc/argv. inline CommandLine CommandLineFromArgcArgv(int argc, const char* const* argv) { return CommandLineFromIterators(argv, argv + argc); } +// Builds a |CommandLine| by first trying the platform specific implementation, +// and then falling back to the argc/argv. +// +// If the platform provides a special way of getting arguments, this method may +// discard the values passed in to argc/argv. +inline CommandLine CommandLineFromPlatformOrArgcArgv(int argc, + const char* const* argv) { + auto command_line = CommandLineFromPlatform(); + if (command_line.has_value()) { + return *command_line; + } + return CommandLineFromArgcArgv(argc, argv); +} + // Builds a |CommandLine| from an initializer list of |std::string|s or things // that implicitly convert to |std::string|. template @@ -240,13 +261,6 @@ inline CommandLine CommandLineFromInitializerList( // outlined at the top of this file. std::vector CommandLineToArgv(const CommandLine& command_line); -// Builds a |CommandLine| by obtaining the arguments of the process using host -// platform APIs. The resulting |CommandLine| will be encoded in UTF-8. -// Returns an empty optional if this is not supported on the host platform. -// -// This can be useful on platforms where argv may not be provided as UTF-8. -std::optional CommandLineFromPlatform(); - } // namespace fml #endif // LIB_FML_COMMAND_LINE_H_ diff --git a/fml/memory/weak_ptr.h b/fml/memory/weak_ptr.h index a78d8cc039389..8507b8aefed9f 100644 --- a/fml/memory/weak_ptr.h +++ b/fml/memory/weak_ptr.h @@ -65,8 +65,6 @@ class WeakPtr { flag_(std::move(r.flag_)), checker_(r.checker_) {} - virtual ~WeakPtr() = default; - // The following methods are thread-friendly, in the sense that they may be // called subject to additional synchronization. @@ -107,7 +105,7 @@ class WeakPtr { explicit WeakPtr(T* ptr, fml::RefPtr&& flag) : ptr_(ptr), flag_(std::move(flag)) {} - virtual void CheckThreadSafety() const { + void CheckThreadSafety() const { FML_DCHECK_CREATION_THREAD_IS_CURRENT(checker_.checker); } @@ -137,23 +135,25 @@ class TaskRunnerAffineWeakPtrFactory; // // It is still not in general thread safe as |WeakPtr|. template -class TaskRunnerAffineWeakPtr : public WeakPtr { +class TaskRunnerAffineWeakPtr { public: - TaskRunnerAffineWeakPtr() : WeakPtr() {} + TaskRunnerAffineWeakPtr() : ptr_(nullptr) {} TaskRunnerAffineWeakPtr(const TaskRunnerAffineWeakPtr& r) = default; template // NOLINTNEXTLINE(google-explicit-constructor) TaskRunnerAffineWeakPtr(const TaskRunnerAffineWeakPtr& r) - : WeakPtr(r), checker_(r.checker_) {} + : ptr_(static_cast(r.ptr_)), flag_(r.flag_), checker_(r.checker_) {} TaskRunnerAffineWeakPtr(TaskRunnerAffineWeakPtr&& r) = default; template // NOLINTNEXTLINE(google-explicit-constructor) TaskRunnerAffineWeakPtr(TaskRunnerAffineWeakPtr&& r) - : WeakPtr(r), checker_(r.checker_) {} + : ptr_(static_cast(r.ptr_)), + flag_(std::move(r.flag_)), + checker_(r.checker_) {} ~TaskRunnerAffineWeakPtr() = default; @@ -163,8 +163,35 @@ class TaskRunnerAffineWeakPtr : public WeakPtr { TaskRunnerAffineWeakPtr& operator=(TaskRunnerAffineWeakPtr&& r) = default; + void reset() { flag_ = nullptr; } + + // The following methods should only be called on the same thread as the + // "originating" |TaskRunnerAffineWeakPtrFactory|. + + explicit operator bool() const { + CheckThreadSafety(); + return flag_ && flag_->is_valid(); + } + + T* get() const { + CheckThreadSafety(); + return *this ? ptr_ : nullptr; + } + + T& operator*() const { + CheckThreadSafety(); + FML_DCHECK(*this); + return *get(); + } + + T* operator->() const { + CheckThreadSafety(); + FML_DCHECK(*this); + return get(); + } + protected: - void CheckThreadSafety() const override { + void CheckThreadSafety() const { FML_DCHECK_TASK_RUNNER_IS_CURRENT(checker_.checker); } @@ -177,8 +204,10 @@ class TaskRunnerAffineWeakPtr : public WeakPtr { T* ptr, fml::RefPtr&& flag, DebugTaskRunnerChecker checker) - : WeakPtr(ptr, std::move(flag)), checker_(checker) {} + : ptr_(ptr), flag_(std::move(flag)), checker_(checker) {} + T* ptr_; + fml::RefPtr flag_; DebugTaskRunnerChecker checker_; }; diff --git a/fml/platform/win/paths_win.cc b/fml/platform/win/paths_win.cc index f9226354ce5ca..01b5d9a5a7893 100644 --- a/fml/platform/win/paths_win.cc +++ b/fml/platform/win/paths_win.cc @@ -9,6 +9,7 @@ #include #include "flutter/fml/paths.h" +#include "flutter/fml/platform/win/wstring_conversion.h" namespace fml { namespace paths { @@ -58,12 +59,12 @@ std::pair GetExecutablePath() { if (module == NULL) { return {false, ""}; } - char path[MAX_PATH]; - DWORD read_size = GetModuleFileNameA(module, path, MAX_PATH); + wchar_t path[MAX_PATH]; + DWORD read_size = GetModuleFileNameW(module, path, MAX_PATH); if (read_size == 0 || read_size == MAX_PATH) { return {false, ""}; } - return {true, std::string{path, read_size}}; + return {true, WideStringToUtf8({path, read_size})}; } std::string AbsolutePath(const std::string& path) { diff --git a/fml/string_conversion.cc b/fml/string_conversion.cc index 7b718fef19394..d55577c4e6471 100644 --- a/fml/string_conversion.cc +++ b/fml/string_conversion.cc @@ -6,6 +6,7 @@ #include #include +#include #include #include "flutter/fml/build_config.h" @@ -22,6 +23,17 @@ namespace fml { using Utf16StringConverter = std::wstring_convert, char16_t>; +std::string Join(const std::vector& vec, const char* delim) { + std::stringstream res; + for (size_t i = 0; i < vec.size(); ++i) { + res << vec[i]; + if (i < vec.size() - 1) { + res << delim; + } + } + return res.str(); +} + std::string Utf16ToUtf8(const std::u16string_view string) { Utf16StringConverter converter; return converter.to_bytes(string.data()); diff --git a/fml/string_conversion.h b/fml/string_conversion.h index 5c2402980dab5..eb7d840c3c717 100644 --- a/fml/string_conversion.h +++ b/fml/string_conversion.h @@ -6,9 +6,13 @@ #define FLUTTER_FML_STRING_CONVERSION_H_ #include +#include namespace fml { +// Returns a string joined by the given delimiter. +std::string Join(const std::vector& vec, const char* delimiter); + // Returns a UTF-8 encoded equivalent of a UTF-16 encoded input string. std::string Utf16ToUtf8(const std::u16string_view string); diff --git a/impeller/README.md b/impeller/README.md index 322509c1c1e1a..386511ae7ab32 100644 --- a/impeller/README.md +++ b/impeller/README.md @@ -182,8 +182,10 @@ To your `AndroidManifest.xml` file, add under the `` tag: * [Frequently Asked Questions](docs/faq.md) * [Impellers Coordinate System](docs/coordinate_system.md) * [How to Setup Xcode for GPU Frame Captures with Metal.](docs/xcode_frame_capture.md) +* [How to Setup RenderDoc Frame Captures with Vulkan.](docs/renderdoc_frame_capture.md) * [Learning to Read GPU Frame Captures](docs/read_frame_captures.md) * [How to Enable Metal Validation for Command Line Apps.](docs/metal_validation.md) * [How Impeller Works Around The Lack of Uniform Buffers in Open GL ES 2.0.](docs/ubo_gles2.md) * [Guidance for writing efficient shaders](docs/shader_optimization.md) * [How color blending works in Impeller](docs/blending.md) +* [Enabling Vulkan Validation Layers on Android](docs/android_validation_layers.md) diff --git a/impeller/aiks/aiks_context.cc b/impeller/aiks/aiks_context.cc index a1c8b32308e17..fd504cbe03ca3 100644 --- a/impeller/aiks/aiks_context.cc +++ b/impeller/aiks/aiks_context.cc @@ -32,6 +32,10 @@ std::shared_ptr AiksContext::GetContext() const { return context_; } +const ContentContext& AiksContext::GetContentContext() const { + return *content_context_; +} + bool AiksContext::Render(const Picture& picture, RenderTarget& render_target) { if (!IsValid()) { return false; diff --git a/impeller/aiks/aiks_context.h b/impeller/aiks/aiks_context.h index 7f7780ffb69ab..d748f3156fcba 100644 --- a/impeller/aiks/aiks_context.h +++ b/impeller/aiks/aiks_context.h @@ -26,6 +26,8 @@ class AiksContext { std::shared_ptr GetContext() const; + const ContentContext& GetContentContext() const; + bool Render(const Picture& picture, RenderTarget& render_target); private: diff --git a/impeller/aiks/aiks_unittests.cc b/impeller/aiks/aiks_unittests.cc index 2e1acae731a91..2ced180b3e7d2 100644 --- a/impeller/aiks/aiks_unittests.cc +++ b/impeller/aiks/aiks_unittests.cc @@ -6,6 +6,7 @@ #include #include #include +#include #include "flutter/testing/testing.h" #include "impeller/aiks/aiks_playground.h" @@ -74,7 +75,7 @@ TEST_P(AiksTest, CanRenderImage) { ASSERT_TRUE(OpenPlaygroundHere(canvas.EndRecordingAsPicture())); } -bool GenerateMipmap(std::shared_ptr context, +bool GenerateMipmap(const std::shared_ptr& context, std::shared_ptr texture, std::string label) { auto buffer = context->CreateCommandBuffer(); @@ -85,7 +86,7 @@ bool GenerateMipmap(std::shared_ptr context, if (!pass) { return false; } - pass->GenerateMipmap(texture, label); + pass->GenerateMipmap(std::move(texture), std::move(label)); pass->EncodeCommands(context->GetResourceAllocator()); return true; } @@ -100,8 +101,6 @@ TEST_P(AiksTest, CanRenderTiledTexture) { if (first_frame) { first_frame = false; GenerateMipmap(context, texture, "table_mountain_nx"); - ImGui::SetNextWindowSize({480, 100}); - ImGui::SetNextWindowPos({100, 550}); } const char* tile_mode_names[] = {"Clamp", "Repeat", "Mirror", "Decal"}; @@ -302,14 +301,7 @@ TEST_P(AiksTest, CanSaveLayerStandalone) { } TEST_P(AiksTest, CanRenderLinearGradient) { - bool first_frame = true; auto callback = [&](AiksContext& renderer, RenderTarget& render_target) { - if (first_frame) { - first_frame = false; - ImGui::SetNextWindowSize({480, 100}); - ImGui::SetNextWindowPos({100, 550}); - } - const char* tile_mode_names[] = {"Clamp", "Repeat", "Mirror", "Decal"}; const Entity::TileMode tile_modes[] = { Entity::TileMode::kClamp, Entity::TileMode::kRepeat, @@ -360,14 +352,7 @@ TEST_P(AiksTest, CanRenderLinearGradient) { } TEST_P(AiksTest, CanRenderLinearGradientManyColors) { - bool first_frame = true; auto callback = [&](AiksContext& renderer, RenderTarget& render_target) { - if (first_frame) { - first_frame = false; - ImGui::SetNextWindowSize({480, 100}); - ImGui::SetNextWindowPos({100, 550}); - } - const char* tile_mode_names[] = {"Clamp", "Repeat", "Mirror", "Decal"}; const Entity::TileMode tile_modes[] = { Entity::TileMode::kClamp, Entity::TileMode::kRepeat, @@ -432,14 +417,7 @@ TEST_P(AiksTest, CanRenderLinearGradientManyColors) { } TEST_P(AiksTest, CanRenderLinearGradientWayManyColors) { - bool first_frame = true; auto callback = [&](AiksContext& renderer, RenderTarget& render_target) { - if (first_frame) { - first_frame = false; - ImGui::SetNextWindowSize({480, 100}); - ImGui::SetNextWindowPos({100, 550}); - } - const char* tile_mode_names[] = {"Clamp", "Repeat", "Mirror", "Decal"}; const Entity::TileMode tile_modes[] = { Entity::TileMode::kClamp, Entity::TileMode::kRepeat, @@ -481,8 +459,8 @@ TEST_P(AiksTest, CanRenderLinearGradientWayManyColors) { colors = std::move(colors)]() { auto contents = std::make_shared(); contents->SetEndPoints({0, 0}, {200, 200}); - contents->SetColors(std::move(colors)); - contents->SetStops(std::move(stops)); + contents->SetColors(colors); + contents->SetStops(stops); contents->SetTileMode(tile_mode); contents->SetMatrix(matrix); return contents; @@ -494,14 +472,7 @@ TEST_P(AiksTest, CanRenderLinearGradientWayManyColors) { } TEST_P(AiksTest, CanRenderLinearGradientManyColorsUnevenStops) { - bool first_frame = true; auto callback = [&](AiksContext& renderer, RenderTarget& render_target) { - if (first_frame) { - first_frame = false; - ImGui::SetNextWindowSize({480, 100}); - ImGui::SetNextWindowPos({100, 550}); - } - const char* tile_mode_names[] = {"Clamp", "Repeat", "Mirror", "Decal"}; const Entity::TileMode tile_modes[] = { Entity::TileMode::kClamp, Entity::TileMode::kRepeat, @@ -558,14 +529,7 @@ TEST_P(AiksTest, CanRenderLinearGradientManyColorsUnevenStops) { } TEST_P(AiksTest, CanRenderRadialGradient) { - bool first_frame = true; auto callback = [&](AiksContext& renderer, RenderTarget& render_target) { - if (first_frame) { - first_frame = false; - ImGui::SetNextWindowSize({480, 100}); - ImGui::SetNextWindowPos({100, 550}); - } - const char* tile_mode_names[] = {"Clamp", "Repeat", "Mirror", "Decal"}; const Entity::TileMode tile_modes[] = { Entity::TileMode::kClamp, Entity::TileMode::kRepeat, @@ -613,14 +577,7 @@ TEST_P(AiksTest, CanRenderRadialGradient) { } TEST_P(AiksTest, CanRenderRadialGradientManyColors) { - bool first_frame = true; auto callback = [&](AiksContext& renderer, RenderTarget& render_target) { - if (first_frame) { - first_frame = false; - ImGui::SetNextWindowSize({480, 100}); - ImGui::SetNextWindowPos({100, 550}); - } - const char* tile_mode_names[] = {"Clamp", "Repeat", "Mirror", "Decal"}; const Entity::TileMode tile_modes[] = { Entity::TileMode::kClamp, Entity::TileMode::kRepeat, @@ -682,14 +639,7 @@ TEST_P(AiksTest, CanRenderRadialGradientManyColors) { } TEST_P(AiksTest, CanRenderSweepGradient) { - bool first_frame = true; auto callback = [&](AiksContext& renderer, RenderTarget& render_target) { - if (first_frame) { - first_frame = false; - ImGui::SetNextWindowSize({480, 100}); - ImGui::SetNextWindowPos({100, 550}); - } - const char* tile_mode_names[] = {"Clamp", "Repeat", "Mirror", "Decal"}; const Entity::TileMode tile_modes[] = { Entity::TileMode::kClamp, Entity::TileMode::kRepeat, @@ -736,14 +686,7 @@ TEST_P(AiksTest, CanRenderSweepGradient) { } TEST_P(AiksTest, CanRenderSweepGradientManyColors) { - bool first_frame = true; auto callback = [&](AiksContext& renderer, RenderTarget& render_target) { - if (first_frame) { - first_frame = false; - ImGui::SetNextWindowSize({480, 100}); - ImGui::SetNextWindowPos({100, 550}); - } - const char* tile_mode_names[] = {"Clamp", "Repeat", "Mirror", "Decal"}; const Entity::TileMode tile_modes[] = { Entity::TileMode::kClamp, Entity::TileMode::kRepeat, @@ -834,14 +777,7 @@ TEST_P(AiksTest, CanRenderDifferentShapesWithSameColorSource) { } TEST_P(AiksTest, CanPictureConvertToImage) { - bool first_frame = true; auto callback = [&](AiksContext& renderer, RenderTarget& render_target) { - if (first_frame) { - first_frame = false; - ImGui::SetNextWindowSize({480, 100}); - ImGui::SetNextWindowPos({100, 550}); - } - static int size[2] = {1000, 1000}; ImGui::Begin("Controls", nullptr, ImGuiWindowFlags_AlwaysAutoResize); ImGui::SliderInt2("Size", size, 0, 1000); @@ -1077,7 +1013,7 @@ TEST_P(AiksTest, CanRenderDifferencePaths) { canvas.DrawImage( std::make_shared(CreateTextureForFixture("boston.jpg")), {10, 10}, Paint{}); - canvas.DrawPath(std::move(path), paint); + canvas.DrawPath(path, paint); ASSERT_TRUE(OpenPlaygroundHere(canvas.EndRecordingAsPicture())); } @@ -1097,7 +1033,7 @@ static sk_sp OpenFixtureAsSkData(const char* fixture_name) { return data; } -bool RenderTextInCanvas(std::shared_ptr context, +bool RenderTextInCanvas(const std::shared_ptr& context, Canvas& canvas, const std::string& text, const std::string& font_fixture, @@ -1129,7 +1065,7 @@ bool RenderTextInCanvas(std::shared_ptr context, Paint text_paint; text_paint.color = Color::Yellow(); - canvas.DrawTextFrame(std::move(frame), text_position, text_paint); + canvas.DrawTextFrame(frame, text_position, text_paint); return true; } @@ -1292,32 +1228,27 @@ TEST_P(AiksTest, ColorWheel) { } }; - std::shared_ptr color_wheel; + std::shared_ptr color_wheel_image; Matrix color_wheel_transform; - bool first_frame = true; auto callback = [&](AiksContext& renderer, RenderTarget& render_target) { - if (first_frame) { - first_frame = false; - ImGui::SetNextWindowSize({350, 260}); - ImGui::SetNextWindowPos({25, 25}); - } - // UI state. static int current_blend_index = 3; - static float alpha = 1; + static float dst_alpha = 1; + static float src_alpha = 1; static Color color0 = Color::Red(); static Color color1 = Color::Green(); static Color color2 = Color::Blue(); - ImGui::Begin("Controls"); + ImGui::Begin("Controls", nullptr, ImGuiWindowFlags_AlwaysAutoResize); { ImGui::ListBox("Blending mode", ¤t_blend_index, blend_mode_names.data(), blend_mode_names.size()); - ImGui::SliderFloat("Alpha", &alpha, 0, 1); + ImGui::SliderFloat("Source alpha", &src_alpha, 0, 1); ImGui::ColorEdit4("Color A", reinterpret_cast(&color0)); ImGui::ColorEdit4("Color B", reinterpret_cast(&color1)); ImGui::ColorEdit4("Color C", reinterpret_cast(&color2)); + ImGui::SliderFloat("Destination alpha", &dst_alpha, 0, 1); } ImGui::End(); @@ -1341,16 +1272,23 @@ TEST_P(AiksTest, ColorWheel) { if (!snapshot.has_value() || !snapshot->texture) { return false; } - color_wheel = std::make_shared(snapshot->texture); + color_wheel_image = std::make_shared(snapshot->texture); color_wheel_transform = snapshot->transform; } Canvas canvas; - canvas.DrawPaint({.color = Color::White()}); - canvas.Save(); - canvas.Transform(color_wheel_transform); - canvas.DrawImage(color_wheel, Point(), Paint()); + // Blit the color wheel backdrop to the screen with managed alpha. + canvas.SaveLayer({.color = Color::White().WithAlpha(dst_alpha), + .blend_mode = BlendMode::kSource}); + { + canvas.DrawPaint({.color = Color::White()}); + + canvas.Save(); + canvas.Transform(color_wheel_transform); + canvas.DrawImage(color_wheel_image, Point(), Paint()); + canvas.Restore(); + } canvas.Restore(); canvas.Scale(content_scale); @@ -1358,7 +1296,7 @@ TEST_P(AiksTest, ColorWheel) { canvas.Scale(Vector2(3, 3)); // Draw 3 circles to a subpass and blend it in. - canvas.SaveLayer({.color = Color::White().WithAlpha(alpha), + canvas.SaveLayer({.color = Color::White().WithAlpha(src_alpha), .blend_mode = blend_mode_values[current_blend_index]}); { Paint paint; @@ -1421,19 +1359,12 @@ TEST_P(AiksTest, TransformMultipliesCorrectly) { TEST_P(AiksTest, SolidStrokesRenderCorrectly) { // Compare with https://fiddle.skia.org/c/027392122bec8ac2b5d5de00a4b9bbe2 - bool first_frame = true; auto callback = [&](AiksContext& renderer, RenderTarget& render_target) { - if (first_frame) { - first_frame = false; - ImGui::SetNextWindowSize({480, 100}); - ImGui::SetNextWindowPos({100, 550}); - } - static Color color = Color::Black().WithAlpha(0.5); static float scale = 3; static bool add_circle_clip = true; - ImGui::Begin("Controls"); + ImGui::Begin("Controls", nullptr, ImGuiWindowFlags_AlwaysAutoResize); ImGui::ColorEdit4("Color", reinterpret_cast(&color)); ImGui::SliderFloat("Scale", &scale, 0, 6); ImGui::Checkbox("Circle clip", &add_circle_clip); @@ -1473,13 +1404,97 @@ TEST_P(AiksTest, SolidStrokesRenderCorrectly) { canvas.ClipPath(PathBuilder{}.AddCircle(middle, radius).TakePath()); } - for (auto join : - {SolidStrokeContents::Join::kBevel, SolidStrokeContents::Join::kRound, - SolidStrokeContents::Join::kMiter}) { + for (auto join : {Join::kBevel, Join::kRound, Join::kMiter}) { + paint.stroke_join = join; + for (auto cap : {Cap::kButt, Cap::kSquare, Cap::kRound}) { + paint.stroke_cap = cap; + canvas.DrawPath(path, paint); + canvas.Translate({80, 0}); + } + canvas.Translate({-240, 60}); + } + + return renderer.Render(canvas.EndRecordingAsPicture(), render_target); + }; + + ASSERT_TRUE(OpenPlaygroundHere(callback)); +} + +TEST_P(AiksTest, GradientStrokesRenderCorrectly) { + // Compare with https://fiddle.skia.org/c/027392122bec8ac2b5d5de00a4b9bbe2 + auto callback = [&](AiksContext& renderer, RenderTarget& render_target) { + static float scale = 3; + static bool add_circle_clip = true; + const char* tile_mode_names[] = {"Clamp", "Repeat", "Mirror", "Decal"}; + const Entity::TileMode tile_modes[] = { + Entity::TileMode::kClamp, Entity::TileMode::kRepeat, + Entity::TileMode::kMirror, Entity::TileMode::kDecal}; + static int selected_tile_mode = 0; + static float alpha = 1; + + ImGui::Begin("Controls", nullptr, ImGuiWindowFlags_AlwaysAutoResize); + ImGui::SliderFloat("Scale", &scale, 0, 6); + ImGui::Checkbox("Circle clip", &add_circle_clip); + ImGui::SliderFloat("Alpha", &alpha, 0, 1); + ImGui::Combo("Tile mode", &selected_tile_mode, tile_mode_names, + sizeof(tile_mode_names) / sizeof(char*)); + ImGui::End(); + + Canvas canvas; + canvas.Scale(GetContentScale()); + Paint paint; + paint.color = Color::White(); + canvas.DrawPaint(paint); + + paint.style = Paint::Style::kStroke; + paint.color = Color(1.0, 1.0, 1.0, alpha); + paint.stroke_width = 10; + auto tile_mode = tile_modes[selected_tile_mode]; + paint.color_source = [tile_mode]() { + std::vector colors = {Color{0.9568, 0.2627, 0.2118, 1.0}, + Color{0.1294, 0.5882, 0.9529, 1.0}}; + std::vector stops = {0.0, 1.0}; + Matrix matrix = { + 1, 0, 0, 0, // + 0, 1, 0, 0, // + 0, 0, 1, 0, // + 0, 0, 0, 1 // + }; + auto contents = std::make_shared(); + contents->SetEndPoints({0, 0}, {50, 50}); + contents->SetColors(std::move(colors)); + contents->SetStops(std::move(stops)); + contents->SetTileMode(tile_mode); + contents->SetMatrix(matrix); + return contents; + }; + + Path path = PathBuilder{} + .MoveTo({20, 20}) + .QuadraticCurveTo({60, 20}, {60, 60}) + .Close() + .MoveTo({60, 20}) + .QuadraticCurveTo({60, 60}, {20, 60}) + .TakePath(); + + canvas.Scale(Vector2(scale, scale)); + + if (add_circle_clip) { + auto [handle_a, handle_b] = IMPELLER_PLAYGROUND_LINE( + Point(60, 300), Point(600, 300), 20, Color::Red(), Color::Red()); + + auto screen_to_canvas = canvas.GetCurrentTransformation().Invert(); + Point point_a = screen_to_canvas * handle_a * GetContentScale(); + Point point_b = screen_to_canvas * handle_b * GetContentScale(); + + Point middle = (point_a + point_b) / 2; + auto radius = point_a.GetDistance(middle); + canvas.ClipPath(PathBuilder{}.AddCircle(middle, radius).TakePath()); + } + + for (auto join : {Join::kBevel, Join::kRound, Join::kMiter}) { paint.stroke_join = join; - for (auto cap : - {SolidStrokeContents::Cap::kButt, SolidStrokeContents::Cap::kSquare, - SolidStrokeContents::Cap::kRound}) { + for (auto cap : {Cap::kButt, Cap::kSquare, Cap::kRound}) { paint.stroke_cap = cap; canvas.DrawPath(path, paint); canvas.Translate({80, 0}); @@ -1626,7 +1641,7 @@ TEST_P(AiksTest, SaveLayerFiltersScaleWithTransform) { canvas.Translate(Vector2(100, 100)); auto texture = std::make_shared(CreateTextureForFixture("boston.jpg")); - auto draw_image_layer = [&canvas, &texture](Paint paint) { + auto draw_image_layer = [&canvas, &texture](const Paint& paint) { canvas.SaveLayer(paint); canvas.DrawImage(texture, {}, Paint{}); canvas.Restore(); diff --git a/impeller/aiks/canvas.cc b/impeller/aiks/canvas.cc index a767649fbf31c..6ff111b31f725 100644 --- a/impeller/aiks/canvas.cc +++ b/impeller/aiks/canvas.cc @@ -6,6 +6,7 @@ #include #include +#include #include "flutter/fml/logging.h" #include "impeller/aiks/paint_pass_delegate.h" @@ -15,6 +16,7 @@ #include "impeller/entity/contents/text_contents.h" #include "impeller/entity/contents/texture_contents.h" #include "impeller/entity/contents/vertices_contents.h" +#include "impeller/entity/geometry.h" #include "impeller/geometry/path_builder.h" #include "impeller/geometry/vertices.h" @@ -54,13 +56,13 @@ void Canvas::Save( if (create_subpass) { entry.is_subpass = true; auto subpass = std::make_unique(); - subpass->SetBackdropFilter(backdrop_filter); + subpass->SetBackdropFilter(std::move(backdrop_filter)); subpass->SetBlendMode(blend_mode); current_pass_ = GetCurrentPass().AddSubpass(std::move(subpass)); current_pass_->SetTransformation(xformation_stack_.back().xformation); current_pass_->SetStencilDepth(xformation_stack_.back().stencil_depth); } - xformation_stack_.emplace_back(std::move(entry)); + xformation_stack_.emplace_back(entry); } bool Canvas::Restore() { @@ -135,80 +137,94 @@ void Canvas::RestoreToCount(size_t count) { } } -void Canvas::DrawPath(Path path, Paint paint) { +void Canvas::DrawPath(const Path& path, const Paint& paint) { Entity entity; entity.SetTransformation(GetCurrentTransformation()); entity.SetStencilDepth(GetStencilDepth()); entity.SetBlendMode(paint.blend_mode); - entity.SetContents( - paint.WithFilters(paint.CreateContentsForEntity(std::move(path)))); + entity.SetContents(paint.WithFilters(paint.CreateContentsForEntity(path))); - GetCurrentPass().AddEntity(std::move(entity)); + GetCurrentPass().AddEntity(entity); } -void Canvas::DrawPaint(Paint paint) { +void Canvas::DrawPaint(const Paint& paint) { Entity entity; entity.SetTransformation(GetCurrentTransformation()); entity.SetStencilDepth(GetStencilDepth()); entity.SetBlendMode(paint.blend_mode); entity.SetContents(paint.CreateContentsForEntity({}, true)); - GetCurrentPass().AddEntity(std::move(entity)); + GetCurrentPass().AddEntity(entity); } bool Canvas::AttemptDrawBlurredRRect(const Rect& rect, Scalar corner_radius, - Paint& paint) { + const Paint& paint) { + // TODO(114184): This should return false when the paint's ColorSource is not + // solid color. if (!paint.mask_blur_descriptor.has_value() || paint.mask_blur_descriptor->style != FilterContents::BlurStyle::kNormal || paint.style != Paint::Style::kFill) { return false; } + Paint new_paint = paint; + // For symmetrically mask blurred solid RRects, absorb the mask blur and use // a faster SDF approximation. auto contents = std::make_shared(); - contents->SetColor(paint.color); - contents->SetSigma(paint.mask_blur_descriptor->sigma); + contents->SetColor(new_paint.color); + contents->SetSigma(new_paint.mask_blur_descriptor->sigma); contents->SetRRect(rect, corner_radius); - paint.mask_blur_descriptor = std::nullopt; + new_paint.mask_blur_descriptor = std::nullopt; Entity entity; entity.SetTransformation(GetCurrentTransformation()); entity.SetStencilDepth(GetStencilDepth()); - entity.SetBlendMode(paint.blend_mode); - entity.SetContents(paint.WithFilters(std::move(contents))); + entity.SetBlendMode(new_paint.blend_mode); + entity.SetContents(new_paint.WithFilters(std::move(contents))); - GetCurrentPass().AddEntity(std::move(entity)); + GetCurrentPass().AddEntity(entity); return true; } -void Canvas::DrawRect(Rect rect, Paint paint) { +void Canvas::DrawRect(Rect rect, const Paint& paint) { if (AttemptDrawBlurredRRect(rect, 0, paint)) { return; } - DrawPath(PathBuilder{}.AddRect(rect).TakePath(), std::move(paint)); + + Entity entity; + entity.SetTransformation(GetCurrentTransformation()); + entity.SetStencilDepth(GetStencilDepth()); + entity.SetBlendMode(paint.blend_mode); + entity.SetContents(paint.WithFilters( + paint.CreateContentsForGeometry(Geometry::MakeRect(rect)))); + + GetCurrentPass().AddEntity(entity); } -void Canvas::DrawRRect(Rect rect, Scalar corner_radius, Paint paint) { +void Canvas::DrawRRect(Rect rect, Scalar corner_radius, const Paint& paint) { if (AttemptDrawBlurredRRect(rect, corner_radius, paint)) { return; } - DrawPath(PathBuilder{}.AddRoundedRect(rect, corner_radius).TakePath(), - std::move(paint)); + DrawPath(PathBuilder{}.AddRoundedRect(rect, corner_radius).TakePath(), paint); } -void Canvas::DrawCircle(Point center, Scalar radius, Paint paint) { - DrawPath(PathBuilder{}.AddCircle(center, radius).TakePath(), - std::move(paint)); +void Canvas::DrawCircle(Point center, Scalar radius, const Paint& paint) { + Size half_size(radius, radius); + if (AttemptDrawBlurredRRect(Rect(center - half_size, half_size * 2), radius, + paint)) { + return; + } + DrawPath(PathBuilder{}.AddCircle(center, radius).TakePath(), paint); } -void Canvas::ClipPath(Path path, Entity::ClipOperation clip_op) { +void Canvas::ClipPath(const Path& path, Entity::ClipOperation clip_op) { auto contents = std::make_shared(); - contents->SetPath(std::move(path)); + contents->SetGeometry(Geometry::MakeFillPath(path)); contents->SetClipOperation(clip_op); Entity entity; @@ -216,7 +232,7 @@ void Canvas::ClipPath(Path path, Entity::ClipOperation clip_op) { entity.SetContents(std::move(contents)); entity.SetStencilDepth(GetStencilDepth()); - GetCurrentPass().AddEntity(std::move(entity)); + GetCurrentPass().AddEntity(entity); ++xformation_stack_.back().stencil_depth; xformation_stack_.back().contains_clips = true; @@ -230,7 +246,7 @@ void Canvas::RestoreClip() { entity.SetContents(std::make_shared()); entity.SetStencilDepth(GetStencilDepth()); - GetCurrentPass().AddEntity(std::move(entity)); + GetCurrentPass().AddEntity(entity); } void Canvas::DrawPicture(Picture picture) { @@ -248,9 +264,9 @@ void Canvas::DrawPicture(Picture picture) { return; } -void Canvas::DrawImage(std::shared_ptr image, +void Canvas::DrawImage(const std::shared_ptr& image, Point offset, - Paint paint, + const Paint& paint, SamplerDescriptor sampler) { if (!image) { return; @@ -260,13 +276,13 @@ void Canvas::DrawImage(std::shared_ptr image, const auto dest = Rect::MakeXYWH(offset.x, offset.y, source.size.width, source.size.height); - DrawImageRect(image, source, dest, std::move(paint), std::move(sampler)); + DrawImageRect(image, source, dest, paint, std::move(sampler)); } -void Canvas::DrawImageRect(std::shared_ptr image, +void Canvas::DrawImageRect(const std::shared_ptr& image, Rect source, Rect dest, - Paint paint, + const Paint& paint, SamplerDescriptor sampler) { if (!image || source.size.IsEmpty() || dest.size.IsEmpty()) { return; @@ -290,7 +306,7 @@ void Canvas::DrawImageRect(std::shared_ptr image, entity.SetContents(paint.WithFilters(contents, false)); entity.SetTransformation(GetCurrentTransformation()); - GetCurrentPass().AddEntity(std::move(entity)); + GetCurrentPass().AddEntity(entity); } Picture Canvas::EndRecordingAsPicture() { @@ -312,9 +328,10 @@ size_t Canvas::GetStencilDepth() const { return xformation_stack_.back().stencil_depth; } -void Canvas::SaveLayer(Paint paint, - std::optional bounds, - std::optional backdrop_filter) { +void Canvas::SaveLayer( + const Paint& paint, + std::optional bounds, + const std::optional& backdrop_filter) { Save(true, paint.blend_mode, backdrop_filter); auto& new_layer_pass = GetCurrentPass(); @@ -331,13 +348,15 @@ void Canvas::SaveLayer(Paint paint, } } -void Canvas::DrawTextFrame(TextFrame text_frame, Point position, Paint paint) { +void Canvas::DrawTextFrame(const TextFrame& text_frame, + Point position, + const Paint& paint) { auto lazy_glyph_atlas = GetCurrentPass().GetLazyGlyphAtlas(); lazy_glyph_atlas->AddTextFrame(text_frame); auto text_contents = std::make_shared(); - text_contents->SetTextFrame(std::move(text_frame)); + text_contents->SetTextFrame(text_frame); text_contents->SetGlyphAtlas(std::move(lazy_glyph_atlas)); text_contents->SetColor(paint.color); @@ -348,33 +367,45 @@ void Canvas::DrawTextFrame(TextFrame text_frame, Point position, Paint paint) { entity.SetBlendMode(paint.blend_mode); entity.SetContents(paint.WithFilters(std::move(text_contents), true)); - GetCurrentPass().AddEntity(std::move(entity)); + GetCurrentPass().AddEntity(entity); } -void Canvas::DrawVertices(Vertices vertices, +void Canvas::DrawVertices(const Vertices& vertices, BlendMode blend_mode, Paint paint) { - std::shared_ptr contents = - std::make_shared(std::move(vertices)); - contents->SetColor(paint.color); - contents->SetBlendMode(blend_mode); + auto geometry = Geometry::MakeVertices(vertices); + Entity entity; entity.SetTransformation(GetCurrentTransformation()); entity.SetStencilDepth(GetStencilDepth()); entity.SetBlendMode(paint.blend_mode); - entity.SetContents(paint.WithFilters(std::move(contents), true)); - GetCurrentPass().AddEntity(std::move(entity)); + if (paint.color_source.has_value()) { + auto& source = paint.color_source.value(); + auto contents = source(); + contents->SetGeometry(std::move(geometry)); + contents->SetAlpha(paint.color.alpha); + entity.SetContents(paint.WithFilters(std::move(contents), true)); + } else { + std::shared_ptr contents = + std::make_shared(); + contents->SetColor(paint.color); + contents->SetBlendMode(blend_mode); + contents->SetGeometry(std::move(geometry)); + entity.SetContents(paint.WithFilters(std::move(contents), true)); + } + + GetCurrentPass().AddEntity(entity); } -void Canvas::DrawAtlas(std::shared_ptr atlas, +void Canvas::DrawAtlas(const std::shared_ptr& atlas, std::vector transforms, std::vector texture_coordinates, std::vector colors, BlendMode blend_mode, SamplerDescriptor sampler, std::optional cull_rect, - Paint paint) { + const Paint& paint) { if (!atlas) { return; } @@ -400,7 +431,7 @@ void Canvas::DrawAtlas(std::shared_ptr atlas, entity.SetBlendMode(paint.blend_mode); entity.SetContents(paint.WithFilters(contents, false)); - GetCurrentPass().AddEntity(std::move(entity)); + GetCurrentPass().AddEntity(entity); } } // namespace impeller diff --git a/impeller/aiks/canvas.h b/impeller/aiks/canvas.h index e9fbb5351d70b..7638c888b4b34 100644 --- a/impeller/aiks/canvas.h +++ b/impeller/aiks/canvas.h @@ -35,10 +35,10 @@ class Canvas { void Save(); - void SaveLayer( - Paint paint, - std::optional bounds = std::nullopt, - std::optional backdrop_filter = std::nullopt); + void SaveLayer(const Paint& paint, + std::optional bounds = std::nullopt, + const std::optional& backdrop_filter = + std::nullopt); bool Restore(); @@ -66,45 +66,49 @@ class Canvas { void Rotate(Radians radians); - void DrawPath(Path path, Paint paint); + void DrawPath(const Path& path, const Paint& paint); - void DrawPaint(Paint paint); + void DrawPaint(const Paint& paint); - void DrawRect(Rect rect, Paint paint); + void DrawRect(Rect rect, const Paint& paint); - void DrawRRect(Rect rect, Scalar corner_radius, Paint paint); + void DrawRRect(Rect rect, Scalar corner_radius, const Paint& paint); - void DrawCircle(Point center, Scalar radius, Paint paint); + void DrawCircle(Point center, Scalar radius, const Paint& paint); - void DrawImage(std::shared_ptr image, + void DrawImage(const std::shared_ptr& image, Point offset, - Paint paint, + const Paint& paint, SamplerDescriptor sampler = {}); - void DrawImageRect(std::shared_ptr image, + void DrawImageRect(const std::shared_ptr& image, Rect source, Rect dest, - Paint paint, + const Paint& paint, SamplerDescriptor sampler = {}); void ClipPath( - Path path, + const Path& path, Entity::ClipOperation clip_op = Entity::ClipOperation::kIntersect); void DrawPicture(Picture picture); - void DrawTextFrame(TextFrame text_frame, Point position, Paint paint); + void DrawTextFrame(const TextFrame& text_frame, + Point position, + const Paint& paint); - void DrawVertices(Vertices vertices, BlendMode blend_mode, Paint paint); + void DrawVertices(const Vertices& vertices, + BlendMode blend_mode, + Paint paint); - void DrawAtlas(std::shared_ptr atlas, + void DrawAtlas(const std::shared_ptr& atlas, std::vector transforms, std::vector texture_coordinates, std::vector colors, BlendMode blend_mode, SamplerDescriptor sampler, std::optional cull_rect, - Paint paint); + const Paint& paint); Picture EndRecordingAsPicture(); @@ -130,7 +134,7 @@ class Canvas { bool AttemptDrawBlurredRRect(const Rect& rect, Scalar corner_radius, - Paint& paint); + const Paint& paint); FML_DISALLOW_COPY_AND_ASSIGN(Canvas); }; diff --git a/impeller/aiks/paint.cc b/impeller/aiks/paint.cc index 238ec21025564..04b93e248bea1 100644 --- a/impeller/aiks/paint.cc +++ b/impeller/aiks/paint.cc @@ -4,42 +4,40 @@ #include "impeller/aiks/paint.h" #include "impeller/entity/contents/solid_color_contents.h" -#include "impeller/entity/contents/solid_stroke_contents.h" +#include "impeller/entity/geometry.h" namespace impeller { -std::shared_ptr Paint::CreateContentsForEntity(Path path, +std::shared_ptr Paint::CreateContentsForEntity(const Path& path, bool cover) const { + std::unique_ptr geometry; + switch (style) { + case Style::kFill: + geometry = cover ? Geometry::MakeCover() : Geometry::MakeFillPath(path); + break; + case Style::kStroke: + geometry = + cover ? Geometry::MakeCover() + : Geometry::MakeStrokePath(path, stroke_width, stroke_miter, + stroke_cap, stroke_join); + break; + } + return CreateContentsForGeometry(std::move(geometry)); +} + +std::shared_ptr Paint::CreateContentsForGeometry( + std::unique_ptr geometry) const { if (color_source.has_value()) { auto& source = color_source.value(); auto contents = source(); - contents->SetPath(std::move(path)); + contents->SetGeometry(std::move(geometry)); contents->SetAlpha(color.alpha); - contents->SetCover(cover); return contents; } - - switch (style) { - case Style::kFill: { - auto solid_color = std::make_shared(); - solid_color->SetPath(std::move(path)); - solid_color->SetColor(color); - solid_color->SetCover(cover); - return solid_color; - } - case Style::kStroke: { - auto solid_stroke = std::make_shared(); - solid_stroke->SetPath(std::move(path)); - solid_stroke->SetColor(color); - solid_stroke->SetStrokeSize(stroke_width); - solid_stroke->SetStrokeMiter(stroke_miter); - solid_stroke->SetStrokeCap(stroke_cap); - solid_stroke->SetStrokeJoin(stroke_join); - return solid_stroke; - } - } - - return nullptr; + auto solid_color = std::make_shared(); + solid_color->SetGeometry(std::move(geometry)); + solid_color->SetColor(color); + return solid_color; } std::shared_ptr Paint::WithFilters( @@ -47,27 +45,58 @@ std::shared_ptr Paint::WithFilters( std::optional is_solid_color, const Matrix& effect_transform) const { bool is_solid_color_val = is_solid_color.value_or(!color_source); + input = WithColorFilter(input); + input = WithMaskBlur(input, is_solid_color_val, effect_transform); + input = WithImageFilter(input, effect_transform); + return input; +} +std::shared_ptr Paint::WithFiltersForSubpassTarget( + std::shared_ptr input, + const Matrix& effect_transform) const { + input = WithMaskBlur(input, false, effect_transform); + input = WithImageFilter(input, effect_transform); + input = WithColorFilter(input, /**absorb_opacity=*/true); + return input; +} + +std::shared_ptr Paint::WithMaskBlur( + std::shared_ptr input, + bool is_solid_color, + const Matrix& effect_transform) const { if (mask_blur_descriptor.has_value()) { input = mask_blur_descriptor->CreateMaskBlur( - FilterInput::Make(input), is_solid_color_val, effect_transform); + FilterInput::Make(input), is_solid_color, effect_transform); } + return input; +} +std::shared_ptr Paint::WithImageFilter( + std::shared_ptr input, + const Matrix& effect_transform) const { if (image_filter.has_value()) { const ImageFilterProc& filter = image_filter.value(); input = filter(FilterInput::Make(input), effect_transform); } + return input; +} +std::shared_ptr Paint::WithColorFilter( + std::shared_ptr input, + bool absorb_opacity) const { if (color_filter.has_value()) { const ColorFilterProc& filter = color_filter.value(); - input = filter(FilterInput::Make(input)); + auto color_filter_contents = filter(FilterInput::Make(input)); + if (color_filter_contents) { + color_filter_contents->SetAbsorbOpacity(absorb_opacity); + } + input = color_filter_contents; } - return input; } std::shared_ptr Paint::MaskBlurDescriptor::CreateMaskBlur( - FilterInput::Ref input, + const FilterInput::Ref& input, bool is_solid_color, const Matrix& effect_transform) const { if (is_solid_color) { diff --git a/impeller/aiks/paint.h b/impeller/aiks/paint.h index d5c156ac180bc..536eae3fbea77 100644 --- a/impeller/aiks/paint.h +++ b/impeller/aiks/paint.h @@ -8,12 +8,13 @@ #include "flutter/fml/macros.h" #include "impeller/entity/contents/contents.h" +#include "impeller/entity/contents/filters/color_filter_contents.h" #include "impeller/entity/contents/filters/filter_contents.h" #include "impeller/entity/contents/linear_gradient_contents.h" #include "impeller/entity/contents/radial_gradient_contents.h" -#include "impeller/entity/contents/solid_stroke_contents.h" #include "impeller/entity/contents/sweep_gradient_contents.h" #include "impeller/entity/entity.h" +#include "impeller/entity/geometry.h" #include "impeller/geometry/color.h" namespace impeller { @@ -23,7 +24,7 @@ struct Paint { FilterInput::Ref, const Matrix& effect_transform)>; using ColorFilterProc = - std::function(FilterInput::Ref)>; + std::function(FilterInput::Ref)>; using MaskFilterProc = std::function( FilterInput::Ref, bool is_solid_color, @@ -40,7 +41,7 @@ struct Paint { Sigma sigma; std::shared_ptr CreateMaskBlur( - FilterInput::Ref input, + const FilterInput::Ref& input, bool is_solid_color, const Matrix& effect_matrix) const; }; @@ -49,8 +50,8 @@ struct Paint { std::optional color_source; Scalar stroke_width = 0.0; - SolidStrokeContents::Cap stroke_cap = SolidStrokeContents::Cap::kButt; - SolidStrokeContents::Join stroke_join = SolidStrokeContents::Join::kMiter; + Cap stroke_cap = Cap::kButt; + Join stroke_join = Join::kMiter; Scalar stroke_miter = 4.0; Style style = Style::kFill; BlendMode blend_mode = BlendMode::kSourceOver; @@ -75,8 +76,35 @@ struct Paint { std::optional is_solid_color = std::nullopt, const Matrix& effect_transform = Matrix()) const; - std::shared_ptr CreateContentsForEntity(Path path = {}, + /// @brief Wrap this paint's configured filters to the given contents of + /// subpass target. + /// @param[in] input The contents of subpass target to wrap with paint's + /// filters. + /// + /// @return The filter-wrapped contents. If there are no filters that need + /// to be wrapped for the current paint configuration, the + /// original contents is returned. + std::shared_ptr WithFiltersForSubpassTarget( + std::shared_ptr input, + const Matrix& effect_transform = Matrix()) const; + + std::shared_ptr CreateContentsForEntity(const Path& path = {}, bool cover = false) const; + + std::shared_ptr CreateContentsForGeometry( + std::unique_ptr geometry) const; + + private: + std::shared_ptr WithMaskBlur(std::shared_ptr input, + bool is_solid_color, + const Matrix& effect_transform) const; + + std::shared_ptr WithImageFilter( + std::shared_ptr input, + const Matrix& effect_transform) const; + + std::shared_ptr WithColorFilter(std::shared_ptr input, + bool absorb_opacity = false) const; }; } // namespace impeller diff --git a/impeller/aiks/paint_pass_delegate.cc b/impeller/aiks/paint_pass_delegate.cc index faaacf12f5d8b..a06128a534ba2 100644 --- a/impeller/aiks/paint_pass_delegate.cc +++ b/impeller/aiks/paint_pass_delegate.cc @@ -11,7 +11,7 @@ namespace impeller { PaintPassDelegate::PaintPassDelegate(Paint paint, std::optional coverage) - : paint_(std::move(paint)), coverage_(std::move(coverage)) {} + : paint_(std::move(paint)), coverage_(coverage) {} // |EntityPassDelgate| PaintPassDelegate::~PaintPassDelegate() = default; @@ -39,8 +39,9 @@ std::shared_ptr PaintPassDelegate::CreateContentsForSubpassTarget( contents->SetTexture(target); contents->SetSourceRect(Rect::MakeSize(target->GetSize())); contents->SetOpacity(paint_.color.alpha); - - return paint_.WithFilters(std::move(contents), false, effect_transform); + contents->SetDeferApplyingOpacity(true); + return paint_.WithFiltersForSubpassTarget(std::move(contents), + effect_transform); } } // namespace impeller diff --git a/impeller/base/validation.cc b/impeller/base/validation.cc index 322e5f1e03f78..94e35fc84f262 100644 --- a/impeller/base/validation.cc +++ b/impeller/base/validation.cc @@ -24,8 +24,12 @@ ValidationLog::ValidationLog() = default; ValidationLog::~ValidationLog() { if (sValidationLogsDisabledCount <= 0) { +#if (FLUTTER_RUNTIME_MODE == FLUTTER_RUNTIME_MODE_RELEASE) FML_LOG(ERROR) << stream_.str(); ImpellerValidationBreak(); +#else + FML_LOG(FATAL) << stream_.str(); +#endif } } diff --git a/impeller/base/work_queue_common.cc b/impeller/base/work_queue_common.cc index 9a1f0620148ec..e23e95ad9e2f6 100644 --- a/impeller/base/work_queue_common.cc +++ b/impeller/base/work_queue_common.cc @@ -19,7 +19,7 @@ WorkQueueCommon::~WorkQueueCommon() { // |WorkQueue| void WorkQueueCommon::PostTask(fml::closure task) { - loop_->GetTaskRunner()->PostTask(std::move(task)); + loop_->GetTaskRunner()->PostTask(task); } } // namespace impeller diff --git a/impeller/blobcat/blob_library.cc b/impeller/blobcat/blob_library.cc index 02ba647adcacf..5377fc236d3b8 100644 --- a/impeller/blobcat/blob_library.cc +++ b/impeller/blobcat/blob_library.cc @@ -6,6 +6,7 @@ #include #include +#include #include "impeller/base/validation.h" #include "impeller/blobcat/blob_flatbuffers.h" @@ -74,16 +75,16 @@ std::shared_ptr BlobLibrary::GetMapping(BlobShaderType type, std::string name) const { BlobKey key; key.type = type; - key.name = name; + key.name = std::move(name); auto found = blobs_.find(key); return found == blobs_.end() ? nullptr : found->second; } size_t BlobLibrary::IterateAllBlobs( - std::function& mapping)> callback) - const { + const std::function& mapping)>& + callback) const { if (!IsValid() || !callback) { return 0u; } diff --git a/impeller/blobcat/blob_library.h b/impeller/blobcat/blob_library.h index 7d5a8b598f282..4a8809590fb79 100644 --- a/impeller/blobcat/blob_library.h +++ b/impeller/blobcat/blob_library.h @@ -31,9 +31,10 @@ class BlobLibrary { std::string name) const; size_t IterateAllBlobs( - std::function& mapping)>) const; + const std::function& mapping)>&) + const; private: struct BlobKey { diff --git a/impeller/blobcat/blob_writer.cc b/impeller/blobcat/blob_writer.cc index d3ff7b6242ef0..bafebbec2b8ff 100644 --- a/impeller/blobcat/blob_writer.cc +++ b/impeller/blobcat/blob_writer.cc @@ -68,8 +68,7 @@ bool BlobWriter::AddBlobAtPath(const std::string& std_path) { return false; } - return AddBlob(shader_type.value(), std::move(shader_name), - std::move(file_mapping)); + return AddBlob(shader_type.value(), shader_name, std::move(file_mapping)); } bool BlobWriter::AddBlob(BlobShaderType type, diff --git a/impeller/blobcat/blobcat_main.cc b/impeller/blobcat/blobcat_main.cc index e62814d832422..16a128a01d23a 100644 --- a/impeller/blobcat/blobcat_main.cc +++ b/impeller/blobcat/blobcat_main.cc @@ -49,7 +49,7 @@ bool Main(const fml::CommandLine& command_line) { } // namespace impeller int main(int argc, char const* argv[]) { - return impeller::Main(fml::CommandLineFromArgcArgv(argc, argv)) + return impeller::Main(fml::CommandLineFromPlatformOrArgcArgv(argc, argv)) ? EXIT_SUCCESS : EXIT_FAILURE; } diff --git a/impeller/compiler/BUILD.gn b/impeller/compiler/BUILD.gn index 4c2b94802bad6..8512408321050 100644 --- a/impeller/compiler/BUILD.gn +++ b/impeller/compiler/BUILD.gn @@ -94,7 +94,10 @@ impeller_component("impellerc") { sources = [ "impellerc_main.cc" ] - deps = [ ":compiler_lib" ] + deps = [ + ":compiler_lib", + "shader_lib", + ] metadata = { entitlement_file_path = [ "impellerc" ] diff --git a/impeller/compiler/code_gen_template.h b/impeller/compiler/code_gen_template.h index 2de845d7aab09..8ce9f4f233b49 100644 --- a/impeller/compiler/code_gen_template.h +++ b/impeller/compiler/code_gen_template.h @@ -48,9 +48,13 @@ struct {{camel_case(shader_name)}}{{camel_case(shader_stage)}}Shader { // Struct Definitions ======================================================== // =========================================================================== {% for def in struct_definitions %} + +{% if last(def.members).array_elements == 0 %} + template +{% endif %} struct {{def.name}} { {% for member in def.members %} -{% if member.element_padding > 0 %}Padded<{{member.type}}, {{member.element_padding}}>{% else %}{{member.type}}{% endif %} {{" " + member.name}}{% if member.array_elements > 1 %}[{{member.array_elements}}]{% endif %}; // (offset {{member.offset}}, size {{member.byte_length}}) +{{" "}}{% if member.element_padding > 0 %}Padded<{{member.type}}, {{member.element_padding}}>{% else %}{{member.type}}{% endif %}{{" " + member.name}}{% if member.array_elements != "std::nullopt" %}[{% if member.array_elements == 0 %}FlexCount{% else %}{{member.array_elements}}{% endif %}]{% endif %}; // (offset {{member.offset}}, size {{member.byte_length}}) {% endfor %} }; // struct {{def.name}} (size {{def.byte_length}}) {% endfor %} @@ -107,6 +111,8 @@ struct {{camel_case(shader_name)}}{{camel_case(shader_stage)}}Shader { "{{sampled_image.name}}", // name {{sampled_image.ext_res_0}}u, // texture {{sampled_image.ext_res_1}}u, // sampler + {{sampled_image.binding}}u, // binding + {{sampled_image.set}}u, // set }; static ShaderMetadata kMetadata{{camel_case(sampled_image.name)}}; {% endfor %} @@ -194,11 +200,19 @@ using Shader = {{camel_case(shader_name)}}{{camel_case(shader_stage)}}Shader; {% for def in struct_definitions %} // Sanity checks for {{def.name}} +{% if last(def.members).array_elements == 0 %} +static_assert(std::is_standard_layout_v>); +static_assert(sizeof(Shader::{{def.name}}<0>) == {{def.byte_length}}); +{% for member in def.members %} +static_assert(offsetof(Shader::{{def.name}}<0>, {{member.name}}) == {{member.offset}}); +{% endfor %} +{% else %} static_assert(std::is_standard_layout_v); static_assert(sizeof(Shader::{{def.name}}) == {{def.byte_length}}); {% for member in def.members %} static_assert(offsetof(Shader::{{def.name}}, {{member.name}}) == {{member.offset}}); {% endfor %} +{% endif %} {% endfor %} {% for buffer in buffers %} diff --git a/impeller/compiler/compiler.cc b/impeller/compiler/compiler.cc index 143f8f6997d9b..268ba39df93e3 100644 --- a/impeller/compiler/compiler.cc +++ b/impeller/compiler/compiler.cc @@ -304,6 +304,7 @@ Compiler::Compiler(const fml::Mapping& source_mapping, shaderc_env_version::shaderc_env_version_opengl_4_5); spirv_options.SetTargetSpirv( shaderc_spirv_version::shaderc_spirv_version_1_0); + spirv_options.AddMacroDefinition("IMPELLER_GRAPHICS_BACKEND"); break; case TargetPlatform::kSkSL: // When any optimization level above 'zero' is enabled, the phi merges at @@ -317,6 +318,7 @@ Compiler::Compiler(const fml::Mapping& source_mapping, shaderc_env_version::shaderc_env_version_opengl_4_5); spirv_options.SetTargetSpirv( shaderc_spirv_version::shaderc_spirv_version_1_0); + spirv_options.AddMacroDefinition("SKIA_GRAPHICS_BACKEND"); break; case TargetPlatform::kUnknown: COMPILER_ERROR << "Target platform invalid."; diff --git a/impeller/compiler/impellerc_main.cc b/impeller/compiler/impellerc_main.cc index 2c0b6cf715ce6..0cf4fec707135 100644 --- a/impeller/compiler/impellerc_main.cc +++ b/impeller/compiler/impellerc_main.cc @@ -70,6 +70,7 @@ bool Main(const fml::CommandLine& command_line) { options.defines = switches.defines; options.entry_point_name = EntryPointFunctionNameFromSourceName( switches.source_file_name, options.type); + options.json_format = switches.json_format; Reflector::Options reflector_options; reflector_options.target_platform = switches.target_platform; @@ -81,6 +82,25 @@ bool Main(const fml::CommandLine& command_line) { .filename() .native()); + // Generate SkSL if needed. + std::shared_ptr sksl_mapping; + if (switches.iplr && TargetPlatformBundlesSkSL(switches.target_platform)) { + SourceOptions sksl_options = options; + sksl_options.target_platform = TargetPlatform::kSkSL; + + Reflector::Options sksl_reflector_options = reflector_options; + sksl_reflector_options.target_platform = TargetPlatform::kSkSL; + + Compiler sksl_compiler = + Compiler(*source_file_mapping, sksl_options, sksl_reflector_options); + if (!sksl_compiler.IsValid()) { + std::cerr << "Compilation to SkSL failed." << std::endl; + std::cerr << sksl_compiler.GetErrorMessages() << std::endl; + return false; + } + sksl_mapping = sksl_compiler.GetSLShaderSource(); + } + Compiler compiler(*source_file_mapping, options, reflector_options); if (!compiler.IsValid()) { std::cerr << "Compilation failed." << std::endl; @@ -114,7 +134,12 @@ bool Main(const fml::CommandLine& command_line) { std::cerr << "Runtime stage information was nil." << std::endl; return false; } - auto stage_data_mapping = stage_data->CreateMapping(); + if (sksl_mapping) { + stage_data->SetSkSLData(sksl_mapping); + } + auto stage_data_mapping = options.json_format + ? stage_data->CreateJsonMapping() + : stage_data->CreateMapping(); if (!stage_data_mapping) { std::cerr << "Runtime stage data could not be created." << std::endl; return false; @@ -226,9 +251,8 @@ bool Main(const fml::CommandLine& command_line) { } // namespace impeller int main(int argc, char const* argv[]) { - std::optional command_line = fml::CommandLineFromPlatform(); - if (!command_line) { - command_line = fml::CommandLineFromArgcArgv(argc, argv); - } - return impeller::compiler::Main(*command_line) ? EXIT_SUCCESS : EXIT_FAILURE; + return impeller::compiler::Main( + fml::CommandLineFromPlatformOrArgcArgv(argc, argv)) + ? EXIT_SUCCESS + : EXIT_FAILURE; } diff --git a/impeller/compiler/reflector.cc b/impeller/compiler/reflector.cc index 074daee97c067..9b911dfef4ded 100644 --- a/impeller/compiler/reflector.cc +++ b/impeller/compiler/reflector.cc @@ -356,6 +356,9 @@ std::shared_ptr Reflector::GenerateRuntimeStageData() const { options_.target_platform // ); data->SetShaderData(shader_data_); + if (sksl_data_) { + data->SetSkSLData(sksl_data_); + } ir_->for_each_typed_id( [&](uint32_t, const spirv_cross::SPIRVariable& var) { if (var.storage != spv::StorageClassUniformConstant) { @@ -376,16 +379,16 @@ std::shared_ptr Reflector::GenerateRuntimeStageData() const { return data; } -uint32_t Reflector::GetArrayElements(const spirv_cross::SPIRType& type) const { +std::optional Reflector::GetArrayElements( + const spirv_cross::SPIRType& type) const { if (type.array.empty()) { - return 0; - } - uint32_t elements = 1; - for (size_t i = 0; i < type.array.size(); i++) { - FML_CHECK(type.array_size_literal[i]); - elements *= type.array[i]; + return std::nullopt; } - return elements; + FML_CHECK(type.array.size() == 1) + << "Multi-dimensional arrays are not supported."; + FML_CHECK(type.array_size_literal.front()) + << "Must use a literal for array sizes."; + return type.array.front(); } static std::string ToString(CompilerBackend::Type type) { @@ -478,7 +481,11 @@ std::optional Reflector::ReflectType( member["offset"] = struct_member.offset; member["size"] = struct_member.size; member["byte_length"] = struct_member.byte_length; - member["array_elements"] = struct_member.array_elements; + if (struct_member.array_elements.has_value()) { + member["array_elements"] = struct_member.array_elements.value(); + } else { + member["array_elements"] = "std::nullopt"; + } members.emplace_back(std::move(member)); } } @@ -575,7 +582,7 @@ std::vector Reflector::ReadStructMembers( const auto& member = compiler_->get_type(struct_type.member_types[i]); const auto struct_member_offset = compiler_->type_struct_member_offset(struct_type, i); - auto array_elements = std::max(1u, GetArrayElements(member)); + auto array_elements = GetArrayElements(member); if (struct_member_offset > current_byte_offset) { const auto alignment_pad = struct_member_offset - current_byte_offset; @@ -587,8 +594,8 @@ std::vector Reflector::ReadStructMembers( current_byte_offset, // offset alignment_pad, // size alignment_pad, // byte_length - 1, // array_elements - 0, // element_padding + std::nullopt, // array_elements + 0, // element_padding }); current_byte_offset += alignment_pad; } @@ -599,6 +606,29 @@ std::vector Reflector::ReadStructMembers( FML_CHECK(current_byte_offset == struct_member_offset); + // A user defined struct. + if (member.basetype == spirv_cross::SPIRType::BaseType::Struct) { + const size_t size = + GetReflectedStructSize(ReadStructMembers(member.self)); + uint32_t stride = GetArrayStride<0>(struct_type, member, i); + if (stride == 0) { + stride = size; + } + uint32_t element_padding = stride - size; + result.emplace_back(StructMember{ + compiler_->get_name(member.self), // type + BaseTypeToString(member.basetype), // basetype + GetMemberNameAtIndex(struct_type, i), // name + struct_member_offset, // offset + size, // size + stride * array_elements.value_or(1), // byte_length + array_elements, // array_elements + element_padding, // element_padding + }); + current_byte_offset += stride * array_elements.value_or(1); + continue; + } + // Tightly packed 4x4 Matrix is special cased as we know how to work with // those. if (member.basetype == spirv_cross::SPIRType::BaseType::Float && // @@ -614,11 +644,57 @@ std::vector Reflector::ReadStructMembers( GetMemberNameAtIndex(struct_type, i), // name struct_member_offset, // offset sizeof(Matrix), // size - stride * array_elements, // byte_length + stride * array_elements.value_or(1), // byte_length + array_elements, // array_elements + element_padding, // element_padding + }); + current_byte_offset += stride * array_elements.value_or(1); + continue; + } + + // Tightly packed UintPoint32 (uvec2) + if (member.basetype == spirv_cross::SPIRType::BaseType::UInt && // + member.width == sizeof(uint32_t) * 8 && // + member.columns == 1 && // + member.vecsize == 2 // + ) { + uint32_t stride = + GetArrayStride(struct_type, member, i); + uint32_t element_padding = stride - sizeof(UintPoint32); + result.emplace_back(StructMember{ + "UintPoint32", // type + BaseTypeToString(member.basetype), // basetype + GetMemberNameAtIndex(struct_type, i), // name + struct_member_offset, // offset + sizeof(UintPoint32), // size + stride * array_elements.value_or(1), // byte_length + array_elements, // array_elements + element_padding, // element_padding + }); + current_byte_offset += stride * array_elements.value_or(1); + continue; + } + + // Tightly packed UintPoint32 (ivec2) + if (member.basetype == spirv_cross::SPIRType::BaseType::Int && // + member.width == sizeof(int32_t) * 8 && // + member.columns == 1 && // + member.vecsize == 2 // + ) { + uint32_t stride = + GetArrayStride(struct_type, member, i); + uint32_t element_padding = stride - sizeof(IPoint32); + result.emplace_back(StructMember{ + "IPoint32", // type + BaseTypeToString(member.basetype), // basetype + GetMemberNameAtIndex(struct_type, i), // name + struct_member_offset, // offset + sizeof(IPoint32), // size + stride * array_elements.value_or(1), // byte_length array_elements, // array_elements element_padding, // element_padding }); - current_byte_offset += stride * array_elements; + current_byte_offset += stride * array_elements.value_or(1); continue; } @@ -636,11 +712,11 @@ std::vector Reflector::ReadStructMembers( GetMemberNameAtIndex(struct_type, i), // name struct_member_offset, // offset sizeof(Point), // size - stride * array_elements, // byte_length + stride * array_elements.value_or(1), // byte_length array_elements, // array_elements element_padding, // element_padding }); - current_byte_offset += stride * array_elements; + current_byte_offset += stride * array_elements.value_or(1); continue; } @@ -658,11 +734,11 @@ std::vector Reflector::ReadStructMembers( GetMemberNameAtIndex(struct_type, i), // name struct_member_offset, // offset sizeof(Vector3), // size - stride * array_elements, // byte_length + stride * array_elements.value_or(1), // byte_length array_elements, // array_elements element_padding, // element_padding }); - current_byte_offset += stride * array_elements; + current_byte_offset += stride * array_elements.value_or(1); continue; } @@ -680,11 +756,11 @@ std::vector Reflector::ReadStructMembers( GetMemberNameAtIndex(struct_type, i), // name struct_member_offset, // offset sizeof(Vector4), // size - stride * array_elements, // byte_length + stride * array_elements.value_or(1), // byte_length array_elements, // array_elements element_padding, // element_padding }); - current_byte_offset += stride * array_elements; + current_byte_offset += stride * array_elements.value_or(1); continue; } @@ -707,11 +783,11 @@ std::vector Reflector::ReadStructMembers( GetMemberNameAtIndex(struct_type, i), // name struct_member_offset, // offset maybe_known_type.value().byte_size, // size - stride * array_elements, // byte_length + stride * array_elements.value_or(1), // byte_length array_elements, // array_elements element_padding, // element_padding }); - current_byte_offset += stride * array_elements; + current_byte_offset += stride * array_elements.value_or(1); continue; } } @@ -731,11 +807,11 @@ std::vector Reflector::ReadStructMembers( GetMemberNameAtIndex(struct_type, i), // name struct_member_offset, // offset size, // size - stride * array_elements, // byte_length + stride * array_elements.value_or(1), // byte_length array_elements, // array_elements element_padding, // element_padding }); - current_byte_offset += stride * array_elements; + current_byte_offset += stride * array_elements.value_or(1); continue; } } @@ -754,7 +830,7 @@ std::vector Reflector::ReadStructMembers( current_byte_offset, // offset padding, // size padding, // byte_length - 1, // array_elements + std::nullopt, // array_elements 0, // element_padding }); } @@ -799,7 +875,11 @@ nlohmann::json::object_t Reflector::EmitStructDefinition( member["base_type"] = struct_member.base_type; member["offset"] = struct_member.offset; member["byte_length"] = struct_member.byte_length; - member["array_elements"] = struct_member.array_elements; + if (struct_member.array_elements.has_value()) { + member["array_elements"] = struct_member.array_elements.value(); + } else { + member["array_elements"] = "std::nullopt"; + } member["element_padding"] = struct_member.element_padding; } return result; @@ -913,7 +993,7 @@ Reflector::ReflectPerVertexStructDefinition( struc.byte_length, // offset vertex_type.byte_length, // size vertex_type.byte_length, // byte_length - 1, // array_elements + std::nullopt, // array_elements 0, // element_padding }; struc.byte_length += vertex_type.byte_length; diff --git a/impeller/compiler/reflector.h b/impeller/compiler/reflector.h index a58d8d1cd9d08..69b550c7b9697 100644 --- a/impeller/compiler/reflector.h +++ b/impeller/compiler/reflector.h @@ -25,7 +25,7 @@ struct StructMember { size_t offset = 0u; size_t size = 0u; size_t byte_length = 0u; - size_t array_elements = 1u; + std::optional array_elements = std::nullopt; size_t element_padding = 0u; StructMember(std::string p_type, @@ -34,7 +34,7 @@ struct StructMember { size_t p_offset, size_t p_size, size_t p_byte_length, - size_t p_array_elements, + std::optional p_array_elements, size_t p_element_padding) : type(std::move(p_type)), base_type(std::move(p_base_type)), @@ -94,6 +94,7 @@ class Reflector { const Options options_; const std::shared_ptr ir_; const std::shared_ptr shader_data_; + const std::shared_ptr sksl_data_; const CompilerBackend compiler_; std::unique_ptr template_arguments_; std::shared_ptr reflection_header_; @@ -149,13 +150,14 @@ class Reflector { std::vector ReadStructMembers( const spirv_cross::TypeID& type_id) const; - uint32_t GetArrayElements(const spirv_cross::SPIRType& type) const; + std::optional GetArrayElements( + const spirv_cross::SPIRType& type) const; template uint32_t GetArrayStride(const spirv_cross::SPIRType& struct_type, const spirv_cross::SPIRType& member_type, uint32_t index) const { - auto element_count = GetArrayElements(member_type); + auto element_count = GetArrayElements(member_type).value_or(1); if (element_count <= 1) { return Size; } diff --git a/impeller/compiler/runtime_stage_data.cc b/impeller/compiler/runtime_stage_data.cc index 0fc074d02740b..838fd805a57a6 100644 --- a/impeller/compiler/runtime_stage_data.cc +++ b/impeller/compiler/runtime_stage_data.cc @@ -7,6 +7,8 @@ #include #include +#include "inja/inja.hpp" + #include "impeller/base/validation.h" #include "impeller/runtime_stage/runtime_stage_flatbuffers.h" @@ -30,6 +32,10 @@ void RuntimeStageData::SetShaderData(std::shared_ptr shader) { shader_ = std::move(shader); } +void RuntimeStageData::SetSkSLData(std::shared_ptr sksl) { + sksl_ = std::move(sksl); +} + static std::optional ToStage(spv::ExecutionModel stage) { switch (stage) { case spv::ExecutionModel::ExecutionModelVertex: @@ -48,6 +54,24 @@ static std::optional ToStage(spv::ExecutionModel stage) { FML_UNREACHABLE(); } +static std::optional ToJsonStage(spv::ExecutionModel stage) { + switch (stage) { + case spv::ExecutionModel::ExecutionModelVertex: + return 0; // fb::Stage::kVertex; + case spv::ExecutionModel::ExecutionModelFragment: + return 1; // fb::Stage::kFragment; + case spv::ExecutionModel::ExecutionModelGLCompute: + return 2; // fb::Stage::kCompute; + case spv::ExecutionModel::ExecutionModelTessellationControl: + return 3; // fb::Stage::kTessellationControl; + case spv::ExecutionModel::ExecutionModelTessellationEvaluation: + return 4; // fb::Stage::kTessellationEvaluation; + default: + return std::nullopt; + } + FML_UNREACHABLE(); +} + static std::optional ToTargetPlatform( TargetPlatform platform) { switch (platform) { @@ -68,6 +92,25 @@ static std::optional ToTargetPlatform( FML_UNREACHABLE(); } +static std::optional ToJsonTargetPlatform(TargetPlatform platform) { + switch (platform) { + case TargetPlatform::kUnknown: + case TargetPlatform::kMetalDesktop: + case TargetPlatform::kMetalIOS: + case TargetPlatform::kOpenGLES: + case TargetPlatform::kOpenGLDesktop: + case TargetPlatform::kVulkan: + return std::nullopt; + case TargetPlatform::kSkSL: + return 0; // fb::TargetPlatform::kSkSL; + case TargetPlatform::kRuntimeStageMetal: + return 1; // fb::TargetPlatform::kMetal; + case TargetPlatform::kRuntimeStageGLES: + return 2; // fb::TargetPlatform::kOpenGLES; + } + FML_UNREACHABLE(); +} + static std::optional ToType( spirv_cross::SPIRType::BaseType type) { switch (type) { @@ -113,6 +156,138 @@ static std::optional ToType( FML_UNREACHABLE(); } +static std::optional ToJsonType( + spirv_cross::SPIRType::BaseType type) { + switch (type) { + case spirv_cross::SPIRType::Boolean: + return 0; // fb::UniformDataType::kBoolean; + case spirv_cross::SPIRType::SByte: + return 1; // fb::UniformDataType::kSignedByte; + case spirv_cross::SPIRType::UByte: + return 2; // fb::UniformDataType::kUnsignedByte; + case spirv_cross::SPIRType::Short: + return 3; // fb::UniformDataType::kSignedShort; + case spirv_cross::SPIRType::UShort: + return 4; // fb::UniformDataType::kUnsignedShort; + case spirv_cross::SPIRType::Int: + return 5; // fb::UniformDataType::kSignedInt; + case spirv_cross::SPIRType::UInt: + return 6; // fb::UniformDataType::kUnsignedInt; + case spirv_cross::SPIRType::Int64: + return 7; // fb::UniformDataType::kSignedInt64; + case spirv_cross::SPIRType::UInt64: + return 8; // fb::UniformDataType::kUnsignedInt64; + case spirv_cross::SPIRType::Half: + return 9; // b::UniformDataType::kHalfFloat; + case spirv_cross::SPIRType::Float: + return 10; // fb::UniformDataType::kFloat; + case spirv_cross::SPIRType::Double: + return 11; // fb::UniformDataType::kDouble; + case spirv_cross::SPIRType::SampledImage: + return 12; // fb::UniformDataType::kSampledImage; + case spirv_cross::SPIRType::AccelerationStructure: + case spirv_cross::SPIRType::AtomicCounter: + case spirv_cross::SPIRType::Char: + case spirv_cross::SPIRType::ControlPointArray: + case spirv_cross::SPIRType::Image: + case spirv_cross::SPIRType::Interpolant: + case spirv_cross::SPIRType::RayQuery: + case spirv_cross::SPIRType::Sampler: + case spirv_cross::SPIRType::Struct: + case spirv_cross::SPIRType::Unknown: + case spirv_cross::SPIRType::Void: + return std::nullopt; + } + FML_UNREACHABLE(); +} + +static const char* kStageKey = "stage"; +static const char* kTargetPlatformKey = "target_platform"; +static const char* kEntrypointKey = "entrypoint"; +static const char* kUniformsKey = "uniforms"; +static const char* kShaderKey = "sksl"; +static const char* kUniformNameKey = "name"; +static const char* kUniformLocationKey = "location"; +static const char* kUniformTypeKey = "type"; +static const char* kUniformRowsKey = "rows"; +static const char* kUniformColumnsKey = "columns"; +static const char* kUniformBitWidthKey = "bit_width"; +static const char* kUniformArrayElementsKey = "array_elements"; + +std::shared_ptr RuntimeStageData::CreateJsonMapping() const { + // Runtime Stage Data JSON format + // { + // "stage": 0, + // "target_platform": "", + // "entrypoint": "", + // "shader": "", + // "sksl": "", + // "uniforms": [ + // { + // "name": "..", + // "location": 0, + // "type": 0, + // "rows": 0, + // "columns": 0, + // "bit_width": 0, + // "array_elements": 0, + // } + // ] + // }, + nlohmann::json root; + + const auto stage = ToJsonStage(stage_); + if (!stage.has_value()) { + VALIDATION_LOG << "Invalid runtime stage."; + return nullptr; + } + root[kStageKey] = stage.value(); + + const auto target_platform = ToJsonTargetPlatform(target_platform_); + if (!target_platform.has_value()) { + VALIDATION_LOG << "Invalid target platform for runtime stage."; + return nullptr; + } + root[kTargetPlatformKey] = target_platform.value(); + + if (shader_->GetSize() > 0u) { + std::string shader(reinterpret_cast(shader_->GetMapping()), + shader_->GetSize()); + root[kShaderKey] = shader.c_str(); + } + + auto& uniforms = root[kUniformsKey] = nlohmann::json::array_t{}; + for (const auto& uniform : uniforms_) { + nlohmann::json uniform_object; + uniform_object[kUniformNameKey] = uniform.name.c_str(); + uniform_object[kUniformLocationKey] = uniform.location; + uniform_object[kUniformRowsKey] = uniform.rows; + uniform_object[kUniformColumnsKey] = uniform.columns; + + auto uniform_type = ToJsonType(uniform.type); + if (!uniform_type.has_value()) { + VALIDATION_LOG << "Invalid uniform type for runtime stage."; + return nullptr; + } + + uniform_object[kUniformTypeKey] = uniform_type.value(); + uniform_object[kUniformBitWidthKey] = uniform.bit_width; + + if (uniform.array_elements.has_value()) { + uniform_object[kUniformArrayElementsKey] = uniform.array_elements.value(); + } else { + uniform_object[kUniformArrayElementsKey] = 0; + } + uniforms.push_back(uniform_object); + } + + auto json_string = std::make_shared(root.dump(2u)); + + return std::make_shared( + reinterpret_cast(json_string->data()), + json_string->size(), [json_string](auto, auto) {}); +} + std::shared_ptr RuntimeStageData::CreateMapping() const { // The high level object API is used here for writing to the buffer. This is // just a convenience. @@ -138,6 +313,11 @@ std::shared_ptr RuntimeStageData::CreateMapping() const { runtime_stage.shader = {shader_->GetMapping(), shader_->GetMapping() + shader_->GetSize()}; } + // It is not an error for the SkSL to be ommitted. + if (sksl_->GetSize() > 0u) { + runtime_stage.sksl = {sksl_->GetMapping(), + sksl_->GetMapping() + sksl_->GetSize()}; + } for (const auto& uniform : uniforms_) { auto desc = std::make_unique(); @@ -156,7 +336,9 @@ std::shared_ptr RuntimeStageData::CreateMapping() const { } desc->type = uniform_type.value(); desc->bit_width = uniform.bit_width; - desc->array_elements = uniform.array_elements; + if (uniform.array_elements.has_value()) { + desc->array_elements = uniform.array_elements.value(); + } runtime_stage.uniforms.emplace_back(std::move(desc)); } diff --git a/impeller/compiler/runtime_stage_data.h b/impeller/compiler/runtime_stage_data.h index d5da09dd02c0e..4ec5a9eba2a54 100644 --- a/impeller/compiler/runtime_stage_data.h +++ b/impeller/compiler/runtime_stage_data.h @@ -22,7 +22,7 @@ struct UniformDescription { size_t rows = 0u; size_t columns = 0u; size_t bit_width = 0u; - size_t array_elements = 0u; + std::optional array_elements = std::nullopt; }; class RuntimeStageData { @@ -37,14 +37,19 @@ class RuntimeStageData { void SetShaderData(std::shared_ptr shader); + void SetSkSLData(std::shared_ptr sksl); + std::shared_ptr CreateMapping() const; + std::shared_ptr CreateJsonMapping() const; + private: const std::string entrypoint_; const spv::ExecutionModel stage_; const TargetPlatform target_platform_; std::vector uniforms_; std::shared_ptr shader_; + std::shared_ptr sksl_; FML_DISALLOW_COPY_AND_ASSIGN(RuntimeStageData); }; diff --git a/impeller/compiler/shader_lib/BUILD.gn b/impeller/compiler/shader_lib/BUILD.gn new file mode 100644 index 0000000000000..9317feafc76cd --- /dev/null +++ b/impeller/compiler/shader_lib/BUILD.gn @@ -0,0 +1,10 @@ +# Copyright 2013 The Flutter Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +group("shader_lib") { + deps = [ + "./flutter", + "./impeller", + ] +} diff --git a/impeller/compiler/shader_lib/flutter/BUILD.gn b/impeller/compiler/shader_lib/flutter/BUILD.gn new file mode 100644 index 0000000000000..cf85043ddcd16 --- /dev/null +++ b/impeller/compiler/shader_lib/flutter/BUILD.gn @@ -0,0 +1,8 @@ +# Copyright 2013 The Flutter Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +copy("flutter") { + sources = [ "runtime_effect.glsl" ] + outputs = [ "$root_out_dir/shader_lib/flutter/{{source_file_part}}" ] +} diff --git a/impeller/compiler/shader_lib/flutter/runtime_effect.glsl b/impeller/compiler/shader_lib/flutter/runtime_effect.glsl new file mode 100644 index 0000000000000..3e5740c10312c --- /dev/null +++ b/impeller/compiler/shader_lib/flutter/runtime_effect.glsl @@ -0,0 +1,25 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef RUNTIME_EFFECT_GLSL_ +#define RUNTIME_EFFECT_GLSL_ + +#if defined(IMPELLER_GRAPHICS_BACKEND) + +in vec2 _fragCoord; +vec2 FlutterFragCoord() { + return _fragCoord; +} + +#elif defined(SKIA_GRAPHICS_BACKEND) + +vec2 FlutterFragCoord() { + return gl_FragCoord.xy; +} + +#else +#error "Runtime effect builtins are not supported for this graphics backend." +#endif + +#endif diff --git a/impeller/compiler/shader_lib/impeller/BUILD.gn b/impeller/compiler/shader_lib/impeller/BUILD.gn new file mode 100644 index 0000000000000..5d7e85c6bd009 --- /dev/null +++ b/impeller/compiler/shader_lib/impeller/BUILD.gn @@ -0,0 +1,17 @@ +# Copyright 2013 The Flutter Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +copy("impeller") { + sources = [ + "blending.glsl", + "branching.glsl", + "color.glsl", + "constants.glsl", + "gaussian.glsl", + "texture.glsl", + "transform.glsl", + "types.glsl", + ] + outputs = [ "$root_out_dir/shader_lib/impeller/{{source_file_part}}" ] +} diff --git a/impeller/compiler/shader_lib/impeller/constants.glsl b/impeller/compiler/shader_lib/impeller/constants.glsl index 0ead4981f6411..fe9367a926eae 100644 --- a/impeller/compiler/shader_lib/impeller/constants.glsl +++ b/impeller/compiler/shader_lib/impeller/constants.glsl @@ -13,4 +13,7 @@ const float k1Over2Pi = 0.1591549430918; // sqrt(2 * pi) const float kSqrtTwoPi = 2.50662827463; +// sqrt(2) / 2 == 1 / sqrt(2) +const float kHalfSqrtTwo = 0.70710678118; + #endif diff --git a/impeller/compiler/shader_lib/impeller/gaussian.glsl b/impeller/compiler/shader_lib/impeller/gaussian.glsl new file mode 100644 index 0000000000000..7b8b4e438dea9 --- /dev/null +++ b/impeller/compiler/shader_lib/impeller/gaussian.glsl @@ -0,0 +1,54 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef GAUSSIAN_GLSL_ +#define GAUSSIAN_GLSL_ + +#include + +/// Gaussian distribution function. +float IPGaussian(float x, float sigma) { + float variance = sigma * sigma; + return exp(-0.5 * x * x / variance) / (kSqrtTwoPi * sigma); +} + +/// Abramowitz and Stegun erf approximation. +float IPErf(float x) { + float a = abs(x); + // 0.278393*x + 0.230389*x^2 + 0.078108*x^4 + 1 + float b = (0.278393 + (0.230389 + 0.078108 * a * a) * a) * a + 1.0; + return sign(x) * (1 - 1 / (b * b * b * b)); +} + +/// Vec2 variation for the Abramowitz and Stegun erf approximation. +vec2 IPVec2Erf(vec2 x) { + vec2 a = abs(x); + // 0.278393*x + 0.230389*x^2 + 0.078108*x^4 + 1 + vec2 b = (0.278393 + (0.230389 + 0.078108 * a * a) * a) * a + 1.0; + return sign(x) * (1 - 1 / (b * b * b * b)); +} + +/// Indefinite integral of the Gaussian function (with constant range 0->1). +float IPGaussianIntegral(float x, float sigma) { + // ( 1 + erf( x * (sqrt(2) / (2 * sigma) ) ) / 2 + // Because this sigmoid is always > 1, we remap it (n * 1.07 - 0.07) + // so that it always fades to zero before it reaches the blur radius. + return 0.535 * IPErf(x * (kHalfSqrtTwo / sigma)) + 0.465; +} + +/// Vec2 variation for the indefinite integral of the Gaussian function (with +/// constant range 0->1). +vec2 IPVec2GaussianIntegral(vec2 x, float sigma) { + // ( 1 + erf( x * (sqrt(2) / (2 * sigma) ) ) / 2 + // Because this sigmoid is always > 1, we remap it (n * 1.07 - 0.07) + // so that it always fades to zero before it reaches the blur radius. + return 0.535 * IPVec2Erf(x * (kHalfSqrtTwo / sigma)) + 0.465; +} + +/// Simple logistic sigmoid with a domain of [-1, 1] and range of [0, 1]. +float IPSigmoid(float x) { + return 1.03731472073 / (1 + exp(-4 * x)) - 0.0186573603638; +} + +#endif diff --git a/impeller/compiler/source_options.h b/impeller/compiler/source_options.h index 7a23ae2e9b80c..875b61eb57432 100644 --- a/impeller/compiler/source_options.h +++ b/impeller/compiler/source_options.h @@ -24,6 +24,7 @@ struct SourceOptions { std::string file_name = "main.glsl"; std::string entry_point_name = "main"; std::vector defines; + bool json_format = false; SourceOptions(); diff --git a/impeller/compiler/spirv_sksl.cc b/impeller/compiler/spirv_sksl.cc index c2bf67cc46a73..2535d4ec6e658 100644 --- a/impeller/compiler/spirv_sksl.cc +++ b/impeller/compiler/spirv_sksl.cc @@ -10,11 +10,21 @@ using namespace SPIRV_CROSS_NAMESPACE; namespace impeller { namespace compiler { +// This replaces the SPIRV_CROSS_THROW which aborts and drops the +// error message in non-debug modes. +void report_and_exit(const std::string& msg) { + fprintf(stderr, "There was a compiler error: %s\n", msg.c_str()); + fflush(stderr); + exit(1); +} + +#define FLUTTER_CROSS_THROW(x) report_and_exit(x) + std::string CompilerSkSL::compile() { ir.fixup_reserved_names(); if (get_execution_model() != ExecutionModelFragment) { - SPIRV_CROSS_THROW("Only fragment shaders are supported.'"); + FLUTTER_CROSS_THROW("Only fragment shaders are supported.'"); return ""; } @@ -111,7 +121,7 @@ void CompilerSkSL::emit_uniform(const SPIRVariable& var) { add_resource_name(var.self); statement(variable_decl(var), ";"); - // The Flutter FragmentProgram implementation passes additional unifroms along + // The Flutter FragmentProgram implementation passes additional uniforms along // with shader uniforms that encode the shader width and height. if (type.basetype == SPIRType::SampledImage) { std::string name = to_name(var.self); @@ -167,33 +177,34 @@ bool CompilerSkSL::emit_struct_resources() { } void CompilerSkSL::detect_unsupported_resources() { - // UBOs and SSBOs are not supported. for (auto& id : ir.ids) { if (id.get_type() == TypeVariable) { auto& var = id.get(); auto& type = get(var.basetype); + // UBOs and SSBOs are not supported. if (var.storage != StorageClassFunction && type.pointer && type.storage == StorageClassUniform && !is_hidden_variable(var) && (ir.meta[type.self].decoration.decoration_flags.get( DecorationBlock) || ir.meta[type.self].decoration.decoration_flags.get( DecorationBufferBlock))) { - SPIRV_CROSS_THROW("SkSL does not support UBOs or SSBOs: '" + - get_name(var.self) + "'"); + FLUTTER_CROSS_THROW("SkSL does not support UBOs or SSBOs: '" + + get_name(var.self) + "'"); } - } - } - // Push constant blocks are not supported. - for (auto& id : ir.ids) { - if (id.get_type() == TypeVariable) { - auto& var = id.get(); - auto& type = get(var.basetype); + // Push constant blocks are not supported. if (!is_hidden_variable(var) && var.storage != StorageClassFunction && type.pointer && type.storage == StorageClassPushConstant) { - SPIRV_CROSS_THROW("SkSL does not support push constant blocks: '" + - get_name(var.self) + "'"); + FLUTTER_CROSS_THROW("SkSL does not support push constant blocks: '" + + get_name(var.self) + "'"); + } + + // User specified inputs are not supported. + if (!is_hidden_variable(var) && var.storage != StorageClassFunction && + type.pointer && type.storage == StorageClassInput) { + FLUTTER_CROSS_THROW("SkSL does not support inputs: '" + + get_name(var.self) + "'"); } } } @@ -342,8 +353,8 @@ void CompilerSkSL::emit_interface_block(const SPIRVariable& var) { bool block = ir.meta[type.self].decoration.decoration_flags.get(DecorationBlock); if (block) { - SPIRV_CROSS_THROW("Interface blocks are not supported: '" + - to_name(var.self) + "'"); + FLUTTER_CROSS_THROW("Interface blocks are not supported: '" + + to_name(var.self) + "'"); } // The output is emitted as a global variable, which is returned from the @@ -353,8 +364,8 @@ void CompilerSkSL::emit_interface_block(const SPIRVariable& var) { if (output_name_.empty()) { output_name_ = to_name(var.self); } else if (to_name(var.self) != output_name_) { - SPIRV_CROSS_THROW("Only one output variable is supported: '" + - to_name(var.self) + "'"); + FLUTTER_CROSS_THROW("Only one output variable is supported: '" + + to_name(var.self) + "'"); } } @@ -369,11 +380,12 @@ void CompilerSkSL::emit_function_prototype(SPIRFunction& func, auto& type = get(func.return_type); if (type.basetype != SPIRType::Void) { - SPIRV_CROSS_THROW("Return type of the entrypoint function must be 'void'"); + FLUTTER_CROSS_THROW( + "Return type of the entrypoint function must be 'void'"); } if (func.arguments.size() != 0) { - SPIRV_CROSS_THROW( + FLUTTER_CROSS_THROW( "The entry point function should not acept any parameters."); } @@ -387,7 +399,7 @@ void CompilerSkSL::emit_function_prototype(SPIRFunction& func, std::string CompilerSkSL::image_type_glsl(const SPIRType& type, uint32_t id) { if (type.basetype != SPIRType::SampledImage || type.image.dim != Dim2D) { - SPIRV_CROSS_THROW("Only sampler2D uniform image types are supported."); + FLUTTER_CROSS_THROW("Only sampler2D uniform image types are supported."); return "???"; } return "shader"; @@ -400,7 +412,7 @@ std::string CompilerSkSL::builtin_to_glsl(BuiltIn builtin, case BuiltInFragCoord: return "flutter_FragCoord"; default: - SPIRV_CROSS_THROW("Builtin '" + gl_builtin + "' is not supported."); + FLUTTER_CROSS_THROW("Builtin '" + gl_builtin + "' is not supported."); break; } @@ -414,7 +426,7 @@ std::string CompilerSkSL::to_texture_op( SmallVector& inherited_expressions) { auto op = static_cast(i.op); if (op != OpImageSampleImplicitLod) { - SPIRV_CROSS_THROW("Only simple shader sampling is supported."); + FLUTTER_CROSS_THROW("Only simple shader sampling is supported."); return "???"; } return CompilerGLSL::to_texture_op(i, sparse, forward, inherited_expressions); @@ -431,6 +443,15 @@ std::string CompilerSkSL::to_function_args(const TextureFunctionArguments& args, std::string name = to_expression(args.base.img); std::string glsl_args = CompilerGLSL::to_function_args(args, p_forward); + // SkSL only supports coordinates. All other arguments to texture are + // unsupported and will generate invalid SkSL. + if (args.grad_x || args.grad_y || args.lod || args.coffset || args.offset || + args.sample || args.min_lod || args.sparse_texel || args.bias || + args.component) { + FLUTTER_CROSS_THROW( + "Only sampler and position arguments are supported in texture() " + "calls."); + } // GLSL puts the shader as the first argument, but in SkSL the shader is // implicitly passed as the reciever of the 'eval' method. Therefore, the @@ -442,8 +463,8 @@ std::string CompilerSkSL::to_function_args(const TextureFunctionArguments& args, } if (no_shader.empty()) { - SPIRV_CROSS_THROW("Unexpected shader sampling arguments: '(" + glsl_args + - ")'"); + FLUTTER_CROSS_THROW("Unexpected shader sampling arguments: '(" + glsl_args + + ")'"); return "()"; } diff --git a/impeller/compiler/switches.cc b/impeller/compiler/switches.cc index afdca72784e95..9129d6824cfb0 100644 --- a/impeller/compiler/switches.cc +++ b/impeller/compiler/switches.cc @@ -60,6 +60,7 @@ void Switches::PrintHelp(std::ostream& stream) { stream << "[optional,multiple] --include=" << std::endl; stream << "[optional,multiple] --define=" << std::endl; stream << "[optional] --depfile=" << std::endl; + stream << "[optional] --json" << std::endl; } Switches::Switches() = default; @@ -112,7 +113,8 @@ Switches::Switches(const fml::CommandLine& command_line) command_line.GetOptionValueWithDefault("reflection-header", "")), reflection_cc_name( command_line.GetOptionValueWithDefault("reflection-cc", "")), - depfile_path(command_line.GetOptionValueWithDefault("depfile", "")) { + depfile_path(command_line.GetOptionValueWithDefault("depfile", "")), + json_format(command_line.HasOption("json")) { if (!working_directory || !working_directory->is_valid()) { return; } diff --git a/impeller/compiler/switches.h b/impeller/compiler/switches.h index 81b0b8b1ce171..2cffa5cc922a0 100644 --- a/impeller/compiler/switches.h +++ b/impeller/compiler/switches.h @@ -31,6 +31,7 @@ struct Switches { std::string reflection_cc_name; std::string depfile_path; std::vector defines; + bool json_format; Switches(); diff --git a/impeller/compiler/types.cc b/impeller/compiler/types.cc index ffae9eb201bc7..b7e13e5aba49b 100644 --- a/impeller/compiler/types.cc +++ b/impeller/compiler/types.cc @@ -296,5 +296,22 @@ bool TargetPlatformIsMetal(TargetPlatform platform) { FML_UNREACHABLE(); } +bool TargetPlatformBundlesSkSL(TargetPlatform platform) { + switch (platform) { + case TargetPlatform::kSkSL: + case TargetPlatform::kRuntimeStageMetal: + case TargetPlatform::kRuntimeStageGLES: + return true; + case TargetPlatform::kMetalDesktop: + case TargetPlatform::kMetalIOS: + case TargetPlatform::kUnknown: + case TargetPlatform::kOpenGLES: + case TargetPlatform::kOpenGLDesktop: + case TargetPlatform::kVulkan: + return false; + } + FML_UNREACHABLE(); +} + } // namespace compiler } // namespace impeller diff --git a/impeller/compiler/types.h b/impeller/compiler/types.h index 7733621bc2d85..dd274cf6d6d3b 100644 --- a/impeller/compiler/types.h +++ b/impeller/compiler/types.h @@ -56,6 +56,8 @@ bool TargetPlatformNeedsSL(TargetPlatform platform); bool TargetPlatformNeedsReflection(TargetPlatform platform); +bool TargetPlatformBundlesSkSL(TargetPlatform platform); + std::string ShaderCErrorToString(shaderc_compilation_status status); shaderc_shader_kind ToShaderCShaderKind(SourceType type); diff --git a/impeller/display_list/display_list_dispatcher.cc b/impeller/display_list/display_list_dispatcher.cc index 1da0db438cb8b..3e555aeaf418f 100644 --- a/impeller/display_list/display_list_dispatcher.cc +++ b/impeller/display_list/display_list_dispatcher.cc @@ -5,11 +5,16 @@ #include "impeller/display_list/display_list_dispatcher.h" #include +#include +#include #include #include +#include +#include #include "display_list/display_list_blend_mode.h" #include "display_list/display_list_color_filter.h" +#include "display_list/display_list_color_source.h" #include "display_list/display_list_path_effect.h" #include "display_list/display_list_tile_mode.h" #include "flutter/fml/logging.h" @@ -21,10 +26,11 @@ #include "impeller/entity/contents/filters/inputs/filter_input.h" #include "impeller/entity/contents/linear_gradient_contents.h" #include "impeller/entity/contents/radial_gradient_contents.h" -#include "impeller/entity/contents/solid_stroke_contents.h" +#include "impeller/entity/contents/runtime_effect_contents.h" #include "impeller/entity/contents/sweep_gradient_contents.h" #include "impeller/entity/contents/tiled_texture_contents.h" #include "impeller/entity/entity.h" +#include "impeller/entity/geometry.h" #include "impeller/geometry/path.h" #include "impeller/geometry/path_builder.h" #include "impeller/geometry/scalar.h" @@ -223,13 +229,13 @@ void DisplayListDispatcher::setStrokeMiter(SkScalar limit) { void DisplayListDispatcher::setStrokeCap(flutter::DlStrokeCap cap) { switch (cap) { case flutter::DlStrokeCap::kButt: - paint_.stroke_cap = SolidStrokeContents::Cap::kButt; + paint_.stroke_cap = Cap::kButt; break; case flutter::DlStrokeCap::kRound: - paint_.stroke_cap = SolidStrokeContents::Cap::kRound; + paint_.stroke_cap = Cap::kRound; break; case flutter::DlStrokeCap::kSquare: - paint_.stroke_cap = SolidStrokeContents::Cap::kSquare; + paint_.stroke_cap = Cap::kSquare; break; } } @@ -238,13 +244,13 @@ void DisplayListDispatcher::setStrokeCap(flutter::DlStrokeCap cap) { void DisplayListDispatcher::setStrokeJoin(flutter::DlStrokeJoin join) { switch (join) { case flutter::DlStrokeJoin::kMiter: - paint_.stroke_join = SolidStrokeContents::Join::kMiter; + paint_.stroke_join = Join::kMiter; break; case flutter::DlStrokeJoin::kRound: - paint_.stroke_join = SolidStrokeContents::Join::kRound; + paint_.stroke_join = Join::kRound; break; case flutter::DlStrokeJoin::kBevel: - paint_.stroke_join = SolidStrokeContents::Join::kBevel; + paint_.stroke_join = Join::kBevel; break; } } @@ -345,8 +351,8 @@ void DisplayListDispatcher::setColorSource( paint_.color_source = [start_point, end_point, colors = std::move(colors), stops = std::move(stops), tile_mode, matrix]() { auto contents = std::make_shared(); - contents->SetColors(std::move(colors)); - contents->SetStops(std::move(stops)); + contents->SetColors(colors); + contents->SetStops(stops); contents->SetEndPoints(start_point, end_point); contents->SetTileMode(tile_mode); contents->SetMatrix(matrix); @@ -369,8 +375,8 @@ void DisplayListDispatcher::setColorSource( paint_.color_source = [center, radius, colors = std::move(colors), stops = std::move(stops), tile_mode, matrix]() { auto contents = std::make_shared(); - contents->SetColors(std::move(colors)); - contents->SetStops(std::move(stops)); + contents->SetColors(colors); + contents->SetStops(stops); contents->SetCenterAndRadius(center, radius); contents->SetTileMode(tile_mode); contents->SetMatrix(matrix); @@ -397,8 +403,8 @@ void DisplayListDispatcher::setColorSource( stops = std::move(stops), tile_mode, matrix]() { auto contents = std::make_shared(); contents->SetCenterAndAngles(center, start_angle, end_angle); - contents->SetColors(std::move(colors)); - contents->SetStops(std::move(stops)); + contents->SetColors(colors); + contents->SetStops(stops); contents->SetTileMode(tile_mode); contents->SetMatrix(matrix); return contents; @@ -425,8 +431,39 @@ void DisplayListDispatcher::setColorSource( }; return; } + case flutter::DlColorSourceType::kRuntimeEffect: { + const flutter::DlRuntimeEffectColorSource* runtime_effect_color_source = + source->asRuntimeEffect(); + auto runtime_stage = + runtime_effect_color_source->runtime_effect()->runtime_stage(); + auto uniform_data = runtime_effect_color_source->uniform_data(); + auto samplers = runtime_effect_color_source->samplers(); + + std::vector texture_inputs; + + for (auto& sampler : samplers) { + auto* image = sampler->asImage(); + if (!sampler->asImage()) { + UNIMPLEMENTED; + return; + } + FML_DCHECK(image->image()->impeller_texture()); + texture_inputs.push_back({ + .sampler_descriptor = ToSamplerDescriptor(image->sampling()), + .texture = image->image()->impeller_texture(), + }); + } + + paint_.color_source = [runtime_stage, uniform_data, texture_inputs]() { + auto contents = std::make_shared(); + contents->SetRuntimeStage(runtime_stage); + contents->SetUniformData(uniform_data); + contents->SetTextureInputs(texture_inputs); + return contents; + }; + return; + } case flutter::DlColorSourceType::kConicalGradient: - case flutter::DlColorSourceType::kRuntimeEffect: case flutter::DlColorSourceType::kUnknown: UNIMPLEMENTED; break; @@ -447,7 +484,8 @@ static std::optional ToColorFilterProc( auto blend_mode = ToBlendMode(dl_blend->mode()); auto color = ToColor(dl_blend->color()); return [blend_mode, color](FilterInput::Ref input) { - return FilterContents::MakeBlend(blend_mode, {input}, color); + return ColorFilterContents::MakeBlend(blend_mode, {std::move(input)}, + color); }; } case flutter::DlColorFilterType::kMatrix: { @@ -455,16 +493,17 @@ static std::optional ToColorFilterProc( impeller::FilterContents::ColorMatrix color_matrix; dl_matrix->get_matrix(color_matrix.array); return [color_matrix](FilterInput::Ref input) { - return FilterContents::MakeColorMatrix({input}, color_matrix); + return ColorFilterContents::MakeColorMatrix({std::move(input)}, + color_matrix); }; } case flutter::DlColorFilterType::kSrgbToLinearGamma: return [](FilterInput::Ref input) { - return FilterContents::MakeSrgbToLinearFilter({input}); + return ColorFilterContents::MakeSrgbToLinearFilter({std::move(input)}); }; case flutter::DlColorFilterType::kLinearToSrgbGamma: return [](FilterInput::Ref input) { - return FilterContents::MakeLinearToSrgbFilter({input}); + return ColorFilterContents::MakeLinearToSrgbFilter({std::move(input)}); }; case flutter::DlColorFilterType::kUnknown: FML_LOG(ERROR) << "requested DlColorFilterType::kUnknown"; @@ -551,7 +590,7 @@ static std::optional ToImageFilterProc( auto sigma_y = Sigma(blur->sigma_y()); auto tile_mode = ToTileMode(blur->tile_mode()); - return [sigma_x, sigma_y, tile_mode](FilterInput::Ref input, + return [sigma_x, sigma_y, tile_mode](const FilterInput::Ref& input, const Matrix& effect_transform) { return FilterContents::MakeGaussianBlur( input, sigma_x, sigma_y, FilterContents::BlurStyle::kNormal, @@ -571,8 +610,8 @@ static std::optional ToImageFilterProc( return [radius_x, radius_y](FilterInput::Ref input, const Matrix& effect_transform) { return FilterContents::MakeMorphology( - input, radius_x, radius_y, FilterContents::MorphType::kDilate, - effect_transform); + std::move(input), radius_x, radius_y, + FilterContents::MorphType::kDilate, effect_transform); }; break; } @@ -586,9 +625,9 @@ static std::optional ToImageFilterProc( auto radius_y = Radius(erode->radius_y()); return [radius_x, radius_y](FilterInput::Ref input, const Matrix& effect_transform) { - return FilterContents::MakeMorphology(input, radius_x, radius_y, - FilterContents::MorphType::kErode, - effect_transform); + return FilterContents::MakeMorphology( + std::move(input), radius_x, radius_y, + FilterContents::MorphType::kErode, effect_transform); }; break; } @@ -599,7 +638,7 @@ static std::optional ToImageFilterProc( auto desc = ToSamplerDescriptor(matrix_filter->sampling()); return [matrix, desc](FilterInput::Ref input, const Matrix& effect_transform) { - return FilterContents::MakeMatrixFilter(input, matrix, desc); + return FilterContents::MakeMatrixFilter(std::move(input), matrix, desc); }; break; } @@ -620,7 +659,7 @@ static std::optional ToImageFilterProc( return [outer_filter = outer_proc.value(), inner_filter = inner_proc.value()]( FilterInput::Ref input, const Matrix& effect_transform) { - auto contents = inner_filter(input, effect_transform); + auto contents = inner_filter(std::move(input), effect_transform); contents = outer_filter(FilterInput::Make(contents), effect_transform); return contents; }; @@ -636,7 +675,7 @@ static std::optional ToImageFilterProc( } return [color_filter = color_filter_proc.value()]( FilterInput::Ref input, const Matrix& effect_transform) { - return color_filter(input); + return color_filter(std::move(input)); }; break; } @@ -656,7 +695,7 @@ static std::optional ToImageFilterProc( return [matrix, filter_proc = image_filter_proc.value()]( FilterInput::Ref input, const Matrix& effect_transform) { std::shared_ptr filter = - filter_proc(input, effect_transform); + filter_proc(std::move(input), effect_transform); return FilterContents::MakeLocalMatrixFilter(FilterInput::Make(filter), matrix); }; @@ -796,7 +835,7 @@ void DisplayListDispatcher::clipRect(const SkRect& rect, SkClipOp clip_op, bool is_aa) { auto path = PathBuilder{}.AddRect(ToRect(rect)).TakePath(); - canvas_.ClipPath(std::move(path), ToClipOperation(clip_op)); + canvas_.ClipPath(path, ToClipOperation(clip_op)); } static PathBuilder::RoundingRadii ToRoundingRadii(const SkRRect& rrect) { @@ -924,7 +963,7 @@ void DisplayListDispatcher::drawLine(const SkPoint& p0, const SkPoint& p1) { auto path = PathBuilder{}.AddLine(ToPoint(p0), ToPoint(p1)).TakePath(); Paint paint = paint_; paint.style = Paint::Style::kStroke; - canvas_.DrawPath(std::move(path), std::move(paint)); + canvas_.DrawPath(path, paint); } // |flutter::Dispatcher| @@ -934,14 +973,18 @@ void DisplayListDispatcher::drawRect(const SkRect& rect) { // |flutter::Dispatcher| void DisplayListDispatcher::drawOval(const SkRect& bounds) { - auto path = PathBuilder{}.AddOval(ToRect(bounds)).TakePath(); - canvas_.DrawPath(std::move(path), paint_); + if (bounds.width() == bounds.height()) { + canvas_.DrawCircle(ToPoint(bounds.center()), bounds.width() * 0.5, paint_); + } else { + auto path = PathBuilder{}.AddOval(ToRect(bounds)).TakePath(); + canvas_.DrawPath(path, paint_); + } } // |flutter::Dispatcher| void DisplayListDispatcher::drawCircle(const SkPoint& center, SkScalar radius) { auto path = PathBuilder{}.AddCircle(ToPoint(center), radius).TakePath(); - canvas_.DrawPath(std::move(path), paint_); + canvas_.DrawCircle(ToPoint(center), radius, paint_); } // |flutter::Dispatcher| @@ -986,13 +1029,13 @@ void DisplayListDispatcher::drawPoints(SkCanvas::PointMode mode, paint.style = Paint::Style::kStroke; switch (mode) { case SkCanvas::kPoints_PointMode: - if (paint.stroke_cap == SolidStrokeContents::Cap::kButt) { - paint.stroke_cap = SolidStrokeContents::Cap::kSquare; + if (paint.stroke_cap == Cap::kButt) { + paint.stroke_cap = Cap::kSquare; } for (uint32_t i = 0; i < count; i++) { Point p0 = ToPoint(points[i]); auto path = PathBuilder{}.AddLine(p0, p0).TakePath(); - canvas_.DrawPath(std::move(path), paint); + canvas_.DrawPath(path, paint); } break; case SkCanvas::kLines_PointMode: @@ -1000,7 +1043,7 @@ void DisplayListDispatcher::drawPoints(SkCanvas::PointMode mode, Point p0 = ToPoint(points[i - 1]); Point p1 = ToPoint(points[i]); auto path = PathBuilder{}.AddLine(p0, p1).TakePath(); - canvas_.DrawPath(std::move(path), paint); + canvas_.DrawPath(path, paint); } break; case SkCanvas::kPolygon_PointMode: @@ -1009,7 +1052,7 @@ void DisplayListDispatcher::drawPoints(SkCanvas::PointMode mode, for (uint32_t i = 1; i < count; i++) { Point p1 = ToPoint(points[i]); auto path = PathBuilder{}.AddLine(p0, p1).TakePath(); - canvas_.DrawPath(std::move(path), paint); + canvas_.DrawPath(path, paint); p0 = p1; } } @@ -1071,7 +1114,7 @@ void DisplayListDispatcher::drawImageRect( std::make_shared(image->impeller_texture()), // image ToRect(src), // source rect ToRect(dst), // destination rect - paint_, // paint + render_with_attributes ? paint_ : Paint(), // paint ToSamplerDescriptor(sampling) // sampling ); } @@ -1203,13 +1246,15 @@ void DisplayListDispatcher::drawShadow(const SkPath& path, SkRect rect; SkRRect rrect; + SkRect oval; if (path.isRect(&rect)) { - canvas_.DrawRect(ToRect(rect), std::move(paint)); + canvas_.DrawRect(ToRect(rect), paint); } else if (path.isRRect(&rrect) && rrect.isSimple()) { - canvas_.DrawRRect(ToRect(rrect.rect()), rrect.getSimpleRadii().fX, - std::move(paint)); + canvas_.DrawRRect(ToRect(rrect.rect()), rrect.getSimpleRadii().fX, paint); + } else if (path.isOval(&oval) && oval.width() == oval.height()) { + canvas_.DrawCircle(ToPoint(oval.center()), oval.width() * 0.5, paint); } else { - canvas_.DrawPath(ToPath(path), std::move(paint)); + canvas_.DrawPath(ToPath(path), paint); } canvas_.Restore(); diff --git a/impeller/display_list/display_list_image_impeller.cc b/impeller/display_list/display_list_image_impeller.cc index f964010b9ae90..ae71d94132578 100644 --- a/impeller/display_list/display_list_image_impeller.cc +++ b/impeller/display_list/display_list_image_impeller.cc @@ -4,6 +4,9 @@ #include "impeller/display_list/display_list_image_impeller.h" +#include "impeller/aiks/aiks_context.h" +#include "impeller/entity/contents/filters/filter_contents.h" + namespace impeller { sk_sp DlImageImpeller::Make(std::shared_ptr texture) { @@ -13,6 +16,23 @@ sk_sp DlImageImpeller::Make(std::shared_ptr texture) { return sk_sp(new DlImageImpeller(std::move(texture))); } +sk_sp DlImageImpeller::MakeFromYUVTextures( + AiksContext* aiks_context, + std::shared_ptr y_texture, + std::shared_ptr uv_texture, + YUVColorSpace yuv_color_space) { + if (!aiks_context || !y_texture || !uv_texture) { + return nullptr; + } + auto yuv_to_rgb_filter_contents = FilterContents::MakeYUVToRGBFilter( + std::move(y_texture), std::move(uv_texture), yuv_color_space); + impeller::Entity entity; + entity.SetBlendMode(impeller::BlendMode::kSource); + auto snapshot = yuv_to_rgb_filter_contents->RenderToSnapshot( + aiks_context->GetContentContext(), entity); + return impeller::DlImageImpeller::Make(snapshot->texture); +} + DlImageImpeller::DlImageImpeller(std::shared_ptr texture) : texture_(std::move(texture)) {} diff --git a/impeller/display_list/display_list_image_impeller.h b/impeller/display_list/display_list_image_impeller.h index cf7ae7501eb69..65b9c2892bc2a 100644 --- a/impeller/display_list/display_list_image_impeller.h +++ b/impeller/display_list/display_list_image_impeller.h @@ -10,10 +10,18 @@ namespace impeller { +class AiksContext; + class DlImageImpeller final : public flutter::DlImage { public: static sk_sp Make(std::shared_ptr texture); + static sk_sp MakeFromYUVTextures( + AiksContext* aiks_context, + std::shared_ptr y_texture, + std::shared_ptr uv_texture, + YUVColorSpace yuv_color_space); + // |DlImage| ~DlImageImpeller() override; diff --git a/impeller/display_list/display_list_unittests.cc b/impeller/display_list/display_list_unittests.cc index 201371839b172..f640d17d2036c 100644 --- a/impeller/display_list/display_list_unittests.cc +++ b/impeller/display_list/display_list_unittests.cc @@ -97,14 +97,7 @@ TEST_P(DisplayListTest, CanDrawCapsAndJoins) { } TEST_P(DisplayListTest, CanDrawArc) { - bool first_frame = true; auto callback = [&]() { - if (first_frame) { - first_frame = false; - ImGui::SetNextWindowSize({400, 100}); - ImGui::SetNextWindowPos({300, 550}); - } - static float start_angle = 45; static float sweep_angle = 270; static bool use_center = true; @@ -283,17 +276,10 @@ TEST_P(DisplayListTest, CanDrawWithColorFilterImageFilter) { TEST_P(DisplayListTest, CanDrawWithImageBlurFilter) { auto texture = CreateTextureForFixture("embarcadero.jpg"); - bool first_frame = true; auto callback = [&]() { - if (first_frame) { - first_frame = false; - ImGui::SetNextWindowSize({400, 100}); - ImGui::SetNextWindowPos({300, 550}); - } - static float sigma[] = {10, 10}; - ImGui::Begin("Controls"); + ImGui::Begin("Controls", nullptr, ImGuiWindowFlags_AlwaysAutoResize); ImGui::SliderFloat2("Sigma", sigma, 0, 100); ImGui::End(); @@ -359,16 +345,115 @@ TEST_P(DisplayListTest, CanClampTheResultingColorOfColorMatrixFilter) { ASSERT_TRUE(OpenPlaygroundHere(builder.Build())); } -TEST_P(DisplayListTest, CanDrawBackdropFilter) { - auto texture = CreateTextureForFixture("embarcadero.jpg"); +TEST_P(DisplayListTest, SaveLayerWithColorMatrixFiltersAndAlphaDrawCorrectly) { + auto texture = CreateTextureForFixture("boston.jpg"); + enum class Type { kUseAsImageFilter, kUseAsColorFilter, kDisableFilter }; + auto callback = [&]() { + static float alpha = 0.5; + static int selected_type = 0; + const char* names[] = {"Use as image filter", "Use as color filter", + "Disable filter"}; + + static float color_matrix[20] = { + 1, 0, 0, 0, 0, // + 0, 1, 0, 0, 0, // + 0, 0, 1, 0, 0, // + 0, 0, 0, 2, 0, // + }; - bool first_frame = true; + ImGui::Begin("Controls", nullptr, ImGuiWindowFlags_AlwaysAutoResize); + ImGui::SliderFloat("Alpha", &alpha, 0, 1); + + ImGui::Combo("Type", &selected_type, names, sizeof(names) / sizeof(char*)); + std::string label = "##1"; + for (int i = 0; i < 20; i += 5) { + ImGui::InputScalarN(label.c_str(), ImGuiDataType_Float, + &(color_matrix[i]), 5, nullptr, nullptr, "%.2f", 0); + label[2]++; + } + ImGui::End(); + + flutter::DisplayListBuilder builder; + flutter::DlPaint save_paint; + save_paint.setAlpha(static_cast(255 * alpha)); + auto color_filter = + std::make_shared(color_matrix); + Type type = static_cast(selected_type); + switch (type) { + case Type::kUseAsImageFilter: { + auto image_filter = + std::make_shared(color_filter); + save_paint.setImageFilter(image_filter); + break; + } + case Type::kUseAsColorFilter: { + save_paint.setColorFilter(color_filter); + break; + } + case Type::kDisableFilter: + break; + } + builder.saveLayer(nullptr, &save_paint); + flutter::DlPaint draw_paint; + builder.drawImage(DlImageImpeller::Make(texture), SkPoint::Make(100, 100), + flutter::DlImageSampling::kNearestNeighbor, &draw_paint); + builder.restore(); + return builder.Build(); + }; + + ASSERT_TRUE(OpenPlaygroundHere(callback)); +} + +TEST_P(DisplayListTest, SaveLayerWithBlendFiltersAndAlphaDrawCorrectly) { + auto texture = CreateTextureForFixture("boston.jpg"); + enum class Type { kUseAsImageFilter, kUseAsColorFilter, kDisableFilter }; auto callback = [&]() { - if (first_frame) { - first_frame = false; - ImGui::SetNextWindowPos({10, 10}); + static float alpha = 0.5; + static int selected_type = 0; + const char* names[] = {"Use as image filter", "Use as color filter", + "Disable filter"}; + + ImGui::Begin("Controls", nullptr, ImGuiWindowFlags_AlwaysAutoResize); + ImGui::SliderFloat("Alpha", &alpha, 0, 1); + + ImGui::Combo("Type", &selected_type, names, sizeof(names) / sizeof(char*)); + ImGui::End(); + + flutter::DisplayListBuilder builder; + flutter::DlPaint save_paint; + save_paint.setAlpha(static_cast(255 * alpha)); + auto color_filter = std::make_shared( + flutter::DlColor::kRed(), flutter::DlBlendMode::kDstOver); + Type type = static_cast(selected_type); + switch (type) { + case Type::kUseAsImageFilter: { + auto image_filter = + std::make_shared(color_filter); + save_paint.setImageFilter(image_filter); + break; + } + case Type::kUseAsColorFilter: { + save_paint.setColorFilter(color_filter); + break; + } + case Type::kDisableFilter: + break; } + builder.saveLayer(nullptr, &save_paint); + flutter::DlPaint draw_paint; + draw_paint.setColor(flutter::DlColor::kBlue()); + builder.drawRect(SkRect::MakeLTRB(100, 100, 400, 400), draw_paint); + builder.restore(); + return builder.Build(); + }; + ASSERT_TRUE(OpenPlaygroundHere(callback)); +} + +TEST_P(DisplayListTest, CanDrawBackdropFilter) { + auto texture = CreateTextureForFixture("embarcadero.jpg"); + + auto callback = [&]() { static float sigma[] = {10, 10}; static float ctm_scale = 1; static bool use_bounds = true; @@ -658,13 +743,7 @@ TEST_P(DisplayListTest, CanDrawZeroWidthLine) { TEST_P(DisplayListTest, CanDrawWithMatrixFilter) { auto boston = CreateTextureForFixture("boston.jpg"); - bool first_frame = true; auto callback = [&]() { - if (first_frame) { - first_frame = false; - ImGui::SetNextWindowPos({10, 10}); - } - static int selected_matrix_type = 0; const char* matrix_type_names[] = {"Matrix", "Local Matrix"}; @@ -880,5 +959,34 @@ TEST_P(DisplayListTest, CanBlendDstOverAndDstCorrectly) { ASSERT_TRUE(OpenPlaygroundHere(builder.Build())); } +TEST_P(DisplayListTest, CanDrawCorrectlyWithColorFilterAndImageFilter) { + flutter::DisplayListBuilder builder; + const float green_color_matrix[20] = { + 0, 0, 0, 0, 0, // + 0, 0, 0, 0, 1, // + 0, 0, 0, 0, 0, // + 0, 0, 0, 1, 0, // + }; + const float blue_color_matrix[20] = { + 0, 0, 0, 0, 0, // + 0, 0, 0, 0, 0, // + 0, 0, 0, 0, 1, // + 0, 0, 0, 1, 0, // + }; + auto green_color_filter = + std::make_shared(green_color_matrix); + auto blue_color_filter = + std::make_shared(blue_color_matrix); + auto blue_image_filter = + std::make_shared(blue_color_filter); + + flutter::DlPaint paint; + paint.setColor(flutter::DlColor::kRed()); + paint.setColorFilter(green_color_filter); + paint.setImageFilter(blue_image_filter); + builder.drawRect(SkRect::MakeLTRB(100, 100, 500, 500), paint); + ASSERT_TRUE(OpenPlaygroundHere(builder.Build())); +} + } // namespace testing } // namespace impeller diff --git a/impeller/display_list/nine_patch_converter.cc b/impeller/display_list/nine_patch_converter.cc index 2a9872e0ea8a3..4a4536999ac6e 100644 --- a/impeller/display_list/nine_patch_converter.cc +++ b/impeller/display_list/nine_patch_converter.cc @@ -57,10 +57,10 @@ std::vector NinePatchConverter::InitSlices(double img0, // clang-format on } -void NinePatchConverter::DrawNinePatch(std::shared_ptr image, +void NinePatchConverter::DrawNinePatch(const std::shared_ptr& image, Rect center, Rect dst, - SamplerDescriptor sampler, + const SamplerDescriptor& sampler, Canvas* canvas, Paint* paint) { if (dst.IsEmpty()) { diff --git a/impeller/display_list/nine_patch_converter.h b/impeller/display_list/nine_patch_converter.h index a9250099d4250..6795f4dc7feb8 100644 --- a/impeller/display_list/nine_patch_converter.h +++ b/impeller/display_list/nine_patch_converter.h @@ -22,10 +22,10 @@ class NinePatchConverter { ~NinePatchConverter(); - void DrawNinePatch(std::shared_ptr image, + void DrawNinePatch(const std::shared_ptr& image, Rect center, Rect dst, - SamplerDescriptor sampler, + const SamplerDescriptor& sampler, Canvas* canvas, Paint* paint); diff --git a/impeller/docs/android_validation_layers.md b/impeller/docs/android_validation_layers.md new file mode 100644 index 0000000000000..df0125c4224ac --- /dev/null +++ b/impeller/docs/android_validation_layers.md @@ -0,0 +1,23 @@ +# Android Vulkan Validation Layers + +This is a quick guide to get Vulkan validation layers support for a Flutter application. This guide assumes that you've created the application with `flutter create`, otherwise the locations might vary. + +1. Download the validation layers from this [GitHub](https://github.com/KhronosGroup/Vulkan-ValidationLayers/releases) releases. Typically named `android-binaries-1.3.231.1.zip`. +2. When you unzip the file, you will see: `arm64-v8a armeabi-v7a x86 x86_64` +3. Copy these directories to `${FLUTTER_APP}/android/app/src/main/vklibs`. The layout should look similar to: + +``` +src/main/vklibs/ + arm64-v8a/ + libVkLayer_khronos_validation.so + armeabi-v7a/ + libVkLayer_khronos_validation.so + x86/ + libVkLayer_khronos_validation.so + x86-64/ + libVkLayer_khronos_validation.so +``` + +4. Add the following line to `${FLUTTER_APP}/android/app/build.gradle`, `android > sourceSets` section: `main.jniLibs.srcDirs += 'src/main/vklibs'`. + +5. This should enable Vulkan validation layers on your Android application. diff --git a/impeller/docs/assets/launch-app.png b/impeller/docs/assets/launch-app.png new file mode 100644 index 0000000000000..0d76faea34060 Binary files /dev/null and b/impeller/docs/assets/launch-app.png differ diff --git a/impeller/docs/assets/render-doc-capture.png b/impeller/docs/assets/render-doc-capture.png new file mode 100644 index 0000000000000..3189b6a671cff Binary files /dev/null and b/impeller/docs/assets/render-doc-capture.png differ diff --git a/impeller/docs/renderdoc_frame_capture.md b/impeller/docs/renderdoc_frame_capture.md new file mode 100644 index 0000000000000..5f21441515361 --- /dev/null +++ b/impeller/docs/renderdoc_frame_capture.md @@ -0,0 +1,27 @@ +# Frame Capture with RenderDoc + +[RenderDoc](https://renderdoc.org/) is a graphics debugger that can be used to capture frames. With Impeller starting to support gles and Vulkan backends, RenderDoc can provide insights into the application's frames. + +1. First step is to setup RenderDoc. Follow the instructions [here](https://renderdoc.org/docs/getting_started/quick_start.html). For the purposes of this guide it is assumed that you are able to get RenderDoc running. +2. The next step would be to run the application you wish the capture the frames of. Typically these would be one of the playground tests. To build these, do: + +```bash +# In your $ENGINE_SRC folder, do: + +./flutter/tools/gn --unopt --no-lto --enable-impeller-playground\ + --enable-impeller-vulkan --target-dir host_debug_impeller_vulkan +autoninja -C out/host_debug_impeller_vulkan/ +``` + +3. Start RenderDoc, and click the "Launch Application" button. + + + +4. Fill out the following parameters, and click launch: + - executable: `$ENGINE_SRC/out/host_debug_impeller_vulkan/impeller_unittests` (expand `ENGINE_SRC`). + - args: `--gtest_filter="*CanDrawRect/Vulkan*"` + - working dir: `$ENGINE_SRC` (expand `ENGINE_SRC`) + +5. For the frame you wish to capture, press `F12`, you will now be able to see the frame capture and inspect the state. + + diff --git a/impeller/entity/BUILD.gn b/impeller/entity/BUILD.gn index 0add8e86da75a..1175f5daef889 100644 --- a/impeller/entity/BUILD.gn +++ b/impeller/entity/BUILD.gn @@ -44,13 +44,15 @@ impeller_shaders("entity_shaders") { "shaders/linear_gradient_fill.frag", "shaders/morphology_filter.frag", "shaders/morphology_filter.vert", + "shaders/position_color.vert", + "shaders/position_uv.vert", + "shaders/position.vert", "shaders/radial_gradient_fill.frag", "shaders/rrect_blur.vert", "shaders/rrect_blur.frag", + "shaders/runtime_effect.vert", "shaders/solid_fill.frag", "shaders/solid_fill.vert", - "shaders/solid_stroke.frag", - "shaders/solid_stroke.vert", "shaders/srgb_to_linear_filter.frag", "shaders/srgb_to_linear_filter.vert", "shaders/sweep_gradient_fill.frag", @@ -59,7 +61,8 @@ impeller_shaders("entity_shaders") { "shaders/tiled_texture_fill.frag", "shaders/tiled_texture_fill.vert", "shaders/vertices.frag", - "shaders/vertices.vert", + "shaders/yuv_to_rgb_filter.frag", + "shaders/yuv_to_rgb_filter.vert", ] } @@ -79,6 +82,8 @@ impeller_component("entity") { "contents/filters/blend_filter_contents.h", "contents/filters/border_mask_blur_filter_contents.cc", "contents/filters/border_mask_blur_filter_contents.h", + "contents/filters/color_filter_contents.cc", + "contents/filters/color_filter_contents.h", "contents/filters/color_matrix_filter_contents.cc", "contents/filters/color_matrix_filter_contents.h", "contents/filters/filter_contents.cc", @@ -103,6 +108,8 @@ impeller_component("entity") { "contents/filters/morphology_filter_contents.h", "contents/filters/srgb_to_linear_filter_contents.cc", "contents/filters/srgb_to_linear_filter_contents.h", + "contents/filters/yuv_to_rgb_filter_contents.cc", + "contents/filters/yuv_to_rgb_filter_contents.h", "contents/gradient_generator.cc", "contents/gradient_generator.h", "contents/linear_gradient_contents.cc", @@ -111,12 +118,10 @@ impeller_component("entity") { "contents/radial_gradient_contents.h", "contents/rrect_shadow_contents.cc", "contents/rrect_shadow_contents.h", + "contents/runtime_effect_contents.cc", + "contents/runtime_effect_contents.h", "contents/solid_color_contents.cc", "contents/solid_color_contents.h", - "contents/solid_fill_utils.cc", - "contents/solid_fill_utils.h", - "contents/solid_stroke_contents.cc", - "contents/solid_stroke_contents.h", "contents/sweep_gradient_contents.cc", "contents/sweep_gradient_contents.h", "contents/text_contents.cc", @@ -133,6 +138,8 @@ impeller_component("entity") { "entity_pass.h", "entity_pass_delegate.cc", "entity_pass_delegate.h", + "geometry.cc", + "geometry.h", "inline_pass_context.cc", "inline_pass_context.h", ] diff --git a/impeller/entity/contents/atlas_contents.cc b/impeller/entity/contents/atlas_contents.cc index 5c9d0bec22e33..b983d29e9c261 100644 --- a/impeller/entity/contents/atlas_contents.cc +++ b/impeller/entity/contents/atlas_contents.cc @@ -3,6 +3,7 @@ // found in the LICENSE file. #include +#include #include "impeller/renderer/formats.h" #include "impeller/renderer/sampler_library.h" @@ -30,15 +31,15 @@ std::shared_ptr AtlasContents::GetTexture() const { } void AtlasContents::SetTransforms(std::vector transforms) { - transforms_ = transforms; + transforms_ = std::move(transforms); } void AtlasContents::SetTextureCoordinates(std::vector texture_coords) { - texture_coords_ = texture_coords; + texture_coords_ = std::move(texture_coords); } void AtlasContents::SetColors(std::vector colors) { - colors_ = colors; + colors_ = std::move(colors); } void AtlasContents::SetAlpha(Scalar alpha) { diff --git a/impeller/entity/contents/clip_contents.cc b/impeller/entity/contents/clip_contents.cc index 1914b8335304b..786a5ace3b300 100644 --- a/impeller/entity/contents/clip_contents.cc +++ b/impeller/entity/contents/clip_contents.cc @@ -7,9 +7,7 @@ #include "fml/logging.h" #include "impeller/entity/contents/clip_contents.h" #include "impeller/entity/contents/content_context.h" -#include "impeller/entity/contents/solid_fill_utils.h" #include "impeller/entity/entity.h" -#include "impeller/geometry/path_builder.h" #include "impeller/renderer/formats.h" #include "impeller/renderer/render_pass.h" #include "impeller/renderer/vertex_buffer_builder.h" @@ -24,8 +22,8 @@ ClipContents::ClipContents() = default; ClipContents::~ClipContents() = default; -void ClipContents::SetPath(Path path) { - path_ = std::move(path); +void ClipContents::SetGeometry(std::unique_ptr geometry) { + geometry_ = std::move(geometry); } void ClipContents::SetClipOperation(Entity::ClipOperation clip_op) { @@ -52,8 +50,7 @@ Contents::StencilCoverage ClipContents::GetStencilCoverage( return { .type = StencilCoverage::Type::kAppend, .coverage = current_stencil_coverage->Intersection( - path_.GetTransformedBoundingBox(entity.GetTransformation()) - .value()), + geometry_->GetCoverage(entity.GetTransformation()).value()), }; } FML_UNREACHABLE(); @@ -95,7 +92,7 @@ bool ClipContents::Render(const ContentContext& renderer, VertexBufferBuilder{} .AddVertices({{points[0]}, {points[1]}, {points[2]}, {points[3]}}) .CreateVertexBuffer(pass.GetTransientsBuffer()); - cmd.BindVertices(std::move(vertices)); + cmd.BindVertices(vertices); info.mvp = Matrix::MakeOrthographic(pass.GetRenderTargetSize()); VS::BindVertInfo(cmd, pass.GetTransientsBuffer().EmplaceUniform(info)); @@ -119,9 +116,11 @@ bool ClipContents::Render(const ContentContext& renderer, } cmd.pipeline = renderer.GetClipPipeline(options); - cmd.BindVertices(CreateSolidFillVertices( - renderer.GetTessellator(), path_, pass.GetTransientsBuffer())); + auto allocator = renderer.GetContext()->GetResourceAllocator(); + auto geometry_result = geometry_->GetPositionBuffer(renderer, entity, pass); + cmd.BindVertices(geometry_result.vertex_buffer); + cmd.primitive_type = geometry_result.type; info.mvp = Matrix::MakeOrthographic(pass.GetRenderTargetSize()) * entity.GetTransformation(); VS::BindVertInfo(cmd, pass.GetTransientsBuffer().EmplaceUniform(info)); diff --git a/impeller/entity/contents/clip_contents.h b/impeller/entity/contents/clip_contents.h index 9521aa05b931a..b70c8ba863c02 100644 --- a/impeller/entity/contents/clip_contents.h +++ b/impeller/entity/contents/clip_contents.h @@ -11,6 +11,7 @@ #include "flutter/fml/macros.h" #include "impeller/entity/contents/contents.h" #include "impeller/entity/entity.h" +#include "impeller/entity/geometry.h" namespace impeller { @@ -20,7 +21,7 @@ class ClipContents final : public Contents { ~ClipContents(); - void SetPath(Path path); + void SetGeometry(std::unique_ptr geometry); void SetClipOperation(Entity::ClipOperation clip_op); @@ -42,7 +43,7 @@ class ClipContents final : public Contents { RenderPass& pass) const override; private: - Path path_; + std::unique_ptr geometry_; Entity::ClipOperation clip_op_ = Entity::ClipOperation::kIntersect; FML_DISALLOW_COPY_AND_ASSIGN(ClipContents); diff --git a/impeller/entity/contents/color_source_contents.cc b/impeller/entity/contents/color_source_contents.cc index 359a0e1dc5431..37e079d8785bb 100644 --- a/impeller/entity/contents/color_source_contents.cc +++ b/impeller/entity/contents/color_source_contents.cc @@ -13,12 +13,12 @@ ColorSourceContents::ColorSourceContents() = default; ColorSourceContents::~ColorSourceContents() = default; -void ColorSourceContents::SetPath(Path path) { - path_ = path; +void ColorSourceContents::SetGeometry(std::unique_ptr geometry) { + geometry_ = std::move(geometry); } -const Path& ColorSourceContents::GetPath() const { - return path_; +const std::unique_ptr& ColorSourceContents::GetGeometry() const { + return geometry_; } void ColorSourceContents::SetAlpha(Scalar alpha) { @@ -37,17 +37,9 @@ const Matrix& ColorSourceContents::GetInverseMatrix() const { return inverse_matrix_; } -void ColorSourceContents::SetCover(bool cover) { - cover_ = cover; -} - -bool ColorSourceContents::GetCover() const { - return cover_; -} - std::optional ColorSourceContents::GetCoverage( const Entity& entity) const { - return path_.GetTransformedBoundingBox(entity.GetTransformation()); + return geometry_->GetCoverage(entity.GetTransformation()); }; bool ColorSourceContents::ShouldRender( @@ -56,7 +48,7 @@ bool ColorSourceContents::ShouldRender( if (!stencil_coverage.has_value()) { return false; } - return cover_ || Contents::ShouldRender(entity, stencil_coverage); + return Contents::ShouldRender(entity, stencil_coverage); } } // namespace impeller diff --git a/impeller/entity/contents/color_source_contents.h b/impeller/entity/contents/color_source_contents.h index 4e01f46843088..f5289192b1d89 100644 --- a/impeller/entity/contents/color_source_contents.h +++ b/impeller/entity/contents/color_source_contents.h @@ -6,6 +6,7 @@ #include "flutter/fml/macros.h" #include "impeller/entity/contents/contents.h" +#include "impeller/entity/geometry.h" #include "impeller/geometry/matrix.h" #include "impeller/geometry/path.h" @@ -17,14 +18,12 @@ class ColorSourceContents : public Contents { ~ColorSourceContents() override; - void SetPath(Path path); + void SetGeometry(std::unique_ptr geometry); void SetMatrix(Matrix matrix); void SetAlpha(Scalar alpha); - void SetCover(bool cover); - // |Contents| std::optional GetCoverage(const Entity& entity) const override; @@ -33,19 +32,16 @@ class ColorSourceContents : public Contents { const std::optional& stencil_coverage) const override; protected: - const Path& GetPath() const; + const std::unique_ptr& GetGeometry() const; const Matrix& GetInverseMatrix() const; Scalar GetAlpha() const; - bool GetCover() const; - private: - Path path_; + std::unique_ptr geometry_; Matrix inverse_matrix_; Scalar alpha_ = 1.0; - bool cover_ = false; FML_DISALLOW_COPY_AND_ASSIGN(ColorSourceContents); }; diff --git a/impeller/entity/contents/content_context.cc b/impeller/entity/contents/content_context.cc index adc57b746cc48..d8950c3554fce 100644 --- a/impeller/entity/contents/content_context.cc +++ b/impeller/entity/contents/content_context.cc @@ -110,8 +110,7 @@ void ContentContextOptions::ApplyToPipelineDescriptor( color0.src_color_blend_factor = BlendFactor::kOne; break; case BlendMode::kModulate: - // kSourceColor and kDestinationColor override the alpha blend factor. - color0.dst_alpha_blend_factor = BlendFactor::kZero; + color0.dst_alpha_blend_factor = BlendFactor::kSourceAlpha; color0.dst_color_blend_factor = BlendFactor::kSourceColor; color0.src_alpha_blend_factor = BlendFactor::kZero; color0.src_color_blend_factor = BlendFactor::kZero; @@ -119,7 +118,7 @@ void ContentContextOptions::ApplyToPipelineDescriptor( default: FML_UNREACHABLE(); } - desc.SetColorAttachmentDescriptor(0u, std::move(color0)); + desc.SetColorAttachmentDescriptor(0u, color0); if (desc.GetFrontStencilAttachmentDescriptor().has_value()) { StencilAttachmentDescriptor stencil = @@ -144,7 +143,8 @@ static std::unique_ptr CreateDefaultPipeline( ContentContext::ContentContext(std::shared_ptr context) : context_(std::move(context)), - tessellator_(std::make_shared()) { + tessellator_(std::make_shared()), + glyph_atlas_context_(std::make_shared()) { if (!context_ || !context_->IsValid()) { return; } @@ -205,14 +205,17 @@ ContentContext::ContentContext(std::shared_ptr context) CreateDefaultPipeline(*context_); srgb_to_linear_filter_pipelines_[{}] = CreateDefaultPipeline(*context_); - solid_stroke_pipelines_[{}] = - CreateDefaultPipeline(*context_); glyph_atlas_pipelines_[{}] = CreateDefaultPipeline(*context_); glyph_atlas_sdf_pipelines_[{}] = CreateDefaultPipeline(*context_); - vertices_pipelines_[{}] = CreateDefaultPipeline(*context_); + geometry_color_pipelines_[{}] = + CreateDefaultPipeline(*context_); + geometry_position_pipelines_[{}] = + CreateDefaultPipeline(*context_); atlas_pipelines_[{}] = CreateDefaultPipeline(*context_); + yuv_to_rgb_filter_pipelines_[{}] = + CreateDefaultPipeline(*context_); // Pipelines that are variants of the base pipelines with custom descriptors. // TODO(98684): Rework this API to allow fetching the descriptor without @@ -246,7 +249,7 @@ bool ContentContext::IsValid() const { std::shared_ptr ContentContext::MakeSubpass( ISize texture_size, - SubpassCallback subpass_callback) const { + const SubpassCallback& subpass_callback) const { auto context = GetContext(); RenderTarget subpass_target; @@ -291,6 +294,11 @@ std::shared_ptr ContentContext::GetTessellator() const { return tessellator_; } +std::shared_ptr ContentContext::GetGlyphAtlasContext() + const { + return glyph_atlas_context_; +} + std::shared_ptr ContentContext::GetContext() const { return context_; } diff --git a/impeller/entity/contents/content_context.h b/impeller/entity/contents/content_context.h index ce96fde7721c9..f4c39b89ea00b 100644 --- a/impeller/entity/contents/content_context.h +++ b/impeller/entity/contents/content_context.h @@ -53,8 +53,6 @@ #include "impeller/entity/rrect_blur.vert.h" #include "impeller/entity/solid_fill.frag.h" #include "impeller/entity/solid_fill.vert.h" -#include "impeller/entity/solid_stroke.frag.h" -#include "impeller/entity/solid_stroke.vert.h" #include "impeller/entity/srgb_to_linear_filter.frag.h" #include "impeller/entity/srgb_to_linear_filter.vert.h" #include "impeller/entity/sweep_gradient_fill.frag.h" @@ -63,10 +61,17 @@ #include "impeller/entity/tiled_texture_fill.frag.h" #include "impeller/entity/tiled_texture_fill.vert.h" #include "impeller/entity/vertices.frag.h" -#include "impeller/entity/vertices.vert.h" +#include "impeller/entity/yuv_to_rgb_filter.frag.h" +#include "impeller/entity/yuv_to_rgb_filter.vert.h" #include "impeller/renderer/formats.h" #include "impeller/renderer/pipeline.h" +#include "impeller/entity/position.vert.h" +#include "impeller/entity/position_color.vert.h" +#include "impeller/entity/position_uv.vert.h" + +#include "impeller/typographer/glyph_atlas.h" + namespace impeller { using LinearGradientFillPipeline = @@ -142,14 +147,10 @@ using LinearToSrgbFilterPipeline = using SrgbToLinearFilterPipeline = RenderPipelineT; -using SolidStrokePipeline = - RenderPipelineT; using GlyphAtlasPipeline = RenderPipelineT; using GlyphAtlasSdfPipeline = RenderPipelineT; -using VerticesPipeline = - RenderPipelineT; using AtlasPipeline = RenderPipelineT; // Instead of requiring new shaders for clips, the solid fill stages are used @@ -157,6 +158,13 @@ using AtlasPipeline = using ClipPipeline = RenderPipelineT; +using GeometryPositionPipeline = + RenderPipelineT; +using GeometryColorPipeline = + RenderPipelineT; +using YUVToRGBFilterPipeline = + RenderPipelineT; + struct ContentContextOptions { SampleCount sample_count = SampleCount::kCount1; BlendMode blend_mode = BlendMode::kSourceOver; @@ -265,11 +273,6 @@ class ContentContext { return GetPipeline(srgb_to_linear_filter_pipelines_, opts); } - std::shared_ptr> GetSolidStrokePipeline( - ContentContextOptions opts) const { - return GetPipeline(solid_stroke_pipelines_, opts); - } - std::shared_ptr> GetClipPipeline( ContentContextOptions opts) const { return GetPipeline(clip_pipelines_, opts); @@ -285,9 +288,14 @@ class ContentContext { return GetPipeline(glyph_atlas_sdf_pipelines_, opts); } - std::shared_ptr> GetVerticesPipeline( + std::shared_ptr> GetGeometryColorPipeline( ContentContextOptions opts) const { - return GetPipeline(vertices_pipelines_, opts); + return GetPipeline(geometry_color_pipelines_, opts); + } + + std::shared_ptr> GetGeometryPositionPipeline( + ContentContextOptions opts) const { + return GetPipeline(geometry_position_pipelines_, opts); } std::shared_ptr> GetAtlasPipeline( @@ -295,6 +303,11 @@ class ContentContext { return GetPipeline(atlas_pipelines_, opts); } + std::shared_ptr> GetYUVToRGBFilterPipeline( + ContentContextOptions opts) const { + return GetPipeline(yuv_to_rgb_filter_pipelines_, opts); + } + // Advanced blends. std::shared_ptr> GetBlendColorPipeline( @@ -374,13 +387,16 @@ class ContentContext { std::shared_ptr GetContext() const; + std::shared_ptr GetGlyphAtlasContext() const; + using SubpassCallback = std::function; /// @brief Creates a new texture of size `texture_size` and calls /// `subpass_callback` with a `RenderPass` for drawing to the texture. - std::shared_ptr MakeSubpass(ISize texture_size, - SubpassCallback subpass_callback) const; + std::shared_ptr MakeSubpass( + ISize texture_size, + const SubpassCallback& subpass_callback) const; private: std::shared_ptr context_; @@ -409,12 +425,13 @@ class ContentContext { color_matrix_color_filter_pipelines_; mutable Variants linear_to_srgb_filter_pipelines_; mutable Variants srgb_to_linear_filter_pipelines_; - mutable Variants solid_stroke_pipelines_; mutable Variants clip_pipelines_; mutable Variants glyph_atlas_pipelines_; mutable Variants glyph_atlas_sdf_pipelines_; - mutable Variants vertices_pipelines_; mutable Variants atlas_pipelines_; + mutable Variants geometry_position_pipelines_; + mutable Variants geometry_color_pipelines_; + mutable Variants yuv_to_rgb_filter_pipelines_; // Advanced blends. mutable Variants blend_color_pipelines_; mutable Variants blend_colorburn_pipelines_; @@ -463,6 +480,7 @@ class ContentContext { bool is_valid_ = false; std::shared_ptr tessellator_; + std::shared_ptr glyph_atlas_context_; FML_DISALLOW_COPY_AND_ASSIGN(ContentContext); }; diff --git a/impeller/entity/contents/contents.cc b/impeller/entity/contents/contents.cc index 6b96fd45d5ff6..621b644b4f515 100644 --- a/impeller/entity/contents/contents.cc +++ b/impeller/entity/contents/contents.cc @@ -78,6 +78,9 @@ bool Contents::ShouldRender(const Entity& entity, if (!coverage.has_value()) { return false; } + if (coverage == Rect::MakeMaximum()) { + return true; + } return stencil_coverage->IntersectsWithRect(coverage.value()); } diff --git a/impeller/entity/contents/filters/blend_filter_contents.cc b/impeller/entity/contents/filters/blend_filter_contents.cc index efc2627b1c7fe..687d19f4012b5 100644 --- a/impeller/entity/contents/filters/blend_filter_contents.cc +++ b/impeller/entity/contents/filters/blend_filter_contents.cc @@ -35,6 +35,7 @@ static std::optional AdvancedBlend( const Entity& entity, const Rect& coverage, std::optional foreground_color, + bool absorb_opacity, PipelineProc pipeline_proc) { using VS = typename TPipeline::VertexShader; using FS = typename TPipeline::FragmentShader; @@ -64,11 +65,11 @@ static std::optional AdvancedBlend( if (!foreground_color.has_value()) { src_snapshot = inputs[1]->GetSnapshot(renderer, entity); if (!src_snapshot.has_value()) { - return std::nullopt; + return dst_snapshot; } auto maybe_src_uvs = src_snapshot->GetCoverageUVs(coverage); if (!maybe_src_uvs.has_value()) { - return std::nullopt; + return dst_snapshot; } src_uvs = maybe_src_uvs.value(); } @@ -93,7 +94,8 @@ static std::optional AdvancedBlend( }); auto vtx_buffer = vtx_builder.CreateVertexBuffer(host_buffer); - auto options = OptionsFromPassAndEntity(pass, entity); + auto options = OptionsFromPass(pass); + options.blend_mode = BlendMode::kSource; std::shared_ptr> pipeline = std::invoke(pipeline_proc, renderer, options); @@ -107,6 +109,7 @@ static std::optional AdvancedBlend( auto sampler = renderer.GetContext()->GetSamplerLibrary()->GetSampler({}); FS::BindTextureSamplerDst(cmd, dst_snapshot->texture, sampler); blend_info.dst_y_coord_scale = dst_snapshot->texture->GetYCoordScale(); + blend_info.dst_input_alpha = absorb_opacity ? dst_snapshot->opacity : 1.0f; if (foreground_color.has_value()) { blend_info.color_factor = 1; @@ -141,7 +144,8 @@ static std::optional AdvancedBlend( return Snapshot{.texture = out_texture, .transform = Matrix::MakeTranslation(coverage.origin), - .sampler_descriptor = dst_snapshot->sampler_descriptor}; + .sampler_descriptor = dst_snapshot->sampler_descriptor, + .opacity = absorb_opacity ? 1.0f : dst_snapshot->opacity}; } static std::optional PipelineBlend( @@ -150,10 +154,13 @@ static std::optional PipelineBlend( const Entity& entity, const Rect& coverage, BlendMode pipeline_blend, - std::optional foreground_color) { + std::optional foreground_color, + bool absorb_opacity) { using VS = BlendPipeline::VertexShader; using FS = BlendPipeline::FragmentShader; + auto input_snapshot = inputs[0]->GetSnapshot(renderer, entity); + ContentContext::SubpassCallback callback = [&](const ContentContext& renderer, RenderPass& pass) { auto& host_buffer = pass.GetTransientsBuffer(); @@ -195,6 +202,7 @@ static std::optional PipelineBlend( FS::FragInfo frag_info; frag_info.texture_sampler_y_coord_scale = input->texture->GetYCoordScale(); + frag_info.input_alpha = absorb_opacity ? input->opacity : 1.0f; FS::BindFragInfo(cmd, host_buffer.EmplaceUniform(frag_info)); VS::BindFrameInfo(cmd, host_buffer.EmplaceUniform(frame_info)); @@ -203,10 +211,9 @@ static std::optional PipelineBlend( }; // Draw the first texture using kSource. - options.blend_mode = BlendMode::kSource; cmd.pipeline = renderer.GetBlendPipeline(options); - if (!add_blend_command(inputs[0]->GetSnapshot(renderer, entity))) { + if (!add_blend_command(input_snapshot)) { return true; } @@ -229,9 +236,10 @@ static std::optional PipelineBlend( if (foreground_color.has_value()) { auto contents = std::make_shared(); - contents->SetPath(PathBuilder{} - .AddRect(Rect::MakeSize(pass.GetRenderTargetSize())) - .TakePath()); + contents->SetGeometry(Geometry::MakeFillPath( + PathBuilder{} + .AddRect(Rect::MakeSize(pass.GetRenderTargetSize())) + .TakePath())); contents->SetColor(foreground_color.value()); Entity foreground_entity; @@ -255,19 +263,21 @@ static std::optional PipelineBlend( .texture = out_texture, .transform = Matrix::MakeTranslation(coverage.origin), .sampler_descriptor = - inputs[0]->GetSnapshot(renderer, entity)->sampler_descriptor}; + inputs[0]->GetSnapshot(renderer, entity)->sampler_descriptor, + .opacity = absorb_opacity ? 1.0f : input_snapshot->opacity}; } -#define BLEND_CASE(mode) \ - case BlendMode::k##mode: \ - advanced_blend_proc_ = [](const FilterInput::Vector& inputs, \ - const ContentContext& renderer, \ - const Entity& entity, const Rect& coverage, \ - std::optional fg_color) { \ - PipelineProc p = &ContentContext::GetBlend##mode##Pipeline; \ - return AdvancedBlend(inputs, renderer, entity, \ - coverage, fg_color, p); \ - }; \ +#define BLEND_CASE(mode) \ + case BlendMode::k##mode: \ + advanced_blend_proc_ = [](const FilterInput::Vector& inputs, \ + const ContentContext& renderer, \ + const Entity& entity, const Rect& coverage, \ + std::optional fg_color, \ + bool absorb_opacity) { \ + PipelineProc p = &ContentContext::GetBlend##mode##Pipeline; \ + return AdvancedBlend( \ + inputs, renderer, entity, coverage, fg_color, absorb_opacity, p); \ + }; \ break; void BlendFilterContents::SetBlendMode(BlendMode blend_mode) { @@ -318,17 +328,17 @@ std::optional BlendFilterContents::RenderFilter( if (inputs.size() == 1 && !foreground_color_.has_value()) { // Nothing to blend. return PipelineBlend(inputs, renderer, entity, coverage, BlendMode::kSource, - std::nullopt); + std::nullopt, GetAbsorbOpacity()); } if (blend_mode_ <= Entity::kLastPipelineBlendMode) { return PipelineBlend(inputs, renderer, entity, coverage, blend_mode_, - foreground_color_); + foreground_color_, GetAbsorbOpacity()); } if (blend_mode_ <= Entity::kLastAdvancedBlendMode) { return advanced_blend_proc_(inputs, renderer, entity, coverage, - foreground_color_); + foreground_color_, GetAbsorbOpacity()); } FML_UNREACHABLE(); } diff --git a/impeller/entity/contents/filters/blend_filter_contents.h b/impeller/entity/contents/filters/blend_filter_contents.h index 466842e61d762..5276eb81f05f1 100644 --- a/impeller/entity/contents/filters/blend_filter_contents.h +++ b/impeller/entity/contents/filters/blend_filter_contents.h @@ -4,19 +4,20 @@ #pragma once -#include "impeller/entity/contents/filters/filter_contents.h" +#include "impeller/entity/contents/filters/color_filter_contents.h" #include "impeller/entity/contents/filters/inputs/filter_input.h" namespace impeller { -class BlendFilterContents : public FilterContents { +class BlendFilterContents : public ColorFilterContents { public: using AdvancedBlendProc = std::function( const FilterInput::Vector& inputs, const ContentContext& renderer, const Entity& entity, const Rect& coverage, - std::optional foreground_color)>; + std::optional foreground_color, + bool absorb_opacity)>; BlendFilterContents(); diff --git a/impeller/entity/contents/filters/border_mask_blur_filter_contents.cc b/impeller/entity/contents/filters/border_mask_blur_filter_contents.cc index 6d6fdef5f19dc..847cfafa8815f 100644 --- a/impeller/entity/contents/filters/border_mask_blur_filter_contents.cc +++ b/impeller/entity/contents/filters/border_mask_blur_filter_contents.cc @@ -127,7 +127,8 @@ std::optional BorderMaskBlurFilterContents::RenderFilter( out_texture->SetLabel("BorderMaskBlurFilter Texture"); return Snapshot{.texture = out_texture, - .transform = Matrix::MakeTranslation(coverage.origin)}; + .transform = Matrix::MakeTranslation(coverage.origin), + .opacity = input_snapshot->opacity}; } std::optional BorderMaskBlurFilterContents::GetFilterCoverage( diff --git a/impeller/entity/contents/filters/color_filter_contents.cc b/impeller/entity/contents/filters/color_filter_contents.cc new file mode 100644 index 0000000000000..a4b8db8fc6cce --- /dev/null +++ b/impeller/entity/contents/filters/color_filter_contents.cc @@ -0,0 +1,93 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "impeller/entity/contents/filters/color_filter_contents.h" + +#include + +#include "impeller/base/validation.h" +#include "impeller/entity/contents/filters/blend_filter_contents.h" +#include "impeller/entity/contents/filters/color_matrix_filter_contents.h" +#include "impeller/entity/contents/filters/linear_to_srgb_filter_contents.h" +#include "impeller/entity/contents/filters/srgb_to_linear_filter_contents.h" + +namespace impeller { + +std::shared_ptr ColorFilterContents::MakeBlend( + BlendMode blend_mode, + FilterInput::Vector inputs, + std::optional foreground_color) { + if (blend_mode > Entity::kLastAdvancedBlendMode) { + VALIDATION_LOG << "Invalid blend mode " << static_cast(blend_mode) + << " passed to ColorFilterContents::MakeBlend."; + return nullptr; + } + + size_t total_inputs = inputs.size() + (foreground_color.has_value() ? 1 : 0); + if (total_inputs < 2 || blend_mode <= Entity::kLastPipelineBlendMode) { + auto blend = std::make_shared(); + blend->SetInputs(inputs); + blend->SetBlendMode(blend_mode); + blend->SetForegroundColor(foreground_color); + return blend; + } + + auto blend_input = inputs[0]; + std::shared_ptr new_blend; + for (auto in_i = inputs.begin() + 1; in_i < inputs.end(); in_i++) { + new_blend = std::make_shared(); + new_blend->SetInputs({*in_i, blend_input}); + new_blend->SetBlendMode(blend_mode); + if (in_i < inputs.end() - 1 || foreground_color.has_value()) { + blend_input = FilterInput::Make( + std::static_pointer_cast(new_blend)); + } + } + + if (foreground_color.has_value()) { + new_blend = std::make_shared(); + new_blend->SetInputs({blend_input}); + new_blend->SetBlendMode(blend_mode); + new_blend->SetForegroundColor(foreground_color); + } + + return new_blend; +} + +std::shared_ptr ColorFilterContents::MakeColorMatrix( + FilterInput::Ref input, + const ColorMatrix& color_matrix) { + auto filter = std::make_shared(); + filter->SetInputs({std::move(input)}); + filter->SetMatrix(color_matrix); + return filter; +} + +std::shared_ptr +ColorFilterContents::MakeLinearToSrgbFilter(FilterInput::Ref input) { + auto filter = std::make_shared(); + filter->SetInputs({std::move(input)}); + return filter; +} + +std::shared_ptr +ColorFilterContents::MakeSrgbToLinearFilter(FilterInput::Ref input) { + auto filter = std::make_shared(); + filter->SetInputs({std::move(input)}); + return filter; +} + +ColorFilterContents::ColorFilterContents() = default; + +ColorFilterContents::~ColorFilterContents() = default; + +void ColorFilterContents::SetAbsorbOpacity(bool absorb_opacity) { + absorb_opacity_ = absorb_opacity; +} + +bool ColorFilterContents::GetAbsorbOpacity() const { + return absorb_opacity_; +} + +} // namespace impeller diff --git a/impeller/entity/contents/filters/color_filter_contents.h b/impeller/entity/contents/filters/color_filter_contents.h new file mode 100644 index 0000000000000..17e54b56039f0 --- /dev/null +++ b/impeller/entity/contents/filters/color_filter_contents.h @@ -0,0 +1,42 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#pragma once + +#include "impeller/entity/contents/filters/filter_contents.h" + +namespace impeller { + +class ColorFilterContents : public FilterContents { + public: + static std::shared_ptr MakeBlend( + BlendMode blend_mode, + FilterInput::Vector inputs, + std::optional foreground_color = std::nullopt); + + static std::shared_ptr MakeColorMatrix( + FilterInput::Ref input, + const ColorMatrix& color_matrix); + + static std::shared_ptr MakeLinearToSrgbFilter( + FilterInput::Ref input); + + static std::shared_ptr MakeSrgbToLinearFilter( + FilterInput::Ref input); + + ColorFilterContents(); + + ~ColorFilterContents() override; + + void SetAbsorbOpacity(bool absorb_opacity); + + bool GetAbsorbOpacity() const; + + private: + bool absorb_opacity_ = false; + + FML_DISALLOW_COPY_AND_ASSIGN(ColorFilterContents); +}; + +} // namespace impeller diff --git a/impeller/entity/contents/filters/color_matrix_filter_contents.cc b/impeller/entity/contents/filters/color_matrix_filter_contents.cc index eba9d3a867473..66e8464f81d49 100644 --- a/impeller/entity/contents/filters/color_matrix_filter_contents.cc +++ b/impeller/entity/contents/filters/color_matrix_filter_contents.cc @@ -87,6 +87,7 @@ std::optional ColorMatrixFilterContents::RenderFilter( matrix[3], matrix[8], matrix[13], matrix[18] ); // clang-format on + frag_info.input_alpha = GetAbsorbOpacity() ? input_snapshot->opacity : 1.0f; auto sampler = renderer.GetContext()->GetSamplerLibrary()->GetSampler({}); FS::BindInputTexture(cmd, input_snapshot->texture, sampler); FS::BindFragInfo(cmd, host_buffer.EmplaceUniform(frag_info)); @@ -103,9 +104,11 @@ std::optional ColorMatrixFilterContents::RenderFilter( } out_texture->SetLabel("ColorMatrixFilter Texture"); - return Snapshot{.texture = out_texture, - .transform = input_snapshot->transform, - .sampler_descriptor = input_snapshot->sampler_descriptor}; + return Snapshot{ + .texture = out_texture, + .transform = input_snapshot->transform, + .sampler_descriptor = input_snapshot->sampler_descriptor, + .opacity = GetAbsorbOpacity() ? 1.0f : input_snapshot->opacity}; } } // namespace impeller diff --git a/impeller/entity/contents/filters/color_matrix_filter_contents.h b/impeller/entity/contents/filters/color_matrix_filter_contents.h index b725249019106..3486365a5a642 100644 --- a/impeller/entity/contents/filters/color_matrix_filter_contents.h +++ b/impeller/entity/contents/filters/color_matrix_filter_contents.h @@ -7,14 +7,14 @@ #include #include -#include "impeller/entity/contents/filters/filter_contents.h" +#include "impeller/entity/contents/filters/color_filter_contents.h" #include "impeller/entity/contents/filters/inputs/filter_input.h" namespace impeller { // Look at example at: https://github.com/flutter/impeller/pull/132 -class ColorMatrixFilterContents final : public FilterContents { +class ColorMatrixFilterContents final : public ColorFilterContents { public: ColorMatrixFilterContents(); diff --git a/impeller/entity/contents/filters/filter_contents.cc b/impeller/entity/contents/filters/filter_contents.cc index 06f49b2557055..d43e4298c8845 100644 --- a/impeller/entity/contents/filters/filter_contents.cc +++ b/impeller/entity/contents/filters/filter_contents.cc @@ -10,20 +10,17 @@ #include #include #include +#include #include "flutter/fml/logging.h" -#include "impeller/base/validation.h" #include "impeller/entity/contents/content_context.h" -#include "impeller/entity/contents/filters/blend_filter_contents.h" #include "impeller/entity/contents/filters/border_mask_blur_filter_contents.h" -#include "impeller/entity/contents/filters/color_matrix_filter_contents.h" #include "impeller/entity/contents/filters/gaussian_blur_filter_contents.h" #include "impeller/entity/contents/filters/inputs/filter_input.h" -#include "impeller/entity/contents/filters/linear_to_srgb_filter_contents.h" #include "impeller/entity/contents/filters/local_matrix_filter_contents.h" #include "impeller/entity/contents/filters/matrix_filter_contents.h" #include "impeller/entity/contents/filters/morphology_filter_contents.h" -#include "impeller/entity/contents/filters/srgb_to_linear_filter_contents.h" +#include "impeller/entity/contents/filters/yuv_to_rgb_filter_contents.h" #include "impeller/entity/contents/texture_contents.h" #include "impeller/entity/entity.h" #include "impeller/geometry/path_builder.h" @@ -33,47 +30,6 @@ namespace impeller { -std::shared_ptr FilterContents::MakeBlend( - BlendMode blend_mode, - FilterInput::Vector inputs, - std::optional foreground_color) { - if (blend_mode > Entity::kLastAdvancedBlendMode) { - VALIDATION_LOG << "Invalid blend mode " << static_cast(blend_mode) - << " passed to FilterContents::MakeBlend."; - return nullptr; - } - - size_t total_inputs = inputs.size() + (foreground_color.has_value() ? 1 : 0); - if (total_inputs < 2 || blend_mode <= Entity::kLastPipelineBlendMode) { - auto blend = std::make_shared(); - blend->SetInputs(inputs); - blend->SetBlendMode(blend_mode); - blend->SetForegroundColor(foreground_color); - return blend; - } - - auto blend_input = inputs[0]; - std::shared_ptr new_blend; - for (auto in_i = inputs.begin() + 1; in_i < inputs.end(); in_i++) { - new_blend = std::make_shared(); - new_blend->SetInputs({*in_i, blend_input}); - new_blend->SetBlendMode(blend_mode); - if (in_i < inputs.end() - 1 || foreground_color.has_value()) { - blend_input = FilterInput::Make( - std::static_pointer_cast(new_blend)); - } - } - - if (foreground_color.has_value()) { - new_blend = std::make_shared(); - new_blend->SetInputs({blend_input}); - new_blend->SetBlendMode(blend_mode); - new_blend->SetForegroundColor(foreground_color); - } - - return new_blend; -} - std::shared_ptr FilterContents::MakeDirectionalGaussianBlur( FilterInput::Ref input, Sigma sigma, @@ -84,19 +40,19 @@ std::shared_ptr FilterContents::MakeDirectionalGaussianBlur( Sigma secondary_sigma, const Matrix& effect_transform) { auto blur = std::make_shared(); - blur->SetInputs({input}); + blur->SetInputs({std::move(input)}); blur->SetSigma(sigma); blur->SetDirection(direction); blur->SetBlurStyle(blur_style); blur->SetTileMode(tile_mode); - blur->SetSourceOverride(source_override); + blur->SetSourceOverride(std::move(source_override)); blur->SetSecondarySigma(secondary_sigma); blur->SetEffectTransform(effect_transform); return blur; } std::shared_ptr FilterContents::MakeGaussianBlur( - FilterInput::Ref input, + const FilterInput::Ref& input, Sigma sigma_x, Sigma sigma_y, BlurStyle blur_style, @@ -118,7 +74,7 @@ std::shared_ptr FilterContents::MakeBorderMaskBlur( BlurStyle blur_style, const Matrix& effect_transform) { auto filter = std::make_shared(); - filter->SetInputs({input}); + filter->SetInputs({std::move(input)}); filter->SetSigma(sigma_x, sigma_y); filter->SetBlurStyle(blur_style); filter->SetEffectTransform(effect_transform); @@ -132,7 +88,7 @@ std::shared_ptr FilterContents::MakeDirectionalMorphology( MorphType morph_type, const Matrix& effect_transform) { auto filter = std::make_shared(); - filter->SetInputs({input}); + filter->SetInputs({std::move(input)}); filter->SetRadius(radius); filter->SetDirection(direction); filter->SetMorphType(morph_type); @@ -146,43 +102,20 @@ std::shared_ptr FilterContents::MakeMorphology( Radius radius_y, MorphType morph_type, const Matrix& effect_transform) { - auto x_morphology = MakeDirectionalMorphology(input, radius_x, Point(1, 0), - morph_type, effect_transform); + auto x_morphology = MakeDirectionalMorphology( + std::move(input), radius_x, Point(1, 0), morph_type, effect_transform); auto y_morphology = MakeDirectionalMorphology(FilterInput::Make(x_morphology), radius_y, Point(0, 1), morph_type, effect_transform); return y_morphology; } -std::shared_ptr FilterContents::MakeColorMatrix( - FilterInput::Ref input, - const ColorMatrix& color_matrix) { - auto filter = std::make_shared(); - filter->SetInputs({input}); - filter->SetMatrix(color_matrix); - return filter; -} - -std::shared_ptr FilterContents::MakeLinearToSrgbFilter( - FilterInput::Ref input) { - auto filter = std::make_shared(); - filter->SetInputs({input}); - return filter; -} - -std::shared_ptr FilterContents::MakeSrgbToLinearFilter( - FilterInput::Ref input) { - auto filter = std::make_shared(); - filter->SetInputs({input}); - return filter; -} - std::shared_ptr FilterContents::MakeMatrixFilter( FilterInput::Ref input, const Matrix& matrix, const SamplerDescriptor& desc) { auto filter = std::make_shared(); - filter->SetInputs({input}); + filter->SetInputs({std::move(input)}); filter->SetMatrix(matrix); filter->SetSamplerDescriptor(desc); return filter; @@ -192,11 +125,22 @@ std::shared_ptr FilterContents::MakeLocalMatrixFilter( FilterInput::Ref input, const Matrix& matrix) { auto filter = std::make_shared(); - filter->SetInputs({input}); + filter->SetInputs({std::move(input)}); filter->SetMatrix(matrix); return filter; } +std::shared_ptr FilterContents::MakeYUVToRGBFilter( + std::shared_ptr y_texture, + std::shared_ptr uv_texture, + YUVColorSpace yuv_color_space) { + auto filter = std::make_shared(); + filter->SetInputs({impeller::FilterInput::Make(y_texture), + impeller::FilterInput::Make(uv_texture)}); + filter->SetYUVColorSpace(yuv_color_space); + return filter; +} + FilterContents::FilterContents() = default; FilterContents::~FilterContents() = default; @@ -236,6 +180,7 @@ bool FilterContents::Render(const ContentContext& renderer, contents->SetTexture(snapshot.texture); contents->SetSamplerDescriptor(snapshot.sampler_descriptor); contents->SetSourceRect(texture_rect); + contents->SetOpacity(snapshot.opacity); Entity e; e.SetBlendMode(entity.GetBlendMode()); diff --git a/impeller/entity/contents/filters/filter_contents.h b/impeller/entity/contents/filters/filter_contents.h index af1f1d4b88b35..9387e7ce7d014 100644 --- a/impeller/entity/contents/filters/filter_contents.h +++ b/impeller/entity/contents/filters/filter_contents.h @@ -36,11 +36,6 @@ class FilterContents : public Contents { enum class MorphType { kDilate, kErode }; - static std::shared_ptr MakeBlend( - BlendMode blend_mode, - FilterInput::Vector inputs, - std::optional foreground_color = std::nullopt); - static std::shared_ptr MakeDirectionalGaussianBlur( FilterInput::Ref input, Sigma sigma, @@ -52,7 +47,7 @@ class FilterContents : public Contents { const Matrix& effect_transform = Matrix()); static std::shared_ptr MakeGaussianBlur( - FilterInput::Ref input, + const FilterInput::Ref& input, Sigma sigma_x, Sigma sigma_y, BlurStyle blur_style = BlurStyle::kNormal, @@ -80,16 +75,6 @@ class FilterContents : public Contents { MorphType morph_type, const Matrix& effect_transform = Matrix()); - static std::shared_ptr MakeColorMatrix( - FilterInput::Ref input, - const ColorMatrix& color_matrix); - - static std::shared_ptr MakeLinearToSrgbFilter( - FilterInput::Ref input); - - static std::shared_ptr MakeSrgbToLinearFilter( - FilterInput::Ref input); - static std::shared_ptr MakeMatrixFilter( FilterInput::Ref input, const Matrix& matrix, @@ -99,6 +84,11 @@ class FilterContents : public Contents { FilterInput::Ref input, const Matrix& matrix); + static std::shared_ptr MakeYUVToRGBFilter( + std::shared_ptr y_texture, + std::shared_ptr uv_texture, + YUVColorSpace yuv_color_space); + FilterContents(); ~FilterContents() override; diff --git a/impeller/entity/contents/filters/gaussian_blur_filter_contents.cc b/impeller/entity/contents/filters/gaussian_blur_filter_contents.cc index 50fd91a40669e..d50ca50642c0b 100644 --- a/impeller/entity/contents/filters/gaussian_blur_filter_contents.cc +++ b/impeller/entity/contents/filters/gaussian_blur_filter_contents.cc @@ -5,6 +5,7 @@ #include "impeller/entity/contents/filters/gaussian_blur_filter_contents.h" #include +#include #include #include "impeller/base/strings.h" @@ -77,7 +78,7 @@ void DirectionalGaussianBlurFilterContents::SetTileMode( void DirectionalGaussianBlurFilterContents::SetSourceOverride( FilterInput::Ref source_override) { - source_override_ = source_override; + source_override_ = std::move(source_override); } std::optional DirectionalGaussianBlurFilterContents::RenderFilter( @@ -258,7 +259,8 @@ std::optional DirectionalGaussianBlurFilterContents::RenderFilter( texture_rotate.Invert() * Matrix::MakeTranslation(pass_texture_rect.origin) * Matrix::MakeScale((1 / scale) * (scaled_size / floored_size)), - .sampler_descriptor = sampler_desc}; + .sampler_descriptor = sampler_desc, + .opacity = input_snapshot->opacity}; } std::optional DirectionalGaussianBlurFilterContents::GetFilterCoverage( diff --git a/impeller/entity/contents/filters/linear_to_srgb_filter_contents.cc b/impeller/entity/contents/filters/linear_to_srgb_filter_contents.cc index e11781321272a..98d397a727008 100644 --- a/impeller/entity/contents/filters/linear_to_srgb_filter_contents.cc +++ b/impeller/entity/contents/filters/linear_to_srgb_filter_contents.cc @@ -64,6 +64,7 @@ std::optional LinearToSrgbFilterContents::RenderFilter( FS::FragInfo frag_info; frag_info.texture_sampler_y_coord_scale = input_snapshot->texture->GetYCoordScale(); + frag_info.input_alpha = GetAbsorbOpacity() ? input_snapshot->opacity : 1.0f; auto sampler = renderer.GetContext()->GetSamplerLibrary()->GetSampler({}); FS::BindInputTexture(cmd, input_snapshot->texture, sampler); @@ -80,9 +81,11 @@ std::optional LinearToSrgbFilterContents::RenderFilter( } out_texture->SetLabel("LinearToSrgb Texture"); - return Snapshot{.texture = out_texture, - .transform = input_snapshot->transform, - .sampler_descriptor = input_snapshot->sampler_descriptor}; + return Snapshot{ + .texture = out_texture, + .transform = input_snapshot->transform, + .sampler_descriptor = input_snapshot->sampler_descriptor, + .opacity = GetAbsorbOpacity() ? 1.0f : input_snapshot->opacity}; } } // namespace impeller diff --git a/impeller/entity/contents/filters/linear_to_srgb_filter_contents.h b/impeller/entity/contents/filters/linear_to_srgb_filter_contents.h index 271ac250ca711..00b7116420a55 100644 --- a/impeller/entity/contents/filters/linear_to_srgb_filter_contents.h +++ b/impeller/entity/contents/filters/linear_to_srgb_filter_contents.h @@ -4,12 +4,12 @@ #pragma once -#include "impeller/entity/contents/filters/filter_contents.h" +#include "impeller/entity/contents/filters/color_filter_contents.h" #include "impeller/entity/contents/filters/inputs/filter_input.h" namespace impeller { -class LinearToSrgbFilterContents final : public FilterContents { +class LinearToSrgbFilterContents final : public ColorFilterContents { public: LinearToSrgbFilterContents(); diff --git a/impeller/entity/contents/filters/morphology_filter_contents.cc b/impeller/entity/contents/filters/morphology_filter_contents.cc index 9156a55397c44..42c1d79afc3b9 100644 --- a/impeller/entity/contents/filters/morphology_filter_contents.cc +++ b/impeller/entity/contents/filters/morphology_filter_contents.cc @@ -141,7 +141,8 @@ std::optional DirectionalMorphologyFilterContents::RenderFilter( return Snapshot{.texture = out_texture, .transform = Matrix::MakeTranslation(coverage.origin), - .sampler_descriptor = sampler_desc}; + .sampler_descriptor = sampler_desc, + .opacity = input_snapshot->opacity}; } std::optional DirectionalMorphologyFilterContents::GetFilterCoverage( diff --git a/impeller/entity/contents/filters/srgb_to_linear_filter_contents.cc b/impeller/entity/contents/filters/srgb_to_linear_filter_contents.cc index 1d0ad22b57eee..ee483b6ed5e93 100644 --- a/impeller/entity/contents/filters/srgb_to_linear_filter_contents.cc +++ b/impeller/entity/contents/filters/srgb_to_linear_filter_contents.cc @@ -64,6 +64,7 @@ std::optional SrgbToLinearFilterContents::RenderFilter( FS::FragInfo frag_info; frag_info.texture_sampler_y_coord_scale = input_snapshot->texture->GetYCoordScale(); + frag_info.input_alpha = GetAbsorbOpacity() ? input_snapshot->opacity : 1.0f; auto sampler = renderer.GetContext()->GetSamplerLibrary()->GetSampler({}); FS::BindInputTexture(cmd, input_snapshot->texture, sampler); @@ -80,9 +81,11 @@ std::optional SrgbToLinearFilterContents::RenderFilter( } out_texture->SetLabel("SrgbToLinear Texture"); - return Snapshot{.texture = out_texture, - .transform = input_snapshot->transform, - .sampler_descriptor = input_snapshot->sampler_descriptor}; + return Snapshot{ + .texture = out_texture, + .transform = input_snapshot->transform, + .sampler_descriptor = input_snapshot->sampler_descriptor, + .opacity = GetAbsorbOpacity() ? 1.0f : input_snapshot->opacity}; } } // namespace impeller diff --git a/impeller/entity/contents/filters/srgb_to_linear_filter_contents.h b/impeller/entity/contents/filters/srgb_to_linear_filter_contents.h index 11d0dc762cffa..07b3307159c74 100644 --- a/impeller/entity/contents/filters/srgb_to_linear_filter_contents.h +++ b/impeller/entity/contents/filters/srgb_to_linear_filter_contents.h @@ -4,12 +4,12 @@ #pragma once -#include "impeller/entity/contents/filters/filter_contents.h" +#include "impeller/entity/contents/filters/color_filter_contents.h" #include "impeller/entity/contents/filters/inputs/filter_input.h" namespace impeller { -class SrgbToLinearFilterContents final : public FilterContents { +class SrgbToLinearFilterContents final : public ColorFilterContents { public: SrgbToLinearFilterContents(); diff --git a/impeller/entity/contents/filters/yuv_to_rgb_filter_contents.cc b/impeller/entity/contents/filters/yuv_to_rgb_filter_contents.cc new file mode 100644 index 0000000000000..b00a4b92c8228 --- /dev/null +++ b/impeller/entity/contents/filters/yuv_to_rgb_filter_contents.cc @@ -0,0 +1,124 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "impeller/entity/contents/filters/yuv_to_rgb_filter_contents.h" + +#include "impeller/entity/contents/content_context.h" +#include "impeller/geometry/matrix.h" +#include "impeller/renderer/formats.h" +#include "impeller/renderer/render_pass.h" +#include "impeller/renderer/sampler_library.h" + +namespace impeller { + +// clang-format off +constexpr Matrix kMatrixBT601LimitedRange = { + 1.164, 1.164, 1.164, 0.0, + 0.0, -0.392, 2.017, 0.0, + 1.596, -0.813, 0.0, 0.0, + 0.0, 0.0, 0.0, 1.0 +}; + +constexpr Matrix kMatrixBT601FullRange = { + 1.0, 1.0, 1.0, 0.0, + 0.0, -0.344, 1.772, 0.0, + 1.402, -0.714, 0.0, 0.0, + 0.0, 0.0, 0.0, 1.0 +}; +// clang-format on + +YUVToRGBFilterContents::YUVToRGBFilterContents() = default; + +YUVToRGBFilterContents::~YUVToRGBFilterContents() = default; + +void YUVToRGBFilterContents::SetYUVColorSpace(YUVColorSpace yuv_color_space) { + yuv_color_space_ = yuv_color_space; +} + +std::optional YUVToRGBFilterContents::RenderFilter( + const FilterInput::Vector& inputs, + const ContentContext& renderer, + const Entity& entity, + const Matrix& effect_transform, + const Rect& coverage) const { + if (inputs.size() < 2) { + return std::nullopt; + } + + using VS = YUVToRGBFilterPipeline::VertexShader; + using FS = YUVToRGBFilterPipeline::FragmentShader; + + auto y_input_snapshot = inputs[0]->GetSnapshot(renderer, entity); + auto uv_input_snapshot = inputs[1]->GetSnapshot(renderer, entity); + if (!y_input_snapshot.has_value() || !uv_input_snapshot.has_value()) { + return std::nullopt; + } + + if (y_input_snapshot->texture->GetTextureDescriptor().format != + PixelFormat::kR8UNormInt || + uv_input_snapshot->texture->GetTextureDescriptor().format != + PixelFormat::kR8G8UNormInt) { + return std::nullopt; + } + + ContentContext::SubpassCallback callback = [&](const ContentContext& renderer, + RenderPass& pass) { + Command cmd; + cmd.label = "YUV to RGB Filter"; + + auto options = OptionsFromPass(pass); + options.blend_mode = BlendMode::kSource; + cmd.pipeline = renderer.GetYUVToRGBFilterPipeline(options); + + VertexBufferBuilder vtx_builder; + vtx_builder.AddVertices({ + {Point(0, 0)}, + {Point(1, 0)}, + {Point(1, 1)}, + {Point(0, 0)}, + {Point(1, 1)}, + {Point(0, 1)}, + }); + + auto& host_buffer = pass.GetTransientsBuffer(); + auto vtx_buffer = vtx_builder.CreateVertexBuffer(host_buffer); + cmd.BindVertices(vtx_buffer); + + VS::FrameInfo frame_info; + frame_info.mvp = Matrix::MakeOrthographic(ISize(1, 1)); + + FS::FragInfo frag_info; + frag_info.texture_sampler_y_coord_scale = + y_input_snapshot->texture->GetYCoordScale(); + frag_info.yuv_color_space = static_cast(yuv_color_space_); + switch (yuv_color_space_) { + case YUVColorSpace::kBT601LimitedRange: + frag_info.matrix = kMatrixBT601LimitedRange; + break; + case YUVColorSpace::kBT601FullRange: + frag_info.matrix = kMatrixBT601FullRange; + break; + } + + auto sampler = renderer.GetContext()->GetSamplerLibrary()->GetSampler({}); + FS::BindYTexture(cmd, y_input_snapshot->texture, sampler); + FS::BindUvTexture(cmd, uv_input_snapshot->texture, sampler); + + FS::BindFragInfo(cmd, host_buffer.EmplaceUniform(frag_info)); + VS::BindFrameInfo(cmd, host_buffer.EmplaceUniform(frame_info)); + + return pass.AddCommand(std::move(cmd)); + }; + + auto out_texture = + renderer.MakeSubpass(y_input_snapshot->texture->GetSize(), callback); + if (!out_texture) { + return std::nullopt; + } + out_texture->SetLabel("YUVToRGB Texture"); + + return Snapshot{.texture = out_texture}; +} + +} // namespace impeller diff --git a/impeller/entity/contents/filters/yuv_to_rgb_filter_contents.h b/impeller/entity/contents/filters/yuv_to_rgb_filter_contents.h new file mode 100644 index 0000000000000..7e15cb5efce97 --- /dev/null +++ b/impeller/entity/contents/filters/yuv_to_rgb_filter_contents.h @@ -0,0 +1,33 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#pragma once + +#include "impeller/entity/contents/filters/filter_contents.h" + +namespace impeller { + +class YUVToRGBFilterContents final : public FilterContents { + public: + YUVToRGBFilterContents(); + + ~YUVToRGBFilterContents() override; + + void SetYUVColorSpace(YUVColorSpace yuv_color_space); + + private: + // |FilterContents| + std::optional RenderFilter( + const FilterInput::Vector& input_textures, + const ContentContext& renderer, + const Entity& entity, + const Matrix& effect_transform, + const Rect& coverage) const override; + + YUVColorSpace yuv_color_space_ = YUVColorSpace::kBT601LimitedRange; + + FML_DISALLOW_COPY_AND_ASSIGN(YUVToRGBFilterContents); +}; + +} // namespace impeller diff --git a/impeller/entity/contents/gradient_generator.cc b/impeller/entity/contents/gradient_generator.cc index c66afc3a9d0e1..f5fd4c70343fb 100644 --- a/impeller/entity/contents/gradient_generator.cc +++ b/impeller/entity/contents/gradient_generator.cc @@ -18,7 +18,7 @@ namespace impeller { std::shared_ptr CreateGradientTexture( const std::vector& colors, const std::vector& stops, - std::shared_ptr context) { + const std::shared_ptr& context) { auto gradient_data = CreateGradientBuffer(colors, stops); if (gradient_data.texture_size == 0) { FML_DLOG(ERROR) << "Invalid gradient data."; diff --git a/impeller/entity/contents/gradient_generator.h b/impeller/entity/contents/gradient_generator.h index ac58948c0a988..1110da56837ea 100644 --- a/impeller/entity/contents/gradient_generator.h +++ b/impeller/entity/contents/gradient_generator.h @@ -25,6 +25,6 @@ class Context; std::shared_ptr CreateGradientTexture( const std::vector& colors, const std::vector& stops, - std::shared_ptr context); + const std::shared_ptr& context); } // namespace impeller diff --git a/impeller/entity/contents/linear_gradient_contents.cc b/impeller/entity/contents/linear_gradient_contents.cc index 94de5fc8dd4f0..0c1488383d8c3 100644 --- a/impeller/entity/contents/linear_gradient_contents.cc +++ b/impeller/entity/contents/linear_gradient_contents.cc @@ -5,11 +5,10 @@ #include "linear_gradient_contents.h" #include "flutter/fml/logging.h" +#include "impeller/entity/contents/clip_contents.h" #include "impeller/entity/contents/content_context.h" #include "impeller/entity/contents/gradient_generator.h" -#include "impeller/entity/contents/solid_fill_utils.h" #include "impeller/entity/entity.h" -#include "impeller/geometry/path_builder.h" #include "impeller/renderer/formats.h" #include "impeller/renderer/render_pass.h" #include "impeller/renderer/sampler_library.h" @@ -74,16 +73,19 @@ bool LinearGradientContents::Render(const ContentContext& renderer, Command cmd; cmd.label = "LinearGradientFill"; - cmd.pipeline = renderer.GetLinearGradientFillPipeline( - OptionsFromPassAndEntity(pass, entity)); cmd.stencil_reference = entity.GetStencilDepth(); - cmd.BindVertices(CreateSolidFillVertices( - renderer.GetTessellator(), - GetCover() - ? PathBuilder{}.AddRect(Size(pass.GetRenderTargetSize())).TakePath() - : GetPath(), - pass.GetTransientsBuffer())); - cmd.primitive_type = PrimitiveType::kTriangle; + + auto geometry_result = + GetGeometry()->GetPositionBuffer(renderer, entity, pass); + auto options = OptionsFromPassAndEntity(pass, entity); + if (geometry_result.prevent_overdraw) { + options.stencil_compare = CompareFunction::kEqual; + options.stencil_operation = StencilOperation::kIncrementClamp; + } + cmd.pipeline = renderer.GetLinearGradientFillPipeline(options); + + cmd.BindVertices(geometry_result.vertex_buffer); + cmd.primitive_type = geometry_result.type; FS::BindGradientInfo( cmd, pass.GetTransientsBuffer().EmplaceUniform(gradient_info)); SamplerDescriptor sampler_desc; @@ -93,7 +95,15 @@ bool LinearGradientContents::Render(const ContentContext& renderer, cmd, std::move(gradient_texture), renderer.GetContext()->GetSamplerLibrary()->GetSampler(sampler_desc)); VS::BindFrameInfo(cmd, pass.GetTransientsBuffer().EmplaceUniform(frame_info)); - return pass.AddCommand(std::move(cmd)); + + if (!pass.AddCommand(std::move(cmd))) { + return false; + } + + if (geometry_result.prevent_overdraw) { + return ClipRestoreContents().Render(renderer, entity, pass); + } + return true; } } // namespace impeller diff --git a/impeller/entity/contents/radial_gradient_contents.cc b/impeller/entity/contents/radial_gradient_contents.cc index 4ea83c93baecc..f5528a7330813 100644 --- a/impeller/entity/contents/radial_gradient_contents.cc +++ b/impeller/entity/contents/radial_gradient_contents.cc @@ -5,11 +5,11 @@ #include "radial_gradient_contents.h" #include "flutter/fml/logging.h" +#include "impeller/entity/contents/clip_contents.h" #include "impeller/entity/contents/content_context.h" #include "impeller/entity/contents/gradient_generator.h" -#include "impeller/entity/contents/solid_fill_utils.h" #include "impeller/entity/entity.h" -#include "impeller/geometry/path_builder.h" +#include "impeller/entity/geometry.h" #include "impeller/renderer/render_pass.h" #include "impeller/renderer/sampler_library.h" @@ -73,16 +73,19 @@ bool RadialGradientContents::Render(const ContentContext& renderer, Command cmd; cmd.label = "RadialGradientFill"; - cmd.pipeline = renderer.GetRadialGradientFillPipeline( - OptionsFromPassAndEntity(pass, entity)); cmd.stencil_reference = entity.GetStencilDepth(); - cmd.BindVertices(CreateSolidFillVertices( - renderer.GetTessellator(), - GetCover() - ? PathBuilder{}.AddRect(Size(pass.GetRenderTargetSize())).TakePath() - : GetPath(), - pass.GetTransientsBuffer())); - cmd.primitive_type = PrimitiveType::kTriangle; + + auto geometry_result = + GetGeometry()->GetPositionBuffer(renderer, entity, pass); + auto options = OptionsFromPassAndEntity(pass, entity); + if (geometry_result.prevent_overdraw) { + options.stencil_compare = CompareFunction::kEqual; + options.stencil_operation = StencilOperation::kIncrementClamp; + } + cmd.pipeline = renderer.GetRadialGradientFillPipeline(options); + + cmd.BindVertices(geometry_result.vertex_buffer); + cmd.primitive_type = geometry_result.type; FS::BindGradientInfo( cmd, pass.GetTransientsBuffer().EmplaceUniform(gradient_info)); SamplerDescriptor sampler_desc; @@ -92,7 +95,15 @@ bool RadialGradientContents::Render(const ContentContext& renderer, cmd, gradient_texture, renderer.GetContext()->GetSamplerLibrary()->GetSampler(sampler_desc)); VS::BindFrameInfo(cmd, pass.GetTransientsBuffer().EmplaceUniform(frame_info)); - return pass.AddCommand(std::move(cmd)); + + if (!pass.AddCommand(std::move(cmd))) { + return false; + } + + if (geometry_result.prevent_overdraw) { + return ClipRestoreContents().Render(renderer, entity, pass); + } + return true; } } // namespace impeller diff --git a/impeller/entity/contents/rrect_shadow_contents.cc b/impeller/entity/contents/rrect_shadow_contents.cc index b6371f043e1dc..01501a83daa86 100644 --- a/impeller/entity/contents/rrect_shadow_contents.cc +++ b/impeller/entity/contents/rrect_shadow_contents.cc @@ -94,7 +94,7 @@ bool RRectShadowContents::Render(const ContentContext& renderer, FS::FragInfo frag_info; frag_info.color = color_; - frag_info.blur_radius = blur_radius; + frag_info.blur_sigma = sigma_.sigma; frag_info.rect_size = Point(positive_rect.size); frag_info.corner_radius = std::min(corner_radius_, std::min(positive_rect.size.width / 2.0f, diff --git a/impeller/entity/contents/runtime_effect_contents.cc b/impeller/entity/contents/runtime_effect_contents.cc new file mode 100644 index 0000000000000..116e7d4347e0f --- /dev/null +++ b/impeller/entity/contents/runtime_effect_contents.cc @@ -0,0 +1,210 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "impeller/entity/contents/runtime_effect_contents.h" + +#include +#include + +#include "flutter/fml/logging.h" +#include "flutter/fml/make_copyable.h" +#include "impeller/base/validation.h" +#include "impeller/entity/contents/clip_contents.h" +#include "impeller/entity/contents/content_context.h" +#include "impeller/entity/runtime_effect.vert.h" +#include "impeller/renderer/formats.h" +#include "impeller/renderer/pipeline_library.h" +#include "impeller/renderer/render_pass.h" +#include "impeller/renderer/sampler_library.h" +#include "impeller/renderer/shader_function.h" +#include "impeller/renderer/shader_types.h" + +namespace impeller { + +void RuntimeEffectContents::SetRuntimeStage( + std::shared_ptr runtime_stage) { + runtime_stage_ = std::move(runtime_stage); +} + +void RuntimeEffectContents::SetUniformData( + std::shared_ptr> uniform_data) { + uniform_data_ = std::move(uniform_data); +} + +void RuntimeEffectContents::SetTextureInputs( + std::vector texture_inputs) { + texture_inputs_ = std::move(texture_inputs); +} + +bool RuntimeEffectContents::Render(const ContentContext& renderer, + const Entity& entity, + RenderPass& pass) const { + auto context = renderer.GetContext(); + auto library = context->GetShaderLibrary(); + + //-------------------------------------------------------------------------- + /// Get or register shader. + /// + + // TODO(113719): Register the shader function earlier. + + std::shared_ptr function = library->GetFunction( + runtime_stage_->GetEntrypoint(), ShaderStage::kFragment); + + if (!function) { + std::promise promise; + auto future = promise.get_future(); + + library->RegisterFunction( + runtime_stage_->GetEntrypoint(), + ToShaderStage(runtime_stage_->GetShaderStage()), + runtime_stage_->GetCodeMapping(), + fml::MakeCopyable([promise = std::move(promise)](bool result) mutable { + promise.set_value(result); + })); + + if (!future.get()) { + VALIDATION_LOG << "Failed to build runtime effect (entry point: " + << runtime_stage_->GetEntrypoint() << ")"; + return false; + } + + function = library->GetFunction(runtime_stage_->GetEntrypoint(), + ShaderStage::kFragment); + if (!function) { + VALIDATION_LOG + << "Failed to fetch runtime effect function immediately after " + "registering it (entry point: " + << runtime_stage_->GetEntrypoint() << ")"; + return false; + } + } + + //-------------------------------------------------------------------------- + /// Resolve geometry. + /// + + auto geometry_result = + GetGeometry()->GetPositionBuffer(renderer, entity, pass); + + //-------------------------------------------------------------------------- + /// Get or create runtime stage pipeline. + /// + + using VS = RuntimeEffectVertexShader; + PipelineDescriptor desc; + desc.SetLabel("Runtime Stage"); + desc.AddStageEntrypoint( + library->GetFunction(VS::kEntrypointName, ShaderStage::kVertex)); + desc.AddStageEntrypoint(library->GetFunction(runtime_stage_->GetEntrypoint(), + ShaderStage::kFragment)); + auto vertex_descriptor = std::make_shared(); + if (!vertex_descriptor->SetStageInputs(VS::kAllShaderStageInputs)) { + VALIDATION_LOG << "Failed to set stage inputs for runtime effect pipeline."; + } + desc.SetVertexDescriptor(std::move(vertex_descriptor)); + desc.SetColorAttachmentDescriptor(0u, {.format = PixelFormat::kDefaultColor}); + desc.SetStencilAttachmentDescriptors({}); + desc.SetStencilPixelFormat(PixelFormat::kDefaultStencil); + + auto options = OptionsFromPassAndEntity(pass, entity); + if (geometry_result.prevent_overdraw) { + options.stencil_compare = CompareFunction::kEqual; + options.stencil_operation = StencilOperation::kIncrementClamp; + } + options.ApplyToPipelineDescriptor(desc); + + auto pipeline = context->GetPipelineLibrary()->GetPipeline(desc).get(); + if (!pipeline) { + VALIDATION_LOG << "Failed to get or create runtime effect pipeline."; + return false; + } + + Command cmd; + cmd.label = "RuntimeEffectContents"; + cmd.pipeline = pipeline; + cmd.stencil_reference = entity.GetStencilDepth(); + cmd.BindVertices(geometry_result.vertex_buffer); + cmd.primitive_type = geometry_result.type; + + //-------------------------------------------------------------------------- + /// Vertex stage uniforms. + /// + + VS::VertInfo frame_info; + frame_info.mvp = Matrix::MakeOrthographic(pass.GetRenderTargetSize()) * + entity.GetTransformation(); + VS::BindVertInfo(cmd, pass.GetTransientsBuffer().EmplaceUniform(frame_info)); + + //-------------------------------------------------------------------------- + /// Fragment stage uniforms. + /// + + size_t buffer_index = 0; + size_t sampler_index = 0; + for (auto uniform : runtime_stage_->GetUniforms()) { + // TODO(113715): Populate this metadata once GLES is able to handle + // non-struct uniform names. + ShaderMetadata metadata; + + switch (uniform.type) { + case kSampledImage: { + FML_DCHECK(sampler_index < texture_inputs_.size()); + auto& input = texture_inputs_[sampler_index]; + + auto sampler = + context->GetSamplerLibrary()->GetSampler(input.sampler_descriptor); + + SampledImageSlot image_slot; + image_slot.name = uniform.name.c_str(); + image_slot.texture_index = sampler_index; + image_slot.sampler_index = sampler_index; + cmd.BindResource(ShaderStage::kFragment, image_slot, metadata, + input.texture, sampler); + + sampler_index++; + break; + } + case kFloat: { + size_t alignment = + std::max(uniform.bit_width / 8, DefaultUniformAlignment()); + auto buffer_view = pass.GetTransientsBuffer().Emplace( + uniform_data_->data() + uniform.location * sizeof(float), + uniform.GetSize(), alignment); + + ShaderUniformSlot uniform_slot; + uniform_slot.name = uniform.name.c_str(); + uniform_slot.ext_res_0 = buffer_index; + cmd.BindResource(ShaderStage::kFragment, uniform_slot, metadata, + buffer_view); + break; + } + case kBoolean: + case kSignedByte: + case kUnsignedByte: + case kSignedShort: + case kUnsignedShort: + case kSignedInt: + case kUnsignedInt: + case kSignedInt64: + case kUnsignedInt64: + case kHalfFloat: + case kDouble: + VALIDATION_LOG << "Unsupported uniform type for " << uniform.name + << "."; + return true; + } + + buffer_index++; + } + + pass.AddCommand(std::move(cmd)); + + if (geometry_result.prevent_overdraw) { + return ClipRestoreContents().Render(renderer, entity, pass); + } + return true; +} + +} // namespace impeller diff --git a/impeller/entity/contents/runtime_effect_contents.h b/impeller/entity/contents/runtime_effect_contents.h new file mode 100644 index 0000000000000..bda791bc064f5 --- /dev/null +++ b/impeller/entity/contents/runtime_effect_contents.h @@ -0,0 +1,39 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include +#include +#include + +#include "impeller/entity/contents/color_source_contents.h" +#include "impeller/renderer/sampler_descriptor.h" +#include "impeller/runtime_stage/runtime_stage.h" + +namespace impeller { + +class RuntimeEffectContents final : public ColorSourceContents { + public: + struct TextureInput { + SamplerDescriptor sampler_descriptor; + std::shared_ptr texture; + }; + + void SetRuntimeStage(std::shared_ptr runtime_stage); + + void SetUniformData(std::shared_ptr> uniform_data); + + void SetTextureInputs(std::vector texture_inputs); + + // |Contents| + bool Render(const ContentContext& renderer, + const Entity& entity, + RenderPass& pass) const override; + + private: + std::shared_ptr runtime_stage_; + std::shared_ptr> uniform_data_; + std::vector texture_inputs_; +}; + +} // namespace impeller diff --git a/impeller/entity/contents/solid_color_contents.cc b/impeller/entity/contents/solid_color_contents.cc index 57f022e15bb76..6b9fe5241f8b7 100644 --- a/impeller/entity/contents/solid_color_contents.cc +++ b/impeller/entity/contents/solid_color_contents.cc @@ -4,11 +4,10 @@ #include "solid_color_contents.h" +#include "impeller/entity/contents/clip_contents.h" #include "impeller/entity/contents/content_context.h" -#include "impeller/entity/contents/solid_fill_utils.h" #include "impeller/entity/entity.h" #include "impeller/geometry/path.h" -#include "impeller/geometry/path_builder.h" #include "impeller/renderer/render_pass.h" namespace impeller { @@ -25,12 +24,8 @@ const Color& SolidColorContents::GetColor() const { return color_; } -void SolidColorContents::SetPath(Path path) { - path_ = std::move(path); -} - -void SolidColorContents::SetCover(bool cover) { - cover_ = cover; +void SolidColorContents::SetGeometry(std::unique_ptr geometry) { + geometry_ = std::move(geometry); } std::optional SolidColorContents::GetCoverage( @@ -38,7 +33,10 @@ std::optional SolidColorContents::GetCoverage( if (color_.IsTransparent()) { return std::nullopt; } - return path_.GetTransformedBoundingBox(entity.GetTransformation()); + if (geometry_ == nullptr) { + return std::nullopt; + } + return geometry_->GetCoverage(entity.GetTransformation()); }; bool SolidColorContents::ShouldRender( @@ -47,7 +45,7 @@ bool SolidColorContents::ShouldRender( if (!stencil_coverage.has_value()) { return false; } - return cover_ || Contents::ShouldRender(entity, stencil_coverage); + return Contents::ShouldRender(entity, stencil_coverage); } bool SolidColorContents::Render(const ContentContext& renderer, @@ -58,16 +56,19 @@ bool SolidColorContents::Render(const ContentContext& renderer, Command cmd; cmd.label = "Solid Fill"; - cmd.pipeline = - renderer.GetSolidFillPipeline(OptionsFromPassAndEntity(pass, entity)); cmd.stencil_reference = entity.GetStencilDepth(); - cmd.BindVertices(CreateSolidFillVertices( - renderer.GetTessellator(), - cover_ - ? PathBuilder{}.AddRect(Size(pass.GetRenderTargetSize())).TakePath() - : path_, - pass.GetTransientsBuffer())); + auto geometry_result = geometry_->GetPositionBuffer(renderer, entity, pass); + + auto options = OptionsFromPassAndEntity(pass, entity); + if (geometry_result.prevent_overdraw) { + options.stencil_compare = CompareFunction::kEqual; + options.stencil_operation = StencilOperation::kIncrementClamp; + } + + cmd.pipeline = renderer.GetSolidFillPipeline(options); + cmd.BindVertices(geometry_result.vertex_buffer); + cmd.primitive_type = geometry_result.type; VS::VertInfo vert_info; vert_info.mvp = Matrix::MakeOrthographic(pass.GetRenderTargetSize()) * @@ -78,19 +79,20 @@ bool SolidColorContents::Render(const ContentContext& renderer, frag_info.color = color_.Premultiply(); FS::BindFragInfo(cmd, pass.GetTransientsBuffer().EmplaceUniform(frag_info)); - cmd.primitive_type = PrimitiveType::kTriangle; - if (!pass.AddCommand(std::move(cmd))) { return false; } + if (geometry_result.prevent_overdraw) { + return ClipRestoreContents().Render(renderer, entity, pass); + } return true; } -std::unique_ptr SolidColorContents::Make(Path path, +std::unique_ptr SolidColorContents::Make(const Path& path, Color color) { auto contents = std::make_unique(); - contents->SetPath(std::move(path)); + contents->SetGeometry(Geometry::MakeFillPath(path)); contents->SetColor(color); return contents; } diff --git a/impeller/entity/contents/solid_color_contents.h b/impeller/entity/contents/solid_color_contents.h index 3ad3d0aa2ac5a..e43e7292a7452 100644 --- a/impeller/entity/contents/solid_color_contents.h +++ b/impeller/entity/contents/solid_color_contents.h @@ -10,6 +10,7 @@ #include "flutter/fml/macros.h" #include "impeller/entity/contents/contents.h" +#include "impeller/entity/geometry.h" #include "impeller/geometry/color.h" #include "impeller/geometry/path.h" @@ -25,11 +26,10 @@ class SolidColorContents final : public Contents { ~SolidColorContents() override; - static std::unique_ptr Make(Path path, Color color); + static std::unique_ptr Make(const Path& path, + Color color); - void SetPath(Path path); - - void SetCover(bool cover); + void SetGeometry(std::unique_ptr geometry); void SetColor(Color color); @@ -48,8 +48,7 @@ class SolidColorContents final : public Contents { RenderPass& pass) const override; private: - Path path_; - bool cover_ = false; + std::unique_ptr geometry_; Color color_; diff --git a/impeller/entity/contents/solid_fill_utils.h b/impeller/entity/contents/solid_fill_utils.h deleted file mode 100644 index 6b5fb42739845..0000000000000 --- a/impeller/entity/contents/solid_fill_utils.h +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#pragma once - -#include "impeller/renderer/vertex_buffer_builder.h" -#include "impeller/tessellator/tessellator.h" - -namespace impeller { - -template -VertexBuffer CreateSolidFillVertices(std::shared_ptr tessellator, - const Path& path, - HostBuffer& buffer) { - VertexBufferBuilder vtx_builder; - - auto tesselation_result = tessellator->Tessellate( - path.GetFillType(), path.CreatePolyline(), - [&vtx_builder](auto point) { vtx_builder.AppendVertex({point}); }); - if (tesselation_result != Tessellator::Result::kSuccess) { - return {}; - } - - return vtx_builder.CreateVertexBuffer(buffer); -} - -} // namespace impeller diff --git a/impeller/entity/contents/solid_stroke_contents.cc b/impeller/entity/contents/solid_stroke_contents.cc deleted file mode 100644 index 357498ad18cc3..0000000000000 --- a/impeller/entity/contents/solid_stroke_contents.cc +++ /dev/null @@ -1,430 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "solid_stroke_contents.h" - -#include - -#include "impeller/entity/contents/clip_contents.h" -#include "impeller/entity/contents/content_context.h" -#include "impeller/entity/entity.h" -#include "impeller/geometry/path_builder.h" -#include "impeller/renderer/render_pass.h" - -namespace impeller { - -SolidStrokeContents::SolidStrokeContents() { - SetStrokeCap(Cap::kButt); - SetStrokeJoin(Join::kMiter); -} - -SolidStrokeContents::~SolidStrokeContents() = default; - -void SolidStrokeContents::SetColor(Color color) { - color_ = color; -} - -const Color& SolidStrokeContents::GetColor() const { - return color_; -} - -void SolidStrokeContents::SetPath(Path path) { - path_ = std::move(path); -} - -std::optional SolidStrokeContents::GetCoverage( - const Entity& entity) const { - if (color_.IsTransparent()) { - return std::nullopt; - } - - auto path_bounds = path_.GetBoundingBox(); - if (!path_bounds.has_value()) { - return std::nullopt; - } - auto path_coverage = path_bounds->TransformBounds(entity.GetTransformation()); - - Scalar max_radius = 0.5; - if (cap_ == Cap::kSquare) { - max_radius = max_radius * kSqrt2; - } - if (join_ == Join::kMiter) { - max_radius = std::max(max_radius, miter_limit_ * 0.5f); - } - Scalar determinant = entity.GetTransformation().GetDeterminant(); - if (determinant == 0) { - return std::nullopt; - } - Scalar min_size = 1.0f / sqrt(std::abs(determinant)); - Vector2 max_radius_xy = entity.GetTransformation().TransformDirection( - Vector2(max_radius, max_radius) * std::max(stroke_size_, min_size)); - - return Rect(path_coverage.origin - max_radius_xy, - Size(path_coverage.size.width + max_radius_xy.x * 2, - path_coverage.size.height + max_radius_xy.y * 2)); -} - -static VertexBuffer CreateSolidStrokeVertices( - const Path& path, - HostBuffer& buffer, - const SolidStrokeContents::CapProc& cap_proc, - const SolidStrokeContents::JoinProc& join_proc, - Scalar miter_limit, - const SmoothingApproximation& smoothing) { - using VS = SolidStrokeVertexShader; - - VertexBufferBuilder vtx_builder; - auto polyline = path.CreatePolyline(); - - VS::PerVertexData vtx; - - // Normal state. - Point normal; - Point previous_normal; // Used for computing joins. - - auto compute_normal = [&polyline, &normal, &previous_normal](size_t point_i) { - previous_normal = normal; - Point direction = - (polyline.points[point_i] - polyline.points[point_i - 1]).Normalize(); - normal = {-direction.y, direction.x}; - }; - - for (size_t contour_i = 0; contour_i < polyline.contours.size(); - contour_i++) { - size_t contour_start_point_i, contour_end_point_i; - std::tie(contour_start_point_i, contour_end_point_i) = - polyline.GetContourPointBounds(contour_i); - - switch (contour_end_point_i - contour_start_point_i) { - case 1: { - Point p = polyline.points[contour_start_point_i]; - cap_proc(vtx_builder, p, {-1, 0}, smoothing); - cap_proc(vtx_builder, p, {1, 0}, smoothing); - continue; - } - case 0: - continue; // This contour has no renderable content. - default: - break; - } - - // The first point's normal is always the same as - compute_normal(contour_start_point_i + 1); - const Point contour_first_normal = normal; - - if (contour_i > 0) { - // This branch only executes when we've just finished drawing a contour - // and are switching to a new one. - // We're drawing a triangle strip, so we need to "pick up the pen" by - // appending transparent vertices between the end of the previous contour - // and the beginning of the new contour. - vtx.position = polyline.points[contour_start_point_i - 1]; - vtx.normal = {}; - vtx.pen_down = 0.0; - // Append two transparent vertices when "picking up" the pen so that the - // triangle drawn when moving to the beginning of the new contour will - // have zero volume. This is necessary because strokes with a transparent - // color affect the stencil buffer to prevent overdraw. - vtx_builder.AppendVertex(vtx); - vtx_builder.AppendVertex(vtx); - - vtx.position = polyline.points[contour_start_point_i]; - // Append two vertices at the beginning of the new contour - // so that the next appended vertex will create a triangle with zero - // volume. - vtx_builder.AppendVertex(vtx); - vtx.pen_down = 1.0; - vtx_builder.AppendVertex(vtx); - } - - // Generate start cap. - if (!polyline.contours[contour_i].is_closed) { - cap_proc(vtx_builder, polyline.points[contour_start_point_i], -normal, - smoothing); - } - - // Generate contour geometry. - for (size_t point_i = contour_start_point_i; point_i < contour_end_point_i; - point_i++) { - if (point_i > contour_start_point_i) { - // Generate line rect. - vtx.position = polyline.points[point_i - 1]; - vtx.pen_down = 1.0; - vtx.normal = normal; - vtx_builder.AppendVertex(vtx); - vtx.normal = -normal; - vtx_builder.AppendVertex(vtx); - vtx.position = polyline.points[point_i]; - vtx.normal = normal; - vtx_builder.AppendVertex(vtx); - vtx.normal = -normal; - vtx_builder.AppendVertex(vtx); - - if (point_i < contour_end_point_i - 1) { - compute_normal(point_i + 1); - - // Generate join from the current line to the next line. - join_proc(vtx_builder, polyline.points[point_i], previous_normal, - normal, miter_limit, smoothing); - } - } - } - - // Generate end cap or join. - if (!polyline.contours[contour_i].is_closed) { - cap_proc(vtx_builder, polyline.points[contour_end_point_i - 1], normal, - smoothing); - } else { - join_proc(vtx_builder, polyline.points[contour_start_point_i], normal, - contour_first_normal, miter_limit, smoothing); - } - } - - return vtx_builder.CreateVertexBuffer(buffer); -} - -bool SolidStrokeContents::Render(const ContentContext& renderer, - const Entity& entity, - RenderPass& pass) const { - if (stroke_size_ < 0.0) { - return true; - } - - using VS = SolidStrokePipeline::VertexShader; - using FS = SolidStrokePipeline::FragmentShader; - - VS::VertInfo vert_info; - vert_info.mvp = Matrix::MakeOrthographic(pass.GetRenderTargetSize()) * - entity.GetTransformation(); - Scalar determinant = entity.GetTransformation().GetDeterminant(); - if (determinant == 0) { - return true; - } - Scalar min_size = 1.0f / sqrt(std::abs(determinant)); - vert_info.size = std::max(stroke_size_, min_size); - - FS::FragInfo frag_info; - frag_info.color = color_.Premultiply(); - - Command cmd; - cmd.primitive_type = PrimitiveType::kTriangleStrip; - cmd.label = "Solid Stroke"; - auto options = OptionsFromPassAndEntity(pass, entity); - if (!color_.IsOpaque()) { - options.stencil_compare = CompareFunction::kEqual; - options.stencil_operation = StencilOperation::kIncrementClamp; - } - cmd.pipeline = renderer.GetSolidStrokePipeline(options); - cmd.stencil_reference = entity.GetStencilDepth(); - - auto smoothing = SmoothingApproximation( - 5.0 / (stroke_size_ * entity.GetTransformation().GetMaxBasisLength()), - 0.0, 0.0); - cmd.BindVertices(CreateSolidStrokeVertices(path_, pass.GetTransientsBuffer(), - cap_proc_, join_proc_, - miter_limit_, smoothing)); - VS::BindVertInfo(cmd, pass.GetTransientsBuffer().EmplaceUniform(vert_info)); - FS::BindFragInfo(cmd, pass.GetTransientsBuffer().EmplaceUniform(frag_info)); - - pass.AddCommand(cmd); - - if (!color_.IsOpaque()) { - return ClipRestoreContents().Render(renderer, entity, pass); - } - - return true; -} - -void SolidStrokeContents::SetStrokeSize(Scalar size) { - stroke_size_ = size; -} - -Scalar SolidStrokeContents::GetStrokeSize() const { - return stroke_size_; -} - -void SolidStrokeContents::SetStrokeMiter(Scalar miter_limit) { - if (miter_limit < 0) { - return; // Skia behaves like this. - } - miter_limit_ = miter_limit; -} - -Scalar SolidStrokeContents::GetStrokeMiter() { - return miter_limit_; -} - -void SolidStrokeContents::SetStrokeCap(Cap cap) { - cap_ = cap; - - using VS = SolidStrokeVertexShader; - switch (cap) { - case Cap::kButt: - cap_proc_ = [](VertexBufferBuilder& vtx_builder, - const Point& position, const Point& normal, - const SmoothingApproximation& smoothing) {}; - break; - case Cap::kRound: - cap_proc_ = [](VertexBufferBuilder& vtx_builder, - const Point& position, const Point& normal, - const SmoothingApproximation& smoothing) { - SolidStrokeVertexShader::PerVertexData vtx; - vtx.position = position; - vtx.pen_down = 1.0; - - Point forward(normal.y, -normal.x); - - auto arc_points = - CubicPathComponent( - normal, normal + forward * PathBuilder::kArcApproximationMagic, - forward + normal * PathBuilder::kArcApproximationMagic, forward) - .CreatePolyline(smoothing); - - vtx.normal = normal; - vtx_builder.AppendVertex(vtx); - vtx.normal = -normal; - vtx_builder.AppendVertex(vtx); - for (const auto& point : arc_points) { - vtx.normal = point; - vtx_builder.AppendVertex(vtx); - vtx.normal = (-point).Reflect(forward); - vtx_builder.AppendVertex(vtx); - } - }; - break; - case Cap::kSquare: - cap_proc_ = [](VertexBufferBuilder& vtx_builder, - const Point& position, const Point& normal, - const SmoothingApproximation& smoothing) { - SolidStrokeVertexShader::PerVertexData vtx; - vtx.position = position; - vtx.pen_down = 1.0; - - Point forward(normal.y, -normal.x); - - vtx.normal = normal; - vtx_builder.AppendVertex(vtx); - vtx.normal = -normal; - vtx_builder.AppendVertex(vtx); - vtx.normal = normal + forward; - vtx_builder.AppendVertex(vtx); - vtx.normal = -normal + forward; - vtx_builder.AppendVertex(vtx); - }; - break; - } -} - -SolidStrokeContents::Cap SolidStrokeContents::GetStrokeCap() { - return cap_; -} - -static Scalar CreateBevelAndGetDirection( - VertexBufferBuilder& vtx_builder, - const Point& position, - const Point& start_normal, - const Point& end_normal) { - SolidStrokeVertexShader::PerVertexData vtx; - vtx.position = position; - vtx.pen_down = 1.0; - vtx.normal = {}; - vtx_builder.AppendVertex(vtx); - - Scalar dir = start_normal.Cross(end_normal) > 0 ? -1 : 1; - vtx.normal = start_normal * dir; - vtx_builder.AppendVertex(vtx); - vtx.normal = end_normal * dir; - vtx_builder.AppendVertex(vtx); - - return dir; -} - -void SolidStrokeContents::SetStrokeJoin(Join join) { - join_ = join; - - using VS = SolidStrokeVertexShader; - switch (join) { - case Join::kBevel: - join_proc_ = [](VertexBufferBuilder& vtx_builder, - const Point& position, const Point& start_normal, - const Point& end_normal, Scalar miter_limit, - const SmoothingApproximation& smoothing) { - CreateBevelAndGetDirection(vtx_builder, position, start_normal, - end_normal); - }; - break; - case Join::kMiter: - join_proc_ = [](VertexBufferBuilder& vtx_builder, - const Point& position, const Point& start_normal, - const Point& end_normal, Scalar miter_limit, - const SmoothingApproximation& smoothing) { - // 1 for no joint (straight line), 0 for max joint (180 degrees). - Scalar alignment = (start_normal.Dot(end_normal) + 1) / 2; - if (ScalarNearlyEqual(alignment, 1)) { - return; - } - - Scalar dir = CreateBevelAndGetDirection(vtx_builder, position, - start_normal, end_normal); - - Point miter_point = (start_normal + end_normal) / 2 / alignment; - if (miter_point.GetDistanceSquared({0, 0}) > - miter_limit * miter_limit) { - return; // Convert to bevel when we exceed the miter limit. - } - - // Outer miter point. - SolidStrokeVertexShader::PerVertexData vtx; - vtx.position = position; - vtx.pen_down = 1.0; - vtx.normal = miter_point * dir; - vtx_builder.AppendVertex(vtx); - }; - break; - case Join::kRound: - join_proc_ = [](VertexBufferBuilder& vtx_builder, - const Point& position, const Point& start_normal, - const Point& end_normal, Scalar miter_limit, - const SmoothingApproximation& smoothing) { - // 0 for no joint (straight line), 1 for max joint (180 degrees). - Scalar alignment = 1 - (start_normal.Dot(end_normal) + 1) / 2; - if (ScalarNearlyEqual(alignment, 0)) { - return; - } - - Scalar dir = CreateBevelAndGetDirection(vtx_builder, position, - start_normal, end_normal); - - Point middle = (start_normal + end_normal).Normalize(); - Point middle_handle = middle + Point(-middle.y, middle.x) * - PathBuilder::kArcApproximationMagic * - alignment * dir; - Point start_handle = - start_normal + Point(start_normal.y, -start_normal.x) * - PathBuilder::kArcApproximationMagic * alignment * - dir; - - auto arc_points = CubicPathComponent(start_normal, start_handle, - middle_handle, middle) - .CreatePolyline(smoothing); - - SolidStrokeVertexShader::PerVertexData vtx; - vtx.position = position; - vtx.pen_down = 1.0; - for (const auto& point : arc_points) { - vtx.normal = point * dir; - vtx_builder.AppendVertex(vtx); - vtx.normal = (-point * dir).Reflect(middle); - vtx_builder.AppendVertex(vtx); - } - }; - break; - } -} - -SolidStrokeContents::Join SolidStrokeContents::GetStrokeJoin() { - return join_; -} - -} // namespace impeller diff --git a/impeller/entity/contents/solid_stroke_contents.h b/impeller/entity/contents/solid_stroke_contents.h deleted file mode 100644 index a4d5722b9abf4..0000000000000 --- a/impeller/entity/contents/solid_stroke_contents.h +++ /dev/null @@ -1,97 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#pragma once - -#include -#include -#include - -#include "flutter/fml/macros.h" -#include "impeller/entity/contents/contents.h" -#include "impeller/entity/solid_stroke.vert.h" -#include "impeller/geometry/color.h" -#include "impeller/geometry/path_component.h" -#include "impeller/geometry/point.h" - -namespace impeller { - -class SolidStrokeContents final : public Contents { - public: - enum class Cap { - kButt, - kRound, - kSquare, - }; - - enum class Join { - kMiter, - kRound, - kBevel, - }; - - using CapProc = std::function& vtx_builder, - const Point& position, - const Point& normal, - const SmoothingApproximation& smoothing)>; - using JoinProc = std::function& vtx_builder, - const Point& position, - const Point& start_normal, - const Point& end_normal, - Scalar miter_limit, - const SmoothingApproximation& smoothing)>; - - SolidStrokeContents(); - - ~SolidStrokeContents() override; - - void SetPath(Path path); - - void SetColor(Color color); - - const Color& GetColor() const; - - void SetStrokeSize(Scalar size); - - Scalar GetStrokeSize() const; - - void SetStrokeMiter(Scalar miter_limit); - - Scalar GetStrokeMiter(); - - void SetStrokeCap(Cap cap); - - Cap GetStrokeCap(); - - void SetStrokeJoin(Join join); - - Join GetStrokeJoin(); - - // |Contents| - std::optional GetCoverage(const Entity& entity) const override; - - // |Contents| - bool Render(const ContentContext& renderer, - const Entity& entity, - RenderPass& pass) const override; - - private: - Path path_; - - Color color_; - Scalar stroke_size_ = 0.0; - Scalar miter_limit_ = 4.0; - - Cap cap_; - CapProc cap_proc_; - - Join join_; - JoinProc join_proc_; - - FML_DISALLOW_COPY_AND_ASSIGN(SolidStrokeContents); -}; - -} // namespace impeller diff --git a/impeller/entity/contents/sweep_gradient_contents.cc b/impeller/entity/contents/sweep_gradient_contents.cc index fc6bf4aac4880..c225a6ac9dd5a 100644 --- a/impeller/entity/contents/sweep_gradient_contents.cc +++ b/impeller/entity/contents/sweep_gradient_contents.cc @@ -5,11 +5,10 @@ #include "sweep_gradient_contents.h" #include "flutter/fml/logging.h" +#include "impeller/entity/contents/clip_contents.h" #include "impeller/entity/contents/content_context.h" #include "impeller/entity/contents/gradient_generator.h" -#include "impeller/entity/contents/solid_fill_utils.h" #include "impeller/entity/entity.h" -#include "impeller/geometry/path_builder.h" #include "impeller/renderer/render_pass.h" #include "impeller/renderer/sampler_library.h" @@ -80,16 +79,19 @@ bool SweepGradientContents::Render(const ContentContext& renderer, Command cmd; cmd.label = "SweepGradientFill"; - cmd.pipeline = renderer.GetSweepGradientFillPipeline( - OptionsFromPassAndEntity(pass, entity)); cmd.stencil_reference = entity.GetStencilDepth(); - cmd.BindVertices(CreateSolidFillVertices( - renderer.GetTessellator(), - GetCover() - ? PathBuilder{}.AddRect(Size(pass.GetRenderTargetSize())).TakePath() - : GetPath(), - pass.GetTransientsBuffer())); - cmd.primitive_type = PrimitiveType::kTriangle; + auto geometry_result = + GetGeometry()->GetPositionBuffer(renderer, entity, pass); + + auto options = OptionsFromPassAndEntity(pass, entity); + if (geometry_result.prevent_overdraw) { + options.stencil_compare = CompareFunction::kEqual; + options.stencil_operation = StencilOperation::kIncrementClamp; + } + cmd.pipeline = renderer.GetSweepGradientFillPipeline(options); + + cmd.BindVertices(geometry_result.vertex_buffer); + cmd.primitive_type = geometry_result.type; FS::BindGradientInfo( cmd, pass.GetTransientsBuffer().EmplaceUniform(gradient_info)); VS::BindFrameInfo(cmd, pass.GetTransientsBuffer().EmplaceUniform(frame_info)); @@ -99,7 +101,15 @@ bool SweepGradientContents::Render(const ContentContext& renderer, FS::BindTextureSampler( cmd, gradient_texture, renderer.GetContext()->GetSamplerLibrary()->GetSampler(sampler_desc)); - return pass.AddCommand(std::move(cmd)); + + if (!pass.AddCommand(std::move(cmd))) { + return false; + } + + if (geometry_result.prevent_overdraw) { + return ClipRestoreContents().Render(renderer, entity, pass); + } + return true; } } // namespace impeller diff --git a/impeller/entity/contents/text_contents.cc b/impeller/entity/contents/text_contents.cc index ad31dcde5040f..7ccb47c5b920c 100644 --- a/impeller/entity/contents/text_contents.cc +++ b/impeller/entity/contents/text_contents.cc @@ -6,6 +6,7 @@ #include #include +#include #include "impeller/entity/contents/content_context.h" #include "impeller/entity/entity.h" @@ -24,8 +25,8 @@ TextContents::TextContents() = default; TextContents::~TextContents() = default; -void TextContents::SetTextFrame(TextFrame frame) { - frame_ = std::move(frame); +void TextContents::SetTextFrame(const TextFrame& frame) { + frame_ = frame; } void TextContents::SetGlyphAtlas(std::shared_ptr atlas) { @@ -34,10 +35,12 @@ void TextContents::SetGlyphAtlas(std::shared_ptr atlas) { std::shared_ptr TextContents::ResolveAtlas( GlyphAtlas::Type type, + std::shared_ptr atlas_context, std::shared_ptr context) const { FML_DCHECK(lazy_atlas_); if (lazy_atlas_) { - return lazy_atlas_->CreateOrGetGlyphAtlas(type, context); + return lazy_atlas_->CreateOrGetGlyphAtlas(type, std::move(atlas_context), + std::move(context)); } return nullptr; @@ -56,13 +59,15 @@ std::optional TextContents::GetCoverage(const Entity& entity) const { } template -static bool CommonRender(const ContentContext& renderer, - const Entity& entity, - RenderPass& pass, - const Color& color, - const TextFrame& frame, - std::shared_ptr atlas, - Command& cmd) { +static bool CommonRender( + const ContentContext& renderer, + const Entity& entity, + RenderPass& pass, + const Color& color, + const TextFrame& frame, + std::shared_ptr + atlas, // NOLINT(performance-unnecessary-value-param) + Command& cmd) { using VS = typename TPipeline::VertexShader; using FS = typename TPipeline::FragmentShader; @@ -99,35 +104,57 @@ static bool CommonRender(const ContentContext& renderer, // sample from the glyph atlas. const std::vector unit_vertex_points = { - {0, 0}, {1, 0}, {0, 1}, {1, 0}, {0, 1}, {1, 1}, - }; + {0, 0}, {1, 0}, {0, 1}, {1, 1}}; + const std::vector indices = {0, 1, 2, 1, 2, 3}; VertexBufferBuilder vertex_builder; + + size_t count = 0; + for (const auto& run : frame.GetRuns()) { + count += run.GetGlyphPositions().size(); + } + + vertex_builder.Reserve(count * 4); + vertex_builder.ReserveIndices(count * 6); + + uint32_t offset = 0u; + for (auto i = 0u; i < count; i++) { + for (const auto& index : indices) { + vertex_builder.AppendIndex(index + offset); + } + offset += 4; + } + for (const auto& run : frame.GetRuns()) { auto font = run.GetFont(); - auto glyph_size = ISize::Ceil(font.GetMetrics().GetBoundingBox().size); + auto glyph_size_ = ISize::Ceil(font.GetMetrics().GetBoundingBox().size); + auto glyph_size = Point{static_cast(glyph_size_.width), + static_cast(glyph_size_.height)}; + auto metrics_offset = + Point{font.GetMetrics().min_extent.x, font.GetMetrics().ascent}; + for (const auto& glyph_position : run.GetGlyphPositions()) { FontGlyphPair font_glyph_pair{font, glyph_position.glyph}; + auto atlas_glyph_pos = atlas->FindFontGlyphPosition(font_glyph_pair); + if (!atlas_glyph_pos.has_value()) { + VALIDATION_LOG << "Could not find glyph position in the atlas."; + return false; + } + + auto atlas_position = + atlas_glyph_pos->origin + Point{1 / atlas_glyph_pos->size.width, + 1 / atlas_glyph_pos->size.height}; + auto atlas_glyph_size = + Point{atlas_glyph_pos->size.width, atlas_glyph_pos->size.height}; + auto offset_glyph_position = glyph_position.position + metrics_offset; for (const auto& point : unit_vertex_points) { typename VS::PerVertexData vtx; vtx.unit_vertex = point; - - auto atlas_glyph_pos = atlas->FindFontGlyphPosition(font_glyph_pair); - if (!atlas_glyph_pos.has_value()) { - VALIDATION_LOG << "Could not find glyph position in the atlas."; - return false; - } - vtx.glyph_position = - glyph_position.position + - Point{font.GetMetrics().min_extent.x, font.GetMetrics().ascent}; - vtx.glyph_size = Point{static_cast(glyph_size.width), - static_cast(glyph_size.height)}; - vtx.atlas_position = - atlas_glyph_pos->origin + Point{1 / atlas_glyph_pos->size.width, - 1 / atlas_glyph_pos->size.height}; - vtx.atlas_glyph_size = - Point{atlas_glyph_pos->size.width, atlas_glyph_pos->size.height}; + vtx.glyph_position = offset_glyph_position; + vtx.glyph_size = glyph_size; + vtx.atlas_position = atlas_position; + vtx.atlas_glyph_size = atlas_glyph_size; if constexpr (std::is_same_v) { vtx.color_glyph = glyph_position.glyph.type == Glyph::Type::kBitmap ? 1.0 : 0.0; @@ -150,8 +177,9 @@ static bool CommonRender(const ContentContext& renderer, bool TextContents::RenderSdf(const ContentContext& renderer, const Entity& entity, RenderPass& pass) const { - auto atlas = ResolveAtlas(GlyphAtlas::Type::kSignedDistanceField, - renderer.GetContext()); + auto atlas = + ResolveAtlas(GlyphAtlas::Type::kSignedDistanceField, + renderer.GetGlyphAtlasContext(), renderer.GetContext()); if (!atlas || !atlas->IsValid()) { VALIDATION_LOG << "Cannot render glyphs without prepared atlas."; @@ -178,7 +206,7 @@ bool TextContents::Render(const ContentContext& renderer, } // This TextContents may be for a frame that doesn't have color, but the - // lazy atlas for this scene alraedy does have color. + // lazy atlas for this scene already does have color. // Benchmarks currently show that creating two atlases per pass regresses // render time. This should get re-evaluated if we start caching atlases // between frames or get significantly faster at creating atlases, because @@ -186,7 +214,7 @@ bool TextContents::Render(const ContentContext& renderer, auto atlas = ResolveAtlas(lazy_atlas_->HasColor() ? GlyphAtlas::Type::kColorBitmap : GlyphAtlas::Type::kAlphaBitmap, - renderer.GetContext()); + renderer.GetGlyphAtlasContext(), renderer.GetContext()); if (!atlas || !atlas->IsValid()) { VALIDATION_LOG << "Cannot render glyphs without prepared atlas."; diff --git a/impeller/entity/contents/text_contents.h b/impeller/entity/contents/text_contents.h index 015502ac5028f..a0cec70a95103 100644 --- a/impeller/entity/contents/text_contents.h +++ b/impeller/entity/contents/text_contents.h @@ -26,7 +26,7 @@ class TextContents final : public Contents { ~TextContents(); - void SetTextFrame(TextFrame frame); + void SetTextFrame(const TextFrame& frame); void SetGlyphAtlas(std::shared_ptr atlas); @@ -52,6 +52,7 @@ class TextContents final : public Contents { std::shared_ptr ResolveAtlas( GlyphAtlas::Type type, + std::shared_ptr atlas_context, std::shared_ptr context) const; FML_DISALLOW_COPY_AND_ASSIGN(TextContents); diff --git a/impeller/entity/contents/texture_contents.cc b/impeller/entity/contents/texture_contents.cc index 119a921bbe5cc..754396bbd78a1 100644 --- a/impeller/entity/contents/texture_contents.cc +++ b/impeller/entity/contents/texture_contents.cc @@ -6,6 +6,7 @@ #include #include +#include #include "impeller/entity/contents/content_context.h" #include "impeller/entity/entity.h" @@ -32,11 +33,11 @@ std::shared_ptr TextureContents::MakeRect(Rect destination) { } void TextureContents::SetLabel(std::string label) { - label_ = label; + label_ = std::move(label); } -void TextureContents::SetPath(Path path) { - path_ = std::move(path); +void TextureContents::SetPath(const Path& path) { + path_ = path; is_rect_ = false; } @@ -74,13 +75,14 @@ std::optional TextureContents::RenderToSnapshot( // Passthrough textures that have simple rectangle paths and complete source // rects. if (is_rect_ && source_rect_ == Rect::MakeSize(texture_->GetSize()) && - opacity_ >= 1 - kEhCloseEnough) { + (opacity_ >= 1 - kEhCloseEnough || defer_applying_opacity_)) { auto scale = Vector2(bounds->size / Size(texture_->GetSize())); return Snapshot{.texture = texture_, .transform = entity.GetTransformation() * Matrix::MakeTranslation(bounds->origin) * Matrix::MakeScale(scale), - .sampler_descriptor = sampler_descriptor_}; + .sampler_descriptor = sampler_descriptor_, + .opacity = opacity_}; } return Contents::RenderToSnapshot(renderer, entity); } @@ -118,15 +120,25 @@ bool TextureContents::Render(const ContentContext& renderer, { const auto tess_result = renderer.GetTessellator()->Tessellate( path_.GetFillType(), path_.CreatePolyline(), - [this, &vertex_builder, &coverage_rect, &texture_size](Point vtx) { - VS::PerVertexData data; - data.position = vtx; - auto coverage_coords = - (vtx - coverage_rect->origin) / coverage_rect->size; - data.texture_coords = - (source_rect_.origin + source_rect_.size * coverage_coords) / - texture_size; - vertex_builder.AppendVertex(data); + [this, &vertex_builder, &coverage_rect, &texture_size]( + const float* vertices, size_t vertices_size, + const uint16_t* indices, size_t indices_size) { + for (auto i = 0u; i < vertices_size; i += 2) { + VS::PerVertexData data; + Point vtx = {vertices[i], vertices[i + 1]}; + data.position = vtx; + auto coverage_coords = + (vtx - coverage_rect->origin) / coverage_rect->size; + data.texture_coords = + (source_rect_.origin + source_rect_.size * coverage_coords) / + texture_size; + vertex_builder.AppendVertex(data); + } + FML_DCHECK(vertex_builder.GetVertexCount() == vertices_size / 2); + for (auto i = 0u; i < indices_size; i++) { + vertex_builder.AppendIndex(indices[i]); + } + return true; }); if (tess_result == Tessellator::Result::kInputError) { @@ -190,4 +202,8 @@ const SamplerDescriptor& TextureContents::GetSamplerDescriptor() const { return sampler_descriptor_; } +void TextureContents::SetDeferApplyingOpacity(bool defer_applying_opacity) { + defer_applying_opacity_ = defer_applying_opacity; +} + } // namespace impeller diff --git a/impeller/entity/contents/texture_contents.h b/impeller/entity/contents/texture_contents.h index 4cac643109fe8..9502881cca3f6 100644 --- a/impeller/entity/contents/texture_contents.h +++ b/impeller/entity/contents/texture_contents.h @@ -30,7 +30,7 @@ class TextureContents final : public Contents { void SetLabel(std::string label); - void SetPath(Path path); + void SetPath(const Path& path); void SetTexture(std::shared_ptr texture); @@ -60,6 +60,8 @@ class TextureContents final : public Contents { const Entity& entity, RenderPass& pass) const override; + void SetDeferApplyingOpacity(bool defer_applying_opacity); + private: std::string label_; @@ -71,6 +73,7 @@ class TextureContents final : public Contents { SamplerDescriptor sampler_descriptor_ = {}; Rect source_rect_; Scalar opacity_ = 1.0f; + bool defer_applying_opacity_ = false; FML_DISALLOW_COPY_AND_ASSIGN(TextureContents); }; diff --git a/impeller/entity/contents/tiled_texture_contents.cc b/impeller/entity/contents/tiled_texture_contents.cc index ab4286d61b6b8..0bf7566055a20 100644 --- a/impeller/entity/contents/tiled_texture_contents.cc +++ b/impeller/entity/contents/tiled_texture_contents.cc @@ -4,8 +4,9 @@ #include "impeller/entity/contents/tiled_texture_contents.h" +#include "impeller/entity/contents/clip_contents.h" #include "impeller/entity/contents/content_context.h" -#include "impeller/entity/contents/solid_fill_utils.h" +#include "impeller/entity/geometry.h" #include "impeller/entity/tiled_texture_fill.frag.h" #include "impeller/entity/tiled_texture_fill.vert.h" #include "impeller/geometry/path_builder.h" @@ -67,19 +68,32 @@ bool TiledTextureContents::Render(const ContentContext& renderer, cmd.pipeline = renderer.GetTiledTexturePipeline(OptionsFromPassAndEntity(pass, entity)); cmd.stencil_reference = entity.GetStencilDepth(); - cmd.BindVertices(CreateSolidFillVertices( - renderer.GetTessellator(), - GetCover() - ? PathBuilder{}.AddRect(Size(pass.GetRenderTargetSize())).TakePath() - : GetPath(), - pass.GetTransientsBuffer())); + + auto geometry_result = + GetGeometry()->GetPositionBuffer(renderer, entity, pass); + + auto options = OptionsFromPassAndEntity(pass, entity); + if (geometry_result.prevent_overdraw) { + options.stencil_compare = CompareFunction::kEqual; + options.stencil_operation = StencilOperation::kIncrementClamp; + } + cmd.pipeline = renderer.GetTiledTexturePipeline(options); + + cmd.BindVertices(geometry_result.vertex_buffer); + cmd.primitive_type = geometry_result.type; VS::BindVertInfo(cmd, host_buffer.EmplaceUniform(vert_info)); FS::BindFragInfo(cmd, host_buffer.EmplaceUniform(frag_info)); FS::BindTextureSampler(cmd, texture_, renderer.GetContext()->GetSamplerLibrary()->GetSampler( sampler_descriptor_)); - pass.AddCommand(std::move(cmd)); + if (!pass.AddCommand(std::move(cmd))) { + return false; + } + + if (geometry_result.prevent_overdraw) { + return ClipRestoreContents().Render(renderer, entity, pass); + } return true; } diff --git a/impeller/entity/contents/vertices_contents.cc b/impeller/entity/contents/vertices_contents.cc index 4ab78afbe924e..d34f48e109fd5 100644 --- a/impeller/entity/contents/vertices_contents.cc +++ b/impeller/entity/contents/vertices_contents.cc @@ -5,8 +5,10 @@ #include "vertices_contents.h" #include "impeller/entity/contents/content_context.h" +#include "impeller/entity/position.vert.h" +#include "impeller/entity/position_color.vert.h" +#include "impeller/entity/position_uv.vert.h" #include "impeller/entity/vertices.frag.h" -#include "impeller/entity/vertices.vert.h" #include "impeller/geometry/color.h" #include "impeller/renderer/formats.h" #include "impeller/renderer/render_pass.h" @@ -15,15 +17,18 @@ namespace impeller { -VerticesContents::VerticesContents(Vertices vertices) - : vertices_(std::move(vertices)){}; +VerticesContents::VerticesContents() = default; VerticesContents::~VerticesContents() = default; std::optional VerticesContents::GetCoverage(const Entity& entity) const { - return vertices_.GetTransformedBoundingBox(entity.GetTransformation()); + return geometry_->GetCoverage(entity.GetTransformation()); }; +void VerticesContents::SetGeometry(std::unique_ptr geometry) { + geometry_ = std::move(geometry); +} + void VerticesContents::SetColor(Color color) { color_ = color.Premultiply(); } @@ -32,88 +37,53 @@ void VerticesContents::SetBlendMode(BlendMode blend_mode) { blend_mode_ = blend_mode; } -static PrimitiveType GetPrimitiveType(const Vertices& vertices) { - switch (vertices.GetMode()) { - case VertexMode::kTriangle: - return PrimitiveType::kTriangle; - case VertexMode::kTriangleStrip: - return PrimitiveType::kTriangleStrip; - } -} - bool VerticesContents::Render(const ContentContext& renderer, const Entity& entity, RenderPass& pass) const { - if (!vertices_.IsValid()) { - return true; - } - - using VS = VerticesPipeline::VertexShader; - - const auto coverage_rect = vertices_.GetBoundingBox(); - - if (!coverage_rect.has_value()) { - return true; - } - - if (coverage_rect->size.IsEmpty()) { - return true; - } - - std::vector vertex_data; - { - const auto& positions = vertices_.GetPositions(); - const auto& colors = vertices_.GetColors(); - for (size_t i = 0; i < positions.size(); i++) { - auto color = i < colors.size() - ? Color::BlendColor(color_, colors[i], blend_mode_) - : color_; - vertex_data.push_back(VS::PerVertexData{ - .position = positions[i], - .color = color, - }); - } - } - - size_t total_vtx_bytes = vertex_data.size() * sizeof(VS::PerVertexData); - size_t total_idx_bytes = vertices_.GetIndices().size() * sizeof(uint16_t); - - DeviceBufferDescriptor buffer_desc; - buffer_desc.size = total_vtx_bytes + total_idx_bytes; - buffer_desc.storage_mode = StorageMode::kHostVisible; - - auto buffer = - renderer.GetContext()->GetResourceAllocator()->CreateBuffer(buffer_desc); - - if (!buffer->CopyHostBuffer(reinterpret_cast(vertex_data.data()), - Range{0, total_vtx_bytes}, 0)) { - return false; - } - if (!buffer->CopyHostBuffer(reinterpret_cast(const_cast( - vertices_.GetIndices().data())), - Range{0, total_idx_bytes}, total_vtx_bytes)) { - return false; - } - auto& host_buffer = pass.GetTransientsBuffer(); + auto vertex_type = geometry_->GetVertexType(); - VS::FrameInfo frame_info; - frame_info.mvp = Matrix::MakeOrthographic(pass.GetRenderTargetSize()) * - entity.GetTransformation(); Command cmd; cmd.label = "Vertices"; - cmd.pipeline = - renderer.GetVerticesPipeline(OptionsFromPassAndEntity(pass, entity)); cmd.stencil_reference = entity.GetStencilDepth(); - cmd.primitive_type = GetPrimitiveType(vertices_); - cmd.BindVertices({ - .vertex_buffer = {.buffer = buffer, .range = Range{0, total_vtx_bytes}}, - .index_buffer = {.buffer = buffer, - .range = Range{total_vtx_bytes, total_idx_bytes}}, - .index_count = vertices_.GetIndices().size(), - .index_type = IndexType::k16bit, - }); - VS::BindFrameInfo(cmd, host_buffer.EmplaceUniform(frame_info)); + + switch (vertex_type) { + case GeometryVertexType::kColor: { + using VS = GeometryColorPipeline::VertexShader; + + auto geometry_result = geometry_->GetPositionColorBuffer( + renderer, entity, pass, color_, blend_mode_); + cmd.pipeline = renderer.GetGeometryColorPipeline( + OptionsFromPassAndEntity(pass, entity)); + cmd.primitive_type = geometry_result.type; + cmd.BindVertices(geometry_result.vertex_buffer); + + VS::VertInfo vert_info; + vert_info.mvp = Matrix::MakeOrthographic(pass.GetRenderTargetSize()) * + entity.GetTransformation(); + VS::BindVertInfo(cmd, host_buffer.EmplaceUniform(vert_info)); + break; + } + case GeometryVertexType::kUV: + case GeometryVertexType::kPosition: { + using VS = GeometryPositionPipeline::VertexShader; + + auto geometry_result = + geometry_->GetPositionBuffer(renderer, entity, pass); + cmd.pipeline = renderer.GetGeometryPositionPipeline( + OptionsFromPassAndEntity(pass, entity)); + cmd.primitive_type = geometry_result.type; + cmd.BindVertices(geometry_result.vertex_buffer); + + VS::VertInfo vert_info; + vert_info.mvp = Matrix::MakeOrthographic(pass.GetRenderTargetSize()) * + entity.GetTransformation(); + vert_info.color = color_.Premultiply(); + VS::BindVertInfo(cmd, + pass.GetTransientsBuffer().EmplaceUniform(vert_info)); + break; + } + } pass.AddCommand(std::move(cmd)); return true; diff --git a/impeller/entity/contents/vertices_contents.h b/impeller/entity/contents/vertices_contents.h index ae8637f7a9260..b509b0a3b39fe 100644 --- a/impeller/entity/contents/vertices_contents.h +++ b/impeller/entity/contents/vertices_contents.h @@ -11,6 +11,7 @@ #include "flutter/fml/macros.h" #include "impeller/entity/contents/contents.h" #include "impeller/entity/entity.h" +#include "impeller/entity/geometry.h" #include "impeller/geometry/color.h" #include "impeller/geometry/path.h" #include "impeller/geometry/point.h" @@ -21,10 +22,12 @@ namespace impeller { class VerticesContents final : public Contents { public: - explicit VerticesContents(Vertices vertices); + VerticesContents(); ~VerticesContents() override; + void SetGeometry(std::unique_ptr geometry); + void SetColor(Color color); void SetBlendMode(BlendMode blend_mode); @@ -38,8 +41,8 @@ class VerticesContents final : public Contents { RenderPass& pass) const override; public: - Vertices vertices_; Color color_; + std::unique_ptr geometry_; BlendMode blend_mode_ = BlendMode::kSource; FML_DISALLOW_COPY_AND_ASSIGN(VerticesContents); diff --git a/impeller/entity/entity_pass.cc b/impeller/entity/entity_pass.cc index 71a7bd735c51e..b83c8480837ac 100644 --- a/impeller/entity/entity_pass.cc +++ b/impeller/entity/entity_pass.cc @@ -5,6 +5,7 @@ #include "impeller/entity/entity_pass.h" #include +#include #include #include "flutter/fml/logging.h" @@ -12,7 +13,7 @@ #include "flutter/fml/trace_event.h" #include "impeller/base/validation.h" #include "impeller/entity/contents/content_context.h" -#include "impeller/entity/contents/filters/filter_contents.h" +#include "impeller/entity/contents/filters/color_filter_contents.h" #include "impeller/entity/contents/filters/inputs/filter_input.h" #include "impeller/entity/contents/texture_contents.h" #include "impeller/entity/entity.h" @@ -183,7 +184,7 @@ static RenderTarget CreateRenderTarget(ContentContext& renderer, } bool EntityPass::Render(ContentContext& renderer, - RenderTarget render_target) const { + const RenderTarget& render_target) const { if (reads_from_pass_texture_ > 0) { auto offscreen_target = CreateRenderTarget(renderer, render_target.GetRenderTargetSize(), true); @@ -205,7 +206,7 @@ bool EntityPass::Render(ContentContext& renderer, Entity entity; entity.SetContents(contents); - entity.SetBlendMode(BlendMode::kSourceOver); + entity.SetBlendMode(BlendMode::kSource); entity.Render(renderer, *render_pass); } @@ -380,7 +381,7 @@ struct StencilLayer { bool EntityPass::OnRender( ContentContext& renderer, ISize root_pass_size, - RenderTarget render_target, + const RenderTarget& render_target, Point position, Point parent_position, uint32_t pass_depth, @@ -532,10 +533,10 @@ bool EntityPass::OnRender( FilterInput::Make(texture, result.entity.GetTransformation().Invert())}; auto contents = - FilterContents::MakeBlend(result.entity.GetBlendMode(), inputs); + ColorFilterContents::MakeBlend(result.entity.GetBlendMode(), inputs); contents->SetCoverageCrop(result.entity.GetCoverage()); result.entity.SetContents(std::move(contents)); - result.entity.SetBlendMode(BlendMode::kSourceOver); + result.entity.SetBlendMode(BlendMode::kSource); } //-------------------------------------------------------------------------- @@ -550,7 +551,8 @@ bool EntityPass::OnRender( return true; } -void EntityPass::IterateAllEntities(std::function iterator) { +void EntityPass::IterateAllEntities( + const std::function& iterator) { if (!iterator) { return; } @@ -592,7 +594,7 @@ std::unique_ptr EntityPass::Clone() const { } void EntityPass::SetTransformation(Matrix xformation) { - xformation_ = std::move(xformation); + xformation_ = xformation; } void EntityPass::SetStencilDepth(size_t stencil_depth) { @@ -610,7 +612,7 @@ void EntityPass::SetBackdropFilter(std::optional proc) { "have already been appended to another pass."; } - backdrop_filter_proc_ = proc; + backdrop_filter_proc_ = std::move(proc); } } // namespace impeller diff --git a/impeller/entity/entity_pass.h b/impeller/entity/entity_pass.h index 5a5d3fffdf16a..cb7c3b5a47a87 100644 --- a/impeller/entity/entity_pass.h +++ b/impeller/entity/entity_pass.h @@ -49,9 +49,10 @@ class EntityPass { EntityPass* GetSuperpass() const; - bool Render(ContentContext& renderer, RenderTarget render_target) const; + bool Render(ContentContext& renderer, + const RenderTarget& render_target) const; - void IterateAllEntities(std::function iterator); + void IterateAllEntities(const std::function& iterator); void SetTransformation(Matrix xformation); @@ -103,7 +104,7 @@ class EntityPass { bool OnRender( ContentContext& renderer, ISize root_pass_size, - RenderTarget render_target, + const RenderTarget& render_target, Point position, Point parent_position, uint32_t pass_depth, diff --git a/impeller/entity/entity_unittests.cc b/impeller/entity/entity_unittests.cc index 1b2f95cfa7c59..f8c2b07c5fb85 100644 --- a/impeller/entity/entity_unittests.cc +++ b/impeller/entity/entity_unittests.cc @@ -3,6 +3,7 @@ // found in the LICENSE file. #include +#include #include #include #include @@ -10,16 +11,19 @@ #include "flutter/testing/testing.h" #include "fml/logging.h" +#include "fml/time/time_point.h" #include "gtest/gtest.h" #include "impeller/entity/contents/atlas_contents.h" #include "impeller/entity/contents/clip_contents.h" #include "impeller/entity/contents/contents.h" #include "impeller/entity/contents/filters/blend_filter_contents.h" +#include "impeller/entity/contents/filters/color_filter_contents.h" #include "impeller/entity/contents/filters/filter_contents.h" #include "impeller/entity/contents/filters/inputs/filter_input.h" +#include "impeller/entity/contents/linear_gradient_contents.h" #include "impeller/entity/contents/rrect_shadow_contents.h" +#include "impeller/entity/contents/runtime_effect_contents.h" #include "impeller/entity/contents/solid_color_contents.h" -#include "impeller/entity/contents/solid_stroke_contents.h" #include "impeller/entity/contents/text_contents.h" #include "impeller/entity/contents/texture_contents.h" #include "impeller/entity/contents/vertices_contents.h" @@ -27,6 +31,7 @@ #include "impeller/entity/entity_pass.h" #include "impeller/entity/entity_pass_delegate.h" #include "impeller/entity/entity_playground.h" +#include "impeller/entity/geometry.h" #include "impeller/geometry/color.h" #include "impeller/geometry/geometry_unittests.h" #include "impeller/geometry/path_builder.h" @@ -35,6 +40,7 @@ #include "impeller/playground/widgets.h" #include "impeller/renderer/render_pass.h" #include "impeller/renderer/vertex_buffer_builder.h" +#include "impeller/runtime_stage/runtime_stage.h" #include "impeller/tessellator/tessellator.h" #include "impeller/typographer/backends/skia/text_frame_skia.h" #include "impeller/typographer/backends/skia/text_render_context_skia.h" @@ -150,8 +156,8 @@ TEST_P(EntityTest, EntityPassCoverageRespectsCoverageLimit) { TEST_P(EntityTest, FilterCoverageRespectsCropRect) { auto image = CreateTextureForFixture("boston.jpg"); - auto filter = FilterContents::MakeBlend(BlendMode::kSoftLight, - FilterInput::Make({image})); + auto filter = ColorFilterContents::MakeBlend(BlendMode::kSoftLight, + FilterInput::Make({image})); // Without the crop rect (default behavior). { @@ -174,13 +180,25 @@ TEST_P(EntityTest, FilterCoverageRespectsCropRect) { } TEST_P(EntityTest, CanDrawRect) { + auto contents = std::make_shared(); + contents->SetGeometry(Geometry::MakeRect({100, 100, 100, 100})); + contents->SetColor(Color::Red()); + Entity entity; entity.SetTransformation(Matrix::MakeScale(GetContentScale())); - entity.SetContents(SolidColorContents::Make( - PathBuilder{}.AddRect({100, 100, 100, 100}).TakePath(), Color::Red())); + entity.SetContents(contents); + ASSERT_TRUE(OpenPlaygroundHere(entity)); } +TEST_P(EntityTest, GeometryBoundsAreTransformed) { + auto geometry = Geometry::MakeRect({100, 100, 100, 100}); + auto transform = Matrix::MakeScale({2.0, 2.0, 2.0}); + + ASSERT_RECT_NEAR(geometry->GetCoverage(transform).value(), + Rect(200, 200, 200, 200)); +} + TEST_P(EntityTest, ThreeStrokesInOnePath) { Path path = PathBuilder{} .MoveTo({100, 100}) @@ -193,23 +211,31 @@ TEST_P(EntityTest, ThreeStrokesInOnePath) { Entity entity; entity.SetTransformation(Matrix::MakeScale(GetContentScale())); - auto contents = std::make_unique(); - contents->SetPath(std::move(path)); + auto contents = std::make_unique(); + contents->SetGeometry(Geometry::MakeStrokePath(path, 5.0)); contents->SetColor(Color::Red()); - contents->SetStrokeSize(5.0); entity.SetContents(std::move(contents)); ASSERT_TRUE(OpenPlaygroundHere(entity)); } TEST_P(EntityTest, TriangleInsideASquare) { auto callback = [&](ContentContext& context, RenderPass& pass) { - Point a = IMPELLER_PLAYGROUND_POINT(Point(10, 10), 20, Color::White()); - Point b = IMPELLER_PLAYGROUND_POINT(Point(210, 10), 20, Color::White()); - Point c = IMPELLER_PLAYGROUND_POINT(Point(210, 210), 20, Color::White()); - Point d = IMPELLER_PLAYGROUND_POINT(Point(10, 210), 20, Color::White()); - Point e = IMPELLER_PLAYGROUND_POINT(Point(50, 50), 20, Color::White()); - Point f = IMPELLER_PLAYGROUND_POINT(Point(100, 50), 20, Color::White()); - Point g = IMPELLER_PLAYGROUND_POINT(Point(50, 150), 20, Color::White()); + Point offset(100, 100); + + Point a = + IMPELLER_PLAYGROUND_POINT(Point(10, 10) + offset, 20, Color::White()); + Point b = + IMPELLER_PLAYGROUND_POINT(Point(210, 10) + offset, 20, Color::White()); + Point c = + IMPELLER_PLAYGROUND_POINT(Point(210, 210) + offset, 20, Color::White()); + Point d = + IMPELLER_PLAYGROUND_POINT(Point(10, 210) + offset, 20, Color::White()); + Point e = + IMPELLER_PLAYGROUND_POINT(Point(50, 50) + offset, 20, Color::White()); + Point f = + IMPELLER_PLAYGROUND_POINT(Point(100, 50) + offset, 20, Color::White()); + Point g = + IMPELLER_PLAYGROUND_POINT(Point(50, 150) + offset, 20, Color::White()); Path path = PathBuilder{} .MoveTo(a) .LineTo(b) @@ -224,10 +250,9 @@ TEST_P(EntityTest, TriangleInsideASquare) { Entity entity; entity.SetTransformation(Matrix::MakeScale(GetContentScale())); - auto contents = std::make_unique(); - contents->SetPath(std::move(path)); + auto contents = std::make_unique(); + contents->SetGeometry(Geometry::MakeStrokePath(path, 20.0)); contents->SetColor(Color::Red()); - contents->SetStrokeSize(20.0); entity.SetContents(std::move(contents)); return entity.Render(context, pass); @@ -239,22 +264,14 @@ TEST_P(EntityTest, StrokeCapAndJoinTest) { const Point padding(300, 250); const Point margin(140, 180); - bool first_frame = true; auto callback = [&](ContentContext& context, RenderPass& pass) { - if (first_frame) { - first_frame = false; - ImGui::SetNextWindowSize({300, 100}); - ImGui::SetNextWindowPos( - {0 * padding.x + margin.x, 1.7f * padding.y + margin.y}); - } - // Slightly above sqrt(2) by default, so that right angles are just below // the limit and acute angles are over the limit (causing them to get // beveled). static Scalar miter_limit = 1.41421357; static Scalar width = 30; - ImGui::Begin("Controls"); + ImGui::Begin("Controls", nullptr, ImGuiWindowFlags_AlwaysAutoResize); { ImGui::SliderFloat("Miter limit", &miter_limit, 0, 30); ImGui::SliderFloat("Stroke width", &width, 0, 100); @@ -267,15 +284,11 @@ TEST_P(EntityTest, StrokeCapAndJoinTest) { auto world_matrix = Matrix::MakeScale(GetContentScale()); auto render_path = [width = width, &context, &pass, &world_matrix]( - Path path, SolidStrokeContents::Cap cap, - SolidStrokeContents::Join join) { - auto contents = std::make_unique(); - contents->SetPath(path); + const Path& path, Cap cap, Join join) { + auto contents = std::make_unique(); + contents->SetGeometry( + Geometry::MakeStrokePath(path, width, miter_limit, cap, join)); contents->SetColor(Color::Red()); - contents->SetStrokeSize(width); - contents->SetStrokeCap(cap); - contents->SetStrokeJoin(join); - contents->SetStrokeMiter(miter_limit); Entity entity; entity.SetTransformation(world_matrix); @@ -284,8 +297,8 @@ TEST_P(EntityTest, StrokeCapAndJoinTest) { auto coverage = entity.GetCoverage(); if (coverage.has_value()) { auto bounds_contents = std::make_unique(); - bounds_contents->SetPath( - PathBuilder{}.AddRect(entity.GetCoverage().value()).TakePath()); + bounds_contents->SetGeometry(Geometry::MakeFillPath( + PathBuilder{}.AddRect(entity.GetCoverage().value()).TakePath())); bounds_contents->SetColor(Color::Green().WithAlpha(0.5)); Entity bounds_entity; bounds_entity.SetContents(std::move(bounds_contents)); @@ -306,8 +319,7 @@ TEST_P(EntityTest, StrokeCapAndJoinTest) { auto [c, d] = IMPELLER_PLAYGROUND_LINE(off + c_def, off + d_def, r, Color::Black(), Color::White()); render_path(PathBuilder{}.AddCubicCurve(a, b, d, c).TakePath(), - SolidStrokeContents::Cap::kButt, - SolidStrokeContents::Join::kBevel); + Cap::kButt, Join::kBevel); } // Cap::kSquare demo. @@ -318,8 +330,7 @@ TEST_P(EntityTest, StrokeCapAndJoinTest) { auto [c, d] = IMPELLER_PLAYGROUND_LINE(off + c_def, off + d_def, r, Color::Black(), Color::White()); render_path(PathBuilder{}.AddCubicCurve(a, b, d, c).TakePath(), - SolidStrokeContents::Cap::kSquare, - SolidStrokeContents::Join::kBevel); + Cap::kSquare, Join::kBevel); } // Cap::kRound demo. @@ -330,8 +341,7 @@ TEST_P(EntityTest, StrokeCapAndJoinTest) { auto [c, d] = IMPELLER_PLAYGROUND_LINE(off + c_def, off + d_def, r, Color::Black(), Color::White()); render_path(PathBuilder{}.AddCubicCurve(a, b, d, c).TakePath(), - SolidStrokeContents::Cap::kRound, - SolidStrokeContents::Join::kBevel); + Cap::kRound, Join::kBevel); } // Join::kBevel demo. @@ -342,7 +352,7 @@ TEST_P(EntityTest, StrokeCapAndJoinTest) { Point c = IMPELLER_PLAYGROUND_POINT(off + c_def, r, Color::White()); render_path( PathBuilder{}.MoveTo(a).LineTo(b).LineTo(c).Close().TakePath(), - SolidStrokeContents::Cap::kButt, SolidStrokeContents::Join::kBevel); + Cap::kButt, Join::kBevel); } // Join::kMiter demo. @@ -353,7 +363,7 @@ TEST_P(EntityTest, StrokeCapAndJoinTest) { Point c = IMPELLER_PLAYGROUND_POINT(off + c_def, r, Color::White()); render_path( PathBuilder{}.MoveTo(a).LineTo(b).LineTo(c).Close().TakePath(), - SolidStrokeContents::Cap::kButt, SolidStrokeContents::Join::kMiter); + Cap::kButt, Join::kMiter); } // Join::kRound demo. @@ -364,7 +374,7 @@ TEST_P(EntityTest, StrokeCapAndJoinTest) { Point c = IMPELLER_PLAYGROUND_POINT(off + c_def, r, Color::White()); render_path( PathBuilder{}.MoveTo(a).LineTo(b).LineTo(c).Close().TakePath(), - SolidStrokeContents::Cap::kButt, SolidStrokeContents::Join::kRound); + Cap::kButt, Join::kRound); } return true; @@ -622,36 +632,46 @@ TEST_P(EntityTest, CubicCurveAndOverlapTest) { ASSERT_TRUE(OpenPlaygroundHere(entity)); } -TEST_P(EntityTest, SolidStrokeContentsSetStrokeCapsAndJoins) { +TEST_P(EntityTest, SolidColorContentsStrokeSetStrokeCapsAndJoins) { { - SolidStrokeContents stroke; + auto geometry = Geometry::MakeStrokePath(Path{}); + auto path_geometry = static_cast(geometry.get()); // Defaults. - ASSERT_EQ(stroke.GetStrokeCap(), SolidStrokeContents::Cap::kButt); - ASSERT_EQ(stroke.GetStrokeJoin(), SolidStrokeContents::Join::kMiter); + ASSERT_EQ(path_geometry->GetStrokeCap(), Cap::kButt); + ASSERT_EQ(path_geometry->GetStrokeJoin(), Join::kMiter); } { - SolidStrokeContents stroke; - stroke.SetStrokeCap(SolidStrokeContents::Cap::kSquare); - ASSERT_EQ(stroke.GetStrokeCap(), SolidStrokeContents::Cap::kSquare); + auto geometry = Geometry::MakeStrokePath(Path{}, 1.0, 4.0, Cap::kSquare); + auto path_geometry = static_cast(geometry.get()); + ASSERT_EQ(path_geometry->GetStrokeCap(), Cap::kSquare); } { - SolidStrokeContents stroke; - stroke.SetStrokeCap(SolidStrokeContents::Cap::kRound); - ASSERT_EQ(stroke.GetStrokeCap(), SolidStrokeContents::Cap::kRound); + auto geometry = Geometry::MakeStrokePath(Path{}, 1.0, 4.0, Cap::kRound); + auto path_geometry = static_cast(geometry.get()); + ASSERT_EQ(path_geometry->GetStrokeCap(), Cap::kRound); } } -TEST_P(EntityTest, SolidStrokeContentsSetMiter) { - SolidStrokeContents contents; - ASSERT_FLOAT_EQ(contents.GetStrokeMiter(), 4); +TEST_P(EntityTest, SolidColorContentsStrokeSetMiterLimit) { + { + auto geometry = Geometry::MakeStrokePath(Path{}); + auto path_geometry = static_cast(geometry.get()); + ASSERT_FLOAT_EQ(path_geometry->GetMiterLimit(), 4); + } - contents.SetStrokeMiter(8); - ASSERT_FLOAT_EQ(contents.GetStrokeMiter(), 8); + { + auto geometry = Geometry::MakeStrokePath(Path{}, 1.0, /*miter_limit=*/8.0); + auto path_geometry = static_cast(geometry.get()); + ASSERT_FLOAT_EQ(path_geometry->GetMiterLimit(), 8); + } - contents.SetStrokeMiter(-1); - ASSERT_FLOAT_EQ(contents.GetStrokeMiter(), 8); + { + auto geometry = Geometry::MakeStrokePath(Path{}, 1.0, /*miter_limit=*/-1.0); + auto path_geometry = static_cast(geometry.get()); + ASSERT_FLOAT_EQ(path_geometry->GetMiterLimit(), 4); + } } TEST_P(EntityTest, BlendingModeOptions) { @@ -713,14 +733,7 @@ TEST_P(EntityTest, BlendingModeOptions) { }; } - bool first_frame = true; auto callback = [&](ContentContext& context, RenderPass& pass) { - if (first_frame) { - first_frame = false; - ImGui::SetNextWindowSize({350, 200}); - ImGui::SetNextWindowPos({200, 450}); - } - auto world_matrix = Matrix::MakeScale(GetContentScale()); auto draw_rect = [&context, &pass, &world_matrix]( Rect rect, Color color, BlendMode blend_mode) -> bool { @@ -764,7 +777,7 @@ TEST_P(EntityTest, BlendingModeOptions) { return pass.AddCommand(std::move(cmd)); }; - ImGui::Begin("Controls"); + ImGui::Begin("Controls", nullptr, ImGuiWindowFlags_AlwaysAutoResize); static Color color1(1, 0, 0, 0.5), color2(0, 1, 0, 0.5); ImGui::ColorEdit4("Color 1", reinterpret_cast(&color1)); ImGui::ColorEdit4("Color 2", reinterpret_cast(&color2)); @@ -830,10 +843,10 @@ TEST_P(EntityTest, Filters) { auto fi_boston = FilterInput::Make(boston); auto fi_kalimba = FilterInput::Make(kalimba); - auto blend0 = FilterContents::MakeBlend(BlendMode::kModulate, - {fi_kalimba, fi_boston}); + std::shared_ptr blend0 = ColorFilterContents::MakeBlend( + BlendMode::kModulate, {fi_kalimba, fi_boston}); - auto blend1 = FilterContents::MakeBlend( + auto blend1 = ColorFilterContents::MakeBlend( BlendMode::kScreen, {fi_bridge, FilterInput::Make(blend0), fi_bridge, fi_bridge}); @@ -851,13 +864,7 @@ TEST_P(EntityTest, GaussianBlurFilter) { auto boston = CreateTextureForFixture("boston.jpg"); ASSERT_TRUE(boston); - bool first_frame = true; auto callback = [&](ContentContext& context, RenderPass& pass) -> bool { - if (first_frame) { - first_frame = false; - ImGui::SetNextWindowPos({10, 10}); - } - const char* input_type_names[] = {"Texture", "Solid Color"}; const char* blur_type_names[] = {"Image blur", "Mask blur"}; const char* pass_variation_names[] = {"Two pass", "Directional"}; @@ -939,7 +946,8 @@ TEST_P(EntityTest, GaussianBlurFilter) { } else { auto fill = std::make_shared(); fill->SetColor(input_color); - fill->SetPath(PathBuilder{}.AddRect(input_rect).TakePath()); + fill->SetGeometry( + Geometry::MakeFillPath(PathBuilder{}.AddRect(input_rect).TakePath())); input = fill; input_size = input_rect.size; @@ -1006,13 +1014,7 @@ TEST_P(EntityTest, MorphologyFilter) { auto boston = CreateTextureForFixture("boston.jpg"); ASSERT_TRUE(boston); - bool first_frame = true; auto callback = [&](ContentContext& context, RenderPass& pass) -> bool { - if (first_frame) { - first_frame = false; - ImGui::SetNextWindowPos({10, 10}); - } - const char* morphology_type_names[] = {"Dilate", "Erode"}; const FilterContents::MorphType morphology_types[] = { FilterContents::MorphType::kDilate, FilterContents::MorphType::kErode}; @@ -1124,12 +1126,13 @@ TEST_P(EntityTest, ContentsGetBoundsForEmptyPathReturnsNullopt) { TEST_P(EntityTest, SolidStrokeCoverageIsCorrect) { { + auto geometry = Geometry::MakeStrokePath( + PathBuilder{}.AddLine({0, 0}, {10, 10}).TakePath(), 4.0, 4.0, + Cap::kButt, Join::kBevel); + Entity entity; - auto contents = std::make_unique(); - contents->SetPath(PathBuilder{}.AddLine({0, 0}, {10, 10}).TakePath()); - contents->SetStrokeCap(SolidStrokeContents::Cap::kButt); - contents->SetStrokeJoin(SolidStrokeContents::Join::kBevel); - contents->SetStrokeSize(4); + auto contents = std::make_unique(); + contents->SetGeometry(std::move(geometry)); contents->SetColor(Color::Black()); entity.SetContents(std::move(contents)); auto actual = entity.GetCoverage(); @@ -1140,12 +1143,13 @@ TEST_P(EntityTest, SolidStrokeCoverageIsCorrect) { // Cover the Cap::kSquare case. { + auto geometry = Geometry::MakeStrokePath( + PathBuilder{}.AddLine({0, 0}, {10, 10}).TakePath(), 4.0, 4.0, + Cap::kSquare, Join::kBevel); + Entity entity; - auto contents = std::make_unique(); - contents->SetPath(PathBuilder{}.AddLine({0, 0}, {10, 10}).TakePath()); - contents->SetStrokeCap(SolidStrokeContents::Cap::kSquare); - contents->SetStrokeJoin(SolidStrokeContents::Join::kBevel); - contents->SetStrokeSize(4); + auto contents = std::make_unique(); + contents->SetGeometry(std::move(geometry)); contents->SetColor(Color::Black()); entity.SetContents(std::move(contents)); auto actual = entity.GetCoverage(); @@ -1157,13 +1161,13 @@ TEST_P(EntityTest, SolidStrokeCoverageIsCorrect) { // Cover the Join::kMiter case. { + auto geometry = Geometry::MakeStrokePath( + PathBuilder{}.AddLine({0, 0}, {10, 10}).TakePath(), 4.0, 2.0, + Cap::kSquare, Join::kMiter); + Entity entity; - auto contents = std::make_unique(); - contents->SetPath(PathBuilder{}.AddLine({0, 0}, {10, 10}).TakePath()); - contents->SetStrokeCap(SolidStrokeContents::Cap::kSquare); - contents->SetStrokeJoin(SolidStrokeContents::Join::kMiter); - contents->SetStrokeSize(4); - contents->SetStrokeMiter(2); + auto contents = std::make_unique(); + contents->SetGeometry(std::move(geometry)); contents->SetColor(Color::Black()); entity.SetContents(std::move(contents)); auto actual = entity.GetCoverage(); @@ -1175,8 +1179,8 @@ TEST_P(EntityTest, SolidStrokeCoverageIsCorrect) { TEST_P(EntityTest, BorderMaskBlurCoverageIsCorrect) { auto fill = std::make_shared(); - fill->SetPath( - PathBuilder{}.AddRect(Rect::MakeXYWH(0, 0, 300, 400)).TakePath()); + fill->SetGeometry(Geometry::MakeFillPath( + PathBuilder{}.AddRect(Rect::MakeXYWH(0, 0, 300, 400)).TakePath())); fill->SetColor(Color::CornflowerBlue()); auto border_mask_blur = FilterContents::MakeBorderMaskBlur( FilterInput::Make(fill), Radius{3}, Radius{4}); @@ -1209,7 +1213,8 @@ TEST_P(EntityTest, DrawVerticesSolidColorTrianglesWithoutIndices) { VertexMode::kTriangle, Rect(100, 100, 300, 300)); std::shared_ptr contents = - std::make_shared(vertices); + std::make_shared(); + contents->SetGeometry(Geometry::MakeVertices(vertices)); contents->SetBlendMode(BlendMode::kSourceOver); contents->SetColor(Color::Red().WithAlpha(0.5)); @@ -1220,6 +1225,37 @@ TEST_P(EntityTest, DrawVerticesSolidColorTrianglesWithoutIndices) { ASSERT_TRUE(OpenPlaygroundHere(e)); } +TEST_P(EntityTest, DrawVerticesLinearGradientWithoutIndices) { + std::vector positions = {Point(100, 300), Point(200, 100), + Point(300, 300)}; + + Vertices vertices = Vertices(positions, {} /* indices */, {} /* colors */, + VertexMode::kTriangle, Rect(100, 100, 300, 300)); + + std::vector colors = {Color{0.9568, 0.2627, 0.2118, 1.0}, + Color{0.1294, 0.5882, 0.9529, 1.0}}; + std::vector stops = {0.0, 1.0}; + Matrix matrix = { + 1, 0, 0, 0, // + 0, 1, 0, 0, // + 0, 0, 1, 0, // + 0, 0, 0, 1 // + }; + auto contents = std::make_shared(); + contents->SetEndPoints({100, 100}, {300, 300}); + contents->SetColors(std::move(colors)); + contents->SetStops(std::move(stops)); + contents->SetTileMode(Entity::TileMode::kRepeat); + contents->SetMatrix(matrix); + contents->SetGeometry(Geometry::MakeVertices(vertices)); + + Entity e; + e.SetTransformation(Matrix::MakeScale(GetContentScale())); + e.SetContents(contents); + + ASSERT_TRUE(OpenPlaygroundHere(e)); +} + TEST_P(EntityTest, DrawVerticesSolidColorTrianglesWithIndices) { std::vector positions = {Point(100, 300), Point(200, 100), Point(300, 300), Point(200, 500)}; @@ -1229,7 +1265,8 @@ TEST_P(EntityTest, DrawVerticesSolidColorTrianglesWithIndices) { VertexMode::kTriangle, Rect(100, 100, 300, 300)); std::shared_ptr contents = - std::make_shared(vertices); + std::make_shared(); + contents->SetGeometry(Geometry::MakeVertices(vertices)); contents->SetColor(Color::White()); Entity e; e.SetTransformation(Matrix::MakeScale(GetContentScale())); @@ -1405,7 +1442,8 @@ TEST_P(EntityTest, SolidFillCoverageIsCorrect) { auto fill = std::make_shared(); fill->SetColor(Color::CornflowerBlue()); auto expected = Rect::MakeLTRB(100, 110, 200, 220); - fill->SetPath(PathBuilder{}.AddRect(expected).TakePath()); + fill->SetGeometry( + Geometry::MakeFillPath(PathBuilder{}.AddRect(expected).TakePath())); auto coverage = fill->GetCoverage({}); ASSERT_TRUE(coverage.has_value()); @@ -1416,8 +1454,8 @@ TEST_P(EntityTest, SolidFillCoverageIsCorrect) { { auto fill = std::make_shared(); fill->SetColor(Color::CornflowerBlue()); - fill->SetPath( - PathBuilder{}.AddRect(Rect::MakeLTRB(100, 110, 200, 220)).TakePath()); + fill->SetGeometry(Geometry::MakeFillPath( + PathBuilder{}.AddRect(Rect::MakeLTRB(100, 110, 200, 220)).TakePath())); Entity entity; entity.SetTransformation(Matrix::MakeTranslation(Vector2(4, 5))); @@ -1433,8 +1471,8 @@ TEST_P(EntityTest, SolidFillCoverageIsCorrect) { { auto fill = std::make_shared(); fill->SetColor(Color::WhiteTransparent()); - fill->SetPath( - PathBuilder{}.AddRect(Rect::MakeLTRB(100, 110, 200, 220)).TakePath()); + fill->SetGeometry(Geometry::MakeFillPath( + PathBuilder{}.AddRect(Rect::MakeLTRB(100, 110, 200, 220)).TakePath())); auto coverage = fill->GetCoverage({}); ASSERT_FALSE(coverage.has_value()); @@ -1455,8 +1493,8 @@ TEST_P(EntityTest, SolidFillShouldRenderIsCorrect) { { auto fill = std::make_shared(); fill->SetColor(Color::CornflowerBlue()); - fill->SetPath( - PathBuilder{}.AddRect(Rect::MakeLTRB(0, 0, 100, 100)).TakePath()); + fill->SetGeometry(Geometry::MakeFillPath( + PathBuilder{}.AddRect(Rect::MakeLTRB(0, 0, 100, 100)).TakePath())); ASSERT_TRUE(fill->ShouldRender(Entity{}, Rect::MakeSize(Size{100, 100}))); ASSERT_FALSE( fill->ShouldRender(Entity{}, Rect::MakeLTRB(-100, -100, -50, -50))); @@ -1466,7 +1504,7 @@ TEST_P(EntityTest, SolidFillShouldRenderIsCorrect) { { auto fill = std::make_shared(); fill->SetColor(Color::CornflowerBlue()); - fill->SetCover(true); + fill->SetGeometry(Geometry::MakeCover()); ASSERT_TRUE(fill->ShouldRender(Entity{}, Rect::MakeSize(Size{100, 100}))); ASSERT_TRUE( fill->ShouldRender(Entity{}, Rect::MakeLTRB(-100, -100, -50, -50))); @@ -1480,8 +1518,8 @@ TEST_P(EntityTest, ClipContentsShouldRenderIsCorrect) { { auto clip = std::make_shared(); ASSERT_TRUE(clip->ShouldRender(Entity{}, Rect::MakeSize(Size{100, 100}))); - clip->SetPath( - PathBuilder{}.AddRect(Rect::MakeLTRB(0, 0, 100, 100)).TakePath()); + clip->SetGeometry(Geometry::MakeFillPath( + PathBuilder{}.AddRect(Rect::MakeLTRB(0, 0, 100, 100)).TakePath())); ASSERT_TRUE(clip->ShouldRender(Entity{}, Rect::MakeSize(Size{100, 100}))); ASSERT_TRUE( clip->ShouldRender(Entity{}, Rect::MakeLTRB(-100, -100, -50, -50))); @@ -1498,13 +1536,7 @@ TEST_P(EntityTest, ClipContentsShouldRenderIsCorrect) { } TEST_P(EntityTest, RRectShadowTest) { - bool first_frame = true; auto callback = [&](ContentContext& context, RenderPass& pass) { - if (first_frame) { - first_frame = false; - ImGui::SetNextWindowPos({10, 10}); - } - static Color color = Color::Red(); static float corner_radius = 100; static float blur_radius = 100; @@ -1540,8 +1572,8 @@ TEST_P(EntityTest, RRectShadowTest) { auto coverage = entity.GetCoverage(); if (show_coverage && coverage.has_value()) { auto bounds_contents = std::make_unique(); - bounds_contents->SetPath( - PathBuilder{}.AddRect(entity.GetCoverage().value()).TakePath()); + bounds_contents->SetGeometry(Geometry::MakeFillPath( + PathBuilder{}.AddRect(entity.GetCoverage().value()).TakePath())); bounds_contents->SetColor(coverage_color.Premultiply()); Entity bounds_entity; bounds_entity.SetContents(std::move(bounds_contents)); @@ -1556,8 +1588,8 @@ TEST_P(EntityTest, RRectShadowTest) { TEST_P(EntityTest, ColorMatrixFilterCoverageIsCorrect) { // Set up a simple color background. auto fill = std::make_shared(); - fill->SetPath( - PathBuilder{}.AddRect(Rect::MakeXYWH(0, 0, 300, 400)).TakePath()); + fill->SetGeometry(Geometry::MakeFillPath( + PathBuilder{}.AddRect(Rect::MakeXYWH(0, 0, 300, 400)).TakePath())); fill->SetColor(Color::Coral()); // Set the color matrix filter. @@ -1569,7 +1601,7 @@ TEST_P(EntityTest, ColorMatrixFilterCoverageIsCorrect) { }; auto filter = - FilterContents::MakeColorMatrix(FilterInput::Make(fill), matrix); + ColorFilterContents::MakeColorMatrix(FilterInput::Make(fill), matrix); Entity e; e.SetTransformation(Matrix()); @@ -1586,14 +1618,7 @@ TEST_P(EntityTest, ColorMatrixFilterEditable) { auto bay_bridge = CreateTextureForFixture("bay_bridge.jpg"); ASSERT_TRUE(bay_bridge); - bool first_frame = true; auto callback = [&](ContentContext& context, RenderPass& pass) -> bool { - // If this is the first frame, set the ImGui's initial size and postion. - if (first_frame) { - first_frame = false; - ImGui::SetNextWindowPos({10, 10}); - } - // UI state. static FilterContents::ColorMatrix color_matrix = { 1, 0, 0, 0, 0, // @@ -1626,8 +1651,8 @@ TEST_P(EntityTest, ColorMatrixFilterEditable) { ImGui::End(); // Set the color matrix filter. - auto filter = FilterContents::MakeColorMatrix(FilterInput::Make(bay_bridge), - color_matrix); + auto filter = ColorFilterContents::MakeColorMatrix( + FilterInput::Make(bay_bridge), color_matrix); // Define the entity with the color matrix filter. Entity entity; @@ -1650,11 +1675,12 @@ TEST_P(EntityTest, ColorMatrixFilterEditable) { TEST_P(EntityTest, LinearToSrgbFilterCoverageIsCorrect) { // Set up a simple color background. auto fill = std::make_shared(); - fill->SetPath( - PathBuilder{}.AddRect(Rect::MakeXYWH(0, 0, 300, 400)).TakePath()); + fill->SetGeometry(Geometry::MakeFillPath( + PathBuilder{}.AddRect(Rect::MakeXYWH(0, 0, 300, 400)).TakePath())); fill->SetColor(Color::MintCream()); - auto filter = FilterContents::MakeLinearToSrgbFilter(FilterInput::Make(fill)); + auto filter = + ColorFilterContents::MakeLinearToSrgbFilter(FilterInput::Make(fill)); Entity e; e.SetTransformation(Matrix()); @@ -1673,7 +1699,7 @@ TEST_P(EntityTest, LinearToSrgbFilter) { auto callback = [&](ContentContext& context, RenderPass& pass) -> bool { auto filtered = - FilterContents::MakeLinearToSrgbFilter(FilterInput::Make(image)); + ColorFilterContents::MakeLinearToSrgbFilter(FilterInput::Make(image)); // Define the entity that will serve as the control image as a Gaussian blur // filter with no filter at all. @@ -1701,11 +1727,12 @@ TEST_P(EntityTest, LinearToSrgbFilter) { TEST_P(EntityTest, SrgbToLinearFilterCoverageIsCorrect) { // Set up a simple color background. auto fill = std::make_shared(); - fill->SetPath( - PathBuilder{}.AddRect(Rect::MakeXYWH(0, 0, 300, 400)).TakePath()); + fill->SetGeometry(Geometry::MakeFillPath( + PathBuilder{}.AddRect(Rect::MakeXYWH(0, 0, 300, 400)).TakePath())); fill->SetColor(Color::DeepPink()); - auto filter = FilterContents::MakeSrgbToLinearFilter(FilterInput::Make(fill)); + auto filter = + ColorFilterContents::MakeSrgbToLinearFilter(FilterInput::Make(fill)); Entity e; e.SetTransformation(Matrix()); @@ -1724,7 +1751,7 @@ TEST_P(EntityTest, SrgbToLinearFilter) { auto callback = [&](ContentContext& context, RenderPass& pass) -> bool { auto filtered = - FilterContents::MakeSrgbToLinearFilter(FilterInput::Make(image)); + ColorFilterContents::MakeSrgbToLinearFilter(FilterInput::Make(image)); // Define the entity that will serve as the control image as a Gaussian blur // filter with no filter at all. @@ -1994,7 +2021,7 @@ TEST_P(EntityTest, SdfText) { EXPECT_FALSE(lazy_glyph_atlas->HasColor()); auto text_contents = std::make_shared(); - text_contents->SetTextFrame(std::move(frame)); + text_contents->SetTextFrame(frame); text_contents->SetGlyphAtlas(std::move(lazy_glyph_atlas)); text_contents->SetColor(Color(1.0, 0.0, 0.0, 1.0)); Entity entity; @@ -2009,5 +2036,138 @@ TEST_P(EntityTest, SdfText) { ASSERT_TRUE(OpenPlaygroundHere(callback)); } +static Vector3 RGBToYUV(Vector3 rgb, YUVColorSpace yuv_color_space) { + Vector3 yuv; + switch (yuv_color_space) { + case YUVColorSpace::kBT601FullRange: + yuv.x = rgb.x * 0.299 + rgb.y * 0.587 + rgb.z * 0.114; + yuv.y = rgb.x * -0.169 + rgb.y * -0.331 + rgb.z * 0.5 + 0.5; + yuv.z = rgb.x * 0.5 + rgb.y * -0.419 + rgb.z * -0.081 + 0.5; + break; + case YUVColorSpace::kBT601LimitedRange: + yuv.x = rgb.x * 0.257 + rgb.y * 0.516 + rgb.z * 0.100 + 0.063; + yuv.y = rgb.x * -0.145 + rgb.y * -0.291 + rgb.z * 0.439 + 0.5; + yuv.z = rgb.x * 0.429 + rgb.y * -0.368 + rgb.z * -0.071 + 0.5; + break; + } + return yuv; +} + +static std::vector> CreateTestYUVTextures( + Context* context, + YUVColorSpace yuv_color_space) { + Vector3 red = {244.0 / 255.0, 67.0 / 255.0, 54.0 / 255.0}; + Vector3 green = {76.0 / 255.0, 175.0 / 255.0, 80.0 / 255.0}; + Vector3 blue = {33.0 / 255.0, 150.0 / 255.0, 243.0 / 255.0}; + Vector3 white = {1.0, 1.0, 1.0}; + Vector3 red_yuv = RGBToYUV(red, yuv_color_space); + Vector3 green_yuv = RGBToYUV(green, yuv_color_space); + Vector3 blue_yuv = RGBToYUV(blue, yuv_color_space); + Vector3 white_yuv = RGBToYUV(white, yuv_color_space); + std::vector yuvs{red_yuv, green_yuv, blue_yuv, white_yuv}; + std::vector y_data; + std::vector uv_data; + for (int i = 0; i < 4; i++) { + auto yuv = yuvs[i]; + uint8_t y = std::round(yuv.x * 255.0); + uint8_t u = std::round(yuv.y * 255.0); + uint8_t v = std::round(yuv.z * 255.0); + for (int j = 0; j < 16; j++) { + y_data.push_back(y); + } + for (int j = 0; j < 8; j++) { + uv_data.push_back(j % 2 == 0 ? u : v); + } + } + impeller::TextureDescriptor y_texture_descriptor; + y_texture_descriptor.storage_mode = impeller::StorageMode::kHostVisible; + y_texture_descriptor.format = PixelFormat::kR8UNormInt; + y_texture_descriptor.size = {8, 8}; + auto y_texture = + context->GetResourceAllocator()->CreateTexture(y_texture_descriptor); + auto y_mapping = std::make_shared(y_data); + if (!y_texture->SetContents(y_mapping)) { + FML_DLOG(ERROR) << "Could not copy contents into Y texture."; + } + + impeller::TextureDescriptor uv_texture_descriptor; + uv_texture_descriptor.storage_mode = impeller::StorageMode::kHostVisible; + uv_texture_descriptor.format = PixelFormat::kR8G8UNormInt; + uv_texture_descriptor.size = {4, 4}; + auto uv_texture = + context->GetResourceAllocator()->CreateTexture(uv_texture_descriptor); + auto uv_mapping = std::make_shared(uv_data); + if (!uv_texture->SetContents(uv_mapping)) { + FML_DLOG(ERROR) << "Could not copy contents into UV texture."; + } + + return {y_texture, uv_texture}; +} + +TEST_P(EntityTest, YUVToRGBFilter) { + if (GetParam() == PlaygroundBackend::kOpenGLES) { + // TODO(114588) : Support YUV to RGB filter on OpenGLES backend. + GTEST_SKIP_("YUV to RGB filter is not supported on OpenGLES backend yet."); + } + + auto callback = [&](ContentContext& context, RenderPass& pass) -> bool { + YUVColorSpace yuv_color_space_array[2]{YUVColorSpace::kBT601FullRange, + YUVColorSpace::kBT601LimitedRange}; + for (int i = 0; i < 2; i++) { + auto yuv_color_space = yuv_color_space_array[i]; + auto textures = + CreateTestYUVTextures(GetContext().get(), yuv_color_space); + auto filter_contents = FilterContents::MakeYUVToRGBFilter( + textures[0], textures[1], yuv_color_space); + Entity filter_entity; + filter_entity.SetContents(filter_contents); + auto snapshot = filter_contents->RenderToSnapshot(context, filter_entity); + + Entity entity; + auto contents = TextureContents::MakeRect(Rect::MakeLTRB(0, 0, 256, 256)); + contents->SetTexture(snapshot->texture); + contents->SetSourceRect(Rect::MakeSize(snapshot->texture->GetSize())); + entity.SetContents(contents); + entity.SetTransformation( + Matrix::MakeTranslation({static_cast(100 + 400 * i), 300})); + entity.Render(context, pass); + } + return true; + }; + ASSERT_TRUE(OpenPlaygroundHere(callback)); +} + +TEST_P(EntityTest, RuntimeEffect) { + if (GetParam() != PlaygroundBackend::kMetal) { + GTEST_SKIP_("This test only has a Metal fixture at the moment."); + } + + auto callback = [&](ContentContext& context, RenderPass& pass) -> bool { + auto contents = std::make_shared(); + contents->SetGeometry(Geometry::MakeCover()); + + auto runtime_stage = + OpenAssetAsRuntimeStage("runtime_stage_example.frag.iplr"); + contents->SetRuntimeStage(runtime_stage); + + struct FragUniforms { + Scalar iTime; + Vector2 iResolution; + } frag_uniforms = { + .iTime = static_cast(GetSecondsElapsed()), + .iResolution = Vector2(GetWindowSize().width, GetWindowSize().height), + }; + auto uniform_data = std::make_shared>(); + uniform_data->resize(sizeof(FragUniforms)); + memcpy(uniform_data->data(), &frag_uniforms, sizeof(FragUniforms)); + contents->SetUniformData(uniform_data); + + Entity entity; + entity.SetContents(contents); + return contents->Render(context, entity, pass); + }; + ASSERT_TRUE(OpenPlaygroundHere(callback)); +} + } // namespace testing } // namespace impeller diff --git a/impeller/entity/geometry.cc b/impeller/entity/geometry.cc new file mode 100644 index 0000000000000..c630ea93be641 --- /dev/null +++ b/impeller/entity/geometry.cc @@ -0,0 +1,683 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "impeller/entity/geometry.h" +#include "impeller/entity/contents/content_context.h" +#include "impeller/entity/position_color.vert.h" +#include "impeller/geometry/path_builder.h" +#include "impeller/renderer/device_buffer.h" +#include "impeller/renderer/render_pass.h" +#include "impeller/tessellator/tessellator.h" + +namespace impeller { + +Geometry::Geometry() = default; + +Geometry::~Geometry() = default; + +// static +std::unique_ptr Geometry::MakeVertices( + const Vertices& vertices) { + return std::make_unique(vertices); +} + +std::unique_ptr Geometry::MakeFillPath(const Path& path) { + return std::make_unique(path); +} + +std::unique_ptr Geometry::MakeStrokePath(const Path& path, + Scalar stroke_width, + Scalar miter_limit, + Cap stroke_cap, + Join stroke_join) { + // Skia behaves like this. + if (miter_limit < 0) { + miter_limit = 4.0; + } + return std::make_unique(path, stroke_width, miter_limit, + stroke_cap, stroke_join); +} + +std::unique_ptr Geometry::MakeCover() { + return std::make_unique(); +} + +std::unique_ptr Geometry::MakeRect(Rect rect) { + return std::make_unique(rect); +} + +/////// Vertices Geometry /////// + +VerticesGeometry::VerticesGeometry(const Vertices& vertices) + : vertices_(vertices) {} + +VerticesGeometry::~VerticesGeometry() = default; + +static PrimitiveType GetPrimitiveType(const Vertices& vertices) { + switch (vertices.GetMode()) { + case VertexMode::kTriangle: + return PrimitiveType::kTriangle; + case VertexMode::kTriangleStrip: + return PrimitiveType::kTriangleStrip; + } +} + +GeometryResult VerticesGeometry::GetPositionBuffer( + const ContentContext& renderer, + const Entity& entity, + RenderPass& pass) { + if (!vertices_.IsValid()) { + return {}; + } + + auto vertex_count = vertices_.GetPositions().size(); + size_t total_vtx_bytes = vertex_count * sizeof(float) * 2; + size_t total_idx_bytes = vertices_.GetIndices().size() * sizeof(uint16_t); + + DeviceBufferDescriptor buffer_desc; + buffer_desc.size = total_vtx_bytes + total_idx_bytes; + buffer_desc.storage_mode = StorageMode::kHostVisible; + + auto buffer = + renderer.GetContext()->GetResourceAllocator()->CreateBuffer(buffer_desc); + + const auto& positions = vertices_.GetPositions(); + if (!buffer->CopyHostBuffer( + reinterpret_cast(positions.data()), + Range{0, total_vtx_bytes}, 0)) { + return {}; + } + if (!buffer->CopyHostBuffer(reinterpret_cast(const_cast( + vertices_.GetIndices().data())), + Range{0, total_idx_bytes}, total_vtx_bytes)) { + return {}; + } + + return GeometryResult{ + .type = GetPrimitiveType(vertices_), + .vertex_buffer = + { + .vertex_buffer = {.buffer = buffer, + .range = Range{0, total_vtx_bytes}}, + .index_buffer = {.buffer = buffer, + .range = + Range{total_vtx_bytes, total_idx_bytes}}, + .index_count = vertices_.GetIndices().size(), + .index_type = IndexType::k16bit, + }, + .prevent_overdraw = false, + }; +} + +GeometryResult VerticesGeometry::GetPositionColorBuffer( + const ContentContext& renderer, + const Entity& entity, + RenderPass& pass, + Color paint_color, + BlendMode blend_mode) { + using VS = GeometryColorPipeline::VertexShader; + + if (!vertices_.IsValid()) { + return {}; + } + + auto vertex_count = vertices_.GetPositions().size(); + std::vector vertex_data(vertex_count); + { + const auto& positions = vertices_.GetPositions(); + const auto& colors = vertices_.GetColors(); + for (size_t i = 0; i < vertex_count; i++) { + auto color = Color::BlendColor(paint_color, colors[i], blend_mode); + vertex_data[i] = { + .position = positions[i], + .color = color, + }; + } + } + + size_t total_vtx_bytes = vertex_data.size() * sizeof(VS::PerVertexData); + size_t total_idx_bytes = vertices_.GetIndices().size() * sizeof(uint16_t); + + DeviceBufferDescriptor buffer_desc; + buffer_desc.size = total_vtx_bytes + total_idx_bytes; + buffer_desc.storage_mode = StorageMode::kHostVisible; + + auto buffer = + renderer.GetContext()->GetResourceAllocator()->CreateBuffer(buffer_desc); + + if (!buffer->CopyHostBuffer(reinterpret_cast(vertex_data.data()), + Range{0, total_vtx_bytes}, 0)) { + return {}; + } + if (!buffer->CopyHostBuffer(reinterpret_cast(const_cast( + vertices_.GetIndices().data())), + Range{0, total_idx_bytes}, total_vtx_bytes)) { + return {}; + } + + return GeometryResult{ + .type = GetPrimitiveType(vertices_), + .vertex_buffer = + { + .vertex_buffer = {.buffer = buffer, + .range = Range{0, total_vtx_bytes}}, + .index_buffer = {.buffer = buffer, + .range = + Range{total_vtx_bytes, total_idx_bytes}}, + .index_count = vertices_.GetIndices().size(), + .index_type = IndexType::k16bit, + }, + .prevent_overdraw = false, + }; +} + +GeometryResult VerticesGeometry::GetPositionUVBuffer( + const ContentContext& renderer, + const Entity& entity, + RenderPass& pass) { + // TODO(jonahwilliams): support texture coordinates in vertices + // https://github.com/flutter/flutter/issues/109956 + return {}; +} + +GeometryVertexType VerticesGeometry::GetVertexType() const { + if (vertices_.GetColors().size()) { + return GeometryVertexType::kColor; + } + return GeometryVertexType::kPosition; +} + +std::optional VerticesGeometry::GetCoverage( + const Matrix& transform) const { + return vertices_.GetTransformedBoundingBox(transform); +} + +/////// Path Geometry /////// + +FillPathGeometry::FillPathGeometry(const Path& path) : path_(path) {} + +FillPathGeometry::~FillPathGeometry() = default; + +GeometryResult FillPathGeometry::GetPositionBuffer( + const ContentContext& renderer, + const Entity& entity, + RenderPass& pass) { + VertexBuffer vertex_buffer; + auto& host_buffer = pass.GetTransientsBuffer(); + auto tesselation_result = renderer.GetTessellator()->Tessellate( + path_.GetFillType(), path_.CreatePolyline(), + [&vertex_buffer, &host_buffer]( + const float* vertices, size_t vertices_count, const uint16_t* indices, + size_t indices_count) { + vertex_buffer.vertex_buffer = host_buffer.Emplace( + vertices, vertices_count * sizeof(float), alignof(float)); + vertex_buffer.index_buffer = host_buffer.Emplace( + indices, indices_count * sizeof(uint16_t), alignof(uint16_t)); + vertex_buffer.index_count = indices_count; + vertex_buffer.index_type = IndexType::k16bit; + return true; + }); + if (tesselation_result != Tessellator::Result::kSuccess) { + return {}; + } + return GeometryResult{ + .type = PrimitiveType::kTriangle, + .vertex_buffer = vertex_buffer, + .prevent_overdraw = false, + }; +} + +GeometryVertexType FillPathGeometry::GetVertexType() const { + return GeometryVertexType::kPosition; +} + +std::optional FillPathGeometry::GetCoverage( + const Matrix& transform) const { + return path_.GetTransformedBoundingBox(transform); +} + +///// Stroke Geometry ////// + +StrokePathGeometry::StrokePathGeometry(const Path& path, + Scalar stroke_width, + Scalar miter_limit, + Cap stroke_cap, + Join stroke_join) + : path_(path), + stroke_width_(stroke_width), + miter_limit_(miter_limit), + stroke_cap_(stroke_cap), + stroke_join_(stroke_join) {} + +StrokePathGeometry::~StrokePathGeometry() = default; + +Scalar StrokePathGeometry::GetStrokeWidth() const { + return stroke_width_; +} + +Scalar StrokePathGeometry::GetMiterLimit() const { + return miter_limit_; +} + +Cap StrokePathGeometry::GetStrokeCap() const { + return stroke_cap_; +} + +Join StrokePathGeometry::GetStrokeJoin() const { + return stroke_join_; +} + +// static +Scalar StrokePathGeometry::CreateBevelAndGetDirection( + VertexBufferBuilder& vtx_builder, + const Point& position, + const Point& start_offset, + const Point& end_offset) { + SolidFillVertexShader::PerVertexData vtx; + vtx.position = position; + vtx_builder.AppendVertex(vtx); + + Scalar dir = start_offset.Cross(end_offset) > 0 ? -1 : 1; + vtx.position = position + start_offset * dir; + vtx_builder.AppendVertex(vtx); + vtx.position = position + end_offset * dir; + vtx_builder.AppendVertex(vtx); + + return dir; +} + +// static +StrokePathGeometry::JoinProc StrokePathGeometry::GetJoinProc(Join stroke_join) { + using VS = SolidFillVertexShader; + StrokePathGeometry::JoinProc join_proc; + switch (stroke_join) { + case Join::kBevel: + join_proc = [](VertexBufferBuilder& vtx_builder, + const Point& position, const Point& start_offset, + const Point& end_offset, Scalar miter_limit, + Scalar tolerance) { + CreateBevelAndGetDirection(vtx_builder, position, start_offset, + end_offset); + }; + break; + case Join::kMiter: + join_proc = [](VertexBufferBuilder& vtx_builder, + const Point& position, const Point& start_offset, + const Point& end_offset, Scalar miter_limit, + Scalar tolerance) { + Point start_normal = start_offset.Normalize(); + Point end_normal = end_offset.Normalize(); + + // 1 for no joint (straight line), 0 for max joint (180 degrees). + Scalar alignment = (start_normal.Dot(end_normal) + 1) / 2; + if (ScalarNearlyEqual(alignment, 1)) { + return; + } + + Scalar dir = CreateBevelAndGetDirection(vtx_builder, position, + start_offset, end_offset); + + Point miter_point = (start_offset + end_offset) / 2 / alignment; + if (miter_point.GetDistanceSquared({0, 0}) > + miter_limit * miter_limit) { + return; // Convert to bevel when we exceed the miter limit. + } + + // Outer miter point. + VS::PerVertexData vtx; + vtx.position = position + miter_point * dir; + vtx_builder.AppendVertex(vtx); + }; + break; + case Join::kRound: + join_proc = [](VertexBufferBuilder& vtx_builder, + const Point& position, const Point& start_offset, + const Point& end_offset, Scalar miter_limit, + Scalar tolerance) { + Point start_normal = start_offset.Normalize(); + Point end_normal = end_offset.Normalize(); + + // 0 for no joint (straight line), 1 for max joint (180 degrees). + Scalar alignment = 1 - (start_normal.Dot(end_normal) + 1) / 2; + if (ScalarNearlyEqual(alignment, 0)) { + return; + } + + Scalar dir = CreateBevelAndGetDirection(vtx_builder, position, + start_offset, end_offset); + + Point middle = + (start_offset + end_offset).Normalize() * start_offset.GetLength(); + Point middle_normal = middle.Normalize(); + + Point middle_handle = middle + Point(-middle.y, middle.x) * + PathBuilder::kArcApproximationMagic * + alignment * dir; + Point start_handle = + start_offset + Point(start_offset.y, -start_offset.x) * + PathBuilder::kArcApproximationMagic * alignment * + dir; + + auto arc_points = CubicPathComponent(start_offset, start_handle, + middle_handle, middle) + .CreatePolyline(tolerance); + + VS::PerVertexData vtx; + for (const auto& point : arc_points) { + vtx.position = position + point * dir; + vtx_builder.AppendVertex(vtx); + vtx.position = position + (-point * dir).Reflect(middle_normal); + vtx_builder.AppendVertex(vtx); + } + }; + break; + } + return join_proc; +} + +// static +StrokePathGeometry::CapProc StrokePathGeometry::GetCapProc(Cap stroke_cap) { + using VS = SolidFillVertexShader; + StrokePathGeometry::CapProc cap_proc; + switch (stroke_cap) { + case Cap::kButt: + cap_proc = [](VertexBufferBuilder& vtx_builder, + const Point& position, const Point& offset, + Scalar tolerance) {}; + break; + case Cap::kRound: + cap_proc = [](VertexBufferBuilder& vtx_builder, + const Point& position, const Point& offset, + Scalar tolerance) { + VS::PerVertexData vtx; + + Point forward(offset.y, -offset.x); + Point forward_normal = forward.Normalize(); + + auto arc_points = + CubicPathComponent( + offset, offset + forward * PathBuilder::kArcApproximationMagic, + forward + offset * PathBuilder::kArcApproximationMagic, forward) + .CreatePolyline(tolerance); + + vtx.position = position + offset; + vtx_builder.AppendVertex(vtx); + vtx.position = position - offset; + vtx_builder.AppendVertex(vtx); + for (const auto& point : arc_points) { + vtx.position = position + point; + vtx_builder.AppendVertex(vtx); + vtx.position = position + (-point).Reflect(forward_normal); + vtx_builder.AppendVertex(vtx); + } + }; + break; + case Cap::kSquare: + cap_proc = [](VertexBufferBuilder& vtx_builder, + const Point& position, const Point& offset, + Scalar tolerance) { + VS::PerVertexData vtx; + vtx.position = position; + + Point forward(offset.y, -offset.x); + + vtx.position = position + offset; + vtx_builder.AppendVertex(vtx); + vtx.position = position - offset; + vtx_builder.AppendVertex(vtx); + vtx.position = position + offset + forward; + vtx_builder.AppendVertex(vtx); + vtx.position = position - offset + forward; + vtx_builder.AppendVertex(vtx); + }; + break; + } + return cap_proc; +} + +// static +VertexBuffer StrokePathGeometry::CreateSolidStrokeVertices( + const Path& path, + HostBuffer& buffer, + Scalar stroke_width, + Scalar scaled_miter_limit, + const StrokePathGeometry::JoinProc& join_proc, + const StrokePathGeometry::CapProc& cap_proc, + Scalar tolerance) { + VertexBufferBuilder vtx_builder; + auto polyline = path.CreatePolyline(); + + VS::PerVertexData vtx; + + // Offset state. + Point offset; + Point previous_offset; // Used for computing joins. + + auto compute_offset = [&polyline, &offset, &previous_offset, + &stroke_width](size_t point_i) { + previous_offset = offset; + Point direction = + (polyline.points[point_i] - polyline.points[point_i - 1]).Normalize(); + offset = Vector2{-direction.y, direction.x} * stroke_width * 0.5; + }; + + for (size_t contour_i = 0; contour_i < polyline.contours.size(); + contour_i++) { + size_t contour_start_point_i, contour_end_point_i; + std::tie(contour_start_point_i, contour_end_point_i) = + polyline.GetContourPointBounds(contour_i); + + switch (contour_end_point_i - contour_start_point_i) { + case 1: { + Point p = polyline.points[contour_start_point_i]; + cap_proc(vtx_builder, p, {-stroke_width * 0.5f, 0}, tolerance); + cap_proc(vtx_builder, p, {stroke_width * 0.5f, 0}, tolerance); + continue; + } + case 0: + continue; // This contour has no renderable content. + default: + break; + } + + // The first point's offset is always the same as the second point. + compute_offset(contour_start_point_i + 1); + const Point contour_first_offset = offset; + + if (contour_i > 0) { + // This branch only executes when we've just finished drawing a contour + // and are switching to a new one. + // We're drawing a triangle strip, so we need to "pick up the pen" by + // appending two vertices at the end of the previous contour and two + // vertices at the start of the new contour (thus connecting the two + // contours with two zero volume triangles, which will be discarded by + // the rasterizer). + vtx.position = polyline.points[contour_start_point_i - 1]; + // Append two vertices when "picking up" the pen so that the triangle + // drawn when moving to the beginning of the new contour will have zero + // volume. + vtx_builder.AppendVertex(vtx); + vtx_builder.AppendVertex(vtx); + + vtx.position = polyline.points[contour_start_point_i]; + // Append two vertices at the beginning of the new contour, which + // appends two triangles of zero area. + vtx_builder.AppendVertex(vtx); + vtx_builder.AppendVertex(vtx); + } + + // Generate start cap. + if (!polyline.contours[contour_i].is_closed) { + cap_proc(vtx_builder, polyline.points[contour_start_point_i], -offset, + tolerance); + } + + // Generate contour geometry. + for (size_t point_i = contour_start_point_i; point_i < contour_end_point_i; + point_i++) { + if (point_i > contour_start_point_i) { + // Generate line rect. + vtx.position = polyline.points[point_i - 1] + offset; + vtx_builder.AppendVertex(vtx); + vtx.position = polyline.points[point_i - 1] - offset; + vtx_builder.AppendVertex(vtx); + vtx.position = polyline.points[point_i] + offset; + vtx_builder.AppendVertex(vtx); + vtx.position = polyline.points[point_i] - offset; + vtx_builder.AppendVertex(vtx); + + if (point_i < contour_end_point_i - 1) { + compute_offset(point_i + 1); + + // Generate join from the current line to the next line. + join_proc(vtx_builder, polyline.points[point_i], previous_offset, + offset, scaled_miter_limit, tolerance); + } + } + } + + // Generate end cap or join. + if (!polyline.contours[contour_i].is_closed) { + cap_proc(vtx_builder, polyline.points[contour_end_point_i - 1], offset, + tolerance); + } else { + join_proc(vtx_builder, polyline.points[contour_start_point_i], offset, + contour_first_offset, scaled_miter_limit, tolerance); + } + } + + return vtx_builder.CreateVertexBuffer(buffer); +} + +GeometryResult StrokePathGeometry::GetPositionBuffer( + const ContentContext& renderer, + const Entity& entity, + RenderPass& pass) { + if (stroke_width_ < 0.0) { + return {}; + } + auto determinant = entity.GetTransformation().GetDeterminant(); + if (determinant == 0) { + return {}; + } + + Scalar min_size = 1.0f / sqrt(std::abs(determinant)); + Scalar stroke_width = std::max(stroke_width_, min_size); + + auto tolerance = + kDefaultCurveTolerance / + (stroke_width_ * entity.GetTransformation().GetMaxBasisLength()); + + auto& host_buffer = pass.GetTransientsBuffer(); + auto vertex_buffer = CreateSolidStrokeVertices( + path_, host_buffer, stroke_width, miter_limit_ * stroke_width_ * 0.5, + GetJoinProc(stroke_join_), GetCapProc(stroke_cap_), tolerance); + + return GeometryResult{ + .type = PrimitiveType::kTriangleStrip, + .vertex_buffer = vertex_buffer, + .prevent_overdraw = true, + }; +} + +GeometryVertexType StrokePathGeometry::GetVertexType() const { + return GeometryVertexType::kPosition; +} + +std::optional StrokePathGeometry::GetCoverage( + const Matrix& transform) const { + auto path_bounds = path_.GetBoundingBox(); + if (!path_bounds.has_value()) { + return std::nullopt; + } + auto path_coverage = path_bounds->TransformBounds(transform); + + Scalar max_radius = 0.5; + if (stroke_cap_ == Cap::kSquare) { + max_radius = max_radius * kSqrt2; + } + if (stroke_join_ == Join::kMiter) { + max_radius = std::max(max_radius, miter_limit_ * 0.5f); + } + Scalar determinant = transform.GetDeterminant(); + if (determinant == 0) { + return std::nullopt; + } + Scalar min_size = 1.0f / sqrt(std::abs(determinant)); + Vector2 max_radius_xy = transform.TransformDirection( + Vector2(max_radius, max_radius) * std::max(stroke_width_, min_size)); + + return Rect(path_coverage.origin - max_radius_xy, + Size(path_coverage.size.width + max_radius_xy.x * 2, + path_coverage.size.height + max_radius_xy.y * 2)); +} + +/////// Cover Geometry /////// + +CoverGeometry::CoverGeometry() = default; + +CoverGeometry::~CoverGeometry() = default; + +GeometryResult CoverGeometry::GetPositionBuffer(const ContentContext& renderer, + const Entity& entity, + RenderPass& pass) { + auto rect = Rect(Size(pass.GetRenderTargetSize())); + constexpr uint16_t kRectIndicies[4] = {0, 1, 2, 3}; + auto& host_buffer = pass.GetTransientsBuffer(); + return GeometryResult{ + .type = PrimitiveType::kTriangleStrip, + .vertex_buffer = {.vertex_buffer = host_buffer.Emplace( + rect.GetPoints().data(), 8 * sizeof(float), + alignof(float)), + .index_buffer = host_buffer.Emplace( + kRectIndicies, 4 * sizeof(uint16_t), + alignof(uint16_t)), + .index_count = 4, + .index_type = IndexType::k16bit}, + .prevent_overdraw = false, + }; +} + +GeometryVertexType CoverGeometry::GetVertexType() const { + return GeometryVertexType::kPosition; +} + +std::optional CoverGeometry::GetCoverage(const Matrix& transform) const { + return Rect::MakeMaximum(); +} + +/////// Rect Geometry /////// + +RectGeometry::RectGeometry(Rect rect) : rect_(rect) {} + +RectGeometry::~RectGeometry() = default; + +GeometryResult RectGeometry::GetPositionBuffer(const ContentContext& renderer, + const Entity& entity, + RenderPass& pass) { + constexpr uint16_t kRectIndicies[4] = {0, 1, 2, 3}; + auto& host_buffer = pass.GetTransientsBuffer(); + return GeometryResult{ + .type = PrimitiveType::kTriangleStrip, + .vertex_buffer = {.vertex_buffer = host_buffer.Emplace( + rect_.GetPoints().data(), 8 * sizeof(float), + alignof(float)), + .index_buffer = host_buffer.Emplace( + kRectIndicies, 4 * sizeof(uint16_t), + alignof(uint16_t)), + .index_count = 4, + .index_type = IndexType::k16bit}, + .prevent_overdraw = false, + }; +} + +GeometryVertexType RectGeometry::GetVertexType() const { + return GeometryVertexType::kPosition; +} + +std::optional RectGeometry::GetCoverage(const Matrix& transform) const { + return rect_.TransformBounds(transform); +} + +} // namespace impeller diff --git a/impeller/entity/geometry.h b/impeller/entity/geometry.h new file mode 100644 index 0000000000000..26c2a7b47312d --- /dev/null +++ b/impeller/entity/geometry.h @@ -0,0 +1,255 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#pragma once + +#include "impeller/entity/contents/contents.h" +#include "impeller/entity/entity.h" +#include "impeller/entity/solid_fill.vert.h" +#include "impeller/geometry/color.h" +#include "impeller/geometry/path.h" +#include "impeller/geometry/vertices.h" +#include "impeller/renderer/allocator.h" +#include "impeller/renderer/host_buffer.h" +#include "impeller/renderer/vertex_buffer.h" + +namespace impeller { + +class Tessellator; + +struct GeometryResult { + PrimitiveType type; + VertexBuffer vertex_buffer; + bool prevent_overdraw; +}; + +enum GeometryVertexType { + kPosition, + kColor, + kUV, +}; + +enum class Cap { + kButt, + kRound, + kSquare, +}; + +enum class Join { + kMiter, + kRound, + kBevel, +}; + +class VerticesGeometry; + +class Geometry { + public: + Geometry(); + + virtual ~Geometry(); + + static std::unique_ptr MakeVertices( + const Vertices& vertices); + + static std::unique_ptr MakeFillPath(const Path& path); + + static std::unique_ptr MakeStrokePath( + const Path& path, + Scalar stroke_width = 0.0, + Scalar miter_limit = 4.0, + Cap stroke_cap = Cap::kButt, + Join stroke_join = Join::kMiter); + + static std::unique_ptr MakeCover(); + + static std::unique_ptr MakeRect(Rect rect); + + virtual GeometryResult GetPositionBuffer(const ContentContext& renderer, + const Entity& entity, + RenderPass& pass) = 0; + + virtual GeometryVertexType GetVertexType() const = 0; + + virtual std::optional GetCoverage(const Matrix& transform) const = 0; +}; + +/// @brief A geometry that is created from a vertices object. +class VerticesGeometry : public Geometry { + public: + explicit VerticesGeometry(const Vertices& vertices); + + ~VerticesGeometry(); + + GeometryResult GetPositionColorBuffer(const ContentContext& renderer, + const Entity& entity, + RenderPass& pass, + Color paint_color, + BlendMode blend_mode); + + GeometryResult GetPositionUVBuffer(const ContentContext& renderer, + const Entity& entity, + RenderPass& pass); + + // |Geometry| + GeometryResult GetPositionBuffer(const ContentContext& renderer, + const Entity& entity, + RenderPass& pass) override; + + // |Geometry| + std::optional GetCoverage(const Matrix& transform) const override; + + // |Geometry| + GeometryVertexType GetVertexType() const override; + + private: + Vertices vertices_; + + FML_DISALLOW_COPY_AND_ASSIGN(VerticesGeometry); +}; + +/// @brief A geometry that is created from a filled path object. +class FillPathGeometry : public Geometry { + public: + explicit FillPathGeometry(const Path& path); + + ~FillPathGeometry(); + + private: + // |Geometry| + GeometryResult GetPositionBuffer(const ContentContext& renderer, + const Entity& entity, + RenderPass& pass) override; + + // |Geometry| + GeometryVertexType GetVertexType() const override; + + // |Geometry| + std::optional GetCoverage(const Matrix& transform) const override; + + Path path_; + + FML_DISALLOW_COPY_AND_ASSIGN(FillPathGeometry); +}; + +/// @brief A geometry that is created from a stroked path object. +class StrokePathGeometry : public Geometry { + public: + StrokePathGeometry(const Path& path, + Scalar stroke_width, + Scalar miter_limit, + Cap stroke_cap, + Join stroke_join); + + ~StrokePathGeometry(); + + Scalar GetStrokeWidth() const; + + Scalar GetMiterLimit() const; + + Cap GetStrokeCap() const; + + Join GetStrokeJoin() const; + + private: + using VS = SolidFillVertexShader; + + using CapProc = + std::function& vtx_builder, + const Point& position, + const Point& offset, + Scalar tolerance)>; + using JoinProc = + std::function& vtx_builder, + const Point& position, + const Point& start_offset, + const Point& end_offset, + Scalar miter_limit, + Scalar tolerance)>; + + // |Geometry| + GeometryResult GetPositionBuffer(const ContentContext& renderer, + const Entity& entity, + RenderPass& pass) override; + + // |Geometry| + GeometryVertexType GetVertexType() const override; + + // |Geometry| + std::optional GetCoverage(const Matrix& transform) const override; + + static Scalar CreateBevelAndGetDirection( + VertexBufferBuilder& vtx_builder, + const Point& position, + const Point& start_offset, + const Point& end_offset); + + static VertexBuffer CreateSolidStrokeVertices(const Path& path, + HostBuffer& buffer, + Scalar stroke_width, + Scalar scaled_miter_limit, + const JoinProc& join_proc, + const CapProc& cap_proc, + Scalar tolerance); + + static StrokePathGeometry::JoinProc GetJoinProc(Join stroke_join); + + static StrokePathGeometry::CapProc GetCapProc(Cap stroke_cap); + + Path path_; + Scalar stroke_width_; + Scalar miter_limit_; + Cap stroke_cap_; + Join stroke_join_; + + FML_DISALLOW_COPY_AND_ASSIGN(StrokePathGeometry); +}; + +/// @brief A geometry that implements "drawPaint" like behavior by covering +/// the entire render pass area. +class CoverGeometry : public Geometry { + public: + CoverGeometry(); + + ~CoverGeometry(); + + private: + // |Geometry| + GeometryResult GetPositionBuffer(const ContentContext& renderer, + const Entity& entity, + RenderPass& pass) override; + + // |Geometry| + GeometryVertexType GetVertexType() const override; + + // |Geometry| + std::optional GetCoverage(const Matrix& transform) const override; + + FML_DISALLOW_COPY_AND_ASSIGN(CoverGeometry); +}; + +class RectGeometry : public Geometry { + public: + explicit RectGeometry(Rect rect); + + ~RectGeometry(); + + private: + // |Geometry| + GeometryResult GetPositionBuffer(const ContentContext& renderer, + const Entity& entity, + RenderPass& pass) override; + + // |Geometry| + GeometryVertexType GetVertexType() const override; + + // |Geometry| + std::optional GetCoverage(const Matrix& transform) const override; + + Rect rect_; + + FML_DISALLOW_COPY_AND_ASSIGN(RectGeometry); +}; + +} // namespace impeller diff --git a/impeller/entity/shaders/blending/advanced_blend.glsl b/impeller/entity/shaders/blending/advanced_blend.glsl index 84e4781d99a32..6ff1d93ab6810 100644 --- a/impeller/entity/shaders/blending/advanced_blend.glsl +++ b/impeller/entity/shaders/blending/advanced_blend.glsl @@ -7,12 +7,12 @@ #include uniform BlendInfo { + float dst_input_alpha; float dst_y_coord_scale; float src_y_coord_scale; float color_factor; vec4 color; // This color input is expected to be unpremultiplied. -} -blend_info; +} blend_info; uniform sampler2D texture_sampler_dst; uniform sampler2D texture_sampler_src; @@ -23,12 +23,14 @@ in vec2 v_src_texture_coords; out vec4 frag_color; void main() { - vec4 dst = IPUnpremultiply(IPSampleWithTileMode( - texture_sampler_dst, // sampler - v_dst_texture_coords, // texture coordinates - blend_info.dst_y_coord_scale, // y coordinate scale - kTileModeDecal // tile mode - )); + vec4 dst_sample = + IPSampleWithTileMode(texture_sampler_dst, // sampler + v_dst_texture_coords, // texture coordinates + blend_info.dst_y_coord_scale, // y coordinate scale + kTileModeDecal // tile mode + ) * blend_info.dst_input_alpha; + + vec4 dst = IPUnpremultiply(dst_sample); vec4 src = blend_info.color_factor > 0 ? blend_info.color : IPUnpremultiply(IPSampleWithTileMode( @@ -38,7 +40,8 @@ void main() { kTileModeDecal // tile mode )); - vec3 blended = Blend(dst.rgb, src.rgb); + vec4 blended = vec4(Blend(dst.rgb, src.rgb), 1) * dst.a; - frag_color = vec4(blended, 1) * src.a * dst.a; + frag_color = mix(dst_sample, blended, src.a); + //frag_color = dst_sample; } diff --git a/impeller/entity/shaders/blending/blend.frag b/impeller/entity/shaders/blending/blend.frag index d5122145bb9b4..c3f89be765349 100644 --- a/impeller/entity/shaders/blending/blend.frag +++ b/impeller/entity/shaders/blending/blend.frag @@ -8,6 +8,7 @@ uniform sampler2D texture_sampler_src; uniform FragInfo { float texture_sampler_y_coord_scale; + float input_alpha; } frag_info; in vec2 v_texture_coords; @@ -16,5 +17,6 @@ out vec4 frag_color; void main() { frag_color = IPSample(texture_sampler_src, v_texture_coords, - frag_info.texture_sampler_y_coord_scale); + frag_info.texture_sampler_y_coord_scale) * + frag_info.input_alpha; } diff --git a/impeller/entity/shaders/border_mask_blur.frag b/impeller/entity/shaders/border_mask_blur.frag index d35280f8dfecf..e9b56fa3cfe0a 100644 --- a/impeller/entity/shaders/border_mask_blur.frag +++ b/impeller/entity/shaders/border_mask_blur.frag @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +#include #include // Constant time mask blur for image borders. @@ -27,30 +28,12 @@ in float v_outer_blur_factor; out vec4 frag_color; -// Abramowitz and Stegun erf approximation. -float erf(float x) { - float a = abs(x); - // 0.278393*x + 0.230389*x^2 + 0.078108*x^4 + 1 - float b = (0.278393 + (0.230389 + 0.078108 * a * a) * a) * a + 1.0; - return sign(x) * (1 - 1 / (b * b * b * b)); -} - -const float kHalfSqrtTwo = 0.70710678118; - -// Indefinite integral of the Gaussian function (with constant range 0->1). -float GaussianIntegral(float x, float sigma) { - // ( 1 + erf( x * (sqrt(2) / (2 * sigma) ) ) / 2 - // Because this sigmoid is always > 1, we remap it (n * 1.07 - 0.07) - // so that it always fades to zero before it reaches the blur radius. - return 0.535 * erf(x * (kHalfSqrtTwo / sigma)) + 0.465; -} - float BoxBlurMask(vec2 uv) { // LTRB - return GaussianIntegral(uv.x, v_sigma_uv.x) * // - GaussianIntegral(uv.y, v_sigma_uv.y) * // - GaussianIntegral(1 - uv.x, v_sigma_uv.x) * // - GaussianIntegral(1 - uv.y, v_sigma_uv.y); + return IPGaussianIntegral(uv.x, v_sigma_uv.x) * // + IPGaussianIntegral(uv.y, v_sigma_uv.y) * // + IPGaussianIntegral(1 - uv.x, v_sigma_uv.x) * // + IPGaussianIntegral(1 - uv.y, v_sigma_uv.y); } void main() { diff --git a/impeller/entity/shaders/color_matrix_color_filter.frag b/impeller/entity/shaders/color_matrix_color_filter.frag index a2baf4291d03a..43aa4c8c93976 100644 --- a/impeller/entity/shaders/color_matrix_color_filter.frag +++ b/impeller/entity/shaders/color_matrix_color_filter.frag @@ -30,6 +30,7 @@ uniform FragInfo { mat4 color_m; vec4 color_v; float texture_sampler_y_coord_scale; + float input_alpha; } frag_info; uniform sampler2D input_texture; @@ -39,7 +40,9 @@ out vec4 frag_color; void main() { vec4 input_color = IPSample(input_texture, v_position, - frag_info.texture_sampler_y_coord_scale); + frag_info.texture_sampler_y_coord_scale) * + frag_info.input_alpha; + // unpremultiply first, as filter inputs are premultiplied. vec4 color = IPUnpremultiply(input_color); diff --git a/impeller/entity/shaders/gaussian_blur.frag b/impeller/entity/shaders/gaussian_blur.frag index ec099a6965bc4..06bd0f389ff47 100644 --- a/impeller/entity/shaders/gaussian_blur.frag +++ b/impeller/entity/shaders/gaussian_blur.frag @@ -14,6 +14,7 @@ // level of log2(min_radius). #include +#include #include uniform sampler2D texture_sampler; @@ -46,18 +47,13 @@ in vec2 v_src_texture_coords; out vec4 frag_color; -float Gaussian(float x) { - float variance = frag_info.blur_sigma * frag_info.blur_sigma; - return exp(-0.5 * x * x / variance) / (kSqrtTwoPi * frag_info.blur_sigma); -} - void main() { vec4 total_color = vec4(0); float gaussian_integral = 0; vec2 blur_uv_offset = frag_info.blur_direction / frag_info.texture_size; for (float i = -frag_info.blur_radius; i <= frag_info.blur_radius; i++) { - float gaussian = Gaussian(i); + float gaussian = IPGaussian(i, frag_info.blur_sigma); gaussian_integral += gaussian; total_color += gaussian * diff --git a/impeller/entity/shaders/linear_to_srgb_filter.frag b/impeller/entity/shaders/linear_to_srgb_filter.frag index 4d32b147dfe35..e4fb50b1a2ead 100644 --- a/impeller/entity/shaders/linear_to_srgb_filter.frag +++ b/impeller/entity/shaders/linear_to_srgb_filter.frag @@ -13,6 +13,7 @@ uniform sampler2D input_texture; uniform FragInfo { float texture_sampler_y_coord_scale; + float input_alpha; } frag_info; in vec2 v_position; @@ -20,7 +21,8 @@ out vec4 frag_color; void main() { vec4 input_color = IPSample(input_texture, v_position, - frag_info.texture_sampler_y_coord_scale); + frag_info.texture_sampler_y_coord_scale) * + frag_info.input_alpha; vec4 color = IPUnpremultiply(input_color); for (int i = 0; i < 3; i++) { diff --git a/impeller/entity/shaders/position.vert b/impeller/entity/shaders/position.vert new file mode 100644 index 0000000000000..949fe02afd3f7 --- /dev/null +++ b/impeller/entity/shaders/position.vert @@ -0,0 +1,19 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include + +uniform VertInfo { + mat4 mvp; + vec4 color; +} vert_info; + +in vec2 position; + +out vec4 v_color; + +void main() { + gl_Position = vert_info.mvp * vec4(position, 0.0, 1.0); + v_color = vert_info.color; +} diff --git a/impeller/entity/shaders/position_color.vert b/impeller/entity/shaders/position_color.vert new file mode 100644 index 0000000000000..fe62e61474b7b --- /dev/null +++ b/impeller/entity/shaders/position_color.vert @@ -0,0 +1,19 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include + +uniform VertInfo { + mat4 mvp; +} vert_info; + +in vec2 position; +in vec4 color; + +out vec4 v_color; + +void main() { + gl_Position = vert_info.mvp * vec4(position, 0.0, 1.0); + v_color = color; +} diff --git a/impeller/entity/shaders/position_uv.vert b/impeller/entity/shaders/position_uv.vert new file mode 100644 index 0000000000000..cb8850b795173 --- /dev/null +++ b/impeller/entity/shaders/position_uv.vert @@ -0,0 +1,21 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include + +uniform VertInfo { + mat4 mvp; +} vert_info; + +in vec2 position; +in vec2 uv; + +out vec2 v_uv; +out vec2 v_position; + +void main() { + gl_Position = vert_info.mvp * vec4(position, 0.0, 1.0); + v_uv = uv; + v_position = IPVec2TransformPosition(vert_info.mvp, position); +} diff --git a/impeller/entity/shaders/rrect_blur.frag b/impeller/entity/shaders/rrect_blur.frag index 6178b1751bca5..bc400d0354e06 100644 --- a/impeller/entity/shaders/rrect_blur.frag +++ b/impeller/entity/shaders/rrect_blur.frag @@ -2,9 +2,11 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +#include + uniform FragInfo { vec4 color; - float blur_radius; + float blur_sigma; vec2 rect_size; float corner_radius; } @@ -14,21 +16,63 @@ in vec2 v_position; out vec4 frag_color; -// Simple logistic sigmoid with a domain of [-1, 1] and range of [0, 1]. -float Sigmoid(float x) { - return 1.03731472073 / (1 + exp(-4 * x)) - 0.0186573603638; -} +const int kSampleCount = 5; -float RRectDistance(vec2 sample_position, vec2 rect_size, float corner_radius) { - vec2 space = abs(sample_position) - rect_size + corner_radius; +float RRectDistance(vec2 sample_position, vec2 half_size) { + vec2 space = abs(sample_position) - half_size + frag_info.corner_radius; return length(max(space, 0.0)) + min(max(space.x, space.y), 0.0) - - corner_radius; + frag_info.corner_radius; +} + +/// Closed form unidirectional rounded rect blur mask solution using the +/// analytical Gaussian integral (with approximated erf). +float RRectShadowX(vec2 sample_position, vec2 half_size) { + // Compute the X direction distance field (not incorporating the Y distance) + // for the rounded rect. + float space = + min(0, half_size.y - frag_info.corner_radius - abs(sample_position.y)); + float rrect_distance = + half_size.x - frag_info.corner_radius + + sqrt(max(0, frag_info.corner_radius * frag_info.corner_radius - + space * space)); + + // Map the linear distance field to the analytical Gaussian integral. + vec2 integral = IPVec2GaussianIntegral( + sample_position.x + vec2(-rrect_distance, rrect_distance), + frag_info.blur_sigma); + return integral.y - integral.x; +} + +float RRectShadow(vec2 sample_position, vec2 half_size) { + // Limit the sampling range to 3 standard deviations in the Y direction from + // the kernel center to incorporate 99.7% of the color contribution. + float half_sampling_range = frag_info.blur_sigma * 3; + + float begin_y = max(-half_sampling_range, sample_position.y - half_size.y); + float end_y = min(half_sampling_range, sample_position.y + half_size.y); + float interval = (end_y - begin_y) / kSampleCount; + + // Sample the X blur kSampleCount times, weighted by the Gaussian function. + float result = 0; + for (int sample_i = 0; sample_i < kSampleCount; sample_i++) { + float y = begin_y + interval * (sample_i + 0.5); + result += RRectShadowX(vec2(sample_position.x, sample_position.y - y), + half_size) * + IPGaussian(y, frag_info.blur_sigma) * interval; + } + + return result; } void main() { - vec2 center = v_position - frag_info.rect_size / 2.0; - float dist = - RRectDistance(center, frag_info.rect_size / 2.0, frag_info.corner_radius); - float shadow_mask = Sigmoid(-dist / frag_info.blur_radius); - frag_color = frag_info.color * shadow_mask; + frag_color = frag_info.color; + + vec2 half_size = frag_info.rect_size * 0.5; + vec2 sample_position = v_position - half_size; + + if (frag_info.blur_sigma > 0) { + frag_color *= RRectShadow(sample_position, half_size); + } else { + frag_color *= -RRectDistance(sample_position, half_size); + } } diff --git a/impeller/entity/shaders/solid_stroke.frag b/impeller/entity/shaders/runtime_effect.vert similarity index 52% rename from impeller/entity/shaders/solid_stroke.frag rename to impeller/entity/shaders/runtime_effect.vert index 0c88de8117ff5..a29402d71e627 100644 --- a/impeller/entity/shaders/solid_stroke.frag +++ b/impeller/entity/shaders/runtime_effect.vert @@ -2,15 +2,14 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -uniform FragInfo { - vec4 color; -} -frag_info; - -in float v_pen_down; +uniform VertInfo { + mat4 mvp; +} vert_info; -out vec4 frag_color; +in vec2 position; +out vec2 v_position; void main() { - frag_color = frag_info.color * floor(v_pen_down); + gl_Position = vert_info.mvp * vec4(position, 0.0, 1.0); + v_position = position; } diff --git a/impeller/entity/shaders/solid_stroke.vert b/impeller/entity/shaders/solid_stroke.vert deleted file mode 100644 index f5c6f634ff0e3..0000000000000 --- a/impeller/entity/shaders/solid_stroke.vert +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -uniform VertInfo { - mat4 mvp; - float size; -} -vert_info; - -in vec2 position; -in vec2 normal; -in float pen_down; - -out float v_pen_down; - -void main() { - // Push one vertex by the half stroke size along the normal vector. - vec2 offset = normal * vec2(vert_info.size * 0.5); - gl_Position = vert_info.mvp * vec4(position + offset, 0.0, 1.0); - v_pen_down = pen_down; -} diff --git a/impeller/entity/shaders/srgb_to_linear_filter.frag b/impeller/entity/shaders/srgb_to_linear_filter.frag index a8a82436ac5be..7c524fe80c291 100644 --- a/impeller/entity/shaders/srgb_to_linear_filter.frag +++ b/impeller/entity/shaders/srgb_to_linear_filter.frag @@ -12,6 +12,7 @@ uniform sampler2D input_texture; uniform FragInfo { float texture_sampler_y_coord_scale; + float input_alpha; } frag_info; in vec2 v_position; @@ -19,7 +20,8 @@ out vec4 frag_color; void main() { vec4 input_color = IPSample(input_texture, v_position, - frag_info.texture_sampler_y_coord_scale); + frag_info.texture_sampler_y_coord_scale) * + frag_info.input_alpha; vec4 color = IPUnpremultiply(input_color); for (int i = 0; i < 3; i++) { diff --git a/impeller/entity/shaders/yuv_to_rgb_filter.frag b/impeller/entity/shaders/yuv_to_rgb_filter.frag new file mode 100644 index 0000000000000..b734b486024ab --- /dev/null +++ b/impeller/entity/shaders/yuv_to_rgb_filter.frag @@ -0,0 +1,35 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include +#include + +uniform sampler2D y_texture; +uniform sampler2D uv_texture; + +// These values must correspond to the order of the items in the +// 'YUVColorSpace' enum class. +const float kBT601LimitedRange = 0; +const float kBT601FullRange = 1; + +uniform FragInfo { + float texture_sampler_y_coord_scale; + mat4 matrix; + float yuv_color_space; +} frag_info; + +in vec2 v_position; +out vec4 frag_color; + +void main() { + vec3 yuv; + vec3 yuv_offset = vec3(0.0, 0.5, 0.5); + if (frag_info.yuv_color_space == kBT601LimitedRange) { + yuv_offset.x = 16.0 / 255.0; + } + + yuv.x = IPSample(y_texture, v_position, frag_info.texture_sampler_y_coord_scale).r; + yuv.yz = IPSample(uv_texture, v_position, frag_info.texture_sampler_y_coord_scale).rg; + frag_color = frag_info.matrix * vec4(yuv - yuv_offset, 1); +} diff --git a/impeller/entity/shaders/vertices.vert b/impeller/entity/shaders/yuv_to_rgb_filter.vert similarity index 85% rename from impeller/entity/shaders/vertices.vert rename to impeller/entity/shaders/yuv_to_rgb_filter.vert index 7923be810bdde..b741b2744ec60 100644 --- a/impeller/entity/shaders/vertices.vert +++ b/impeller/entity/shaders/yuv_to_rgb_filter.vert @@ -7,11 +7,9 @@ uniform FrameInfo { } frame_info; in vec2 position; -in vec4 color; - -out vec4 v_color; +out vec2 v_position; void main() { + v_position = position; gl_Position = frame_info.mvp * vec4(position, 0.0, 1.0); - v_color = color; } diff --git a/impeller/fixtures/BUILD.gn b/impeller/fixtures/BUILD.gn index 19e4f2de68bac..ca6984e0f5b57 100644 --- a/impeller/fixtures/BUILD.gn +++ b/impeller/fixtures/BUILD.gn @@ -34,7 +34,10 @@ impeller_shaders("shader_fixtures") { } impellerc("runtime_stages") { - shaders = [ "ink_sparkle.frag" ] + shaders = [ + "ink_sparkle.frag", + "runtime_stage_example.frag", + ] sl_file_extension = "iplr" shader_target_flag = "--runtime-stage-metal" iplr = true diff --git a/impeller/fixtures/ink_sparkle.frag b/impeller/fixtures/ink_sparkle.frag index 1b3a43ca45d35..b8dea9bf0099f 100644 --- a/impeller/fixtures/ink_sparkle.frag +++ b/impeller/fixtures/ink_sparkle.frag @@ -6,6 +6,8 @@ precision highp float; +#include + layout(location = 0) uniform vec4 u_color; layout(location = 1) uniform float u_alpha; layout(location = 2) uniform vec4 u_sparkle_color; @@ -86,7 +88,7 @@ float turbulence(vec2 uv) { } void main() { - vec2 p = gl_FragCoord.xy; + vec2 p = FlutterFragCoord(); vec2 uv = p * u_resolution_scale; vec2 density_uv = uv - mod(p, u_noise_scale); float radius = u_max_radius * u_radius_scale; diff --git a/impeller/fixtures/runtime_stage_example.frag b/impeller/fixtures/runtime_stage_example.frag new file mode 100644 index 0000000000000..678cb95c263be --- /dev/null +++ b/impeller/fixtures/runtime_stage_example.frag @@ -0,0 +1,15 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +layout(location = 0) uniform float iTime; +layout(location = 1) uniform vec2 iResolution; + +layout(location = 0) out vec4 fragColor; + +void main() { + vec2 uv = gl_FragCoord.xy/iResolution; + float t = 4 * iTime; + vec3 col = 0.5 + 0.5*cos(t + uv.xyx + vec3(0,1,4)); + fragColor = vec4(col,1.0); +} diff --git a/impeller/fixtures/sample.comp b/impeller/fixtures/sample.comp index 39b505e016560..a0a0f1661a01e 100644 --- a/impeller/fixtures/sample.comp +++ b/impeller/fixtures/sample.comp @@ -1,15 +1,24 @@ layout(local_size_x = 128) in; layout(std430) buffer; +struct SomeStruct { + vec2 vf; + uint i; +}; + layout(binding = 0) writeonly buffer Output { vec4 elements[]; } output_data; layout(binding = 1) readonly buffer Input0 { + int some_int; + ivec2 fixed_array[3]; vec4 elements[]; } input_data0; layout(binding = 2) readonly buffer Input1 { + SomeStruct some_struct; + uvec2 fixed_array[4]; vec4 elements[]; } input_data1; @@ -27,4 +36,7 @@ void main() } output_data.elements[ident] = input_data0.elements[ident] * input_data1.elements[ident]; + output_data.elements[ident].x += input_data0.fixed_array[1].x + input_data1.some_struct.i; + output_data.elements[ident].y += input_data1.fixed_array[0].y + input_data1.some_struct.vf.x; + output_data.elements[ident].z += input_data0.some_int + input_data1.some_struct.vf.y; } diff --git a/impeller/fixtures/simple.vert b/impeller/fixtures/simple.vert index e0cb437917465..122bf0630576f 100644 --- a/impeller/fixtures/simple.vert +++ b/impeller/fixtures/simple.vert @@ -2,6 +2,9 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +out vec2 v_position; + void main() { gl_Position = vec4(1.0); + v_position = vec2(1.0); } diff --git a/impeller/geometry/BUILD.gn b/impeller/geometry/BUILD.gn index f34e00ad1558a..e8d518950bdf0 100644 --- a/impeller/geometry/BUILD.gn +++ b/impeller/geometry/BUILD.gn @@ -57,3 +57,13 @@ impeller_component("geometry_unittests") { "//flutter/testing", ] } + +executable("geometry_benchmarks") { + testonly = true + sources = [ "geometry_benchmarks.cc" ] + deps = [ + ":geometry", + "../tessellator", + "//flutter/benchmarking", + ] +} diff --git a/impeller/geometry/color.h b/impeller/geometry/color.h index 64c1d6b9840cb..6966a3ccc0f6d 100644 --- a/impeller/geometry/color.h +++ b/impeller/geometry/color.h @@ -15,6 +15,8 @@ namespace impeller { struct ColorHSB; struct Vector4; +enum class YUVColorSpace { kBT601LimitedRange, kBT601FullRange }; + /// All blend modes assume that both the source (fragment output) and /// destination (first color attachment) have colors with premultiplied alpha. enum class BlendMode { diff --git a/impeller/geometry/geometry_benchmarks.cc b/impeller/geometry/geometry_benchmarks.cc new file mode 100644 index 0000000000000..06b514b46e61c --- /dev/null +++ b/impeller/geometry/geometry_benchmarks.cc @@ -0,0 +1,316 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "flutter/benchmarking/benchmarking.h" + +#include "impeller/geometry/path.h" +#include "impeller/geometry/path_builder.h" +#include "impeller/tessellator/tessellator.h" + +namespace impeller { + +namespace { +/// A path with many connected cubic components, including +/// overlaps/self-intersections/multi-contour. +Path CreateCubic(); +/// Similar to the path above, but with all cubics replaced by quadratics. +Path CreateQuadratic(); +} // namespace + +static Tessellator tess; + +template +static void BM_Polyline(benchmark::State& state, Args&&... args) { + auto args_tuple = std::make_tuple(std::move(args)...); + auto path = std::get(args_tuple); + bool tessellate = std::get(args_tuple); + + size_t point_count = 0u; + size_t single_point_count = 0u; + while (state.KeepRunning()) { + auto polyline = path.CreatePolyline(); + single_point_count = polyline.points.size(); + point_count += single_point_count; + if (tessellate) { + tess.Tessellate( + FillType::kNonZero, polyline, + [](const float* vertices, size_t vertices_size, + const uint16_t* indices, size_t indices_size) { return true; }); + } + } + state.counters["SinglePointCount"] = single_point_count; + state.counters["TotalPointCount"] = point_count; +} + +BENCHMARK_CAPTURE(BM_Polyline, cubic_polyline, CreateCubic(), false); +BENCHMARK_CAPTURE(BM_Polyline, cubic_polyline_tess, CreateCubic(), true); +BENCHMARK_CAPTURE(BM_Polyline, quad_polyline, CreateQuadratic(), false); +BENCHMARK_CAPTURE(BM_Polyline, quad_polyline_tess, CreateQuadratic(), true); + +namespace { +Path CreateCubic() { + return PathBuilder{} + .MoveTo({359.934, 96.6335}) + .CubicCurveTo({358.189, 96.7055}, {356.436, 96.7908}, {354.673, 96.8895}) + .CubicCurveTo({354.571, 96.8953}, {354.469, 96.9016}, {354.367, 96.9075}) + .CubicCurveTo({352.672, 97.0038}, {350.969, 97.113}, {349.259, 97.2355}) + .CubicCurveTo({349.048, 97.2506}, {348.836, 97.2678}, {348.625, 97.2834}) + .CubicCurveTo({347.019, 97.4014}, {345.407, 97.5299}, {343.789, 97.6722}) + .CubicCurveTo({343.428, 97.704}, {343.065, 97.7402}, {342.703, 97.7734}) + .CubicCurveTo({341.221, 97.9086}, {339.736, 98.0505}, {338.246, 98.207}) + .CubicCurveTo({337.702, 98.2642}, {337.156, 98.3292}, {336.612, 98.3894}) + .CubicCurveTo({335.284, 98.5356}, {333.956, 98.6837}, {332.623, 98.8476}) + .CubicCurveTo({332.495, 98.8635}, {332.366, 98.8818}, {332.237, 98.8982}) + .LineTo({332.237, 102.601}) + .LineTo({321.778, 102.601}) + .LineTo({321.778, 100.382}) + .CubicCurveTo({321.572, 100.413}, {321.367, 100.442}, {321.161, 100.476}) + .CubicCurveTo({319.22, 100.79}, {317.277, 101.123}, {315.332, 101.479}) + .CubicCurveTo({315.322, 101.481}, {315.311, 101.482}, {315.301, 101.484}) + .LineTo({310.017, 105.94}) + .LineTo({309.779, 105.427}) + .LineTo({314.403, 101.651}) + .CubicCurveTo({314.391, 101.653}, {314.379, 101.656}, {314.368, 101.658}) + .CubicCurveTo({312.528, 102.001}, {310.687, 102.366}, {308.846, 102.748}) + .CubicCurveTo({307.85, 102.955}, {306.855, 103.182}, {305.859, 103.4}) + .CubicCurveTo({305.048, 103.579}, {304.236, 103.75}, {303.425, 103.936}) + .LineTo({299.105, 107.578}) + .LineTo({298.867, 107.065}) + .LineTo({302.394, 104.185}) + .LineTo({302.412, 104.171}) + .CubicCurveTo({301.388, 104.409}, {300.366, 104.67}, {299.344, 104.921}) + .CubicCurveTo({298.618, 105.1}, {297.89, 105.269}, {297.165, 105.455}) + .CubicCurveTo({295.262, 105.94}, {293.36, 106.445}, {291.462, 106.979}) + .CubicCurveTo({291.132, 107.072}, {290.802, 107.163}, {290.471, 107.257}) + .CubicCurveTo({289.463, 107.544}, {288.455, 107.839}, {287.449, 108.139}) + .CubicCurveTo({286.476, 108.431}, {285.506, 108.73}, {284.536, 109.035}) + .CubicCurveTo({283.674, 109.304}, {282.812, 109.579}, {281.952, 109.859}) + .CubicCurveTo({281.177, 110.112}, {280.406, 110.377}, {279.633, 110.638}) + .CubicCurveTo({278.458, 111.037}, {277.256, 111.449}, {276.803, 111.607}) + .CubicCurveTo({276.76, 111.622}, {276.716, 111.637}, {276.672, 111.653}) + .CubicCurveTo({275.017, 112.239}, {273.365, 112.836}, {271.721, 113.463}) + .LineTo({271.717, 113.449}) + .CubicCurveTo({271.496, 113.496}, {271.238, 113.559}, {270.963, 113.628}) + .CubicCurveTo({270.893, 113.645}, {270.822, 113.663}, {270.748, 113.682}) + .CubicCurveTo({270.468, 113.755}, {270.169, 113.834}, {269.839, 113.926}) + .CubicCurveTo({269.789, 113.94}, {269.732, 113.957}, {269.681, 113.972}) + .CubicCurveTo({269.391, 114.053}, {269.081, 114.143}, {268.756, 114.239}) + .CubicCurveTo({268.628, 114.276}, {268.5, 114.314}, {268.367, 114.354}) + .CubicCurveTo({268.172, 114.412}, {267.959, 114.478}, {267.752, 114.54}) + .CubicCurveTo({263.349, 115.964}, {258.058, 117.695}, {253.564, 119.252}) + .CubicCurveTo({253.556, 119.255}, {253.547, 119.258}, {253.538, 119.261}) + .CubicCurveTo({251.844, 119.849}, {250.056, 120.474}, {248.189, 121.131}) + .CubicCurveTo({248, 121.197}, {247.812, 121.264}, {247.621, 121.331}) + .CubicCurveTo({247.079, 121.522}, {246.531, 121.715}, {245.975, 121.912}) + .CubicCurveTo({245.554, 122.06}, {245.126, 122.212}, {244.698, 122.364}) + .CubicCurveTo({244.071, 122.586}, {243.437, 122.811}, {242.794, 123.04}) + .CubicCurveTo({242.189, 123.255}, {241.58, 123.472}, {240.961, 123.693}) + .CubicCurveTo({240.659, 123.801}, {240.357, 123.909}, {240.052, 124.018}) + .CubicCurveTo({239.12, 124.351}, {238.18, 124.687}, {237.22, 125.032}) + .LineTo({237.164, 125.003}) + .CubicCurveTo({236.709, 125.184}, {236.262, 125.358}, {235.81, 125.538}) + .CubicCurveTo({235.413, 125.68}, {234.994, 125.832}, {234.592, 125.977}) + .CubicCurveTo({234.592, 125.977}, {234.591, 125.977}, {234.59, 125.977}) + .CubicCurveTo({222.206, 130.435}, {207.708, 135.753}, {192.381, 141.429}) + .CubicCurveTo({162.77, 151.336}, {122.17, 156.894}, {84.1123, 160}) + .LineTo({360, 160}) + .LineTo({360, 119.256}) + .LineTo({360, 106.332}) + .LineTo({360, 96.6307}) + .CubicCurveTo({359.978, 96.6317}, {359.956, 96.6326}, {359.934, 96.6335}) + .Close() + .MoveTo({337.336, 124.143}) + .CubicCurveTo({337.274, 122.359}, {338.903, 121.511}, {338.903, 121.511}) + .CubicCurveTo({338.903, 121.511}, {338.96, 123.303}, {337.336, 124.143}) + .Close() + .MoveTo({340.082, 121.849}) + .CubicCurveTo({340.074, 121.917}, {340.062, 121.992}, {340.046, 122.075}) + .CubicCurveTo({340.039, 122.109}, {340.031, 122.142}, {340.023, 122.177}) + .CubicCurveTo({340.005, 122.26}, {339.98, 122.346}, {339.952, 122.437}) + .CubicCurveTo({339.941, 122.473}, {339.931, 122.507}, {339.918, 122.544}) + .CubicCurveTo({339.873, 122.672}, {339.819, 122.804}, {339.75, 122.938}) + .CubicCurveTo({339.747, 122.944}, {339.743, 122.949}, {339.74, 122.955}) + .CubicCurveTo({339.674, 123.08}, {339.593, 123.205}, {339.501, 123.328}) + .CubicCurveTo({339.473, 123.366}, {339.441, 123.401}, {339.41, 123.438}) + .CubicCurveTo({339.332, 123.534}, {339.243, 123.625}, {339.145, 123.714}) + .CubicCurveTo({339.105, 123.75}, {339.068, 123.786}, {339.025, 123.821}) + .CubicCurveTo({338.881, 123.937}, {338.724, 124.048}, {338.539, 124.143}) + .CubicCurveTo({338.532, 123.959}, {338.554, 123.79}, {338.58, 123.626}) + .CubicCurveTo({338.58, 123.625}, {338.58, 123.625}, {338.58, 123.625}) + .CubicCurveTo({338.607, 123.455}, {338.65, 123.299}, {338.704, 123.151}) + .CubicCurveTo({338.708, 123.14}, {338.71, 123.127}, {338.714, 123.117}) + .CubicCurveTo({338.769, 122.971}, {338.833, 122.838}, {338.905, 122.712}) + .CubicCurveTo({338.911, 122.702}, {338.916, 122.69200000000001}, + {338.922, 122.682}) + .CubicCurveTo({338.996, 122.557}, {339.072, 122.444}, {339.155, 122.34}) + .CubicCurveTo({339.161, 122.333}, {339.166, 122.326}, {339.172, 122.319}) + .CubicCurveTo({339.256, 122.215}, {339.339, 122.12}, {339.425, 122.037}) + .CubicCurveTo({339.428, 122.033}, {339.431, 122.03}, {339.435, 122.027}) + .CubicCurveTo({339.785, 121.687}, {340.106, 121.511}, {340.106, 121.511}) + .CubicCurveTo({340.106, 121.511}, {340.107, 121.645}, {340.082, 121.849}) + .Close() + .MoveTo({340.678, 113.245}) + .CubicCurveTo({340.594, 113.488}, {340.356, 113.655}, {340.135, 113.775}) + .CubicCurveTo({339.817, 113.948}, {339.465, 114.059}, {339.115, 114.151}) + .CubicCurveTo({338.251, 114.379}, {337.34, 114.516}, {336.448, 114.516}) + .CubicCurveTo({335.761, 114.516}, {335.072, 114.527}, {334.384, 114.513}) + .CubicCurveTo({334.125, 114.508}, {333.862, 114.462}, {333.605, 114.424}) + .CubicCurveTo({332.865, 114.318}, {332.096, 114.184}, {331.41, 113.883}) + .CubicCurveTo({330.979, 113.695}, {330.442, 113.34}, {330.672, 112.813}) + .CubicCurveTo({331.135, 111.755}, {333.219, 112.946}, {334.526, 113.833}) + .CubicCurveTo({334.54, 113.816}, {334.554, 113.8}, {334.569, 113.784}) + .CubicCurveTo({333.38, 112.708}, {331.749, 110.985}, {332.76, 110.402}) + .CubicCurveTo({333.769, 109.82}, {334.713, 111.93}, {335.228, 113.395}) + .CubicCurveTo({334.915, 111.889}, {334.59, 109.636}, {335.661, 109.592}) + .CubicCurveTo({336.733, 109.636}, {336.408, 111.889}, {336.07, 113.389}) + .CubicCurveTo({336.609, 111.93}, {337.553, 109.82}, {338.563, 110.402}) + .CubicCurveTo({339.574, 110.984}, {337.942, 112.708}, {336.753, 113.784}) + .CubicCurveTo({336.768, 113.8}, {336.782, 113.816}, {336.796, 113.833}) + .CubicCurveTo({338.104, 112.946}, {340.187, 111.755}, {340.65, 112.813}) + .CubicCurveTo({340.71, 112.95}, {340.728, 113.102}, {340.678, 113.245}) + .Close() + .MoveTo({346.357, 106.771}) + .CubicCurveTo({346.295, 104.987}, {347.924, 104.139}, {347.924, 104.139}) + .CubicCurveTo({347.924, 104.139}, {347.982, 105.931}, {346.357, 106.771}) + .Close() + .MoveTo({347.56, 106.771}) + .CubicCurveTo({347.498, 104.987}, {349.127, 104.139}, {349.127, 104.139}) + .CubicCurveTo({349.127, 104.139}, {349.185, 105.931}, {347.56, 106.771}) + .Close() + .TakePath(); +} + +Path CreateQuadratic() { + return PathBuilder{} + .MoveTo({359.934, 96.6335}) + .QuadraticCurveTo({358.189, 96.7055}, {354.673, 96.8895}) + .QuadraticCurveTo({354.571, 96.8953}, {354.367, 96.9075}) + .QuadraticCurveTo({352.672, 97.0038}, {349.259, 97.2355}) + .QuadraticCurveTo({349.048, 97.2506}, {348.625, 97.2834}) + .QuadraticCurveTo({347.019, 97.4014}, {343.789, 97.6722}) + .QuadraticCurveTo({343.428, 97.704}, {342.703, 97.7734}) + .QuadraticCurveTo({341.221, 97.9086}, {338.246, 98.207}) + .QuadraticCurveTo({337.702, 98.2642}, {336.612, 98.3894}) + .QuadraticCurveTo({335.284, 98.5356}, {332.623, 98.8476}) + .QuadraticCurveTo({332.495, 98.8635}, {332.237, 98.8982}) + .LineTo({332.237, 102.601}) + .LineTo({321.778, 102.601}) + .LineTo({321.778, 100.382}) + .QuadraticCurveTo({321.572, 100.413}, {321.161, 100.476}) + .QuadraticCurveTo({319.22, 100.79}, {315.332, 101.479}) + .QuadraticCurveTo({315.322, 101.481}, {315.301, 101.484}) + .LineTo({310.017, 105.94}) + .LineTo({309.779, 105.427}) + .LineTo({314.403, 101.651}) + .QuadraticCurveTo({314.391, 101.653}, {314.368, 101.658}) + .QuadraticCurveTo({312.528, 102.001}, {308.846, 102.748}) + .QuadraticCurveTo({307.85, 102.955}, {305.859, 103.4}) + .QuadraticCurveTo({305.048, 103.579}, {303.425, 103.936}) + .LineTo({299.105, 107.578}) + .LineTo({298.867, 107.065}) + .LineTo({302.394, 104.185}) + .LineTo({302.412, 104.171}) + .QuadraticCurveTo({301.388, 104.409}, {299.344, 104.921}) + .QuadraticCurveTo({298.618, 105.1}, {297.165, 105.455}) + .QuadraticCurveTo({295.262, 105.94}, {291.462, 106.979}) + .QuadraticCurveTo({291.132, 107.072}, {290.471, 107.257}) + .QuadraticCurveTo({289.463, 107.544}, {287.449, 108.139}) + .QuadraticCurveTo({286.476, 108.431}, {284.536, 109.035}) + .QuadraticCurveTo({283.674, 109.304}, {281.952, 109.859}) + .QuadraticCurveTo({281.177, 110.112}, {279.633, 110.638}) + .QuadraticCurveTo({278.458, 111.037}, {276.803, 111.607}) + .QuadraticCurveTo({276.76, 111.622}, {276.672, 111.653}) + .QuadraticCurveTo({275.017, 112.239}, {271.721, 113.463}) + .LineTo({271.717, 113.449}) + .QuadraticCurveTo({271.496, 113.496}, {270.963, 113.628}) + .QuadraticCurveTo({270.893, 113.645}, {270.748, 113.682}) + .QuadraticCurveTo({270.468, 113.755}, {269.839, 113.926}) + .QuadraticCurveTo({269.789, 113.94}, {269.681, 113.972}) + .QuadraticCurveTo({269.391, 114.053}, {268.756, 114.239}) + .QuadraticCurveTo({268.628, 114.276}, {268.367, 114.354}) + .QuadraticCurveTo({268.172, 114.412}, {267.752, 114.54}) + .QuadraticCurveTo({263.349, 115.964}, {253.564, 119.252}) + .QuadraticCurveTo({253.556, 119.255}, {253.538, 119.261}) + .QuadraticCurveTo({251.844, 119.849}, {248.189, 121.131}) + .QuadraticCurveTo({248, 121.197}, {247.621, 121.331}) + .QuadraticCurveTo({247.079, 121.522}, {245.975, 121.912}) + .QuadraticCurveTo({245.554, 122.06}, {244.698, 122.364}) + .QuadraticCurveTo({244.071, 122.586}, {242.794, 123.04}) + .QuadraticCurveTo({242.189, 123.255}, {240.961, 123.693}) + .QuadraticCurveTo({240.659, 123.801}, {240.052, 124.018}) + .QuadraticCurveTo({239.12, 124.351}, {237.22, 125.032}) + .LineTo({237.164, 125.003}) + .QuadraticCurveTo({236.709, 125.184}, {235.81, 125.538}) + .QuadraticCurveTo({235.413, 125.68}, {234.592, 125.977}) + .QuadraticCurveTo({234.592, 125.977}, {234.59, 125.977}) + .QuadraticCurveTo({222.206, 130.435}, {192.381, 141.429}) + .QuadraticCurveTo({162.77, 151.336}, {84.1123, 160}) + .LineTo({360, 160}) + .LineTo({360, 119.256}) + .LineTo({360, 106.332}) + .LineTo({360, 96.6307}) + .QuadraticCurveTo({359.978, 96.6317}, {359.934, 96.6335}) + .Close() + .MoveTo({337.336, 124.143}) + .QuadraticCurveTo({337.274, 122.359}, {338.903, 121.511}) + .QuadraticCurveTo({338.903, 121.511}, {337.336, 124.143}) + .Close() + .MoveTo({340.082, 121.849}) + .QuadraticCurveTo({340.074, 121.917}, {340.046, 122.075}) + .QuadraticCurveTo({340.039, 122.109}, {340.023, 122.177}) + .QuadraticCurveTo({340.005, 122.26}, {339.952, 122.437}) + .QuadraticCurveTo({339.941, 122.473}, {339.918, 122.544}) + .QuadraticCurveTo({339.873, 122.672}, {339.75, 122.938}) + .QuadraticCurveTo({339.747, 122.944}, {339.74, 122.955}) + .QuadraticCurveTo({339.674, 123.08}, {339.501, 123.328}) + .QuadraticCurveTo({339.473, 123.366}, {339.41, 123.438}) + .QuadraticCurveTo({339.332, 123.534}, {339.145, 123.714}) + .QuadraticCurveTo({339.105, 123.75}, {339.025, 123.821}) + .QuadraticCurveTo({338.881, 123.937}, {338.539, 124.143}) + .QuadraticCurveTo({338.532, 123.959}, {338.58, 123.626}) + .QuadraticCurveTo({338.58, 123.625}, {338.58, 123.625}) + .QuadraticCurveTo({338.607, 123.455}, {338.704, 123.151}) + .QuadraticCurveTo({338.708, 123.14}, {338.714, 123.117}) + .QuadraticCurveTo({338.769, 122.971}, {338.905, 122.712}) + .QuadraticCurveTo({338.911, 122.702}, {338.922, 122.682}) + .QuadraticCurveTo({338.996, 122.557}, {339.155, 122.34}) + .QuadraticCurveTo({339.161, 122.333}, {339.172, 122.319}) + .QuadraticCurveTo({339.256, 122.215}, {339.425, 122.037}) + .QuadraticCurveTo({339.428, 122.033}, {339.435, 122.027}) + .QuadraticCurveTo({339.785, 121.687}, {340.106, 121.511}) + .QuadraticCurveTo({340.106, 121.511}, {340.082, 121.849}) + .Close() + .MoveTo({340.678, 113.245}) + .QuadraticCurveTo({340.594, 113.488}, {340.135, 113.775}) + .QuadraticCurveTo({339.817, 113.948}, {339.115, 114.151}) + .QuadraticCurveTo({338.251, 114.379}, {336.448, 114.516}) + .QuadraticCurveTo({335.761, 114.516}, {334.384, 114.513}) + .QuadraticCurveTo({334.125, 114.508}, {333.605, 114.424}) + .QuadraticCurveTo({332.865, 114.318}, {331.41, 113.883}) + .QuadraticCurveTo({330.979, 113.695}, {330.672, 112.813}) + .QuadraticCurveTo({331.135, 111.755}, {334.526, 113.833}) + .QuadraticCurveTo({334.54, 113.816}, {334.569, 113.784}) + .QuadraticCurveTo({333.38, 112.708}, {332.76, 110.402}) + .QuadraticCurveTo({333.769, 109.82}, {335.228, 113.395}) + .QuadraticCurveTo({334.915, 111.889}, {335.661, 109.592}) + .QuadraticCurveTo({336.733, 109.636}, {336.07, 113.389}) + .QuadraticCurveTo({336.609, 111.93}, {338.563, 110.402}) + .QuadraticCurveTo({339.574, 110.984}, {336.753, 113.784}) + .QuadraticCurveTo({336.768, 113.8}, {336.796, 113.833}) + .QuadraticCurveTo({338.104, 112.946}, {340.65, 112.813}) + .QuadraticCurveTo({340.71, 112.95}, {340.678, 113.245}) + .Close() + .MoveTo({346.357, 106.771}) + .QuadraticCurveTo({346.295, 104.987}, {347.924, 104.139}) + .QuadraticCurveTo({347.924, 104.139}, {346.357, 106.771}) + .Close() + .MoveTo({347.56, 106.771}) + .QuadraticCurveTo({347.498, 104.987}, {349.127, 104.139}) + .QuadraticCurveTo({349.127, 104.139}, {347.56, 106.771}) + .Close() + .TakePath(); +} + +} // namespace +} // namespace impeller diff --git a/impeller/geometry/geometry_unittests.cc b/impeller/geometry/geometry_unittests.cc index a199c689d77fd..42da1d65b324c 100644 --- a/impeller/geometry/geometry_unittests.cc +++ b/impeller/geometry/geometry_unittests.cc @@ -17,6 +17,7 @@ #include "impeller/geometry/rect.h" #include "impeller/geometry/scalar.h" #include "impeller/geometry/size.h" +#include "path_component.h" namespace impeller { namespace testing { @@ -1426,8 +1427,7 @@ TEST(GeometryTest, RectGetPositive) { TEST(GeometryTest, CubicPathComponentPolylineDoesNotIncludePointOne) { CubicPathComponent component({10, 10}, {20, 35}, {35, 20}, {40, 40}); - SmoothingApproximation approximation; - auto polyline = component.CreatePolyline(approximation); + auto polyline = component.CreatePolyline(); ASSERT_NE(polyline.front().x, 10); ASSERT_NE(polyline.front().y, 10); ASSERT_EQ(polyline.back().x, 40); @@ -1616,32 +1616,94 @@ TEST(GeometryTest, VerticesConstructorAndGetters) { } TEST(GeometryTest, MatrixPrinting) { - std::stringstream stream; - - Matrix m; - - stream << m; - - ASSERT_EQ(stream.str(), R"(( + { + std::stringstream stream; + Matrix m; + stream << m; + ASSERT_EQ(stream.str(), R"(( 1.000000, 0.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 0.000000, 1.000000, ))"); + } - stream.str(""); - stream.clear(); - - m = Matrix::MakeTranslation(Vector3(10, 20, 30)); - - stream << m; + { + std::stringstream stream; + Matrix m = Matrix::MakeTranslation(Vector3(10, 20, 30)); + stream << m; - ASSERT_EQ(stream.str(), R"(( + ASSERT_EQ(stream.str(), R"(( 1.000000, 0.000000, 0.000000, 10.000000, 0.000000, 1.000000, 0.000000, 20.000000, 0.000000, 0.000000, 1.000000, 30.000000, 0.000000, 0.000000, 0.000000, 1.000000, ))"); + } +} + +TEST(GeometryTest, PointPrinting) { + { + std::stringstream stream; + Point m; + stream << m; + ASSERT_EQ(stream.str(), "(0, 0)"); + } + + { + std::stringstream stream; + Point m(13, 37); + stream << m; + ASSERT_EQ(stream.str(), "(13, 37)"); + } +} + +TEST(GeometryTest, Vector3Printing) { + { + std::stringstream stream; + Vector3 m; + stream << m; + ASSERT_EQ(stream.str(), "(0, 0, 0)"); + } + + { + std::stringstream stream; + Vector3 m(1, 2, 3); + stream << m; + ASSERT_EQ(stream.str(), "(1, 2, 3)"); + } +} + +TEST(GeometryTest, Vector4Printing) { + { + std::stringstream stream; + Vector4 m; + stream << m; + ASSERT_EQ(stream.str(), "(0, 0, 0, 1)"); + } + + { + std::stringstream stream; + Vector4 m(1, 2, 3, 4); + stream << m; + ASSERT_EQ(stream.str(), "(1, 2, 3, 4)"); + } +} + +TEST(GeometryTest, ColorPrinting) { + { + std::stringstream stream; + Color m; + stream << m; + ASSERT_EQ(stream.str(), "(0, 0, 0, 0)"); + } + + { + std::stringstream stream; + Color m(1, 2, 3, 4); + stream << m; + ASSERT_EQ(stream.str(), "(1, 2, 3, 4)"); + } } TEST(GeometryTest, Gradient) { diff --git a/impeller/geometry/gradient.cc b/impeller/geometry/gradient.cc index fc0f52b957ed3..086d90c2e68b4 100644 --- a/impeller/geometry/gradient.cc +++ b/impeller/geometry/gradient.cc @@ -40,8 +40,8 @@ GradientData CreateGradientBuffer(const std::vector& colors, // very close together. // TODO(jonahwilliams): this should use a platform specific max texture // size. - texture_size = - std::min((uint32_t)std::round(1.0 / minimum_delta) + 1, 1024u); + texture_size = std::min( + static_cast(std::round(1.0 / minimum_delta)) + 1, 1024u); } std::vector color_stop_channels; color_stop_channels.reserve(texture_size * 4); diff --git a/impeller/geometry/path.cc b/impeller/geometry/path.cc index bc4164c7cfccf..6b2ecf847b614 100644 --- a/impeller/geometry/path.cc +++ b/impeller/geometry/path.cc @@ -221,8 +221,7 @@ bool Path::UpdateContourComponentAtIndex(size_t index, return true; } -Path::Polyline Path::CreatePolyline( - const SmoothingApproximation& approximation) const { +Path::Polyline Path::CreatePolyline(Scalar tolerance) const { Polyline polyline; std::optional previous_contour_point; @@ -232,8 +231,6 @@ Path::Polyline Path::CreatePolyline( return; } - polyline.points.reserve(polyline.points.size() + collection.size()); - for (const auto& point : collection) { if (previous_contour_point.has_value() && previous_contour_point.value() == point) { @@ -253,10 +250,10 @@ Path::Polyline Path::CreatePolyline( collect_points(linears_[component.index].CreatePolyline()); break; case ComponentType::kQuadratic: - collect_points(quads_[component.index].CreatePolyline(approximation)); + collect_points(quads_[component.index].CreatePolyline(tolerance)); break; case ComponentType::kCubic: - collect_points(cubics_[component.index].CreatePolyline(approximation)); + collect_points(cubics_[component.index].CreatePolyline(tolerance)); break; case ComponentType::kContour: if (component_i == components_.size() - 1) { diff --git a/impeller/geometry/path.h b/impeller/geometry/path.h index 77a20fda0ef6a..22879e5de3751 100644 --- a/impeller/geometry/path.h +++ b/impeller/geometry/path.h @@ -117,8 +117,7 @@ class Path { bool UpdateContourComponentAtIndex(size_t index, const ContourComponent& contour); - Polyline CreatePolyline( - const SmoothingApproximation& approximation = {}) const; + Polyline CreatePolyline(Scalar tolerance = kDefaultCurveTolerance) const; std::optional GetBoundingBox() const; diff --git a/impeller/geometry/path_component.cc b/impeller/geometry/path_component.cc index f9c208386e4a9..04eb592cb6ac5 100644 --- a/impeller/geometry/path_component.cc +++ b/impeller/geometry/path_component.cc @@ -8,10 +8,6 @@ namespace impeller { -static const size_t kRecursionLimit = 32; -static const Scalar kCurveCollinearityEpsilon = 1e-30; -static const Scalar kCurveAngleToleranceEpsilon = 0.01; - /* * Based on: https://en.wikipedia.org/wiki/B%C3%A9zier_curve#Specific_cases */ @@ -85,10 +81,57 @@ Point QuadraticPathComponent::SolveDerivative(Scalar time) const { }; } +static Scalar ApproximateParabolaIntegral(Scalar x) { + constexpr Scalar d = 0.67; + return x / (1.0 - d + sqrt(sqrt(pow(d, 4) + 0.25 * x * x))); +} + std::vector QuadraticPathComponent::CreatePolyline( - const SmoothingApproximation& approximation) const { - CubicPathComponent elevated(*this); - return elevated.CreatePolyline(approximation); + Scalar tolerance) const { + std::vector points; + FillPointsForPolyline(points, tolerance); + return points; +} + +void QuadraticPathComponent::FillPointsForPolyline(std::vector& points, + Scalar tolerance) const { + auto sqrt_tolerance = sqrt(tolerance); + + auto d01 = cp - p1; + auto d12 = p2 - cp; + auto dd = d01 - d12; + auto cross = (p2 - p1).Cross(dd); + auto x0 = d01.Dot(dd) * 1 / cross; + auto x2 = d12.Dot(dd) * 1 / cross; + auto scale = abs(cross / (hypot(dd.x, dd.y) * (x2 - x0))); + + auto a0 = ApproximateParabolaIntegral(x0); + auto a2 = ApproximateParabolaIntegral(x2); + Scalar val = 0.f; + if (std::isfinite(scale)) { + auto da = abs(a2 - a0); + auto sqrt_scale = sqrt(scale); + if ((x0 < 0 && x2 < 0) || (x0 >= 0 && x2 >= 0)) { + val = da * sqrt_scale; + } else { + // cusp case + auto xmin = sqrt_tolerance / sqrt_scale; + val = sqrt_tolerance * da / ApproximateParabolaIntegral(xmin); + } + } + auto u0 = ApproximateParabolaIntegral(a0); + auto u2 = ApproximateParabolaIntegral(a2); + auto uscale = 1 / (u2 - u0); + + auto line_count = std::max(1., ceil(0.5 * val / sqrt_tolerance)); + auto step = 1 / line_count; + for (size_t i = 1; i < line_count; i += 1) { + auto u = i * step; + auto a = a0 + (a2 - a0) * u; + auto t = (ApproximateParabolaIntegral(a) - u0) * uscale; + points.emplace_back(Solve(t)); + } + points.emplace_back(p2); } std::vector QuadraticPathComponent::Extrema() const { @@ -110,238 +153,61 @@ Point CubicPathComponent::SolveDerivative(Scalar time) const { }; } -/* - * Paul de Casteljau's subdivision with modifications as described in - * http://agg.sourceforge.net/antigrain.com/research/adaptive_bezier/index.html. - * Refer to the diagram on that page for a description of the points. - */ -static void CubicPathSmoothenRecursive(const SmoothingApproximation& approx, - std::vector& points, - Point p1, - Point p2, - Point p3, - Point p4, - size_t level) { - if (level >= kRecursionLimit) { - return; +std::vector CubicPathComponent::CreatePolyline(Scalar tolerance) const { + auto quads = ToQuadraticPathComponents(.1); + std::vector points; + for (const auto& quad : quads) { + quad.FillPointsForPolyline(points, tolerance); } + return points; +} - /* - * Find all midpoints. - */ - auto p12 = (p1 + p2) / 2.0; - auto p23 = (p2 + p3) / 2.0; - auto p34 = (p3 + p4) / 2.0; - - auto p123 = (p12 + p23) / 2.0; - auto p234 = (p23 + p34) / 2.0; - - auto p1234 = (p123 + p234) / 2.0; - - /* - * Attempt approximation using single straight line. - */ - auto d = p4 - p1; - Scalar d2 = fabs(((p2.x - p4.x) * d.y - (p2.y - p4.y) * d.x)); - Scalar d3 = fabs(((p3.x - p4.x) * d.y - (p3.y - p4.y) * d.x)); - - Scalar da1 = 0; - Scalar da2 = 0; - Scalar k = 0; - - switch ((static_cast(d2 > kCurveCollinearityEpsilon) << 1) + - static_cast(d3 > kCurveCollinearityEpsilon)) { - case 0: - /* - * All collinear OR p1 == p4. - */ - k = d.x * d.x + d.y * d.y; - if (k == 0) { - d2 = p1.GetDistanceSquared(p2); - d3 = p4.GetDistanceSquared(p3); - } else { - k = 1.0 / k; - da1 = p2.x - p1.x; - da2 = p2.y - p1.y; - d2 = k * (da1 * d.x + da2 * d.y); - da1 = p3.x - p1.x; - da2 = p3.y - p1.y; - d3 = k * (da1 * d.x + da2 * d.y); - - if (d2 > 0 && d2 < 1 && d3 > 0 && d3 < 1) { - /* - * Simple collinear case, 1---2---3---4. Leave just two endpoints. - */ - return; - } - - if (d2 <= 0) { - d2 = p2.GetDistanceSquared(p1); - } else if (d2 >= 1) { - d2 = p2.GetDistanceSquared(p4); - } else { - d2 = p2.GetDistanceSquared({p1.x + d2 * d.x, p1.y + d2 * d.y}); - } - - if (d3 <= 0) { - d3 = p3.GetDistanceSquared(p1); - } else if (d3 >= 1) { - d3 = p3.GetDistanceSquared(p4); - } else { - d3 = p3.GetDistanceSquared({p1.x + d3 * d.x, p1.y + d3 * d.y}); - } - } - - if (d2 > d3) { - if (d2 < approx.distance_tolerance_square) { - points.emplace_back(p2); - return; - } - } else { - if (d3 < approx.distance_tolerance_square) { - points.emplace_back(p3); - return; - } - } - break; - case 1: - /* - * p1, p2, p4 are collinear, p3 is significant. - */ - if (d3 * d3 <= - approx.distance_tolerance_square * (d.x * d.x + d.y * d.y)) { - if (approx.angle_tolerance < kCurveAngleToleranceEpsilon) { - points.emplace_back(p23); - return; - } - - /* - * Angle Condition. - */ - da1 = ::fabs(::atan2(p4.y - p3.y, p4.x - p3.x) - - ::atan2(p3.y - p2.y, p3.x - p2.x)); - - if (da1 >= kPi) { - da1 = 2.0 * kPi - da1; - } - - if (da1 < approx.angle_tolerance) { - points.emplace_back(p2); - points.emplace_back(p3); - return; - } - - if (approx.cusp_limit != 0.0) { - if (da1 > approx.cusp_limit) { - points.emplace_back(p3); - return; - } - } - } - break; - - case 2: - /* - * p1,p3,p4 are collinear, p2 is significant. - */ - if (d2 * d2 <= - approx.distance_tolerance_square * (d.x * d.x + d.y * d.y)) { - if (approx.angle_tolerance < kCurveAngleToleranceEpsilon) { - points.emplace_back(p23); - return; - } - - /* - * Angle Condition. - */ - da1 = ::fabs(::atan2(p3.y - p2.y, p3.x - p2.x) - - ::atan2(p2.y - p1.y, p2.x - p1.x)); - - if (da1 >= kPi) { - da1 = 2.0 * kPi - da1; - } - - if (da1 < approx.angle_tolerance) { - points.emplace_back(p2); - points.emplace_back(p3); - return; - } - - if (approx.cusp_limit != 0.0) { - if (da1 > approx.cusp_limit) { - points.emplace_back(p2); - return; - } - } - } - break; - - case 3: - /* - * Regular case. - */ - if ((d2 + d3) * (d2 + d3) <= - approx.distance_tolerance_square * (d.x * d.x + d.y * d.y)) { - /* - * If the curvature doesn't exceed the distance_tolerance value - * we tend to finish subdivisions. - */ - if (approx.angle_tolerance < kCurveAngleToleranceEpsilon) { - points.emplace_back(p23); - return; - } - - /* - * Angle & Cusp Condition. - */ - k = ::atan2(p3.y - p2.y, p3.x - p2.x); - da1 = ::fabs(k - ::atan2(p2.y - p1.y, p2.x - p1.x)); - da2 = ::fabs(::atan2(p4.y - p3.y, p4.x - p3.x) - k); - - if (da1 >= kPi) { - da1 = 2.0 * kPi - da1; - } - - if (da2 >= kPi) { - da2 = 2.0 * kPi - da2; - } - - if (da1 + da2 < approx.angle_tolerance) { - /* - * Finally we can stop the recursion. - */ - points.emplace_back(p23); - return; - } - - if (approx.cusp_limit != 0.0) { - if (da1 > approx.cusp_limit) { - points.emplace_back(p2); - return; - } - - if (da2 > approx.cusp_limit) { - points.emplace_back(p3); - return; - } - } - } - break; - } +inline QuadraticPathComponent CubicPathComponent::Lower() const { + return QuadraticPathComponent(3.0 * (cp1 - p1), 3.0 * (cp2 - cp1), + 3.0 * (p2 - cp2)); +} - /* - * Continue subdivision. - */ - CubicPathSmoothenRecursive(approx, points, p1, p12, p123, p1234, level + 1); - CubicPathSmoothenRecursive(approx, points, p1234, p234, p34, p4, level + 1); +CubicPathComponent CubicPathComponent::Subsegment(Scalar t0, Scalar t1) const { + auto p0 = Solve(t0); + auto p3 = Solve(t1); + auto d = Lower(); + auto scale = (t1 - t0) * (1.0 / 3.0); + auto p1 = p0 + scale * d.Solve(t0); + auto p2 = p3 - scale * d.Solve(t1); + return CubicPathComponent(p0, p1, p2, p3); } -std::vector CubicPathComponent::CreatePolyline( - const SmoothingApproximation& approximation) const { - std::vector points; - CubicPathSmoothenRecursive(approximation, points, p1, cp1, cp2, p2, 0); - points.emplace_back(p2); - return points; +std::vector +CubicPathComponent::ToQuadraticPathComponents(Scalar accuracy) const { + std::vector quads; + // The maximum error, as a vector from the cubic to the best approximating + // quadratic, is proportional to the third derivative, which is constant + // across the segment. Thus, the error scales down as the third power of + // the number of subdivisions. Our strategy then is to subdivide `t` evenly. + // + // This is an overestimate of the error because only the component + // perpendicular to the first derivative is important. But the simplicity is + // appealing. + + // This magic number is the square of 36 / sqrt(3). + // See: http://caffeineowl.com/graphics/2d/vectorial/cubic2quad01.html + auto max_hypot2 = 432.0 * accuracy * accuracy; + auto p1x2 = 3.0 * cp1 - p1; + auto p2x2 = 3.0 * cp2 - p2; + auto p = p2x2 - p1x2; + auto err = p.Dot(p); + auto quad_count = std::max(1., ceil(pow(err / max_hypot2, 1. / 6.0))); + + for (size_t i = 0; i < quad_count; i++) { + auto t0 = i / quad_count; + auto t1 = (i + 1) / quad_count; + auto seg = Subsegment(t0, t1); + auto p1x2 = 3.0 * seg.cp1 - seg.p1; + auto p2x2 = 3.0 * seg.cp2 - seg.p2; + quads.emplace_back( + QuadraticPathComponent(seg.p1, ((p1x2 + p2x2) / 4.0), seg.p2)); + } + return quads; } static inline bool NearEqual(Scalar a, Scalar b, Scalar epsilon) { diff --git a/impeller/geometry/path_component.h b/impeller/geometry/path_component.h index d1cdf3a0b0907..df658eaf580ce 100644 --- a/impeller/geometry/path_component.h +++ b/impeller/geometry/path_component.h @@ -12,46 +12,15 @@ namespace impeller { -/// Information about how to approximate points on a curved path segment. -/// -/// In particular, the values in this object control how many vertices to -/// generate when approximating curves, and what tolerances to use when -/// calculating the sharpness of curves. -struct SmoothingApproximation { - /// The scaling coefficient to use when translating to screen coordinates. - /// - /// Values approaching 0.0 will generate smoother looking curves with a - /// greater number of vertices, and will be more expensive to calculate. - Scalar scale; - - /// The tolerance value in radians for calculating sharp angles. - /// - /// Values approaching 0.0 will provide more accurate approximation of sharp - /// turns. A 0.0 value means angle conditions are not considered at all. - Scalar angle_tolerance; - - /// An angle in radians at which to introduce bevel cuts. - /// - /// Values greater than zero will restirct the sharpness of bevel cuts on - /// turns. - Scalar cusp_limit; - - /// Used to more quickly detect colinear cases. - Scalar distance_tolerance_square; - - SmoothingApproximation(/* default */) - : SmoothingApproximation(1.0 /* scale */, - 0.0 /* angle tolerance */, - 0.0 /* cusp limit */) {} - - SmoothingApproximation(Scalar p_scale, - Scalar p_angle_tolerance, - Scalar p_cusp_limit) - : scale(p_scale), - angle_tolerance(p_angle_tolerance), - cusp_limit(p_cusp_limit), - distance_tolerance_square(0.5 * p_scale * 0.5 * p_scale) {} -}; +// The default tolerance value for QuadraticCurveComponent::CreatePolyline and +// CubicCurveComponent::CreatePolyline. It also impacts the number of quadratics +// created when flattening a cubic curve to a polyline. +// +// Smaller numbers mean more points. This number seems suitable for particularly +// curvy curves at scales close to 1.0. As the scale increases, this number +// should be divided by Matrix::GetMaxBasisLength to avoid generating too few +// points for the given scale. +static constexpr Scalar kDefaultCurveTolerance = .1f; struct LinearPathComponent { Point p1; @@ -86,8 +55,21 @@ struct QuadraticPathComponent { Point SolveDerivative(Scalar time) const; + // Uses the algorithm described by Raph Levien in + // https://raphlinus.github.io/graphics/curves/2019/12/23/flatten-quadbez.html. + // + // The algorithm has several benefits: + // - It does not require elevation to cubics for processing. + // - It generates fewer and more accurate points than recursive subdivision. + // - Each turn of the core iteration loop has no dependencies on other turns, + // making it trivially parallelizable. + // + // See also the implementation in kurbo: https://github.com/linebender/kurbo. std::vector CreatePolyline( - const SmoothingApproximation& approximation) const; + Scalar tolerance = kDefaultCurveTolerance) const; + + void FillPointsForPolyline(std::vector& points, + Scalar tolerance = kDefaultCurveTolerance) const; std::vector Extrema() const; @@ -117,15 +99,27 @@ struct CubicPathComponent { Point SolveDerivative(Scalar time) const; + // This method approximates the cubic component with quadratics, and then + // generates a polyline from those quadratics. + // + // See the note on QuadraticPathComponent::CreatePolyline for references. std::vector CreatePolyline( - const SmoothingApproximation& approximation) const; + Scalar tolerance = kDefaultCurveTolerance) const; std::vector Extrema() const; + std::vector ToQuadraticPathComponents( + Scalar accuracy) const; + + CubicPathComponent Subsegment(Scalar t0, Scalar t1) const; + bool operator==(const CubicPathComponent& other) const { return p1 == other.p1 && cp1 == other.cp1 && cp2 == other.cp2 && p2 == other.p2; } + + private: + QuadraticPathComponent Lower() const; }; struct ContourComponent { diff --git a/impeller/geometry/point.h b/impeller/geometry/point.h index 42b97e2ca7059..5c377c522973c 100644 --- a/impeller/geometry/point.h +++ b/impeller/geometry/point.h @@ -293,6 +293,8 @@ constexpr TPoint operator/(const TSize& s, const TPoint& p) { using Point = TPoint; using IPoint = TPoint; +using IPoint32 = TPoint; +using UintPoint32 = TPoint; using Vector2 = Point; } // namespace impeller diff --git a/impeller/geometry/rect.h b/impeller/geometry/rect.h index 8b0a169d02ff8..803000bc007df 100644 --- a/impeller/geometry/rect.h +++ b/impeller/geometry/rect.h @@ -73,6 +73,13 @@ struct TRect { return TRect::MakeLTRB(left, top, right, bottom); } + constexpr static TRect MakeMaximum() { + return TRect::MakeLTRB(-std::numeric_limits::infinity(), + -std::numeric_limits::infinity(), + std::numeric_limits::infinity(), + std::numeric_limits::infinity()); + } + template constexpr explicit TRect(const TRect& other) : origin(static_cast>(other.origin)), diff --git a/impeller/geometry/vector.h b/impeller/geometry/vector.h index 96821e3f1984c..e87c22f61e4a9 100644 --- a/impeller/geometry/vector.h +++ b/impeller/geometry/vector.h @@ -247,3 +247,17 @@ static_assert(sizeof(Vector3) == 3 * sizeof(Scalar)); static_assert(sizeof(Vector4) == 4 * sizeof(Scalar)); } // namespace impeller + +namespace std { + +inline std::ostream& operator<<(std::ostream& out, const impeller::Vector3& p) { + out << "(" << p.x << ", " << p.y << ", " << p.z << ")"; + return out; +} + +inline std::ostream& operator<<(std::ostream& out, const impeller::Vector4& p) { + out << "(" << p.x << ", " << p.y << ", " << p.z << ", " << p.w << ")"; + return out; +} + +} // namespace std diff --git a/impeller/playground/BUILD.gn b/impeller/playground/BUILD.gn index 104a04253fd08..68ba55aa46045 100644 --- a/impeller/playground/BUILD.gn +++ b/impeller/playground/BUILD.gn @@ -62,6 +62,8 @@ impeller_component("playground_test") { testonly = true sources = [ + "compute_playground_test.cc", + "compute_playground_test.h", "playground_test.cc", "playground_test.h", ] diff --git a/impeller/playground/backend/gles/playground_impl_gles.cc b/impeller/playground/backend/gles/playground_impl_gles.cc index 8c507f57ce302..804672f11a0e0 100644 --- a/impeller/playground/backend/gles/playground_impl_gles.cc +++ b/impeller/playground/backend/gles/playground_impl_gles.cc @@ -142,7 +142,7 @@ std::unique_ptr PlaygroundImplGLES::AcquireSurfaceFrame( ::glfwSwapBuffers(window); return true; }; - return SurfaceGLES::WrapFBO(std::move(context), // + return SurfaceGLES::WrapFBO(context, // swap_callback, // 0u, // PixelFormat::kR8G8B8A8UNormInt, // diff --git a/impeller/playground/backend/vulkan/playground_impl_vk.cc b/impeller/playground/backend/vulkan/playground_impl_vk.cc index 0088ccf1cdca9..bcd35f85ecb3b 100644 --- a/impeller/playground/backend/vulkan/playground_impl_vk.cc +++ b/impeller/playground/backend/vulkan/playground_impl_vk.cc @@ -54,6 +54,7 @@ PlaygroundImplVK::PlaygroundImplVK() ::glfwDefaultWindowHints(); ::glfwWindowHint(GLFW_CLIENT_API, GLFW_NO_API); ::glfwWindowHint(GLFW_RESIZABLE, GLFW_FALSE); + ::glfwWindowHint(GLFW_VISIBLE, GLFW_FALSE); auto window = ::glfwCreateWindow(800, 600, "Test Vulkan Window", nullptr, nullptr); @@ -87,7 +88,13 @@ void PlaygroundImplVK::SetupSwapchain() { auto window = reinterpret_cast(handle_.get()); vk::Instance instance = context_vk->GetInstance(); VkSurfaceKHR surface_tmp; - ::glfwCreateWindowSurface(instance, window, nullptr, &surface_tmp); + auto res = vk::Result{ + ::glfwCreateWindowSurface(instance, window, nullptr, &surface_tmp)}; + if (res != vk::Result::eSuccess) { + VALIDATION_LOG << "Could not create surface for GLFW window: " + << vk::to_string(res); + return; + } vk::UniqueSurfaceKHR surface{surface_tmp, instance}; context_vk->SetupSwapchain(std::move(surface)); } diff --git a/impeller/playground/compute_playground_test.cc b/impeller/playground/compute_playground_test.cc new file mode 100644 index 0000000000000..8405bb668706f --- /dev/null +++ b/impeller/playground/compute_playground_test.cc @@ -0,0 +1,70 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "flutter/fml/time/time_point.h" + +#include "impeller/playground/compute_playground_test.h" + +namespace impeller { + +ComputePlaygroundTest::ComputePlaygroundTest() = default; + +ComputePlaygroundTest::~ComputePlaygroundTest() = default; + +void ComputePlaygroundTest::SetUp() { + if (!Playground::SupportsBackend(GetParam())) { + GTEST_SKIP_("Playground doesn't support this backend type."); + return; + } + + if (!Playground::ShouldOpenNewPlaygrounds()) { + GTEST_SKIP_("Skipping due to user action."); + return; + } + + SetupContext(GetParam()); + + start_time_ = fml::TimePoint::Now().ToEpochDelta(); +} + +void ComputePlaygroundTest::TearDown() { + TeardownWindow(); +} + +// |Playground| +std::unique_ptr ComputePlaygroundTest::OpenAssetAsMapping( + std::string asset_name) const { + return flutter::testing::OpenFixtureAsMapping(asset_name); +} + +std::shared_ptr ComputePlaygroundTest::OpenAssetAsRuntimeStage( + const char* asset_name) const { + auto fixture = flutter::testing::OpenFixtureAsMapping(asset_name); + if (!fixture || fixture->GetSize() == 0) { + return nullptr; + } + auto stage = std::make_unique(std::move(fixture)); + if (!stage->IsValid()) { + return nullptr; + } + return stage; +} + +static std::string FormatWindowTitle(const std::string& test_name) { + std::stringstream stream; + stream << "Impeller Playground for '" << test_name + << "' (Press ESC or 'q' to quit)"; + return stream.str(); +} + +// |Playground| +std::string ComputePlaygroundTest::GetWindowTitle() const { + return FormatWindowTitle(flutter::testing::GetCurrentTestName()); +} + +Scalar ComputePlaygroundTest::GetSecondsElapsed() const { + return (fml::TimePoint::Now().ToEpochDelta() - start_time_).ToSecondsF(); +} + +} // namespace impeller diff --git a/impeller/playground/compute_playground_test.h b/impeller/playground/compute_playground_test.h new file mode 100644 index 0000000000000..93cff4ce2f86a --- /dev/null +++ b/impeller/playground/compute_playground_test.h @@ -0,0 +1,55 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#pragma once + +#include + +#include "flutter/fml/macros.h" +#include "flutter/fml/time/time_delta.h" +#include "flutter/testing/testing.h" +#include "impeller/geometry/scalar.h" +#include "impeller/playground/playground.h" + +namespace impeller { + +class ComputePlaygroundTest + : public Playground, + public ::testing::TestWithParam { + public: + ComputePlaygroundTest(); + + virtual ~ComputePlaygroundTest(); + + void SetUp() override; + + void TearDown() override; + + // |Playground| + std::unique_ptr OpenAssetAsMapping( + std::string asset_name) const override; + + std::shared_ptr OpenAssetAsRuntimeStage( + const char* asset_name) const; + + // |Playground| + std::string GetWindowTitle() const override; + + /// @brief Get the amount of time elapsed from the start of the playground + /// test's execution. + Scalar GetSecondsElapsed() const; + + private: + fml::TimeDelta start_time_; + + FML_DISALLOW_COPY_AND_ASSIGN(ComputePlaygroundTest); +}; + +#define INSTANTIATE_COMPUTE_SUITE(playground) \ + INSTANTIATE_TEST_SUITE_P( \ + Compute, playground, ::testing::Values(PlaygroundBackend::kMetal), \ + [](const ::testing::TestParamInfo& \ + info) { return PlaygroundBackendToString(info.param); }); + +} // namespace impeller diff --git a/impeller/playground/imgui/imgui_impl_impeller.cc b/impeller/playground/imgui/imgui_impl_impeller.cc index 70168bfe0658d..331621194f396 100644 --- a/impeller/playground/imgui/imgui_impl_impeller.cc +++ b/impeller/playground/imgui/imgui_impl_impeller.cc @@ -48,7 +48,8 @@ static ImGui_ImplImpeller_Data* ImGui_ImplImpeller_GetBackendData() { : nullptr; } -bool ImGui_ImplImpeller_Init(std::shared_ptr context) { +bool ImGui_ImplImpeller_Init( + const std::shared_ptr& context) { ImGuiIO& io = ImGui::GetIO(); IM_ASSERT(io.BackendRendererUserData == nullptr && "Already initialized a renderer backend!"); diff --git a/impeller/playground/imgui/imgui_impl_impeller.h b/impeller/playground/imgui/imgui_impl_impeller.h index 585e8b2f2dfdc..8b60efc31b5bd 100644 --- a/impeller/playground/imgui/imgui_impl_impeller.h +++ b/impeller/playground/imgui/imgui_impl_impeller.h @@ -16,7 +16,7 @@ class RenderPass; } // namespace impeller IMGUI_IMPL_API bool ImGui_ImplImpeller_Init( - std::shared_ptr context); + const std::shared_ptr& context); IMGUI_IMPL_API void ImGui_ImplImpeller_Shutdown(); diff --git a/impeller/playground/playground.cc b/impeller/playground/playground.cc index 1d71b4e020656..4cfb98b93e80e 100644 --- a/impeller/playground/playground.cc +++ b/impeller/playground/playground.cc @@ -9,6 +9,7 @@ #include "impeller/image/decompressed_image.h" #include "impeller/renderer/command_buffer.h" +#include "impeller/runtime_stage/runtime_stage.h" #define GLFW_INCLUDE_NONE #include "third_party/glfw/include/GLFW/glfw3.h" @@ -61,11 +62,11 @@ struct Playground::GLFWInitializer { // applicationDidFinishLaunching is never fired. static std::once_flag sOnceInitializer; std::call_once(sOnceInitializer, []() { - FML_CHECK(::glfwInit() == GLFW_TRUE); ::glfwSetErrorCallback([](int code, const char* description) { FML_LOG(ERROR) << "GLFW Error '" << description << "' (" << code << ")."; }); + FML_CHECK(::glfwInit() == GLFW_TRUE); }); } }; @@ -76,7 +77,7 @@ Playground::Playground() Playground::~Playground() = default; std::shared_ptr Playground::GetContext() const { - return renderer_ ? renderer_->GetContext() : nullptr; + return context_; } bool Playground::SupportsBackend(PlaygroundBackend backend) { @@ -103,18 +104,24 @@ bool Playground::SupportsBackend(PlaygroundBackend backend) { FML_UNREACHABLE(); } -void Playground::SetupWindow(PlaygroundBackend backend) { +void Playground::SetupContext(PlaygroundBackend backend) { FML_CHECK(SupportsBackend(backend)); impl_ = PlaygroundImpl::Create(backend); if (!impl_) { return; } - auto context = impl_->GetContext(); - if (!context) { + + context_ = impl_->GetContext(); +} + +void Playground::SetupWindow() { + if (!context_) { + FML_LOG(WARNING) + << "Asked to setup a window with no context (call SetupContext first)."; return; } - auto renderer = std::make_unique(std::move(context)); + auto renderer = std::make_unique(context_); if (!renderer->IsValid()) { return; } @@ -122,6 +129,7 @@ void Playground::SetupWindow(PlaygroundBackend backend) { } void Playground::TeardownWindow() { + context_.reset(); renderer_.reset(); impl_.reset(); } @@ -212,6 +220,8 @@ bool Playground::OpenPlaygroundHere( fml::ScopedCleanupClosure shutdown_imgui_impeller( []() { ImGui_ImplImpeller_Shutdown(); }); + ImGui::SetNextWindowPos({10, 10}); + ::glfwSetWindowSize(window, GetWindowSize().width, GetWindowSize().height); ::glfwSetWindowPos(window, 200, 100); ::glfwShowWindow(window); diff --git a/impeller/playground/playground.h b/impeller/playground/playground.h index d2feb0ef1df7f..842c988394631 100644 --- a/impeller/playground/playground.h +++ b/impeller/playground/playground.h @@ -8,9 +8,11 @@ #include "flutter/fml/closure.h" #include "flutter/fml/macros.h" + #include "impeller/geometry/point.h" #include "impeller/renderer/renderer.h" #include "impeller/renderer/texture.h" +#include "impeller/runtime_stage/runtime_stage.h" namespace impeller { @@ -36,7 +38,9 @@ class Playground { static bool ShouldOpenNewPlaygrounds(); - void SetupWindow(PlaygroundBackend backend); + void SetupContext(PlaygroundBackend backend); + + void SetupWindow(); void TeardownWindow(); @@ -79,6 +83,7 @@ class Playground { struct GLFWInitializer; std::unique_ptr glfw_initializer_; std::unique_ptr impl_; + std::shared_ptr context_; std::unique_ptr renderer_; Point cursor_position_; ISize window_size_ = ISize{1024, 768}; diff --git a/impeller/playground/playground_test.cc b/impeller/playground/playground_test.cc index 1627cf9a711f5..c34b30d63f256 100644 --- a/impeller/playground/playground_test.cc +++ b/impeller/playground/playground_test.cc @@ -2,6 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +#include "flutter/fml/time/time_point.h" + #include "impeller/playground/playground_test.h" namespace impeller { @@ -21,7 +23,10 @@ void PlaygroundTest::SetUp() { return; } - SetupWindow(GetParam()); + SetupContext(GetParam()); + SetupWindow(); + + start_time_ = fml::TimePoint::Now().ToEpochDelta(); } void PlaygroundTest::TearDown() { @@ -34,6 +39,19 @@ std::unique_ptr PlaygroundTest::OpenAssetAsMapping( return flutter::testing::OpenFixtureAsMapping(asset_name); } +std::shared_ptr PlaygroundTest::OpenAssetAsRuntimeStage( + const char* asset_name) const { + auto fixture = flutter::testing::OpenFixtureAsMapping(asset_name); + if (!fixture || fixture->GetSize() == 0) { + return nullptr; + } + auto stage = std::make_unique(std::move(fixture)); + if (!stage->IsValid()) { + return nullptr; + } + return stage; +} + static std::string FormatWindowTitle(const std::string& test_name) { std::stringstream stream; stream << "Impeller Playground for '" << test_name @@ -46,4 +64,8 @@ std::string PlaygroundTest::GetWindowTitle() const { return FormatWindowTitle(flutter::testing::GetCurrentTestName()); } +Scalar PlaygroundTest::GetSecondsElapsed() const { + return (fml::TimePoint::Now().ToEpochDelta() - start_time_).ToSecondsF(); +} + } // namespace impeller diff --git a/impeller/playground/playground_test.h b/impeller/playground/playground_test.h index 2e10faebffcd6..26db90635cb83 100644 --- a/impeller/playground/playground_test.h +++ b/impeller/playground/playground_test.h @@ -7,7 +7,9 @@ #include #include "flutter/fml/macros.h" +#include "flutter/fml/time/time_delta.h" #include "flutter/testing/testing.h" +#include "impeller/geometry/scalar.h" #include "impeller/playground/playground.h" namespace impeller { @@ -27,10 +29,19 @@ class PlaygroundTest : public Playground, std::unique_ptr OpenAssetAsMapping( std::string asset_name) const override; + std::shared_ptr OpenAssetAsRuntimeStage( + const char* asset_name) const; + // |Playground| std::string GetWindowTitle() const override; + /// @brief Get the amount of time elapsed from the start of the playground + /// test's execution. + Scalar GetSecondsElapsed() const; + private: + fml::TimeDelta start_time_; + FML_DISALLOW_COPY_AND_ASSIGN(PlaygroundTest); }; diff --git a/impeller/renderer/BUILD.gn b/impeller/renderer/BUILD.gn index d21ed6a1fb3be..eed570791b32a 100644 --- a/impeller/renderer/BUILD.gn +++ b/impeller/renderer/BUILD.gn @@ -37,6 +37,8 @@ impeller_component("renderer") { "device_buffer_descriptor.h", "formats.cc", "formats.h", + "gpu_tracer.cc", + "gpu_tracer.h", "host_buffer.cc", "host_buffer.h", "pipeline.cc", diff --git a/impeller/renderer/backend/gles/blit_command_gles.cc b/impeller/renderer/backend/gles/blit_command_gles.cc index 2dde4c9741381..14016f7123b0f 100644 --- a/impeller/renderer/backend/gles/blit_command_gles.cc +++ b/impeller/renderer/backend/gles/blit_command_gles.cc @@ -6,6 +6,7 @@ #include "flutter/fml/closure.h" #include "impeller/base/validation.h" +#include "impeller/renderer/backend/gles/device_buffer_gles.h" #include "impeller/renderer/backend/gles/texture_gles.h" namespace impeller { @@ -116,6 +117,44 @@ bool BlitCopyTextureToTextureCommandGLES::Encode( return true; }; +BlitCopyTextureToBufferCommandGLES::~BlitCopyTextureToBufferCommandGLES() = + default; + +std::string BlitCopyTextureToBufferCommandGLES::GetLabel() const { + return label; +} + +bool BlitCopyTextureToBufferCommandGLES::Encode( + const ReactorGLES& reactor) const { + if (source->GetTextureDescriptor().format != PixelFormat::kR8G8B8A8UNormInt) { + VALIDATION_LOG << "Only textures with pixel format RGBA are supported yet."; + return false; + } + + const auto& gl = reactor.GetProcTable(); + + GLuint read_fbo = GL_NONE; + fml::ScopedCleanupClosure delete_fbos( + [&gl, &read_fbo]() { DeleteFBO(gl, read_fbo, GL_READ_FRAMEBUFFER); }); + + { + auto read = ConfigureFBO(gl, source, GL_READ_FRAMEBUFFER); + if (!read.has_value()) { + return false; + } + read_fbo = read.value(); + } + + DeviceBufferGLES::Cast(*destination) + .UpdateBufferData([&gl, this](uint8_t* data, size_t length) { + gl.ReadPixels(source_region.origin.x, source_region.origin.y, + source_region.size.width, source_region.size.height, + GL_RGBA, GL_UNSIGNED_BYTE, data + destination_offset); + }); + + return true; +}; + BlitGenerateMipmapCommandGLES::~BlitGenerateMipmapCommandGLES() = default; std::string BlitGenerateMipmapCommandGLES::GetLabel() const { diff --git a/impeller/renderer/backend/gles/blit_command_gles.h b/impeller/renderer/backend/gles/blit_command_gles.h index 2fd57fbe1e1ab..570b1f19d30fb 100644 --- a/impeller/renderer/backend/gles/blit_command_gles.h +++ b/impeller/renderer/backend/gles/blit_command_gles.h @@ -29,6 +29,16 @@ struct BlitCopyTextureToTextureCommandGLES [[nodiscard]] bool Encode(const ReactorGLES& reactor) const override; }; +struct BlitCopyTextureToBufferCommandGLES + : public BlitEncodeGLES, + public BlitCopyTextureToBufferCommand { + ~BlitCopyTextureToBufferCommandGLES() override; + + std::string GetLabel() const override; + + [[nodiscard]] bool Encode(const ReactorGLES& reactor) const override; +}; + struct BlitGenerateMipmapCommandGLES : public BlitEncodeGLES, public BlitGenerateMipmapCommand { ~BlitGenerateMipmapCommandGLES() override; diff --git a/impeller/renderer/backend/gles/blit_pass_gles.cc b/impeller/renderer/backend/gles/blit_pass_gles.cc index 07d6c732bda00..8685d86aa4a29 100644 --- a/impeller/renderer/backend/gles/blit_pass_gles.cc +++ b/impeller/renderer/backend/gles/blit_pass_gles.cc @@ -95,7 +95,7 @@ bool BlitPassGLES::EncodeCommands( } // |BlitPass| -void BlitPassGLES::OnCopyTextureToTextureCommand( +bool BlitPassGLES::OnCopyTextureToTextureCommand( std::shared_ptr source, std::shared_ptr destination, IRect source_region, @@ -109,16 +109,36 @@ void BlitPassGLES::OnCopyTextureToTextureCommand( command->destination_origin = destination_origin; commands_.emplace_back(std::move(command)); + return true; } // |BlitPass| -void BlitPassGLES::OnGenerateMipmapCommand(std::shared_ptr texture, +bool BlitPassGLES::OnCopyTextureToBufferCommand( + std::shared_ptr source, + std::shared_ptr destination, + IRect source_region, + size_t destination_offset, + std::string label) { + auto command = std::make_unique(); + command->label = label; + command->source = std::move(source); + command->destination = std::move(destination); + command->source_region = source_region; + command->destination_offset = destination_offset; + + commands_.emplace_back(std::move(command)); + return true; +} + +// |BlitPass| +bool BlitPassGLES::OnGenerateMipmapCommand(std::shared_ptr texture, std::string label) { auto command = std::make_unique(); command->label = label; command->texture = std::move(texture); commands_.emplace_back(std::move(command)); + return true; } } // namespace impeller diff --git a/impeller/renderer/backend/gles/blit_pass_gles.h b/impeller/renderer/backend/gles/blit_pass_gles.h index 2268f5dd542ff..deaf1a41835f4 100644 --- a/impeller/renderer/backend/gles/blit_pass_gles.h +++ b/impeller/renderer/backend/gles/blit_pass_gles.h @@ -37,14 +37,21 @@ class BlitPassGLES final : public BlitPass { const std::shared_ptr& transients_allocator) const override; // |BlitPass| - void OnCopyTextureToTextureCommand(std::shared_ptr source, + bool OnCopyTextureToTextureCommand(std::shared_ptr source, std::shared_ptr destination, IRect source_region, IPoint destination_origin, std::string label) override; // |BlitPass| - void OnGenerateMipmapCommand(std::shared_ptr texture, + bool OnCopyTextureToBufferCommand(std::shared_ptr source, + std::shared_ptr destination, + IRect source_region, + size_t destination_offset, + std::string label) override; + + // |BlitPass| + bool OnGenerateMipmapCommand(std::shared_ptr texture, std::string label) override; FML_DISALLOW_COPY_AND_ASSIGN(BlitPassGLES); diff --git a/impeller/renderer/backend/gles/buffer_bindings_gles.cc b/impeller/renderer/backend/gles/buffer_bindings_gles.cc index 649c6b7fb2d0e..018e70a8f0aad 100644 --- a/impeller/renderer/backend/gles/buffer_bindings_gles.cc +++ b/impeller/renderer/backend/gles/buffer_bindings_gles.cc @@ -214,8 +214,10 @@ bool BufferBindingsGLES::BindUniformBuffer(const ProcTableGLES& gl, continue; } - const auto member_key = CreateUnifiormMemberKey(metadata->name, member.name, - member.array_elements > 1); + size_t element_count = member.array_elements.value_or(1); + + const auto member_key = + CreateUnifiormMemberKey(metadata->name, member.name, element_count > 1); const auto location = uniform_locations_.find(member_key); if (location == uniform_locations_.end()) { // The list of uniform locations only contains "active" uniforms that are @@ -224,19 +226,18 @@ bool BufferBindingsGLES::BindUniformBuffer(const ProcTableGLES& gl, continue; } - size_t element_stride = member.byte_length / member.array_elements; + size_t element_stride = member.byte_length / element_count; auto* buffer_data = reinterpret_cast(buffer_ptr + member.offset); std::vector array_element_buffer; - if (member.array_elements > 1) { + if (element_count > 1) { // When binding uniform arrays, the elements must be contiguous. Copy the // uniforms to a temp buffer to eliminate any padding needed by the other // backends. - array_element_buffer.resize(member.size * member.array_elements); - for (size_t element_i = 0; element_i < member.array_elements; - element_i++) { + array_element_buffer.resize(member.size * element_count); + for (size_t element_i = 0; element_i < element_count; element_i++) { std::memcpy(array_element_buffer.data() + element_i * member.size, reinterpret_cast(buffer_data) + element_i * element_stride, @@ -250,34 +251,34 @@ bool BufferBindingsGLES::BindUniformBuffer(const ProcTableGLES& gl, case ShaderType::kFloat: switch (member.size) { case sizeof(Matrix): - gl.UniformMatrix4fv(location->second, // location - member.array_elements, // count - GL_FALSE, // normalize - buffer_data // data + gl.UniformMatrix4fv(location->second, // location + element_count, // count + GL_FALSE, // normalize + buffer_data // data ); continue; case sizeof(Vector4): - gl.Uniform4fv(location->second, // location - member.array_elements, // count - buffer_data // data + gl.Uniform4fv(location->second, // location + element_count, // count + buffer_data // data ); continue; case sizeof(Vector3): - gl.Uniform3fv(location->second, // location - member.array_elements, // count - buffer_data // data + gl.Uniform3fv(location->second, // location + element_count, // count + buffer_data // data ); continue; case sizeof(Vector2): - gl.Uniform2fv(location->second, // location - member.array_elements, // count - buffer_data // data + gl.Uniform2fv(location->second, // location + element_count, // count + buffer_data // data ); continue; case sizeof(Scalar): - gl.Uniform1fv(location->second, // location - member.array_elements, // count - buffer_data // data + gl.Uniform1fv(location->second, // location + element_count, // count + buffer_data // data ); continue; } diff --git a/impeller/renderer/backend/gles/device_buffer_gles.cc b/impeller/renderer/backend/gles/device_buffer_gles.cc index 54a7d1fb10202..0ba29c1b67e31 100644 --- a/impeller/renderer/backend/gles/device_buffer_gles.cc +++ b/impeller/renderer/backend/gles/device_buffer_gles.cc @@ -109,4 +109,15 @@ bool DeviceBufferGLES::SetLabel(const std::string& label, Range range) { const uint8_t* DeviceBufferGLES::GetBufferData() const { return backing_store_->GetBuffer(); } + +void DeviceBufferGLES::UpdateBufferData( + const std::function& + update_buffer_data) { + if (update_buffer_data) { + update_buffer_data(backing_store_->GetBuffer(), + backing_store_->GetLength()); + ++generation_; + } +} + } // namespace impeller diff --git a/impeller/renderer/backend/gles/device_buffer_gles.h b/impeller/renderer/backend/gles/device_buffer_gles.h index fe572d7e3590a..70700040b0770 100644 --- a/impeller/renderer/backend/gles/device_buffer_gles.h +++ b/impeller/renderer/backend/gles/device_buffer_gles.h @@ -27,6 +27,9 @@ class DeviceBufferGLES final const uint8_t* GetBufferData() const; + void UpdateBufferData( + const std::function& update_buffer_data); + enum class BindingType { kArrayBuffer, kElementArrayBuffer, diff --git a/impeller/renderer/backend/gles/proc_table_gles.h b/impeller/renderer/backend/gles/proc_table_gles.h index fc113e3697af0..6fb00e83c4a5a 100644 --- a/impeller/renderer/backend/gles/proc_table_gles.h +++ b/impeller/renderer/backend/gles/proc_table_gles.h @@ -162,7 +162,8 @@ struct GLProc { PROC(UniformMatrix4fv); \ PROC(UseProgram); \ PROC(VertexAttribPointer); \ - PROC(Viewport); + PROC(Viewport); \ + PROC(ReadPixels); #define FOR_EACH_IMPELLER_GLES3_PROC(PROC) PROC(BlitFramebuffer); diff --git a/impeller/renderer/backend/gles/shader_library_gles.cc b/impeller/renderer/backend/gles/shader_library_gles.cc index bcf5c83e0bbde..f3c273c63e913 100644 --- a/impeller/renderer/backend/gles/shader_library_gles.cc +++ b/impeller/renderer/backend/gles/shader_library_gles.cc @@ -137,4 +137,23 @@ void ShaderLibraryGLES::RegisterFunction(std::string name, callback(true); } +// |ShaderLibrary| +void ShaderLibraryGLES::UnregisterFunction(std::string name, + ShaderStage stage) { + ReaderLock lock(functions_mutex_); + + const auto key = ShaderKey{name, stage}; + + auto found = functions_.find(key); + if (found != functions_.end()) { + VALIDATION_LOG << "Library function named " << name + << " was not found, so it couldn't be unregistered."; + return; + } + + functions_.erase(found); + + return; +} + } // namespace impeller diff --git a/impeller/renderer/backend/gles/shader_library_gles.h b/impeller/renderer/backend/gles/shader_library_gles.h index a5e909809299b..06750077d6acd 100644 --- a/impeller/renderer/backend/gles/shader_library_gles.h +++ b/impeller/renderer/backend/gles/shader_library_gles.h @@ -43,6 +43,9 @@ class ShaderLibraryGLES final : public ShaderLibrary { std::shared_ptr code, RegistrationCallback callback) override; + // |ShaderLibrary| + void UnregisterFunction(std::string name, ShaderStage stage) override; + FML_DISALLOW_COPY_AND_ASSIGN(ShaderLibraryGLES); }; diff --git a/impeller/renderer/backend/gles/texture_gles.cc b/impeller/renderer/backend/gles/texture_gles.cc index 0c18dab461979..e8a8f9b455721 100644 --- a/impeller/renderer/backend/gles/texture_gles.cc +++ b/impeller/renderer/backend/gles/texture_gles.cc @@ -109,6 +109,8 @@ struct TexImage2DData { break; case PixelFormat::kUnknown: case PixelFormat::kS8UInt: + case PixelFormat::kR8UNormInt: + case PixelFormat::kR8G8UNormInt: return; } is_valid_ = true; @@ -141,6 +143,10 @@ struct TexImage2DData { return; case PixelFormat::kS8UInt: return; + case PixelFormat::kR8UNormInt: + return; + case PixelFormat::kR8G8UNormInt: + return; } is_valid_ = true; } @@ -275,6 +281,8 @@ static std::optional ToRenderBufferFormat(PixelFormat format) { return GL_STENCIL_INDEX8; case PixelFormat::kUnknown: case PixelFormat::kA8UNormInt: + case PixelFormat::kR8UNormInt: + case PixelFormat::kR8G8UNormInt: case PixelFormat::kR8G8B8A8UNormIntSRGB: case PixelFormat::kB8G8R8A8UNormIntSRGB: return std::nullopt; diff --git a/impeller/renderer/backend/metal/BUILD.gn b/impeller/renderer/backend/metal/BUILD.gn index 7ad03e9cea138..417c2e761c88f 100644 --- a/impeller/renderer/backend/metal/BUILD.gn +++ b/impeller/renderer/backend/metal/BUILD.gn @@ -24,6 +24,8 @@ impeller_component("metal") { "device_buffer_mtl.mm", "formats_mtl.h", "formats_mtl.mm", + "gpu_tracer_mtl.h", + "gpu_tracer_mtl.mm", "pipeline_library_mtl.h", "pipeline_library_mtl.mm", "pipeline_mtl.h", diff --git a/impeller/renderer/backend/metal/blit_command_mtl.h b/impeller/renderer/backend/metal/blit_command_mtl.h index e502cdd2c8d46..ffdd450f16c9b 100644 --- a/impeller/renderer/backend/metal/blit_command_mtl.h +++ b/impeller/renderer/backend/metal/blit_command_mtl.h @@ -31,6 +31,16 @@ struct BlitCopyTextureToTextureCommandMTL [[nodiscard]] bool Encode(id encoder) const override; }; +struct BlitCopyTextureToBufferCommandMTL + : public BlitCopyTextureToBufferCommand, + public BlitEncodeMTL { + ~BlitCopyTextureToBufferCommandMTL() override; + + std::string GetLabel() const override; + + [[nodiscard]] bool Encode(id encoder) const override; +}; + struct BlitGenerateMipmapCommandMTL : public BlitGenerateMipmapCommand, public BlitEncodeMTL { ~BlitGenerateMipmapCommandMTL() override; diff --git a/impeller/renderer/backend/metal/blit_command_mtl.mm b/impeller/renderer/backend/metal/blit_command_mtl.mm index c3704a951b5a0..7f589b4f54175 100644 --- a/impeller/renderer/backend/metal/blit_command_mtl.mm +++ b/impeller/renderer/backend/metal/blit_command_mtl.mm @@ -4,6 +4,7 @@ #include "impeller/renderer/backend/metal/blit_command_mtl.h" +#include "impeller/renderer/backend/metal/device_buffer_mtl.h" #include "impeller/renderer/backend/metal/texture_mtl.h" namespace impeller { @@ -49,6 +50,50 @@ return true; }; +BlitCopyTextureToBufferCommandMTL::~BlitCopyTextureToBufferCommandMTL() = + default; + +std::string BlitCopyTextureToBufferCommandMTL::GetLabel() const { + return label; +} + +bool BlitCopyTextureToBufferCommandMTL::Encode( + id encoder) const { + auto source_mtl = TextureMTL::Cast(*source).GetMTLTexture(); + if (!source_mtl) { + return false; + } + + auto destination_mtl = DeviceBufferMTL::Cast(*destination).GetMTLBuffer(); + if (!destination_mtl) { + return false; + } + + auto source_origin_mtl = + MTLOriginMake(source_region.origin.x, source_region.origin.y, 0); + auto source_size_mtl = + MTLSizeMake(source_region.size.width, source_region.size.height, 1); + + auto destination_bytes_per_pixel = + BytesPerPixelForPixelFormat(source->GetTextureDescriptor().format); + auto destination_bytes_per_row = + source_size_mtl.width * destination_bytes_per_pixel; + auto destination_bytes_per_image = + source_size_mtl.height * destination_bytes_per_row; + + [encoder copyFromTexture:source_mtl + sourceSlice:0 + sourceLevel:0 + sourceOrigin:source_origin_mtl + sourceSize:source_size_mtl + toBuffer:destination_mtl + destinationOffset:destination_offset + destinationBytesPerRow:destination_bytes_per_row + destinationBytesPerImage:destination_bytes_per_image]; + + return true; +}; + BlitGenerateMipmapCommandMTL::~BlitGenerateMipmapCommandMTL() = default; std::string BlitGenerateMipmapCommandMTL::GetLabel() const { diff --git a/impeller/renderer/backend/metal/blit_pass_mtl.h b/impeller/renderer/backend/metal/blit_pass_mtl.h index 4c9b41bbabded..108d320d98bf0 100644 --- a/impeller/renderer/backend/metal/blit_pass_mtl.h +++ b/impeller/renderer/backend/metal/blit_pass_mtl.h @@ -40,14 +40,21 @@ class BlitPassMTL final : public BlitPass { bool EncodeCommands(id pass) const; // |BlitPass| - void OnCopyTextureToTextureCommand(std::shared_ptr source, + bool OnCopyTextureToTextureCommand(std::shared_ptr source, std::shared_ptr destination, IRect source_region, IPoint destination_origin, std::string label) override; // |BlitPass| - void OnGenerateMipmapCommand(std::shared_ptr texture, + bool OnCopyTextureToBufferCommand(std::shared_ptr source, + std::shared_ptr destination, + IRect source_region, + size_t destination_offset, + std::string label) override; + + // |BlitPass| + bool OnGenerateMipmapCommand(std::shared_ptr texture, std::string label) override; FML_DISALLOW_COPY_AND_ASSIGN(BlitPassMTL); diff --git a/impeller/renderer/backend/metal/blit_pass_mtl.mm b/impeller/renderer/backend/metal/blit_pass_mtl.mm index d65cc544ce367..8de720677c3c6 100644 --- a/impeller/renderer/backend/metal/blit_pass_mtl.mm +++ b/impeller/renderer/backend/metal/blit_pass_mtl.mm @@ -88,7 +88,7 @@ } // |BlitPass| -void BlitPassMTL::OnCopyTextureToTextureCommand( +bool BlitPassMTL::OnCopyTextureToTextureCommand( std::shared_ptr source, std::shared_ptr destination, IRect source_region, @@ -102,16 +102,36 @@ command->destination_origin = destination_origin; commands_.emplace_back(std::move(command)); + return true; } // |BlitPass| -void BlitPassMTL::OnGenerateMipmapCommand(std::shared_ptr texture, +bool BlitPassMTL::OnCopyTextureToBufferCommand( + std::shared_ptr source, + std::shared_ptr destination, + IRect source_region, + size_t destination_offset, + std::string label) { + auto command = std::make_unique(); + command->label = label; + command->source = std::move(source); + command->destination = std::move(destination); + command->source_region = source_region; + command->destination_offset = destination_offset; + + commands_.emplace_back(std::move(command)); + return true; +} + +// |BlitPass| +bool BlitPassMTL::OnGenerateMipmapCommand(std::shared_ptr texture, std::string label) { auto command = std::make_unique(); command->label = label; command->texture = std::move(texture); commands_.emplace_back(std::move(command)); + return true; } } // namespace impeller diff --git a/impeller/renderer/backend/metal/compute_pass_mtl.h b/impeller/renderer/backend/metal/compute_pass_mtl.h index 0a2db5798d444..df395c3434bb2 100644 --- a/impeller/renderer/backend/metal/compute_pass_mtl.h +++ b/impeller/renderer/backend/metal/compute_pass_mtl.h @@ -33,10 +33,14 @@ class ComputePassMTL final : public ComputePass { void OnSetLabel(std::string label) override; // |ComputePass| - bool OnEncodeCommands(const Context& context) const override; + bool OnEncodeCommands(const Context& context, + const ISize& grid_size, + const ISize& thread_group_size) const override; bool EncodeCommands(const std::shared_ptr& allocator, - id pass) const; + id pass, + const ISize& grid_size, + const ISize& thread_group_size) const; FML_DISALLOW_COPY_AND_ASSIGN(ComputePassMTL); }; diff --git a/impeller/renderer/backend/metal/compute_pass_mtl.mm b/impeller/renderer/backend/metal/compute_pass_mtl.mm index 221c93e1a6d75..fd831f35a2aa2 100644 --- a/impeller/renderer/backend/metal/compute_pass_mtl.mm +++ b/impeller/renderer/backend/metal/compute_pass_mtl.mm @@ -47,7 +47,9 @@ label_ = std::move(label); } -bool ComputePassMTL::OnEncodeCommands(const Context& context) const { +bool ComputePassMTL::OnEncodeCommands(const Context& context, + const ISize& grid_size, + const ISize& thread_group_size) const { TRACE_EVENT0("impeller", "ComputePassMTL::EncodeCommands"); if (!IsValid()) { return false; @@ -69,8 +71,8 @@ fml::ScopedCleanupClosure auto_end( [compute_command_encoder]() { [compute_command_encoder endEncoding]; }); - return EncodeCommands(context.GetResourceAllocator(), - compute_command_encoder); + return EncodeCommands(context.GetResourceAllocator(), compute_command_encoder, + grid_size, thread_group_size); } //----------------------------------------------------------------------------- @@ -98,6 +100,8 @@ void SetComputePipelineState(id pipeline) { [encoder_ setComputePipelineState:pipeline_]; } + id GetPipeline() const { return pipeline_; } + void SetBuffer(uint64_t index, uint64_t offset, id buffer) { auto found = buffers_.find(index); if (found != buffers_.end() && found->second.buffer == buffer) { @@ -201,9 +205,10 @@ static bool Bind(ComputePassBindingsCache& pass, return true; } -bool ComputePassMTL::EncodeCommands( - const std::shared_ptr& allocator, - id encoder) const { +bool ComputePassMTL::EncodeCommands(const std::shared_ptr& allocator, + id encoder, + const ISize& grid_size, + const ISize& thread_group_size) const { ComputePassBindingsCache pass_bindings(encoder); fml::closure pop_debug_marker = [encoder]() { [encoder popDebugGroup]; }; @@ -215,9 +220,6 @@ static bool Bind(ComputePassBindingsCache& pass, auto_pop_debug_marker.Release(); } - // TODO(dnfield): update the compute pipeline descriptor so that it can set - // things like workgroup size etc. - // https://github.com/flutter/flutter/issues/110618 pass_bindings.SetComputePipelineState( ComputePipelineMTL::Cast(*command.pipeline) .GetMTLComputePipelineState()); @@ -243,8 +245,19 @@ static bool Bind(ComputePassBindingsCache& pass, // TODO(dnfield): use feature detection to support non-uniform threadgroup // sizes. // https://github.com/flutter/flutter/issues/110619 - [encoder dispatchThreadgroups:MTLSizeMake(32, 32, 1) - threadsPerThreadgroup:MTLSizeMake(32, 32, 1)]; + + // For now, check that the sizes are uniform. + FML_DCHECK(grid_size == thread_group_size); + auto width = grid_size.width; + auto height = grid_size.height; + while (width * height > + static_cast( + pass_bindings.GetPipeline().maxTotalThreadsPerThreadgroup)) { + width /= 2; + height /= 2; + } + auto size = MTLSizeMake(width, height, 1); + [encoder dispatchThreadgroups:size threadsPerThreadgroup:size]; return true; } diff --git a/impeller/renderer/backend/metal/compute_pipeline_mtl.h b/impeller/renderer/backend/metal/compute_pipeline_mtl.h index 50c33b44f15ce..9c2efa74884f5 100644 --- a/impeller/renderer/backend/metal/compute_pipeline_mtl.h +++ b/impeller/renderer/backend/metal/compute_pipeline_mtl.h @@ -29,7 +29,7 @@ class ComputePipelineMTL final bool is_valid_ = false; ComputePipelineMTL(std::weak_ptr library, - ComputePipelineDescriptor desc, + const ComputePipelineDescriptor& desc, id state); // |Pipeline| diff --git a/impeller/renderer/backend/metal/compute_pipeline_mtl.mm b/impeller/renderer/backend/metal/compute_pipeline_mtl.mm index b1d38977c9604..912b065b93166 100644 --- a/impeller/renderer/backend/metal/compute_pipeline_mtl.mm +++ b/impeller/renderer/backend/metal/compute_pipeline_mtl.mm @@ -7,9 +7,9 @@ namespace impeller { ComputePipelineMTL::ComputePipelineMTL(std::weak_ptr library, - ComputePipelineDescriptor desc, + const ComputePipelineDescriptor& desc, id state) - : Pipeline(std::move(library), std::move(desc)), pipeline_state_(state) { + : Pipeline(std::move(library), desc), pipeline_state_(state) { if (!pipeline_state_) { return; } diff --git a/impeller/renderer/backend/metal/context_mtl.h b/impeller/renderer/backend/metal/context_mtl.h index 98f6c9139a118..1ba4740d09525 100644 --- a/impeller/renderer/backend/metal/context_mtl.h +++ b/impeller/renderer/backend/metal/context_mtl.h @@ -13,6 +13,7 @@ #include "impeller/base/backend_cast.h" #include "impeller/renderer/backend/metal/allocator_mtl.h" #include "impeller/renderer/backend/metal/command_buffer_mtl.h" +#include "impeller/renderer/backend/metal/gpu_tracer_mtl.h" #include "impeller/renderer/backend/metal/pipeline_library_mtl.h" #include "impeller/renderer/backend/metal/shader_library_mtl.h" #include "impeller/renderer/context.h" @@ -23,10 +24,10 @@ namespace impeller { class ContextMTL final : public Context, public BackendCast { public: - static std::shared_ptr Create( + static std::shared_ptr Create( const std::vector& shader_library_paths); - static std::shared_ptr Create( + static std::shared_ptr Create( const std::vector>& shader_libraries_data, const std::string& label); @@ -43,6 +44,7 @@ class ContextMTL final : public Context, std::shared_ptr sampler_library_; std::shared_ptr resource_allocator_; std::shared_ptr work_queue_; + std::shared_ptr gpu_tracer_; bool is_valid_ = false; ContextMTL(id device, NSArray>* shader_libraries); @@ -68,6 +70,9 @@ class ContextMTL final : public Context, // |Context| std::shared_ptr GetWorkQueue() const override; + // |Context| + std::shared_ptr GetGPUTracer() const override; + // |Context| bool SupportsOffscreenMSAA() const override; diff --git a/impeller/renderer/backend/metal/context_mtl.mm b/impeller/renderer/backend/metal/context_mtl.mm index 8cc908a8d06f8..379b7cf52fb5f 100644 --- a/impeller/renderer/backend/metal/context_mtl.mm +++ b/impeller/renderer/backend/metal/context_mtl.mm @@ -82,6 +82,12 @@ } } +#if (FLUTTER_RUNTIME_MODE == FLUTTER_RUNTIME_MODE_DEBUG) || \ + (FLUTTER_RUNTIME_MODE == FLUTTER_RUNTIME_MODE_PROFILE) + // Setup the gpu tracer. + { gpu_tracer_ = std::shared_ptr(new GPUTracerMTL(device_)); } +#endif + is_valid_ = true; } @@ -152,7 +158,7 @@ return ::MTLCreateSystemDefaultDevice(); } -std::shared_ptr ContextMTL::Create( +std::shared_ptr ContextMTL::Create( const std::vector& shader_library_paths) { auto device = CreateMetalDevice(); auto context = std::shared_ptr(new ContextMTL( @@ -164,7 +170,7 @@ return context; } -std::shared_ptr ContextMTL::Create( +std::shared_ptr ContextMTL::Create( const std::vector>& shader_libraries_data, const std::string& label) { auto device = CreateMetalDevice(); @@ -210,6 +216,10 @@ return work_queue_; } +std::shared_ptr ContextMTL::GetGPUTracer() const { + return gpu_tracer_; +} + std::shared_ptr ContextMTL::CreateCommandBufferInQueue( id queue) const { if (!IsValid()) { diff --git a/impeller/renderer/backend/metal/device_buffer_mtl.mm b/impeller/renderer/backend/metal/device_buffer_mtl.mm index 67525dde4de69..a8534c9a5da2a 100644 --- a/impeller/renderer/backend/metal/device_buffer_mtl.mm +++ b/impeller/renderer/backend/metal/device_buffer_mtl.mm @@ -40,6 +40,10 @@ return nullptr; } + if (@available(iOS 13.0, macos 10.15, *)) { + mtl_texture_desc.resourceOptions = buffer_.resourceOptions; + } + auto texture = [buffer_ newTextureWithDescriptor:mtl_texture_desc offset:0 bytesPerRow:row_bytes]; diff --git a/impeller/renderer/backend/metal/formats_mtl.h b/impeller/renderer/backend/metal/formats_mtl.h index c9857f9a3b108..591ecb8d24cc8 100644 --- a/impeller/renderer/backend/metal/formats_mtl.h +++ b/impeller/renderer/backend/metal/formats_mtl.h @@ -43,6 +43,10 @@ constexpr MTLPixelFormat ToMTLPixelFormat(PixelFormat format) { return MTLPixelFormatInvalid; case PixelFormat::kA8UNormInt: return MTLPixelFormatA8Unorm; + case PixelFormat::kR8UNormInt: + return MTLPixelFormatR8Unorm; + case PixelFormat::kR8G8UNormInt: + return MTLPixelFormatRG8Unorm; case PixelFormat::kB8G8R8A8UNormInt: return MTLPixelFormatBGRA8Unorm; case PixelFormat::kB8G8R8A8UNormIntSRGB: diff --git a/impeller/renderer/backend/metal/gpu_tracer_mtl.h b/impeller/renderer/backend/metal/gpu_tracer_mtl.h new file mode 100644 index 0000000000000..c9367da842b9a --- /dev/null +++ b/impeller/renderer/backend/metal/gpu_tracer_mtl.h @@ -0,0 +1,40 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#pragma once + +#include + +#include "flutter/fml/macros.h" +#include "impeller/base/backend_cast.h" +#include "impeller/renderer/gpu_tracer.h" + +namespace impeller { + +class GPUTracerMTL final : public GPUTracer, + public BackendCast { + public: + // |GPUTracer| + ~GPUTracerMTL() override; + + // |GPUTracer| + bool StartCapturingFrame(GPUTracerConfiguration configuration) override; + + // |GPUTracer| + bool StopCapturingFrame() override; + + private: + friend class ContextMTL; + + id device_; + GPUTracerMTL(id device); + + NSURL* GetUniqueGPUTraceSavedURL() const; + NSURL* GetGPUTraceSavedDictionaryURL() const; + bool CreateGPUTraceSavedDictionaryIfNeeded() const; + + FML_DISALLOW_COPY_AND_ASSIGN(GPUTracerMTL); +}; + +} // namespace impeller diff --git a/impeller/renderer/backend/metal/gpu_tracer_mtl.mm b/impeller/renderer/backend/metal/gpu_tracer_mtl.mm new file mode 100644 index 0000000000000..ef04d04aff32e --- /dev/null +++ b/impeller/renderer/backend/metal/gpu_tracer_mtl.mm @@ -0,0 +1,102 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "impeller/renderer/backend/metal/gpu_tracer_mtl.h" +#include + +namespace impeller { + +GPUTracerMTL::GPUTracerMTL(id device) : device_(device) {} + +GPUTracerMTL::~GPUTracerMTL() = default; + +bool GPUTracerMTL::StartCapturingFrame(GPUTracerConfiguration configuration) { + if (!device_) { + return false; + } + + MTLCaptureManager* captureManager = [MTLCaptureManager sharedCaptureManager]; + if (captureManager.isCapturing) { + return false; + } + + if (@available(iOS 13.0, macOS 10.15, *)) { + MTLCaptureDescriptor* desc = [[MTLCaptureDescriptor alloc] init]; + desc.captureObject = device_; + + MTLCaptureDestination targetDestination = + configuration.mtl_frame_capture_save_trace_as_document + ? MTLCaptureDestinationGPUTraceDocument + : MTLCaptureDestinationDeveloperTools; + if (![captureManager supportsDestination:targetDestination]) { + return false; + } + desc.destination = targetDestination; + + if (configuration.mtl_frame_capture_save_trace_as_document) { + if (!CreateGPUTraceSavedDictionaryIfNeeded()) { + return false; + } + NSURL* outputURL = GetUniqueGPUTraceSavedURL(); + desc.outputURL = outputURL; + } + return [captureManager startCaptureWithDescriptor:desc error:nil]; + } + + [captureManager startCaptureWithDevice:device_]; + return captureManager.isCapturing; +} + +bool GPUTracerMTL::StopCapturingFrame() { + if (!device_) { + return false; + } + + MTLCaptureManager* captureManager = [MTLCaptureManager sharedCaptureManager]; + if (!captureManager.isCapturing) { + return false; + } + + [captureManager stopCapture]; + return !captureManager.isCapturing; +} + +NSURL* GPUTracerMTL::GetUniqueGPUTraceSavedURL() const { + NSURL* savedDictionaryURL = GetGPUTraceSavedDictionaryURL(); + NSString* uniqueID = [NSUUID UUID].UUIDString; + return [[savedDictionaryURL URLByAppendingPathComponent:uniqueID] + URLByAppendingPathExtension:@"gputrace"]; +} + +bool GPUTracerMTL::CreateGPUTraceSavedDictionaryIfNeeded() const { + NSFileManager* fileManager = [NSFileManager defaultManager]; + NSURL* gpuTraceSavedDictionaryURL = GetGPUTraceSavedDictionaryURL(); + if ([fileManager fileExistsAtPath:gpuTraceSavedDictionaryURL.path]) { + return true; + } + + NSError* error = nil; + [fileManager createDirectoryAtURL:gpuTraceSavedDictionaryURL + withIntermediateDirectories:NO + attributes:nil + error:&error]; + if (error != nil) { + FML_LOG(ERROR) << "Metal frame capture " + "CreateGPUTraceSavedDictionaryIfNeeded failed."; + return false; + } + return true; +} + +NSURL* GPUTracerMTL::GetGPUTraceSavedDictionaryURL() const { + NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, + NSUserDomainMask, YES); + NSString* docPath = [paths objectAtIndex:0]; + NSURL* docURL = [NSURL fileURLWithPath:docPath]; + NSURL* gpuTraceDictionaryURL = + [docURL URLByAppendingPathComponent:@"MetalCaptureGPUTrace"]; + return gpuTraceDictionaryURL; +} + +} // namespace impeller diff --git a/impeller/renderer/backend/metal/shader_library_mtl.h b/impeller/renderer/backend/metal/shader_library_mtl.h index 3ee884901b29a..d38d1b5a33089 100644 --- a/impeller/renderer/backend/metal/shader_library_mtl.h +++ b/impeller/renderer/backend/metal/shader_library_mtl.h @@ -51,6 +51,9 @@ class ShaderLibraryMTL final : public ShaderLibrary { std::shared_ptr code, RegistrationCallback callback) override; + // |ShaderLibrary| + void UnregisterFunction(std::string name, ShaderStage stage) override; + id GetDevice() const; void RegisterLibrary(id library); diff --git a/impeller/renderer/backend/metal/shader_library_mtl.mm b/impeller/renderer/backend/metal/shader_library_mtl.mm index abb4d123b35f1..94fb1e335b16d 100644 --- a/impeller/renderer/backend/metal/shader_library_mtl.mm +++ b/impeller/renderer/backend/metal/shader_library_mtl.mm @@ -54,37 +54,38 @@ static MTLFunctionType ToMTLFunctionType(ShaderStage stage) { ShaderKey key(name, stage); - if (auto found = functions_.find(key); found != functions_.end()) { - return found->second; - } - id function = nil; { ReaderLock lock(libraries_mutex_); + + if (auto found = functions_.find(key); found != functions_.end()) { + return found->second; + } + for (size_t i = 0, count = [libraries_ count]; i < count; i++) { function = [libraries_[i] newFunctionWithName:@(name.data())]; if (function) { break; } } - } - if (function == nil) { - VALIDATION_LOG << "No library function found for name: " << name; - return nullptr; - } + if (function == nil) { + return nullptr; + } - if (function.functionType != ToMTLFunctionType(stage)) { - VALIDATION_LOG << "Library function named " << name - << " was for an unexpected shader stage."; - return nullptr; - } + if (function.functionType != ToMTLFunctionType(stage)) { + VALIDATION_LOG << "Library function named " << name + << " was for an unexpected shader stage."; + return nullptr; + } + + auto func = std::shared_ptr(new ShaderFunctionMTL( + library_id_, function, {name.data(), name.size()}, stage)); + functions_[key] = func; - auto func = std::shared_ptr(new ShaderFunctionMTL( - library_id_, function, {name.data(), name.size()}, stage)); - functions_[key] = func; - return func; + return func; + } } id ShaderLibraryMTL::GetDevice() const { @@ -142,6 +143,41 @@ static MTLFunctionType ToMTLFunctionType(ShaderStage stage) { }]; } +// |ShaderLibrary| +void ShaderLibraryMTL::UnregisterFunction(std::string name, ShaderStage stage) { + ReaderLock lock(libraries_mutex_); + + // Find the shader library containing this function name and remove it. + + bool found_library = false; + for (size_t i = [libraries_ count] - 1; i >= 0; i--) { + id function = + [libraries_[i] newFunctionWithName:@(name.data())]; + if (function) { + [libraries_ removeObjectAtIndex:i]; + found_library = true; + break; + } + } + if (!found_library) { + VALIDATION_LOG << "Library containing function " << name + << " was not found, so it couldn't be unregistered."; + } + + // Remove the shader from the function cache. + + ShaderKey key(name, stage); + + auto found = functions_.find(key); + if (found == functions_.end()) { + VALIDATION_LOG << "Library function named " << name + << " was not found, so it couldn't be unregistered."; + return; + } + + functions_.erase(found); +} + void ShaderLibraryMTL::RegisterLibrary(id library) { WriterLock lock(libraries_mutex_); [libraries_ addObject:library]; diff --git a/impeller/renderer/backend/metal/texture_mtl.h b/impeller/renderer/backend/metal/texture_mtl.h index ef61433449119..1aedbeacaa6af 100644 --- a/impeller/renderer/backend/metal/texture_mtl.h +++ b/impeller/renderer/backend/metal/texture_mtl.h @@ -15,16 +15,24 @@ namespace impeller { class TextureMTL final : public Texture, public BackendCast { public: - TextureMTL(TextureDescriptor desc, id texture); + TextureMTL(TextureDescriptor desc, + id texture, + bool wrapped = false); + + static std::shared_ptr Wrapper(TextureDescriptor desc, + id texture); // |Texture| ~TextureMTL() override; id GetMTLTexture() const; + bool IsWrapped() const; + private: id texture_ = nullptr; bool is_valid_ = false; + bool is_wrapped_ = false; // |Texture| void SetLabel(std::string_view label) override; diff --git a/impeller/renderer/backend/metal/texture_mtl.mm b/impeller/renderer/backend/metal/texture_mtl.mm index c220a2967acde..6877c1b871ac9 100644 --- a/impeller/renderer/backend/metal/texture_mtl.mm +++ b/impeller/renderer/backend/metal/texture_mtl.mm @@ -5,10 +5,13 @@ #include "impeller/renderer/backend/metal/texture_mtl.h" #include "impeller/base/validation.h" +#include "impeller/renderer/texture_descriptor.h" namespace impeller { -TextureMTL::TextureMTL(TextureDescriptor p_desc, id texture) +TextureMTL::TextureMTL(TextureDescriptor p_desc, + id texture, + bool wrapped) : Texture(p_desc), texture_(texture) { const auto& desc = GetTextureDescriptor(); @@ -21,9 +24,15 @@ return; } + is_wrapped_ = wrapped; is_valid_ = true; } +std::shared_ptr TextureMTL::Wrapper(TextureDescriptor desc, + id texture) { + return std::make_shared(desc, texture, true); +} + TextureMTL::~TextureMTL() = default; void TextureMTL::SetLabel(std::string_view label) { @@ -42,7 +51,7 @@ bool TextureMTL::OnSetContents(const uint8_t* contents, size_t length, size_t slice) { - if (!IsValid() || !contents) { + if (!IsValid() || !contents || is_wrapped_) { return false; } @@ -83,4 +92,8 @@ return is_valid_; } +bool TextureMTL::IsWrapped() const { + return is_wrapped_; +} + } // namespace impeller diff --git a/impeller/renderer/backend/vulkan/BUILD.gn b/impeller/renderer/backend/vulkan/BUILD.gn index 55af09309b5e5..6db2d4df534ea 100644 --- a/impeller/renderer/backend/vulkan/BUILD.gn +++ b/impeller/renderer/backend/vulkan/BUILD.gn @@ -56,7 +56,9 @@ impeller_component("vulkan") { public_deps = [ "../../:renderer", "../../../blobcat:blobcat_lib", + "//flutter/flutter_vma", "//flutter/fml", + "//flutter/vulkan/procs", "//third_party/vulkan-deps/vulkan-headers/src:vulkan_headers", "//third_party/vulkan_memory_allocator", ] diff --git a/impeller/renderer/backend/vulkan/allocator_vk.cc b/impeller/renderer/backend/vulkan/allocator_vk.cc index 720c31021e45e..bb034b0b3870b 100644 --- a/impeller/renderer/backend/vulkan/allocator_vk.cc +++ b/impeller/renderer/backend/vulkan/allocator_vk.cc @@ -2,20 +2,16 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -_Pragma("GCC diagnostic push"); -_Pragma("GCC diagnostic ignored \"-Wnullability-completeness\""); -_Pragma("GCC diagnostic ignored \"-Wunused-variable\""); -_Pragma("GCC diagnostic ignored \"-Wthread-safety-analysis\""); - -#define VMA_IMPLEMENTATION #include "impeller/renderer/backend/vulkan/allocator_vk.h" -#include "impeller/renderer/backend/vulkan/device_buffer_vk.h" -#include "impeller/renderer/backend/vulkan/formats_vk.h" -#include "impeller/renderer/backend/vulkan/texture_vk.h" #include -_Pragma("GCC diagnostic pop"); +#include "flutter/fml/memory/ref_ptr.h" +#include "flutter/vulkan/procs/vulkan_handle.h" +#include "flutter/vulkan/procs/vulkan_proc_table.h" +#include "impeller/renderer/backend/vulkan/device_buffer_vk.h" +#include "impeller/renderer/backend/vulkan/formats_vk.h" +#include "impeller/renderer/backend/vulkan/texture_vk.h" namespace impeller { @@ -26,11 +22,52 @@ AllocatorVK::AllocatorVK(ContextVK& context, const vk::Instance& instance, PFN_vkGetInstanceProcAddr get_instance_proc_address, PFN_vkGetDeviceProcAddr get_device_proc_address) - : context_(context) { + : context_(context), device_(logical_device) { + vk_ = fml::MakeRefCounted(get_instance_proc_address); + + auto instance_handle = vulkan::VulkanHandle(instance); + FML_CHECK(vk_->SetupInstanceProcAddresses(instance_handle)); + + auto device_handle = vulkan::VulkanHandle(logical_device); + FML_CHECK(vk_->SetupDeviceProcAddresses(device_handle)); + VmaVulkanFunctions proc_table = {}; proc_table.vkGetInstanceProcAddr = get_instance_proc_address; proc_table.vkGetDeviceProcAddr = get_device_proc_address; +#define PROVIDE_PROC(tbl, proc, provider) tbl.vk##proc = provider->proc; + PROVIDE_PROC(proc_table, GetPhysicalDeviceProperties, vk_); + PROVIDE_PROC(proc_table, GetPhysicalDeviceMemoryProperties, vk_); + PROVIDE_PROC(proc_table, AllocateMemory, vk_); + PROVIDE_PROC(proc_table, FreeMemory, vk_); + PROVIDE_PROC(proc_table, MapMemory, vk_); + PROVIDE_PROC(proc_table, UnmapMemory, vk_); + PROVIDE_PROC(proc_table, FlushMappedMemoryRanges, vk_); + PROVIDE_PROC(proc_table, InvalidateMappedMemoryRanges, vk_); + PROVIDE_PROC(proc_table, BindBufferMemory, vk_); + PROVIDE_PROC(proc_table, BindImageMemory, vk_); + PROVIDE_PROC(proc_table, GetBufferMemoryRequirements, vk_); + PROVIDE_PROC(proc_table, GetImageMemoryRequirements, vk_); + PROVIDE_PROC(proc_table, CreateBuffer, vk_); + PROVIDE_PROC(proc_table, DestroyBuffer, vk_); + PROVIDE_PROC(proc_table, CreateImage, vk_); + PROVIDE_PROC(proc_table, DestroyImage, vk_); + PROVIDE_PROC(proc_table, CmdCopyBuffer, vk_); + +#define PROVIDE_PROC_COALESCE(tbl, proc, provider) \ + tbl.vk##proc##KHR = provider->proc ? provider->proc : provider->proc##KHR; + // See the following link for why we have to pick either KHR version or + // promoted non-KHR version: + // https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator/issues/203 + PROVIDE_PROC_COALESCE(proc_table, GetBufferMemoryRequirements2, vk_); + PROVIDE_PROC_COALESCE(proc_table, GetImageMemoryRequirements2, vk_); + PROVIDE_PROC_COALESCE(proc_table, BindBufferMemory2, vk_); + PROVIDE_PROC_COALESCE(proc_table, BindImageMemory2, vk_); + PROVIDE_PROC_COALESCE(proc_table, GetPhysicalDeviceMemoryProperties2, vk_); +#undef PROVIDE_PROC_COALESCE + +#undef PROVIDE_PROC + VmaAllocatorCreateInfo allocator_info = {}; allocator_info.vulkanApiVersion = vulkan_api_version; allocator_info.physicalDevice = physical_device; @@ -100,6 +137,24 @@ std::shared_ptr AllocatorVK::OnCreateTexture( return nullptr; } + vk::ImageViewCreateInfo view_create_info = {}; + view_create_info.image = vk::Image{img}; + view_create_info.viewType = vk::ImageViewType::e2D; + view_create_info.format = image_create_info.format; + view_create_info.subresourceRange.aspectMask = + vk::ImageAspectFlagBits::eColor; + view_create_info.subresourceRange.levelCount = image_create_info.mipLevels; + view_create_info.subresourceRange.layerCount = image_create_info.arrayLayers; + + auto img_view_res = device_.createImageView(view_create_info); + if (img_view_res.result != vk::Result::eSuccess) { + VALIDATION_LOG << "Unable to create an image view: " + << vk::to_string(img_view_res.result); + return nullptr; + } + + auto image_view = static_cast(img_view_res.value); + auto texture_info = std::make_unique(TextureInfoVK{ .backing_type = TextureBackingTypeVK::kAllocatedTexture, .allocated_texture = @@ -108,6 +163,7 @@ std::shared_ptr AllocatorVK::OnCreateTexture( .allocation = allocation, .allocation_info = allocation_info, .image = img, + .image_view = image_view, }, }); return std::make_shared(desc, &context_, std::move(texture_info)); diff --git a/impeller/renderer/backend/vulkan/allocator_vk.h b/impeller/renderer/backend/vulkan/allocator_vk.h index a5ac44545a27d..595a0b838ec96 100644 --- a/impeller/renderer/backend/vulkan/allocator_vk.h +++ b/impeller/renderer/backend/vulkan/allocator_vk.h @@ -5,6 +5,8 @@ #pragma once #include "flutter/fml/macros.h" +#include "flutter/fml/memory/ref_ptr.h" +#include "flutter/vulkan/procs/vulkan_proc_table.h" #include "impeller/renderer/allocator.h" #include "impeller/renderer/backend/vulkan/context_vk.h" #include "impeller/renderer/backend/vulkan/vk.h" @@ -21,8 +23,10 @@ class AllocatorVK final : public Allocator { private: friend class ContextVK; + fml::RefPtr vk_; VmaAllocator allocator_ = {}; ContextVK& context_; + vk::Device device_; bool is_valid_ = false; AllocatorVK(ContextVK& context, diff --git a/impeller/renderer/backend/vulkan/blit_pass_vk.h b/impeller/renderer/backend/vulkan/blit_pass_vk.h index f05d878c725ec..a76e5a71ecb0b 100644 --- a/impeller/renderer/backend/vulkan/blit_pass_vk.h +++ b/impeller/renderer/backend/vulkan/blit_pass_vk.h @@ -30,14 +30,21 @@ class BlitPassVK final : public BlitPass { const std::shared_ptr& transients_allocator) const override; // |BlitPass| - void OnCopyTextureToTextureCommand(std::shared_ptr source, + bool OnCopyTextureToTextureCommand(std::shared_ptr source, std::shared_ptr destination, IRect source_region, IPoint destination_origin, std::string label) override; // |BlitPass| - void OnGenerateMipmapCommand(std::shared_ptr texture, + bool OnCopyTextureToBufferCommand(std::shared_ptr source, + std::shared_ptr destination, + IRect source_region, + size_t destination_offset, + std::string label) override; + + // |BlitPass| + bool OnGenerateMipmapCommand(std::shared_ptr texture, std::string label) override; FML_DISALLOW_COPY_AND_ASSIGN(BlitPassVK); diff --git a/impeller/renderer/backend/vulkan/context_vk.cc b/impeller/renderer/backend/vulkan/context_vk.cc index 0a6dbbc385add..58508e8793d75 100644 --- a/impeller/renderer/backend/vulkan/context_vk.cc +++ b/impeller/renderer/backend/vulkan/context_vk.cc @@ -2,27 +2,53 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +// FLUTTER_NOLINT: https://github.com/flutter/flutter/issues/68331 + #include "impeller/renderer/backend/vulkan/context_vk.h" #include #include #include #include +#include #include "flutter/fml/build_config.h" +#include "flutter/fml/string_conversion.h" #include "flutter/fml/trace_event.h" #include "impeller/base/validation.h" #include "impeller/base/work_queue_common.h" #include "impeller/renderer/backend/vulkan/allocator_vk.h" #include "impeller/renderer/backend/vulkan/capabilities_vk.h" #include "impeller/renderer/backend/vulkan/command_buffer_vk.h" +#include "impeller/renderer/backend/vulkan/formats_vk.h" #include "impeller/renderer/backend/vulkan/surface_producer_vk.h" #include "impeller/renderer/backend/vulkan/swapchain_details_vk.h" #include "impeller/renderer/backend/vulkan/vk.h" -#include "vulkan/vulkan.hpp" VULKAN_HPP_DEFAULT_DISPATCH_LOADER_DYNAMIC_STORAGE +namespace { + +VKAPI_ATTR VkBool32 VKAPI_CALL DebugUtilsMessengerCallback( + VkDebugUtilsMessageSeverityFlagBitsEXT severity, + VkDebugUtilsMessageTypeFlagsEXT type, + const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData, + void* pUserData) { + const auto prefix = impeller::vk::to_string( + impeller::vk::DebugUtilsMessageSeverityFlagBitsEXT{severity}); + + FML_DCHECK(false) << prefix << "[" << pCallbackData->messageIdNumber << "][" + << pCallbackData->pMessageIdName + << "] : " << pCallbackData->pMessage; + + // The return value of this callback controls whether the Vulkan call that + // caused the validation message will be aborted or not We return VK_TRUE as + // we DO want Vulkan calls that cause a validation message to abort + return VK_TRUE; +} + +} // namespace + namespace impeller { static std::set kRequiredDeviceExtensions = { @@ -32,6 +58,20 @@ static std::set kRequiredDeviceExtensions = { #endif }; +std::vector kRequiredWSIInstanceExtensions = { +#if FML_OS_WIN + "VK_KHR_win32_surface", +#elif FML_OS_ANDROID + "VK_KHR_android_surface", +#elif FML_OS_LINUX + "VK_KHR_xcb_surface", + "VK_KHR_xlib_surface", + "VK_KHR_wayland_surface", +#elif FML_OS_MACOSX + "VK_EXT_metal_surface", +#endif +}; + #if FML_OS_MACOSX static const char* MVK_MACOS_SURFACE_EXT = "VK_MVK_macos_surface"; #endif @@ -50,17 +90,19 @@ static bool HasRequiredQueues(const vk::PhysicalDevice& device) { vk::QueueFlagBits::eTransfer)); } -static bool HasRequiredExtensions(const vk::PhysicalDevice& device) { +static std::vector HasRequiredExtensions( + const vk::PhysicalDevice& device) { std::set exts; + std::vector missing; for (const auto& ext : device.enumerateDeviceExtensionProperties().value) { exts.insert(ext.extensionName); } for (const auto& req_ext : kRequiredDeviceExtensions) { if (exts.count(req_ext) != 1u) { - return false; + missing.push_back(req_ext); } } - return true; + return missing; } static vk::PhysicalDeviceFeatures GetRequiredPhysicalDeviceFeatures() { @@ -80,15 +122,17 @@ static bool HasRequiredProperties(const vk::PhysicalDevice& device) { static bool IsPhysicalDeviceCompatible(const vk::PhysicalDevice& device) { if (!HasRequiredQueues(device)) { - VALIDATION_LOG << "Device doesn't have required queues."; + FML_LOG(ERROR) << "Device doesn't have required queues."; return false; } - if (!HasRequiredExtensions(device)) { - VALIDATION_LOG << "Device doesn't have required extensions."; + auto missing_exts = HasRequiredExtensions(device); + if (!missing_exts.empty()) { + FML_LOG(ERROR) << "Device doesn't have required extensions: " + << fml::Join(missing_exts, ", "); return false; } if (!HasRequiredProperties(device)) { - VALIDATION_LOG << "Device doesn't have required properties."; + FML_LOG(ERROR) << "Device doesn't have required properties."; return false; } return true; @@ -251,6 +295,23 @@ ContextVK::ContextVK( } enabled_extensions.push_back(VK_KHR_SURFACE_EXTENSION_NAME); + //---------------------------------------------------------------------------- + /// Enable WSI Instance Extensions. Having any one of these is sufficient. + /// + bool has_wsi_extensions = false; + for (const auto& wsi_ext : kRequiredWSIInstanceExtensions) { + if (capabilities->HasExtension(wsi_ext)) { + enabled_extensions.push_back(wsi_ext.c_str()); + has_wsi_extensions = true; + } + } + if (!has_wsi_extensions) { + VALIDATION_LOG + << "Instance doesn't have any of the required WSI extensions: " + << fml::Join(kRequiredWSIInstanceExtensions, ", "); + return; + } + //---------------------------------------------------------------------------- /// Enable any and all validation as well as debug toggles. /// @@ -296,7 +357,6 @@ ContextVK::ContextVK( if (has_debug_utils) { vk::DebugUtilsMessengerCreateInfoEXT debug_messenger_info; - debug_messenger_info.messageSeverity = vk::DebugUtilsMessageSeverityFlagBitsEXT::eWarning | vk::DebugUtilsMessageSeverityFlagBitsEXT::eError; @@ -305,16 +365,7 @@ ContextVK::ContextVK( vk::DebugUtilsMessageTypeFlagBitsEXT::ePerformance | vk::DebugUtilsMessageTypeFlagBitsEXT::eValidation; debug_messenger_info.pUserData = nullptr; - debug_messenger_info.pfnUserCallback = - [](VkDebugUtilsMessageSeverityFlagBitsEXT severity, - VkDebugUtilsMessageTypeFlagsEXT type, - const VkDebugUtilsMessengerCallbackDataEXT* data, - void* user_data) -> VkBool32 { - FML_DCHECK(false) - << vk::to_string(vk::DebugUtilsMessageSeverityFlagBitsEXT{severity}) - << ": " << data->pMessage; - return true; - }; + debug_messenger_info.pfnUserCallback = DebugUtilsMessengerCallback; auto debug_messenger_result = instance.value->createDebugUtilsMessengerEXTUnique( @@ -477,6 +528,28 @@ std::unique_ptr ContextVK::AcquireSurface(size_t current_frame) { return surface_producer_->AcquireSurface(current_frame); } +#ifdef FML_OS_ANDROID + +vk::UniqueSurfaceKHR ContextVK::CreateAndroidSurface( + ANativeWindow* window) const { + if (!instance_) { + return vk::UniqueSurfaceKHR{VK_NULL_HANDLE}; + } + + auto create_info = vk::AndroidSurfaceCreateInfoKHR().setWindow(window); + auto surface_res = instance_->createAndroidSurfaceKHRUnique(create_info); + + if (surface_res.result != vk::Result::eSuccess) { + VALIDATION_LOG << "Could not create Android surface, error: " + << vk::to_string(surface_res.result); + return vk::UniqueSurfaceKHR{VK_NULL_HANDLE}; + } + + return std::move(surface_res.value); +} + +#endif // FML_OS_ANDROID + void ContextVK::SetupSwapchain(vk::UniqueSurfaceKHR surface) { surface_ = std::move(surface); auto present_queue_out = PickPresentQueue(physical_device_, *surface_); @@ -491,6 +564,7 @@ void ContextVK::SetupSwapchain(vk::UniqueSurfaceKHR surface) { if (!swapchain_details) { return; } + surface_format_ = swapchain_details->PickSurfaceFormat().format; swapchain_ = SwapchainVK::Create(*device_, *surface_, *swapchain_details); auto weak_this = weak_from_this(); surface_producer_ = SurfaceProducerVK::Create( @@ -510,4 +584,8 @@ std::shared_ptr ContextVK::GetDescriptorPool() const { return descriptor_pool_; } +PixelFormat ContextVK::GetColorAttachmentPixelFormat() const { + return ToPixelFormat(surface_format_); +} + } // namespace impeller diff --git a/impeller/renderer/backend/vulkan/context_vk.h b/impeller/renderer/backend/vulkan/context_vk.h index 081525d3f753f..f99ef0e28d41b 100644 --- a/impeller/renderer/backend/vulkan/context_vk.h +++ b/impeller/renderer/backend/vulkan/context_vk.h @@ -19,6 +19,7 @@ #include "impeller/renderer/backend/vulkan/swapchain_vk.h" #include "impeller/renderer/backend/vulkan/vk.h" #include "impeller/renderer/context.h" +#include "impeller/renderer/formats.h" namespace impeller { @@ -66,6 +67,10 @@ class ContextVK final : public Context, public BackendCast { std::shared_ptr GetDescriptorPool() const; +#ifdef FML_OS_ANDROID + vk::UniqueSurfaceKHR CreateAndroidSurface(ANativeWindow* window) const; +#endif // FML_OS_ANDROID + private: std::shared_ptr worker_task_runner_; vk::UniqueInstance instance_; @@ -81,6 +86,7 @@ class ContextVK final : public Context, public BackendCast { vk::Queue transfer_queue_; vk::Queue present_queue_; vk::UniqueSurfaceKHR surface_; + vk::Format surface_format_; std::unique_ptr swapchain_; std::unique_ptr graphics_command_pool_; std::unique_ptr surface_producer_; @@ -110,6 +116,9 @@ class ContextVK final : public Context, public BackendCast { // |Context| std::shared_ptr CreateCommandBuffer() const override; + // |Context| + PixelFormat GetColorAttachmentPixelFormat() const override; + // |Context| std::shared_ptr GetWorkQueue() const override; diff --git a/impeller/renderer/backend/vulkan/descriptor_pool_vk.cc b/impeller/renderer/backend/vulkan/descriptor_pool_vk.cc index e00fcebe2d9c2..b4e44282f3b06 100644 --- a/impeller/renderer/backend/vulkan/descriptor_pool_vk.cc +++ b/impeller/renderer/backend/vulkan/descriptor_pool_vk.cc @@ -10,7 +10,7 @@ namespace impeller { -DescriptorPoolVK::DescriptorPoolVK(vk::Device device) { +DescriptorPoolVK::DescriptorPoolVK(vk::Device device) : device_(device) { constexpr size_t kPoolSize = 1024; std::vector pool_sizes = { @@ -34,20 +34,24 @@ DescriptorPoolVK::DescriptorPoolVK(vk::Device device) { pool_sizes.data() // pool sizes }; - auto res = device.createDescriptorPoolUnique(pool_info); + auto res = device.createDescriptorPool(pool_info); if (res.result != vk::Result::eSuccess) { VALIDATION_LOG << "Unable to create a descriptor pool"; return; } - pool_ = std::move(res.value); + pool_ = res.value; is_valid_ = true; } vk::DescriptorPool DescriptorPoolVK::GetPool() { - return *pool_; + return pool_; } -DescriptorPoolVK::~DescriptorPoolVK() = default; +DescriptorPoolVK::~DescriptorPoolVK() { + if (is_valid_) { + device_.destroyDescriptorPool(pool_); + } +} } // namespace impeller diff --git a/impeller/renderer/backend/vulkan/descriptor_pool_vk.h b/impeller/renderer/backend/vulkan/descriptor_pool_vk.h index da37ec2c2e179..c4d33d9289a05 100644 --- a/impeller/renderer/backend/vulkan/descriptor_pool_vk.h +++ b/impeller/renderer/backend/vulkan/descriptor_pool_vk.h @@ -22,7 +22,8 @@ class DescriptorPoolVK { vk::DescriptorPool GetPool(); private: - vk::UniqueDescriptorPool pool_; + vk::Device device_; + vk::DescriptorPool pool_; bool is_valid_ = false; FML_DISALLOW_COPY_AND_ASSIGN(DescriptorPoolVK); diff --git a/impeller/renderer/backend/vulkan/formats_vk.h b/impeller/renderer/backend/vulkan/formats_vk.h index 716f785d69b9f..5f91080644808 100644 --- a/impeller/renderer/backend/vulkan/formats_vk.h +++ b/impeller/renderer/backend/vulkan/formats_vk.h @@ -150,6 +150,10 @@ constexpr vk::Format ToVKImageFormat(PixelFormat format) { return vk::Format::eB8G8R8A8Srgb; case PixelFormat::kS8UInt: return vk::Format::eS8Uint; + case PixelFormat::kR8UNormInt: + return vk::Format::eR8Unorm; + case PixelFormat::kR8G8UNormInt: + return vk::Format::eR8G8Unorm; } } @@ -176,6 +180,12 @@ constexpr PixelFormat ToPixelFormat(vk::Format format) { case vk::Format::eS8Uint: return PixelFormat::kS8UInt; + case vk::Format::eR8Unorm: + return PixelFormat::kR8UNormInt; + + case vk::Format::eR8G8Unorm: + return PixelFormat::kR8G8UNormInt; + default: return PixelFormat::kUnknown; } diff --git a/impeller/renderer/backend/vulkan/pipeline_library_vk.cc b/impeller/renderer/backend/vulkan/pipeline_library_vk.cc index 8c4d1af7fab07..9f0912a68c397 100644 --- a/impeller/renderer/backend/vulkan/pipeline_library_vk.cc +++ b/impeller/renderer/backend/vulkan/pipeline_library_vk.cc @@ -147,8 +147,9 @@ std::optional PipelineLibraryVK::CreateRenderPass( std::vector render_pass_attachments; const auto sample_count = desc.GetSampleCount(); // Set the color attachment. + const auto& format = desc.GetColorAttachmentDescriptor(0)->format; render_pass_attachments.push_back(CreatePlaceholderAttachmentDescription( - vk::Format::eB8G8R8A8Unorm, sample_count, true)); + ToVKImageFormat(format), sample_count, true)); std::vector color_attachment_references; std::vector resolve_attachment_references; @@ -387,7 +388,8 @@ std::unique_ptr PipelineLibraryVK::CreatePipeline( auto pipeline = device_.createGraphicsPipelineUnique(cache_.get(), pipeline_info); if (pipeline.result != vk::Result::eSuccess) { - VALIDATION_LOG << "Could not create graphics pipeline: " << desc.GetLabel(); + VALIDATION_LOG << "Could not create graphics pipeline - " << desc.GetLabel() + << ": " << vk::to_string(pipeline.result); return nullptr; } diff --git a/impeller/renderer/backend/vulkan/render_pass_vk.cc b/impeller/renderer/backend/vulkan/render_pass_vk.cc index 4beb8c174136e..d5d46b8c3c873 100644 --- a/impeller/renderer/backend/vulkan/render_pass_vk.cc +++ b/impeller/renderer/backend/vulkan/render_pass_vk.cc @@ -13,9 +13,13 @@ #include "impeller/renderer/backend/vulkan/device_buffer_vk.h" #include "impeller/renderer/backend/vulkan/formats_vk.h" #include "impeller/renderer/backend/vulkan/pipeline_vk.h" +#include "impeller/renderer/backend/vulkan/sampler_vk.h" #include "impeller/renderer/backend/vulkan/surface_producer_vk.h" #include "impeller/renderer/backend/vulkan/texture_vk.h" +#include "impeller/renderer/sampler.h" #include "impeller/renderer/shader_types.h" +#include "vulkan/vulkan_enums.hpp" +#include "vulkan/vulkan_structs.hpp" namespace impeller { @@ -23,11 +27,11 @@ static uint32_t color_flash = 0; RenderPassVK::RenderPassVK(std::weak_ptr context, vk::Device device, - RenderTarget target, + const RenderTarget& target, vk::UniqueCommandBuffer command_buffer, vk::UniqueRenderPass render_pass, SurfaceProducerVK* surface_producer) - : RenderPass(context, target), + : RenderPass(std::move(context), target), device_(device), command_buffer_(std::move(command_buffer)), render_pass_(std::move(render_pass)), @@ -77,62 +81,16 @@ bool RenderPassVK::OnEncodeCommands(const Context& context) const { const uint32_t frame_num = tex_info.frame_num; // layout transition. - { - auto pool = command_buffer_.getPool(); - vk::CommandBufferAllocateInfo alloc_info = - vk::CommandBufferAllocateInfo() - .setCommandPool(pool) - .setLevel(vk::CommandBufferLevel::ePrimary) - .setCommandBufferCount(1); - auto cmd_buf_res = device_.allocateCommandBuffersUnique(alloc_info); - if (cmd_buf_res.result != vk::Result::eSuccess) { - VALIDATION_LOG << "Failed to allocate command buffer: " - << vk::to_string(cmd_buf_res.result); - return false; - } - auto transition_cmd = std::move(cmd_buf_res.value[0]); - - vk::CommandBufferBeginInfo begin_info; - auto res = transition_cmd->begin(begin_info); - - vk::ImageMemoryBarrier barrier = - vk::ImageMemoryBarrier() - .setSrcAccessMask(vk::AccessFlagBits::eColorAttachmentRead) - .setDstAccessMask(vk::AccessFlagBits::eColorAttachmentWrite) - .setOldLayout(vk::ImageLayout::eUndefined) - .setNewLayout(vk::ImageLayout::eColorAttachmentOptimal) - .setSrcQueueFamilyIndex(VK_QUEUE_FAMILY_IGNORED) - .setDstQueueFamilyIndex(VK_QUEUE_FAMILY_IGNORED) - .setImage(tex_info.swapchain_image->GetImage()) - .setSubresourceRange( - vk::ImageSubresourceRange() - .setAspectMask(vk::ImageAspectFlagBits::eColor) - .setBaseMipLevel(0) - .setLevelCount(1) - .setBaseArrayLayer(0) - .setLayerCount(1)); - transition_cmd->pipelineBarrier( - vk::PipelineStageFlagBits::eColorAttachmentOutput, - vk::PipelineStageFlagBits::eColorAttachmentOutput, {}, nullptr, nullptr, - barrier); - - res = transition_cmd->end(); - if (res != vk::Result::eSuccess) { - VALIDATION_LOG << "Failed to end command buffer: " << vk::to_string(res); - return false; - } - - surface_producer_->QueueCommandBuffer(frame_num, std::move(transition_cmd)); + if (!TransitionImageLayout(frame_num, tex_info.swapchain_image->GetImage(), + vk::ImageLayout::eUndefined, + vk::ImageLayout::eColorAttachmentOptimal)) { + return false; } vk::ClearValue clear_value; clear_value.color = vk::ClearColorValue(std::array{0.0f, 0.0f, 0.0, 0.0f}); - std::array fbo_attachments = { - tex_info.swapchain_image->GetImageView(), - }; - const auto& size = tex_info.swapchain_image->GetSize(); vk::Rect2D render_area = vk::Rect2D() @@ -162,7 +120,7 @@ bool RenderPassVK::OnEncodeCommands(const Context& context) const { continue; } - if (!EncodeCommand(context, command)) { + if (!EncodeCommand(frame_num, context, command)) { return false; } } @@ -188,14 +146,16 @@ bool RenderPassVK::EndCommandBuffer(uint32_t frame_num) { return false; } -bool RenderPassVK::EncodeCommand(const Context& context, +bool RenderPassVK::EncodeCommand(uint32_t frame_num, + const Context& context, const Command& command) const { SetViewportAndScissor(command); auto& pipeline_vk = PipelineVK::Cast(*command.pipeline); PipelineCreateInfoVK* pipeline_create_info = pipeline_vk.GetCreateInfo(); - if (!AllocateAndBindDescriptorSets(context, command, pipeline_create_info)) { + if (!AllocateAndBindDescriptorSets(frame_num, context, command, + pipeline_create_info)) { return false; } @@ -243,6 +203,7 @@ bool RenderPassVK::EncodeCommand(const Context& context, } bool RenderPassVK::AllocateAndBindDescriptorSets( + uint32_t frame_num, const Context& context, const Command& command, PipelineCreateInfoVK* pipeline_create_info) const { @@ -269,13 +230,15 @@ bool RenderPassVK::AllocateAndBindDescriptorSets( } auto desc_sets = desc_sets_res.value; - bool update_vertex_descriptors = UpdateDescriptorSets( - "vertex_bindings", command.vertex_bindings, allocator, desc_sets[0]); + bool update_vertex_descriptors = + UpdateDescriptorSets(frame_num, "vertex_bindings", + command.vertex_bindings, allocator, desc_sets[0]); if (!update_vertex_descriptors) { return false; } - bool update_frag_descriptors = UpdateDescriptorSets( - "fragment_bindings", command.fragment_bindings, allocator, desc_sets[0]); + bool update_frag_descriptors = + UpdateDescriptorSets(frame_num, "fragment_bindings", + command.fragment_bindings, allocator, desc_sets[0]); if (!update_frag_descriptors) { return false; } @@ -285,12 +248,15 @@ bool RenderPassVK::AllocateAndBindDescriptorSets( return true; } -bool RenderPassVK::UpdateDescriptorSets(const char* label, +bool RenderPassVK::UpdateDescriptorSets(uint32_t frame_num, + const char* label, const Bindings& bindings, Allocator& allocator, vk::DescriptorSet desc_set) const { std::vector writes; std::vector buffer_infos; + std::vector image_infos; + for (const auto& [buffer_index, view] : bindings.buffers) { const auto& buffer_view = view.resource.buffer; @@ -330,6 +296,42 @@ bool RenderPassVK::UpdateDescriptorSets(const char* label, writes.push_back(setWrite); } + for (const auto& [index, sampler_handle] : bindings.samplers) { + if (bindings.textures.find(index) == bindings.textures.end()) { + VALIDATION_LOG << "Missing texture for sampler: " << index; + return false; + } + + const auto& texture_vk = + TextureVK::Cast(*bindings.textures.at(index).resource); + + const Sampler& sampler = *sampler_handle.resource; + const SamplerVK& sampler_vk = SamplerVK::Cast(sampler); + + const SampledImageSlot& slot = bindings.sampled_images.at(index); + + if (!TransitionImageLayout(frame_num, texture_vk.GetImage(), + vk::ImageLayout::eUndefined, + vk::ImageLayout::eGeneral)) { + return false; + } + + vk::DescriptorImageInfo desc_image_info; + desc_image_info.setImageLayout(vk::ImageLayout::eGeneral); + desc_image_info.setSampler(sampler_vk.GetSamplerVK()); + desc_image_info.setImageView(texture_vk.GetImageView()); + image_infos.push_back(desc_image_info); + + vk::WriteDescriptorSet setWrite; + setWrite.setDstSet(desc_set); + setWrite.setDstBinding(slot.binding); + setWrite.setDescriptorCount(1); + setWrite.setDescriptorType(vk::DescriptorType::eCombinedImageSampler); + setWrite.setPImageInfo(&image_infos.back()); + + writes.push_back(setWrite); + } + std::array copies; device_.updateDescriptorSets(writes, copies); @@ -371,7 +373,64 @@ vk::Framebuffer RenderPassVK::CreateFrameBuffer( .setLayers(1); auto res = device_.createFramebuffer(fb_create_info); FML_CHECK(res.result == vk::Result::eSuccess); - return std::move(res.value); + return res.value; +} + +bool RenderPassVK::TransitionImageLayout(uint32_t frame_num, + vk::Image image, + vk::ImageLayout layout_old, + vk::ImageLayout layout_new) const { + auto pool = command_buffer_.getPool(); + vk::CommandBufferAllocateInfo alloc_info = + vk::CommandBufferAllocateInfo() + .setCommandPool(pool) + .setLevel(vk::CommandBufferLevel::ePrimary) + .setCommandBufferCount(1); + auto cmd_buf_res = device_.allocateCommandBuffersUnique(alloc_info); + if (cmd_buf_res.result != vk::Result::eSuccess) { + VALIDATION_LOG << "Failed to allocate command buffer: " + << vk::to_string(cmd_buf_res.result); + return false; + } + auto transition_cmd = std::move(cmd_buf_res.value[0]); + + vk::CommandBufferBeginInfo begin_info; + auto res = transition_cmd->begin(begin_info); + + if (res != vk::Result::eSuccess) { + VALIDATION_LOG << "Failed to begin command buffer: " << vk::to_string(res); + return false; + } + + vk::ImageMemoryBarrier barrier = + vk::ImageMemoryBarrier() + .setSrcAccessMask(vk::AccessFlagBits::eColorAttachmentRead) + .setDstAccessMask(vk::AccessFlagBits::eColorAttachmentWrite) + .setOldLayout(layout_old) + .setNewLayout(layout_new) + .setSrcQueueFamilyIndex(VK_QUEUE_FAMILY_IGNORED) + .setDstQueueFamilyIndex(VK_QUEUE_FAMILY_IGNORED) + .setImage(image) + .setSubresourceRange( + vk::ImageSubresourceRange() + .setAspectMask(vk::ImageAspectFlagBits::eColor) + .setBaseMipLevel(0) + .setLevelCount(1) + .setBaseArrayLayer(0) + .setLayerCount(1)); + transition_cmd->pipelineBarrier( + vk::PipelineStageFlagBits::eColorAttachmentOutput, + vk::PipelineStageFlagBits::eColorAttachmentOutput, {}, nullptr, nullptr, + barrier); + + res = transition_cmd->end(); + if (res != vk::Result::eSuccess) { + VALIDATION_LOG << "Failed to end command buffer: " << vk::to_string(res); + return false; + } + + surface_producer_->QueueCommandBuffer(frame_num, std::move(transition_cmd)); + return true; } } // namespace impeller diff --git a/impeller/renderer/backend/vulkan/render_pass_vk.h b/impeller/renderer/backend/vulkan/render_pass_vk.h index c6c551d537165..79227696af038 100644 --- a/impeller/renderer/backend/vulkan/render_pass_vk.h +++ b/impeller/renderer/backend/vulkan/render_pass_vk.h @@ -12,6 +12,7 @@ #include "impeller/renderer/command.h" #include "impeller/renderer/render_pass.h" #include "impeller/renderer/render_target.h" +#include "vulkan/vulkan_enums.hpp" #include "vulkan/vulkan_structs.hpp" namespace impeller { @@ -20,7 +21,7 @@ class RenderPassVK final : public RenderPass { public: RenderPassVK(std::weak_ptr context, vk::Device device, - RenderTarget target, + const RenderTarget& target, vk::UniqueCommandBuffer command_buffer, vk::UniqueRenderPass render_pass, SurfaceProducerVK* surface_producer); @@ -48,16 +49,20 @@ class RenderPassVK final : public RenderPass { // |RenderPass| bool OnEncodeCommands(const Context& context) const override; - bool EncodeCommand(const Context& context, const Command& command) const; + bool EncodeCommand(uint32_t frame_num, + const Context& context, + const Command& command) const; bool AllocateAndBindDescriptorSets( + uint32_t frame_num, const Context& context, const Command& command, PipelineCreateInfoVK* pipeline_create_info) const; bool EndCommandBuffer(uint32_t frame_num); - bool UpdateDescriptorSets(const char* label, + bool UpdateDescriptorSets(uint32_t frame_num, + const char* label, const Bindings& bindings, Allocator& allocator, vk::DescriptorSet desc_set) const; @@ -67,6 +72,11 @@ class RenderPassVK final : public RenderPass { vk::Framebuffer CreateFrameBuffer( const WrappedTextureInfoVK& wrapped_texture_info) const; + bool TransitionImageLayout(uint32_t frame_num, + vk::Image image, + vk::ImageLayout layout_old, + vk::ImageLayout layout_new) const; + FML_DISALLOW_COPY_AND_ASSIGN(RenderPassVK); }; diff --git a/impeller/renderer/backend/vulkan/sampler_vk.cc b/impeller/renderer/backend/vulkan/sampler_vk.cc index 161fa57378222..6212bedd2cb32 100644 --- a/impeller/renderer/backend/vulkan/sampler_vk.cc +++ b/impeller/renderer/backend/vulkan/sampler_vk.cc @@ -7,8 +7,12 @@ namespace impeller { SamplerVK::~SamplerVK() {} +vk::Sampler SamplerVK::GetSamplerVK() const { + return sampler_.get(); +} + SamplerVK::SamplerVK(SamplerDescriptor desc, vk::UniqueSampler sampler) - : Sampler(desc), sampler_(std::move(sampler)) { + : Sampler(std::move(desc)), sampler_(std::move(sampler)) { is_valid_ = true; } diff --git a/impeller/renderer/backend/vulkan/sampler_vk.h b/impeller/renderer/backend/vulkan/sampler_vk.h index 15d08205fa754..4c11bd3660e8c 100644 --- a/impeller/renderer/backend/vulkan/sampler_vk.h +++ b/impeller/renderer/backend/vulkan/sampler_vk.h @@ -21,6 +21,8 @@ class SamplerVK final : public Sampler, public BackendCast { // |Sampler| ~SamplerVK() override; + vk::Sampler GetSamplerVK() const; + private: friend SamplerLibraryVK; diff --git a/impeller/renderer/backend/vulkan/shader_library_vk.cc b/impeller/renderer/backend/vulkan/shader_library_vk.cc index 3e8c40cac3010..23f7ad1b9b3c8 100644 --- a/impeller/renderer/backend/vulkan/shader_library_vk.cc +++ b/impeller/renderer/backend/vulkan/shader_library_vk.cc @@ -114,6 +114,8 @@ bool ShaderLibraryVK::IsValid() const { std::shared_ptr ShaderLibraryVK::GetFunction( std::string_view name, ShaderStage stage) { + ReaderLock lock(functions_mutex_); + const auto key = ShaderKey{{name.data(), name.size()}, stage}; auto found = functions_.find(key); if (found != functions_.end()) { @@ -122,4 +124,22 @@ std::shared_ptr ShaderLibraryVK::GetFunction( return nullptr; } +// |ShaderLibrary| +void ShaderLibraryVK::UnregisterFunction(std::string name, ShaderStage stage) { + ReaderLock lock(functions_mutex_); + + const auto key = ShaderKey{name, stage}; + + auto found = functions_.find(key); + if (found != functions_.end()) { + VALIDATION_LOG << "Library function named " << name + << " was not found, so it couldn't be unregistered."; + return; + } + + functions_.erase(found); + + return; +} + } // namespace impeller diff --git a/impeller/renderer/backend/vulkan/shader_library_vk.h b/impeller/renderer/backend/vulkan/shader_library_vk.h index 0b446757d68cc..c02eedb56912a 100644 --- a/impeller/renderer/backend/vulkan/shader_library_vk.h +++ b/impeller/renderer/backend/vulkan/shader_library_vk.h @@ -6,6 +6,7 @@ #include "flutter/fml/macros.h" #include "impeller/base/comparable.h" +#include "impeller/base/thread.h" #include "impeller/renderer/backend/vulkan/vk.h" #include "impeller/renderer/shader_key.h" #include "impeller/renderer/shader_library.h" @@ -23,6 +24,7 @@ class ShaderLibraryVK final : public ShaderLibrary { private: friend class ContextVK; const UniqueID library_id_; + mutable RWMutex functions_mutex_; ShaderFunctionMap functions_; bool is_valid_ = false; @@ -34,6 +36,9 @@ class ShaderLibraryVK final : public ShaderLibrary { std::shared_ptr GetFunction(std::string_view name, ShaderStage stage) override; + // |ShaderLibrary| + void UnregisterFunction(std::string name, ShaderStage stage) override; + FML_DISALLOW_COPY_AND_ASSIGN(ShaderLibraryVK); }; diff --git a/impeller/renderer/backend/vulkan/surface_producer_vk.cc b/impeller/renderer/backend/vulkan/surface_producer_vk.cc index ad1b7cf2f26a6..e92c27617d442 100644 --- a/impeller/renderer/backend/vulkan/surface_producer_vk.cc +++ b/impeller/renderer/backend/vulkan/surface_producer_vk.cc @@ -65,10 +65,6 @@ std::unique_ptr SurfaceProducerVK::AcquireSurface( return nullptr; } - if (acuire_image_res == vk::Result::eSuboptimalKHR) { - VALIDATION_LOG << "Suboptimal image acquired."; - } - SurfaceVK::SwapCallback swap_callback = [this, current_frame, image_index]() { return Present(current_frame, image_index); }; diff --git a/impeller/renderer/backend/vulkan/swapchain_details_vk.cc b/impeller/renderer/backend/vulkan/swapchain_details_vk.cc index 726e04c87f0b2..3b1f10cc94ab9 100644 --- a/impeller/renderer/backend/vulkan/swapchain_details_vk.cc +++ b/impeller/renderer/backend/vulkan/swapchain_details_vk.cc @@ -39,8 +39,19 @@ std::unique_ptr SwapchainDetailsVK::Create( std::vector surface_present_modes = surface_present_modes_res.value; - return std::make_unique(capabilities, surface_formats, - surface_present_modes); + const auto composite_alphas = capabilities.supportedCompositeAlpha; + vk::CompositeAlphaFlagBitsKHR composite_alpha; + if (composite_alphas & vk::CompositeAlphaFlagBitsKHR::eOpaque) { + composite_alpha = vk::CompositeAlphaFlagBitsKHR::eOpaque; + } else if (composite_alphas & vk::CompositeAlphaFlagBitsKHR::eInherit) { + composite_alpha = vk::CompositeAlphaFlagBitsKHR::eInherit; + } else { + VALIDATION_LOG << "No supported composite alpha found."; + return nullptr; + } + + return std::make_unique( + capabilities, surface_formats, surface_present_modes, composite_alpha); } vk::SurfaceFormatKHR SwapchainDetailsVK::PickSurfaceFormat() const { @@ -68,6 +79,10 @@ vk::PresentModeKHR SwapchainDetailsVK::PickPresentationMode() const { return vk::PresentModeKHR::eFifo; } +vk::CompositeAlphaFlagBitsKHR SwapchainDetailsVK::PickCompositeAlpha() const { + return composite_alpha_; +} + vk::Extent2D SwapchainDetailsVK::PickExtent() const { if (surface_capabilities_.currentExtent.width != std::numeric_limits::max()) { @@ -97,10 +112,12 @@ vk::SurfaceTransformFlagBitsKHR SwapchainDetailsVK::GetTransform() const { SwapchainDetailsVK::SwapchainDetailsVK( vk::SurfaceCapabilitiesKHR capabilities, std::vector surface_formats, - std::vector surface_present_modes) + std::vector surface_present_modes, + vk::CompositeAlphaFlagBitsKHR composite_alpha) : surface_capabilities_(capabilities), - surface_formats_(surface_formats), - present_modes_(surface_present_modes) {} + surface_formats_(std::move(surface_formats)), + present_modes_(std::move(surface_present_modes)), + composite_alpha_(composite_alpha) {} SwapchainDetailsVK::~SwapchainDetailsVK() = default; diff --git a/impeller/renderer/backend/vulkan/swapchain_details_vk.h b/impeller/renderer/backend/vulkan/swapchain_details_vk.h index 1cfb2b1233c3f..6c2264e0f8f4e 100644 --- a/impeller/renderer/backend/vulkan/swapchain_details_vk.h +++ b/impeller/renderer/backend/vulkan/swapchain_details_vk.h @@ -17,7 +17,8 @@ class SwapchainDetailsVK { SwapchainDetailsVK(vk::SurfaceCapabilitiesKHR capabilities, std::vector surface_formats, - std::vector surface_present_modes); + std::vector surface_present_modes, + vk::CompositeAlphaFlagBitsKHR composite_alpha); ~SwapchainDetailsVK(); @@ -25,6 +26,8 @@ class SwapchainDetailsVK { vk::PresentModeKHR PickPresentationMode() const; + vk::CompositeAlphaFlagBitsKHR PickCompositeAlpha() const; + vk::Extent2D PickExtent() const; uint32_t GetImageCount() const; @@ -35,6 +38,7 @@ class SwapchainDetailsVK { vk::SurfaceCapabilitiesKHR surface_capabilities_; std::vector surface_formats_; std::vector present_modes_; + vk::CompositeAlphaFlagBitsKHR composite_alpha_; FML_DISALLOW_COPY_AND_ASSIGN(SwapchainDetailsVK); }; diff --git a/impeller/renderer/backend/vulkan/swapchain_vk.cc b/impeller/renderer/backend/vulkan/swapchain_vk.cc index e5fdae5788f67..a2554ed61d476 100644 --- a/impeller/renderer/backend/vulkan/swapchain_vk.cc +++ b/impeller/renderer/backend/vulkan/swapchain_vk.cc @@ -28,7 +28,7 @@ std::unique_ptr SwapchainVK::Create(vk::Device device, create_info.imageArrayLayers = 1; create_info.imageUsage = vk::ImageUsageFlagBits::eColorAttachment; create_info.preTransform = details.GetTransform(); - create_info.compositeAlpha = vk::CompositeAlphaFlagBitsKHR::eOpaque; + create_info.compositeAlpha = details.PickCompositeAlpha(); create_info.clipped = VK_TRUE; create_info.imageSharingMode = vk::SharingMode::eExclusive; diff --git a/impeller/renderer/backend/vulkan/texture_vk.cc b/impeller/renderer/backend/vulkan/texture_vk.cc index 66ad2cf1826a8..e3c25391e8a08 100644 --- a/impeller/renderer/backend/vulkan/texture_vk.cc +++ b/impeller/renderer/backend/vulkan/texture_vk.cc @@ -46,9 +46,13 @@ bool TextureVK::OnSetContents(const uint8_t* contents, // currently we are only supporting 2d textures, no cube textures etc. auto mapping = texture_info_->allocated_texture.allocation_info.pMappedData; - memcpy(mapping, contents, length); - return true; + if (mapping) { + memcpy(mapping, contents, length); + return true; + } else { + return false; + } } bool TextureVK::OnSetContents(std::shared_ptr mapping, @@ -81,12 +85,23 @@ bool TextureVK::IsWrapped() const { return texture_info_->backing_type == TextureBackingTypeVK::kWrappedTexture; } +vk::ImageView TextureVK::GetImageView() const { + switch (texture_info_->backing_type) { + case TextureBackingTypeVK::kUnknownType: + return nullptr; + case TextureBackingTypeVK::kAllocatedTexture: + return vk::ImageView{texture_info_->allocated_texture.image_view}; + case TextureBackingTypeVK::kWrappedTexture: + return texture_info_->wrapped_texture.swapchain_image->GetImageView(); + } +} + vk::Image TextureVK::GetImage() const { switch (texture_info_->backing_type) { case TextureBackingTypeVK::kUnknownType: FML_CHECK(false) << "Unknown texture backing type"; case TextureBackingTypeVK::kAllocatedTexture: - return texture_info_->allocated_texture.image; + return vk::Image{texture_info_->allocated_texture.image}; case TextureBackingTypeVK::kWrappedTexture: return texture_info_->wrapped_texture.swapchain_image->GetImage(); } diff --git a/impeller/renderer/backend/vulkan/texture_vk.h b/impeller/renderer/backend/vulkan/texture_vk.h index 632e9e738a376..9134894ba801e 100644 --- a/impeller/renderer/backend/vulkan/texture_vk.h +++ b/impeller/renderer/backend/vulkan/texture_vk.h @@ -28,7 +28,8 @@ struct AllocatedTextureInfoVK { VmaAllocator* allocator = nullptr; VmaAllocation allocation = nullptr; VmaAllocationInfo allocation_info = {}; - VkImage image = nullptr; + VkImage image = VK_NULL_HANDLE; + VkImageView image_view = VK_NULL_HANDLE; }; struct TextureInfoVK { @@ -52,6 +53,8 @@ class TextureVK final : public Texture, public BackendCast { vk::Image GetImage() const; + vk::ImageView GetImageView() const; + TextureInfoVK* GetTextureInfo() const; private: diff --git a/impeller/renderer/backend/vulkan/vertex_descriptor_vk.cc b/impeller/renderer/backend/vulkan/vertex_descriptor_vk.cc index 1dbaa91909054..7c18a245a8b85 100644 --- a/impeller/renderer/backend/vulkan/vertex_descriptor_vk.cc +++ b/impeller/renderer/backend/vulkan/vertex_descriptor_vk.cc @@ -84,7 +84,7 @@ vk::Format ToVertexDescriptorFormat(const ShaderStageIOSlot& input) { return vk::Format::eUndefined; } case ShaderType::kSignedShort: { - if (input.bit_width == 8 * sizeof(short)) { + if (input.bit_width == 8 * sizeof(int16_t)) { switch (input.vec_size) { case 1: return vk::Format::eR16Sint; @@ -99,7 +99,7 @@ vk::Format ToVertexDescriptorFormat(const ShaderStageIOSlot& input) { return vk::Format::eUndefined; } case ShaderType::kUnsignedShort: { - if (input.bit_width == 8 * sizeof(ushort)) { + if (input.bit_width == 8 * sizeof(uint16_t)) { switch (input.vec_size) { case 1: return vk::Format::eR16Uint; diff --git a/impeller/renderer/backend/vulkan/vk.h b/impeller/renderer/backend/vulkan/vk.h index 3ce2d346f493d..a62d94495c041 100644 --- a/impeller/renderer/backend/vulkan/vk.h +++ b/impeller/renderer/backend/vulkan/vk.h @@ -19,23 +19,12 @@ #define VULKAN_HPP_NAMESPACE impeller::vk #define VULKAN_HPP_ASSERT_ON_RESULT(ignored) \ { [[maybe_unused]] auto res = (ignored); } -#define VULKAN_HPP_NO_EXCEPTIONS #include "vulkan/vulkan.hpp" static_assert(VK_HEADER_VERSION >= 215, "Vulkan headers are must not be too old."); -#ifdef VMA_STATIC_VULKAN_FUNCTIONS -#undef VMA_STATIC_VULKAN_FUNCTIONS -#endif // VMA_STATIC_VULKAN_FUNCTIONS - -#ifdef VMA_DYNAMIC_VULKAN_FUNCTIONS -#undef VMA_DYNAMIC_VULKAN_FUNCTIONS -#endif // VMA_DYNAMIC_VULKAN_FUNCTIONS - -#define VMA_STATIC_VULKAN_FUNCTIONS 0 -#define VMA_DYNAMIC_VULKAN_FUNCTIONS 1 -#include "vk_mem_alloc.h" +#include "flutter/flutter_vma/flutter_vma.h" namespace impeller { diff --git a/impeller/renderer/blit_command.h b/impeller/renderer/blit_command.h index 289e95a35f72c..7fc646aa53248 100644 --- a/impeller/renderer/blit_command.h +++ b/impeller/renderer/blit_command.h @@ -4,6 +4,8 @@ #pragma once +#include "impeller/geometry/rect.h" +#include "impeller/renderer/device_buffer.h" #include "impeller/renderer/texture.h" namespace impeller { @@ -19,6 +21,13 @@ struct BlitCopyTextureToTextureCommand : public BlitCommand { IPoint destination_origin; }; +struct BlitCopyTextureToBufferCommand : public BlitCommand { + std::shared_ptr source; + std::shared_ptr destination; + IRect source_region; + size_t destination_offset; +}; + struct BlitGenerateMipmapCommand : public BlitCommand { std::shared_ptr texture; }; diff --git a/impeller/renderer/blit_pass.cc b/impeller/renderer/blit_pass.cc index 7e2b0e7843f3e..dd53e125645b5 100644 --- a/impeller/renderer/blit_pass.cc +++ b/impeller/renderer/blit_pass.cc @@ -4,6 +4,7 @@ #include "impeller/renderer/blit_pass.h" #include +#include #include "impeller/base/strings.h" #include "impeller/base/validation.h" @@ -70,10 +71,49 @@ bool BlitPass::AddCopy(std::shared_ptr source, return true; // Nothing to blit. } - OnCopyTextureToTextureCommand(std::move(source), std::move(destination), - source_region.value(), destination_origin, - label); - return true; + return OnCopyTextureToTextureCommand( + std::move(source), std::move(destination), source_region.value(), + destination_origin, std::move(label)); +} + +bool BlitPass::AddCopy(std::shared_ptr source, + std::shared_ptr destination, + std::optional source_region, + size_t destination_offset, + std::string label) { + if (!source) { + VALIDATION_LOG << "Attempted to add a texture blit with no source."; + return false; + } + if (!destination) { + VALIDATION_LOG << "Attempted to add a texture blit with no destination."; + return false; + } + + if (!source_region.has_value()) { + source_region = IRect::MakeSize(source->GetSize()); + } + + auto bytes_per_pixel = + BytesPerPixelForPixelFormat(source->GetTextureDescriptor().format); + auto bytes_per_image = source_region->size.Area() * bytes_per_pixel; + if (destination_offset + bytes_per_image > + destination->GetDeviceBufferDescriptor().size) { + VALIDATION_LOG + << "Attempted to add a texture blit with out fo bounds access."; + return false; + } + + // Clip the source image. + source_region = + source_region->Intersection(IRect::MakeSize(source->GetSize())); + if (!source_region.has_value()) { + return true; // Nothing to blit. + } + + return OnCopyTextureToBufferCommand(std::move(source), std::move(destination), + source_region.value(), destination_offset, + std::move(label)); } bool BlitPass::GenerateMipmap(std::shared_ptr texture, @@ -84,8 +124,7 @@ bool BlitPass::GenerateMipmap(std::shared_ptr texture, return false; } - OnGenerateMipmapCommand(std::move(texture), label); - return true; + return OnGenerateMipmapCommand(std::move(texture), std::move(label)); } } // namespace impeller diff --git a/impeller/renderer/blit_pass.h b/impeller/renderer/blit_pass.h index e5fd8e0bb054e..7ac7b820e5972 100644 --- a/impeller/renderer/blit_pass.h +++ b/impeller/renderer/blit_pass.h @@ -8,6 +8,7 @@ #include #include "impeller/renderer/blit_command.h" +#include "impeller/renderer/device_buffer.h" #include "impeller/renderer/texture.h" namespace impeller { @@ -59,6 +60,30 @@ class BlitPass { IPoint destination_origin = {}, std::string label = ""); + //---------------------------------------------------------------------------- + /// @brief Record a command to copy the contents of the texture to + /// the buffer. + /// No work is encoded into the command buffer at this time. + /// + /// @param[in] source The texture to read for copying. + /// @param[in] destination The buffer to overwrite using the source + /// contents. + /// @param[in] source_region The optional region of the source texture + /// to use for copying. If not specified, the + /// full size of the source texture is used. + /// @param[in] destination_offset The offset to start writing to in the + /// destination buffer. + /// @param[in] label The optional debug label to give the + /// command. + /// + /// @return If the command was valid for subsequent commitment. + /// + bool AddCopy(std::shared_ptr source, + std::shared_ptr destination, + std::optional source_region = std::nullopt, + size_t destination_offset = 0, + std::string label = ""); + //---------------------------------------------------------------------------- /// @brief Record a command to generate all mip levels for a texture. /// No work is encoded into the command buffer at this time. @@ -88,14 +113,21 @@ class BlitPass { virtual void OnSetLabel(std::string label) = 0; - virtual void OnCopyTextureToTextureCommand( + virtual bool OnCopyTextureToTextureCommand( std::shared_ptr source, std::shared_ptr destination, IRect source_region, IPoint destination_origin, std::string label) = 0; - virtual void OnGenerateMipmapCommand(std::shared_ptr texture, + virtual bool OnCopyTextureToBufferCommand( + std::shared_ptr source, + std::shared_ptr destination, + IRect source_region, + size_t destination_offset, + std::string label) = 0; + + virtual bool OnGenerateMipmapCommand(std::shared_ptr texture, std::string label) = 0; private: diff --git a/impeller/renderer/command.cc b/impeller/renderer/command.cc index cac510881c35f..e5380a83570ca 100644 --- a/impeller/renderer/command.cc +++ b/impeller/renderer/command.cc @@ -108,9 +108,11 @@ bool Command::BindResource(ShaderStage stage, switch (stage) { case ShaderStage::kVertex: vertex_bindings.samplers[slot.sampler_index] = {&metadata, sampler}; + vertex_bindings.sampled_images[slot.sampler_index] = slot; return true; case ShaderStage::kFragment: fragment_bindings.samplers[slot.sampler_index] = {&metadata, sampler}; + fragment_bindings.sampled_images[slot.sampler_index] = slot; return true; case ShaderStage::kCompute: VALIDATION_LOG << "Use ComputeCommands for compute shader stages."; diff --git a/impeller/renderer/command.h b/impeller/renderer/command.h index c804c0e5c2240..3b3d1c049b541 100644 --- a/impeller/renderer/command.h +++ b/impeller/renderer/command.h @@ -42,6 +42,7 @@ using SamplerResource = Resource>; struct Bindings { std::map uniforms; + std::map sampled_images; std::map buffers; std::map textures; std::map samplers; diff --git a/impeller/renderer/compute_command.cc b/impeller/renderer/compute_command.cc index 0556b4446e9d3..e2e2812f36266 100644 --- a/impeller/renderer/compute_command.cc +++ b/impeller/renderer/compute_command.cc @@ -4,6 +4,8 @@ #include "impeller/renderer/compute_command.h" +#include + #include "impeller/base/validation.h" #include "impeller/renderer/formats.h" #include "impeller/renderer/vertex_descriptor.h" @@ -13,7 +15,7 @@ namespace impeller { bool ComputeCommand::BindResource(ShaderStage stage, const ShaderUniformSlot& slot, const ShaderMetadata& metadata, - BufferView view) { + const BufferView& view) { if (stage != ShaderStage::kCompute) { VALIDATION_LOG << "Use Command for non-compute shader stages."; return false; @@ -26,10 +28,11 @@ bool ComputeCommand::BindResource(ShaderStage stage, return true; } -bool ComputeCommand::BindResource(ShaderStage stage, - const SampledImageSlot& slot, - const ShaderMetadata& metadata, - std::shared_ptr texture) { +bool ComputeCommand::BindResource( + ShaderStage stage, + const SampledImageSlot& slot, + const ShaderMetadata& metadata, + const std::shared_ptr& texture) { if (stage != ShaderStage::kCompute) { VALIDATION_LOG << "Use Command for non-compute shader stages."; return false; @@ -46,10 +49,11 @@ bool ComputeCommand::BindResource(ShaderStage stage, return true; } -bool ComputeCommand::BindResource(ShaderStage stage, - const SampledImageSlot& slot, - const ShaderMetadata& metadata, - std::shared_ptr sampler) { +bool ComputeCommand::BindResource( + ShaderStage stage, + const SampledImageSlot& slot, + const ShaderMetadata& metadata, + const std::shared_ptr& sampler) { if (stage != ShaderStage::kCompute) { VALIDATION_LOG << "Use Command for non-compute shader stages."; return false; @@ -66,11 +70,12 @@ bool ComputeCommand::BindResource(ShaderStage stage, return true; } -bool ComputeCommand::BindResource(ShaderStage stage, - const SampledImageSlot& slot, - const ShaderMetadata& metadata, - std::shared_ptr texture, - std::shared_ptr sampler) { +bool ComputeCommand::BindResource( + ShaderStage stage, + const SampledImageSlot& slot, + const ShaderMetadata& metadata, + const std::shared_ptr& texture, + const std::shared_ptr& sampler) { if (stage != ShaderStage::kCompute) { VALIDATION_LOG << "Use Command for non-compute shader stages."; return false; diff --git a/impeller/renderer/compute_command.h b/impeller/renderer/compute_command.h index 4873b68dbdaf1..54b467a56c839 100644 --- a/impeller/renderer/compute_command.h +++ b/impeller/renderer/compute_command.h @@ -57,23 +57,23 @@ struct ComputeCommand { bool BindResource(ShaderStage stage, const ShaderUniformSlot& slot, const ShaderMetadata& metadata, - BufferView view); + const BufferView& view); bool BindResource(ShaderStage stage, const SampledImageSlot& slot, const ShaderMetadata& metadata, - std::shared_ptr texture); + const std::shared_ptr& texture); bool BindResource(ShaderStage stage, const SampledImageSlot& slot, const ShaderMetadata& metadata, - std::shared_ptr sampler); + const std::shared_ptr& sampler); bool BindResource(ShaderStage stage, const SampledImageSlot& slot, const ShaderMetadata& metadata, - std::shared_ptr texture, - std::shared_ptr sampler); + const std::shared_ptr& texture, + const std::shared_ptr& sampler); constexpr operator bool() const { return pipeline && pipeline->IsValid(); } }; diff --git a/impeller/renderer/compute_pass.cc b/impeller/renderer/compute_pass.cc index 8fbe6fd1f0c09..7ca45618a95bd 100644 --- a/impeller/renderer/compute_pass.cc +++ b/impeller/renderer/compute_pass.cc @@ -28,6 +28,14 @@ void ComputePass::SetLabel(std::string label) { OnSetLabel(std::move(label)); } +void ComputePass::SetGridSize(const ISize& size) { + grid_size_ = size; +} + +void ComputePass::SetThreadGroupSize(const ISize& size) { + thread_group_size_ = size; +} + bool ComputePass::AddCommand(ComputeCommand command) { if (!command) { VALIDATION_LOG << "Attempted to add an invalid command to the render pass."; @@ -44,7 +52,7 @@ bool ComputePass::EncodeCommands() const { if (!context) { return false; } - return OnEncodeCommands(*context); + return OnEncodeCommands(*context, grid_size_, thread_group_size_); } } // namespace impeller diff --git a/impeller/renderer/compute_pass.h b/impeller/renderer/compute_pass.h index 2f5aebd82dcae..88135a0201a49 100644 --- a/impeller/renderer/compute_pass.h +++ b/impeller/renderer/compute_pass.h @@ -31,6 +31,10 @@ class ComputePass { void SetLabel(std::string label); + void SetGridSize(const ISize& size); + + void SetThreadGroupSize(const ISize& size); + HostBuffer& GetTransientsBuffer(); //---------------------------------------------------------------------------- @@ -56,6 +60,8 @@ class ComputePass { protected: const std::weak_ptr context_; + ISize grid_size_ = ISize(32, 32); + ISize thread_group_size_ = ISize(32, 32); std::shared_ptr transients_buffer_; std::vector commands_; @@ -63,7 +69,9 @@ class ComputePass { virtual void OnSetLabel(std::string label) = 0; - virtual bool OnEncodeCommands(const Context& context) const = 0; + virtual bool OnEncodeCommands(const Context& context, + const ISize& grid_size, + const ISize& thread_group_size) const = 0; private: FML_DISALLOW_COPY_AND_ASSIGN(ComputePass); diff --git a/impeller/renderer/compute_unittests.cc b/impeller/renderer/compute_unittests.cc index 2656da901a54d..7017364903e82 100644 --- a/impeller/renderer/compute_unittests.cc +++ b/impeller/renderer/compute_unittests.cc @@ -7,7 +7,7 @@ #include "flutter/testing/testing.h" #include "impeller/base/strings.h" #include "impeller/fixtures/sample.comp.h" -#include "impeller/playground/playground_test.h" +#include "impeller/playground/compute_playground_test.h" #include "impeller/renderer/command_buffer.h" #include "impeller/renderer/compute_command.h" #include "impeller/renderer/compute_pipeline_builder.h" @@ -17,17 +17,10 @@ namespace impeller { namespace testing { -using ComputeTest = PlaygroundTest; -INSTANTIATE_PLAYGROUND_SUITE(ComputeTest); +using ComputeTest = ComputePlaygroundTest; +INSTANTIATE_COMPUTE_SUITE(ComputeTest); TEST_P(ComputeTest, CanCreateComputePass) { - if (GetParam() == PlaygroundBackend::kOpenGLES) { - GTEST_SKIP_("Compute is not supported on GL."); - } - if (GetParam() == PlaygroundBackend::kVulkan) { - GTEST_SKIP_("Compute is not supported on Vulkan yet."); - } - using CS = SampleComputeShader; auto context = GetContext(); ASSERT_TRUE(context); @@ -43,21 +36,31 @@ TEST_P(ComputeTest, CanCreateComputePass) { auto pass = cmd_buffer->CreateComputePass(); ASSERT_TRUE(pass && pass->IsValid()); + static constexpr size_t kCount = 5; + + pass->SetGridSize(ISize(kCount, 1)); + pass->SetThreadGroupSize(ISize(kCount, 1)); + ComputeCommand cmd; cmd.label = "Compute"; cmd.pipeline = compute_pipeline; - CS::Info info{.count = 5}; - std::vector input_0; - std::vector input_1; - for (uint i = 0; i < 5; i++) { - input_0.push_back(CS::Input0{Vector4(2.0 + i, 3.0 + i, 4.0 + i, 5.0 * i)}); - input_1.push_back(CS::Input1{Vector4(6.0, 7.0, 8.0, 9.0)}); + CS::Info info{.count = kCount}; + CS::Input0 input_0; + CS::Input1 input_1; + for (uint i = 0; i < kCount; i++) { + input_0.elements[i] = Vector4(2.0 + i, 3.0 + i, 4.0 + i, 5.0 * i); + input_1.elements[i] = Vector4(6.0, 7.0, 8.0, 9.0); } + input_0.fixed_array[1] = IPoint32(2, 2); + input_1.fixed_array[0] = UintPoint32(3, 3); + input_0.some_int = 5; + input_1.some_struct = CS::SomeStruct{.vf = Point(3, 4), .i = 42}; + DeviceBufferDescriptor buffer_desc; buffer_desc.storage_mode = StorageMode::kHostVisible; - buffer_desc.size = sizeof(CS::Output) * 5; + buffer_desc.size = sizeof(CS::Output); auto output_buffer = context->GetResourceAllocator()->CreateBuffer(buffer_desc); @@ -80,13 +83,18 @@ TEST_P(ComputeTest, CanCreateComputePass) { EXPECT_EQ(status, CommandBuffer::Status::kCompleted); auto view = output_buffer->AsBufferView(); - EXPECT_EQ(view.range.length, 80lu); - - for (size_t i = 0; i < input_0.size() - 1; i++) { - Vector4 output = reinterpret_cast(view.contents + - i * sizeof(CS::Output)) - ->elements; - EXPECT_EQ(output, input_0[i].elements * input_1[i].elements); + EXPECT_EQ(view.range.length, sizeof(CS::Output)); + + CS::Output* output = + reinterpret_cast*>(view.contents); + EXPECT_TRUE(output); + for (size_t i = 0; i < kCount; i++) { + Vector4 vector = output->elements[i]; + Vector4 computed = input_0.elements[i] * input_1.elements[i]; + EXPECT_EQ(vector, Vector4(computed.x + 2 + input_1.some_struct.i, + computed.y + 3 + input_1.some_struct.vf.x, + computed.z + 5 + input_1.some_struct.vf.y, + computed.w)); } latch.Signal(); })); diff --git a/impeller/renderer/context.cc b/impeller/renderer/context.cc index 769a8f019c08f..e278e3e156ad1 100644 --- a/impeller/renderer/context.cc +++ b/impeller/renderer/context.cc @@ -14,4 +14,12 @@ bool Context::HasThreadingRestrictions() const { return false; } +std::shared_ptr Context::GetGPUTracer() const { + return nullptr; +} + +PixelFormat Context::GetColorAttachmentPixelFormat() const { + return PixelFormat::kDefaultColor; +} + } // namespace impeller diff --git a/impeller/renderer/context.h b/impeller/renderer/context.h index 6db6d7bc994de..8ba839b8612c0 100644 --- a/impeller/renderer/context.h +++ b/impeller/renderer/context.h @@ -8,6 +8,7 @@ #include #include "flutter/fml/macros.h" +#include "impeller/renderer/formats.h" namespace impeller { @@ -16,6 +17,7 @@ class SamplerLibrary; class CommandBuffer; class PipelineLibrary; class Allocator; +class GPUTracer; class WorkQueue; class Context : public std::enable_shared_from_this { @@ -39,6 +41,13 @@ class Context : public std::enable_shared_from_this { virtual std::shared_ptr GetWorkQueue() const = 0; + //---------------------------------------------------------------------------- + /// @return A GPU Tracer to trace gpu rendering. + /// + virtual std::shared_ptr GetGPUTracer() const; + + virtual PixelFormat GetColorAttachmentPixelFormat() const; + virtual bool HasThreadingRestrictions() const; virtual bool SupportsOffscreenMSAA() const = 0; diff --git a/impeller/renderer/device_buffer.cc b/impeller/renderer/device_buffer.cc index 6bb706d8bb98b..08daf8c8b655a 100644 --- a/impeller/renderer/device_buffer.cc +++ b/impeller/renderer/device_buffer.cc @@ -39,6 +39,10 @@ std::shared_ptr DeviceBuffer::AsTexture( return texture; } +const DeviceBufferDescriptor& DeviceBuffer::GetDeviceBufferDescriptor() const { + return desc_; +} + [[nodiscard]] bool DeviceBuffer::CopyHostBuffer(const uint8_t* source, Range source_range, size_t offset) { diff --git a/impeller/renderer/device_buffer.h b/impeller/renderer/device_buffer.h index e86fa2a7e7f93..a1ae3a041fc86 100644 --- a/impeller/renderer/device_buffer.h +++ b/impeller/renderer/device_buffer.h @@ -41,6 +41,8 @@ class DeviceBuffer : public Buffer, std::shared_ptr GetDeviceBuffer( Allocator& allocator) const; + const DeviceBufferDescriptor& GetDeviceBufferDescriptor() const; + protected: const DeviceBufferDescriptor desc_; diff --git a/impeller/renderer/formats.h b/impeller/renderer/formats.h index 118138c03bac1..945b7f87752ed 100644 --- a/impeller/renderer/formats.h +++ b/impeller/renderer/formats.h @@ -81,6 +81,8 @@ enum class StorageMode { enum class PixelFormat { kUnknown, kA8UNormInt, + kR8UNormInt, + kR8G8UNormInt, kR8G8B8A8UNormInt, kR8G8B8A8UNormIntSRGB, kB8G8R8A8UNormInt, @@ -273,8 +275,11 @@ constexpr size_t BytesPerPixelForPixelFormat(PixelFormat format) { case PixelFormat::kUnknown: return 0u; case PixelFormat::kA8UNormInt: + case PixelFormat::kR8UNormInt: case PixelFormat::kS8UInt: return 1u; + case PixelFormat::kR8G8UNormInt: + return 2u; case PixelFormat::kR8G8B8A8UNormInt: case PixelFormat::kR8G8B8A8UNormIntSRGB: case PixelFormat::kB8G8R8A8UNormInt: diff --git a/impeller/renderer/gpu_tracer.cc b/impeller/renderer/gpu_tracer.cc new file mode 100644 index 0000000000000..b6e440e40ce4b --- /dev/null +++ b/impeller/renderer/gpu_tracer.cc @@ -0,0 +1,21 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "gpu_tracer.h" + +namespace impeller { + +GPUTracer::GPUTracer() = default; + +GPUTracer::~GPUTracer() = default; + +bool GPUTracer::StartCapturingFrame(GPUTracerConfiguration configuration) { + return false; +} + +bool GPUTracer::StopCapturingFrame() { + return false; +} + +} // namespace impeller diff --git a/impeller/renderer/gpu_tracer.h b/impeller/renderer/gpu_tracer.h new file mode 100644 index 0000000000000..bc592a6681b50 --- /dev/null +++ b/impeller/renderer/gpu_tracer.h @@ -0,0 +1,53 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "flutter/fml/macros.h" + +namespace impeller { + +//------------------------------------------------------------------------------ +/// @brief GPU tracer configuration. +/// +struct GPUTracerConfiguration { + /// This param is for metal backend. + /// When this value is true, a gpu trace file will be saved in devices when + /// metal frame capture finishes. Otherwise, the Xcode will automatically open + /// and show trace result. + /// + bool mtl_frame_capture_save_trace_as_document = false; +}; + +//------------------------------------------------------------------------------ +/// @brief A GPU tracer to trace gpu workflow during rendering. +/// +class GPUTracer { + public: + virtual ~GPUTracer(); + + //---------------------------------------------------------------------------- + /// @brief Start capturing frame. This method should only be called when + /// developing. + /// + /// @param[in] configuration The configuration passed in for capture. + /// + /// @return The operation successful or not. + /// + virtual bool StartCapturingFrame(GPUTracerConfiguration configuration); + + //---------------------------------------------------------------------------- + /// @brief Stop capturing frame. This should only be called when + /// developing. + /// + /// @return The operation successful or not. + /// + virtual bool StopCapturingFrame(); + + protected: + GPUTracer(); + + private: + FML_DISALLOW_COPY_AND_ASSIGN(GPUTracer); +}; + +} // namespace impeller diff --git a/impeller/renderer/host_buffer.h b/impeller/renderer/host_buffer.h index 91eba4fbcdb83..7895a38b87ae6 100644 --- a/impeller/renderer/host_buffer.h +++ b/impeller/renderer/host_buffer.h @@ -63,12 +63,12 @@ class HostBuffer final : public std::enable_shared_from_this, class StorageBufferType, class = std::enable_if_t>> [[nodiscard]] BufferView EmplaceStorageBuffer( - const std::vector& buffer) { + const StorageBufferType& buffer) { const auto alignment = std::max(alignof(StorageBufferType), DefaultUniformAlignment()); - return Emplace(buffer.data(), // buffer - buffer.size() * sizeof(StorageBufferType), // size - alignment // alignment + return Emplace(&buffer, // buffer + sizeof(StorageBufferType), // size + alignment // alignment ); } diff --git a/impeller/renderer/pipeline_builder.h b/impeller/renderer/pipeline_builder.h index e583b88300c8b..f41e0e337c180 100644 --- a/impeller/renderer/pipeline_builder.h +++ b/impeller/renderer/pipeline_builder.h @@ -117,9 +117,9 @@ struct PipelineBuilder { // Configure the sole color attachments pixel format. This is by // convention. ColorAttachmentDescriptor color0; - color0.format = PixelFormat::kDefaultColor; + color0.format = context.GetColorAttachmentPixelFormat(); color0.blending_enabled = true; - desc.SetColorAttachmentDescriptor(0u, std::move(color0)); + desc.SetColorAttachmentDescriptor(0u, color0); } // Setup default stencil buffer descriptions. diff --git a/impeller/renderer/render_target.cc b/impeller/renderer/render_target.cc index 5d1e85b974a17..ef196a0eec740 100644 --- a/impeller/renderer/render_target.cc +++ b/impeller/renderer/render_target.cc @@ -179,7 +179,7 @@ const std::optional& RenderTarget::GetStencilAttachment() RenderTarget RenderTarget::CreateOffscreen(const Context& context, ISize size, - std::string label, + const std::string& label, StorageMode color_storage_mode, LoadAction color_load_action, StoreAction color_store_action, @@ -230,7 +230,7 @@ RenderTarget RenderTarget::CreateOffscreen(const Context& context, stencil0.texture->SetLabel(SPrintF("%s Stencil Texture", label.c_str())); RenderTarget target; - target.SetColorAttachment(std::move(color0), 0u); + target.SetColorAttachment(color0, 0u); target.SetStencilAttachment(std::move(stencil0)); return target; @@ -239,7 +239,7 @@ RenderTarget RenderTarget::CreateOffscreen(const Context& context, RenderTarget RenderTarget::CreateOffscreenMSAA( const Context& context, ISize size, - std::string label, + const std::string& label, StorageMode color_storage_mode, StorageMode color_resolve_storage_mode, LoadAction color_load_action, @@ -322,7 +322,7 @@ RenderTarget RenderTarget::CreateOffscreenMSAA( stencil0.texture->SetLabel(SPrintF("%s Stencil Texture", label.c_str())); RenderTarget target; - target.SetColorAttachment(std::move(color0), 0u); + target.SetColorAttachment(color0, 0u); target.SetStencilAttachment(std::move(stencil0)); return target; diff --git a/impeller/renderer/render_target.h b/impeller/renderer/render_target.h index c47435bb146c1..802671afa8ad4 100644 --- a/impeller/renderer/render_target.h +++ b/impeller/renderer/render_target.h @@ -22,7 +22,7 @@ class RenderTarget { static RenderTarget CreateOffscreen( const Context& context, ISize size, - std::string label = "Offscreen", + const std::string& label = "Offscreen", StorageMode color_storage_mode = StorageMode::kDevicePrivate, LoadAction color_load_action = LoadAction::kClear, StoreAction color_store_action = StoreAction::kStore, @@ -33,7 +33,7 @@ class RenderTarget { static RenderTarget CreateOffscreenMSAA( const Context& context, ISize size, - std::string label = "Offscreen MSAA", + const std::string& label = "Offscreen MSAA", StorageMode color_storage_mode = StorageMode::kDeviceTransient, StorageMode color_resolve_storage_mode = StorageMode::kDevicePrivate, LoadAction color_load_action = LoadAction::kClear, diff --git a/impeller/renderer/renderer_unittests.cc b/impeller/renderer/renderer_unittests.cc index d89f3307eba1e..cb84c3660a6c9 100644 --- a/impeller/renderer/renderer_unittests.cc +++ b/impeller/renderer/renderer_unittests.cc @@ -2,7 +2,6 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "flutter/fml/time/time_point.h" #include "flutter/testing/testing.h" #include "impeller/base/strings.h" #include "impeller/fixtures/array.frag.h" @@ -27,6 +26,7 @@ #include "impeller/playground/playground_test.h" #include "impeller/renderer/command.h" #include "impeller/renderer/command_buffer.h" +#include "impeller/renderer/device_buffer_descriptor.h" #include "impeller/renderer/formats.h" #include "impeller/renderer/pipeline_builder.h" #include "impeller/renderer/pipeline_library.h" @@ -92,7 +92,7 @@ TEST_P(RendererTest, CanCreateBoxPrimitive) { pass.GetTransientsBuffer().EmplaceUniform(uniforms)); FS::FrameInfo frame_info; - frame_info.current_time = fml::TimePoint::Now().ToEpochDelta().ToSecondsF(); + frame_info.current_time = GetSecondsElapsed(); frame_info.cursor_position = GetCursorPosition(); frame_info.window_size.x = GetWindowSize().width; frame_info.window_size.y = GetWindowSize().height; @@ -165,18 +165,11 @@ TEST_P(RendererTest, CanRenderPerspectiveCube) { ASSERT_TRUE(sampler); Vector3 euler_angles; - bool first_frame = true; SinglePassCallback callback = [&](RenderPass& pass) { - if (first_frame) { - first_frame = false; - ImGui::SetNextWindowSize({400, 80}); - ImGui::SetNextWindowPos({20, 20}); - } - static Degrees fov_y(60); static Scalar distance = 10; - ImGui::Begin("Controls"); + ImGui::Begin("Controls", nullptr, ImGuiWindowFlags_AlwaysAutoResize); ImGui::SliderFloat("Field of view", &fov_y.degrees, 0, 180); ImGui::SliderFloat("Camera distance", &distance, 0, 30); ImGui::End(); @@ -188,7 +181,7 @@ TEST_P(RendererTest, CanRenderPerspectiveCube) { cmd.BindVertices(vertex_buffer); VS::UniformBuffer uniforms; - Scalar time = fml::TimePoint::Now().ToEpochDelta().ToSecondsF(); + Scalar time = GetSecondsElapsed(); euler_angles = Vector3(0.19 * time, 0.7 * time, 0.43 * time); uniforms.mvp = @@ -251,7 +244,7 @@ TEST_P(RendererTest, CanRenderMultiplePrimitives) { cmd.BindVertices(vertex_buffer); FS::FrameInfo frame_info; - frame_info.current_time = fml::TimePoint::Now().ToEpochDelta().ToSecondsF(); + frame_info.current_time = GetSecondsElapsed(); frame_info.cursor_position = GetCursorPosition(); frame_info.window_size.x = GetWindowSize().width; frame_info.window_size.y = GetWindowSize().height; @@ -366,7 +359,7 @@ TEST_P(RendererTest, CanRenderToTexture) { cmd.BindVertices(vertex_buffer); FS::FrameInfo frame_info; - frame_info.current_time = fml::TimePoint::Now().ToEpochDelta().ToSecondsF(); + frame_info.current_time = GetSecondsElapsed(); frame_info.cursor_position = GetCursorPosition(); frame_info.window_size.x = GetWindowSize().width; frame_info.window_size.y = GetWindowSize().height; @@ -397,18 +390,25 @@ TEST_P(RendererTest, CanRenderInstanced) { VertexBufferBuilder builder; - ASSERT_EQ( - Tessellator::Result::kSuccess, - Tessellator{}.Tessellate(FillType::kPositive, - PathBuilder{} - .AddRect(Rect::MakeXYWH(10, 10, 100, 100)) - .TakePath() - .CreatePolyline(), - [&builder](Point vtx) { - VS::PerVertexData data; - data.vtx = vtx; - builder.AppendVertex(data); - })); + ASSERT_EQ(Tessellator::Result::kSuccess, + Tessellator{}.Tessellate( + FillType::kPositive, + PathBuilder{} + .AddRect(Rect::MakeXYWH(10, 10, 100, 100)) + .TakePath() + .CreatePolyline(), + [&builder](const float* vertices, size_t vertices_size, + const uint16_t* indices, size_t indices_size) { + for (auto i = 0u; i < vertices_size; i += 2) { + VS::PerVertexData data; + data.vtx = {vertices[i], vertices[i + 1]}; + builder.AppendVertex(data); + } + for (auto i = 0u; i < indices_size; i++) { + builder.AppendIndex(indices[i]); + } + return true; + })); ASSERT_NE(GetContext(), nullptr); auto pipeline = @@ -425,11 +425,9 @@ TEST_P(RendererTest, CanRenderInstanced) { cmd.label = "InstancedDraw"; static constexpr size_t kInstancesCount = 5u; - std::vector instances; + VS::InstanceInfo instances; for (size_t i = 0; i < kInstancesCount; i++) { - VS::InstanceInfo info; - info.colors = Color::Random(); - instances.emplace_back(info); + instances.colors[i] = Color::Random(); } ASSERT_TRUE(OpenPlaygroundHere([&](RenderPass& pass) -> bool { @@ -559,6 +557,137 @@ TEST_P(RendererTest, CanBlitTextureToTexture) { OpenPlaygroundHere(callback); } +TEST_P(RendererTest, CanBlitTextureToBuffer) { + auto context = GetContext(); + ASSERT_TRUE(context); + + using VS = MipmapsVertexShader; + using FS = MipmapsFragmentShader; + auto desc = PipelineBuilder::MakeDefaultPipelineDescriptor(*context); + ASSERT_TRUE(desc.has_value()); + desc->SetSampleCount(SampleCount::kCount4); + auto mipmaps_pipeline = + context->GetPipelineLibrary()->GetPipeline(std::move(desc)).get(); + ASSERT_TRUE(mipmaps_pipeline); + + auto bridge = CreateTextureForFixture("bay_bridge.jpg"); + auto boston = CreateTextureForFixture("boston.jpg"); + ASSERT_TRUE(bridge && boston); + auto sampler = context->GetSamplerLibrary()->GetSampler({}); + ASSERT_TRUE(sampler); + + TextureDescriptor texture_desc; + texture_desc.storage_mode = StorageMode::kHostVisible; + texture_desc.format = PixelFormat::kR8G8B8A8UNormInt; + texture_desc.size = bridge->GetTextureDescriptor().size; + texture_desc.mip_count = 1u; + texture_desc.usage = + static_cast(TextureUsage::kRenderTarget) | + static_cast(TextureUsage::kShaderWrite) | + static_cast(TextureUsage::kShaderRead); + DeviceBufferDescriptor device_buffer_desc; + device_buffer_desc.storage_mode = StorageMode::kHostVisible; + device_buffer_desc.size = + bridge->GetTextureDescriptor().GetByteSizeOfBaseMipLevel(); + auto device_buffer = + context->GetResourceAllocator()->CreateBuffer(device_buffer_desc); + + // Vertex buffer. + VertexBufferBuilder vertex_builder; + vertex_builder.SetLabel("Box"); + auto size = Point(boston->GetSize()); + vertex_builder.AddVertices({ + {{0, 0}, {0.0, 0.0}}, // 1 + {{size.x, 0}, {1.0, 0.0}}, // 2 + {{size.x, size.y}, {1.0, 1.0}}, // 3 + {{0, 0}, {0.0, 0.0}}, // 1 + {{size.x, size.y}, {1.0, 1.0}}, // 3 + {{0, size.y}, {0.0, 1.0}}, // 4 + }); + auto vertex_buffer = + vertex_builder.CreateVertexBuffer(*context->GetResourceAllocator()); + ASSERT_TRUE(vertex_buffer); + + Renderer::RenderCallback callback = [&](RenderTarget& render_target) { + { + auto buffer = context->CreateCommandBuffer(); + if (!buffer) { + return false; + } + buffer->SetLabel("Playground Command Buffer"); + auto pass = buffer->CreateBlitPass(); + if (!pass) { + return false; + } + pass->SetLabel("Playground Blit Pass"); + + if (render_target.GetColorAttachments().empty()) { + return false; + } + + // Blit `bridge` to the top left corner of the texture. + pass->AddCopy(bridge, device_buffer); + + pass->EncodeCommands(context->GetResourceAllocator()); + + if (!buffer->SubmitCommands()) { + return false; + } + } + + { + auto buffer = context->CreateCommandBuffer(); + if (!buffer) { + return false; + } + buffer->SetLabel("Playground Command Buffer"); + + auto pass = buffer->CreateRenderPass(render_target); + if (!pass) { + return false; + } + pass->SetLabel("Playground Render Pass"); + { + Command cmd; + cmd.label = "Image"; + cmd.pipeline = mipmaps_pipeline; + + cmd.BindVertices(vertex_buffer); + + VS::VertInfo vert_info; + vert_info.mvp = Matrix::MakeOrthographic(pass->GetRenderTargetSize()) * + Matrix::MakeScale(GetContentScale()); + VS::BindVertInfo(cmd, + pass->GetTransientsBuffer().EmplaceUniform(vert_info)); + + FS::FragInfo frag_info; + frag_info.lod = 0; + FS::BindFragInfo(cmd, + pass->GetTransientsBuffer().EmplaceUniform(frag_info)); + + auto sampler = context->GetSamplerLibrary()->GetSampler({}); + auto buffer_view = device_buffer->AsBufferView(); + auto texture = + context->GetResourceAllocator()->CreateTexture(texture_desc); + if (!texture->SetContents(buffer_view.contents, + buffer_view.range.length)) { + VALIDATION_LOG << "Could not upload texture to device memory"; + return false; + } + FS::BindTex(cmd, texture, sampler); + + pass->AddCommand(std::move(cmd)); + } + pass->EncodeCommands(); + if (!buffer->SubmitCommands()) { + return false; + } + } + return true; + }; + OpenPlaygroundHere(callback); +} + TEST_P(RendererTest, CanGenerateMipmaps) { auto context = GetContext(); ASSERT_TRUE(context); @@ -593,10 +722,6 @@ TEST_P(RendererTest, CanGenerateMipmaps) { bool first_frame = true; Renderer::RenderCallback callback = [&](RenderTarget& render_target) { - if (first_frame) { - ImGui::SetNextWindowPos({10, 10}); - } - const char* mip_filter_names[] = {"None", "Nearest", "Linear"}; const MipFilter mip_filters[] = {MipFilter::kNone, MipFilter::kNearest, MipFilter::kLinear}; @@ -728,7 +853,7 @@ TEST_P(RendererTest, TheImpeller) { FS::FragInfo fs_uniform; fs_uniform.texture_size = Point(size); - fs_uniform.time = fml::TimePoint::Now().ToEpochDelta().ToSecondsF(); + fs_uniform.time = GetSecondsElapsed(); FS::BindFragInfo(cmd, pass.GetTransientsBuffer().EmplaceUniform(fs_uniform)); FS::BindBlueNoise(cmd, blue_noise, noise_sampler); @@ -774,7 +899,7 @@ TEST_P(RendererTest, ArrayUniforms) { VS::BindVertInfo(cmd, pass.GetTransientsBuffer().EmplaceUniform(vs_uniform)); - auto time = fml::TimePoint::Now().ToEpochDelta().ToSecondsF(); + auto time = GetSecondsElapsed(); auto y_pos = [&time](float x) { return 400 + 10 * std::cos(time * 5 + x / 6); }; @@ -878,5 +1003,36 @@ TEST_P(RendererTest, CanCreateCPUBackedTexture) { } while (dimension <= 8192); } +TEST_P(RendererTest, DefaultIndexSize) { + using VS = BoxFadeVertexShader; + + // Default to 16bit index buffer size, as this is a reasonable default and + // supported on all backends without extensions. + VertexBufferBuilder vertex_builder; + ASSERT_EQ(vertex_builder.GetIndexType(), IndexType::k16bit); +} + +TEST_P(RendererTest, VertexBufferBuilder) { + // Does not create index buffer if one is provided. + using VS = BoxFadeVertexShader; + VertexBufferBuilder vertex_builder; + vertex_builder.SetLabel("Box"); + vertex_builder.AddVertices({ + {{100, 100, 0.0}, {0.0, 0.0}}, // 1 + {{800, 100, 0.0}, {1.0, 0.0}}, // 2 + {{800, 800, 0.0}, {1.0, 1.0}}, // 3 + {{100, 800, 0.0}, {0.0, 1.0}}, // 4 + }); + vertex_builder.AppendIndex(0); + vertex_builder.AppendIndex(1); + vertex_builder.AppendIndex(2); + vertex_builder.AppendIndex(1); + vertex_builder.AppendIndex(2); + vertex_builder.AppendIndex(3); + + ASSERT_EQ(vertex_builder.GetIndexCount(), 6u); + ASSERT_EQ(vertex_builder.GetVertexCount(), 4u); +} + } // namespace testing } // namespace impeller diff --git a/impeller/renderer/shader_library.cc b/impeller/renderer/shader_library.cc index 0c5e8dee86729..85737fe8dddda 100644 --- a/impeller/renderer/shader_library.cc +++ b/impeller/renderer/shader_library.cc @@ -10,10 +10,13 @@ ShaderLibrary::ShaderLibrary() = default; ShaderLibrary::~ShaderLibrary() = default; -void ShaderLibrary::RegisterFunction(std::string name, - ShaderStage stage, - std::shared_ptr code, - RegistrationCallback callback) { +void ShaderLibrary::RegisterFunction( + std::string name, // NOLINT(performance-unnecessary-value-param) + ShaderStage stage, + std::shared_ptr + code, // NOLINT(performance-unnecessary-value-param) + RegistrationCallback + callback) { // NOLINT(performance-unnecessary-value-param) if (callback) { callback(false); } diff --git a/impeller/renderer/shader_library.h b/impeller/renderer/shader_library.h index 8a5bfbeec0dac..3c1b4f9a730d3 100644 --- a/impeller/renderer/shader_library.h +++ b/impeller/renderer/shader_library.h @@ -33,6 +33,8 @@ class ShaderLibrary : public std::enable_shared_from_this { std::shared_ptr code, RegistrationCallback callback); + virtual void UnregisterFunction(std::string name, ShaderStage stage) = 0; + protected: ShaderLibrary(); diff --git a/impeller/renderer/shader_types.h b/impeller/renderer/shader_types.h index 3afb01bf58bc6..400607c1f55f6 100644 --- a/impeller/renderer/shader_types.h +++ b/impeller/renderer/shader_types.h @@ -5,6 +5,7 @@ #pragma once #include +#include #include #include @@ -68,7 +69,7 @@ struct ShaderStructMemberMetadata { size_t offset; size_t size; size_t byte_length; - size_t array_elements; + std::optional array_elements; }; struct ShaderMetadata { @@ -114,6 +115,8 @@ struct SampledImageSlot { const char* name; size_t texture_index; size_t sampler_index; + size_t binding; + size_t set; constexpr bool HasTexture() const { return texture_index < 32u; } diff --git a/impeller/renderer/snapshot.h b/impeller/renderer/snapshot.h index 65a4c9a73cfb7..26fe49d894d2d 100644 --- a/impeller/renderer/snapshot.h +++ b/impeller/renderer/snapshot.h @@ -27,6 +27,8 @@ struct Snapshot { SamplerDescriptor sampler_descriptor; + Scalar opacity = 1.0f; + std::optional GetCoverage() const; /// @brief Get the transform that converts screen space coordinates to the UV diff --git a/impeller/renderer/texture.cc b/impeller/renderer/texture.cc index a2c2079936713..64860c181a038 100644 --- a/impeller/renderer/texture.cc +++ b/impeller/renderer/texture.cc @@ -61,6 +61,10 @@ bool Texture::IsSliceValid(size_t slice) const { FML_UNREACHABLE(); } +void Texture::SetIntent(TextureIntent intent) { + intent_ = intent; +} + TextureIntent Texture::GetIntent() const { return intent_; } diff --git a/impeller/renderer/texture.h b/impeller/renderer/texture.h index df51d7daf9628..4491e06f859e9 100644 --- a/impeller/renderer/texture.h +++ b/impeller/renderer/texture.h @@ -35,6 +35,8 @@ class Texture { const TextureDescriptor& GetTextureDescriptor() const; + void SetIntent(TextureIntent intent); + TextureIntent GetIntent() const; virtual Scalar GetYCoordScale() const; diff --git a/impeller/renderer/vertex_buffer_builder.h b/impeller/renderer/vertex_buffer_builder.h index 7222537b91f31..61cfd3156ec17 100644 --- a/impeller/renderer/vertex_buffer_builder.h +++ b/impeller/renderer/vertex_buffer_builder.h @@ -19,7 +19,7 @@ namespace impeller { -template +template class VertexBufferBuilder { public: using VertexType = VertexType_; @@ -43,10 +43,16 @@ class VertexBufferBuilder { void Reserve(size_t count) { return vertices_.reserve(count); } + void ReserveIndices(size_t count) { return indices_.reserve(count); } + bool HasVertices() const { return !vertices_.empty(); } size_t GetVertexCount() const { return vertices_.size(); } + size_t GetIndexCount() const { + return indices_.size() > 0 ? indices_.size() : vertices_.size(); + } + VertexBufferBuilder& AppendVertex(VertexType_ vertex) { vertices_.emplace_back(std::move(vertex)); return *this; @@ -61,6 +67,11 @@ class VertexBufferBuilder { return *this; } + VertexBufferBuilder& AppendIndex(IndexType_ index) { + indices_.emplace_back(index); + return *this; + } + VertexBuffer CreateVertexBuffer(HostBuffer& host_buffer) const { VertexBuffer buffer; buffer.vertex_buffer = CreateVertexBufferView(host_buffer); @@ -81,9 +92,8 @@ class VertexBufferBuilder { }; private: - // This is a placeholder till vertex de-duplication can be implemented. The - // current implementation is a very dumb placeholder. std::vector vertices_; + std::vector indices_; std::string label_; BufferView CreateVertexBufferView(HostBuffer& buffer) const { @@ -106,6 +116,10 @@ class VertexBufferBuilder { } std::vector CreateIndexBuffer() const { + if (indices_.size() > 0) { + return indices_; + } + // So dumb! We don't actually need an index buffer right now. But we will // once de-duplication is done. So assume this is always done. std::vector index_buffer; @@ -135,8 +149,6 @@ class VertexBufferBuilder { } return buffer->AsBufferView(); } - - size_t GetIndexCount() const { return vertices_.size(); } }; } // namespace impeller diff --git a/impeller/runtime_stage/BUILD.gn b/impeller/runtime_stage/BUILD.gn index b36a7f9017c88..5756887562edb 100644 --- a/impeller/runtime_stage/BUILD.gn +++ b/impeller/runtime_stage/BUILD.gn @@ -20,6 +20,7 @@ impeller_component("runtime_stage") { sources = [ "runtime_stage.cc", "runtime_stage.h", + "runtime_types.cc", "runtime_types.h", ] public_deps = [ diff --git a/impeller/runtime_stage/runtime_stage.cc b/impeller/runtime_stage/runtime_stage.cc index c75f33b425730..c783ecdad12c6 100644 --- a/impeller/runtime_stage/runtime_stage.cc +++ b/impeller/runtime_stage/runtime_stage.cc @@ -96,10 +96,18 @@ RuntimeStage::RuntimeStage(std::shared_ptr payload) [payload = payload_](auto, auto) {} // ); + sksl_mapping_ = std::make_shared( + runtime_stage->sksl()->data(), // + runtime_stage->sksl()->size(), // + [payload = payload_](auto, auto) {} // + ); + is_valid_ = true; } RuntimeStage::~RuntimeStage() = default; +RuntimeStage::RuntimeStage(RuntimeStage&&) = default; +RuntimeStage& RuntimeStage::operator=(RuntimeStage&&) = default; bool RuntimeStage::IsValid() const { return is_valid_; @@ -109,6 +117,10 @@ const std::shared_ptr& RuntimeStage::GetCodeMapping() const { return code_mapping_; } +const std::shared_ptr& RuntimeStage::GetSkSLMapping() const { + return sksl_mapping_; +} + const std::vector& RuntimeStage::GetUniforms() const { return uniforms_; diff --git a/impeller/runtime_stage/runtime_stage.fbs b/impeller/runtime_stage/runtime_stage.fbs index bb3d04e00edab..6e294a0eae655 100644 --- a/impeller/runtime_stage/runtime_stage.fbs +++ b/impeller/runtime_stage/runtime_stage.fbs @@ -50,6 +50,7 @@ table RuntimeStage { entrypoint: string; uniforms: [UniformDescription]; shader: [ubyte]; + sksl: [ubyte]; } root_type RuntimeStage; diff --git a/impeller/runtime_stage/runtime_stage.h b/impeller/runtime_stage/runtime_stage.h index fcf5d529d9bf5..5bbdaa86a7e13 100644 --- a/impeller/runtime_stage/runtime_stage.h +++ b/impeller/runtime_stage/runtime_stage.h @@ -9,7 +9,8 @@ #include "flutter/fml/macros.h" #include "flutter/fml/mapping.h" -#include "impeller/runtime_stage/runtime_types.h" + +#include "flutter/impeller/runtime_stage/runtime_types.h" namespace impeller { @@ -18,6 +19,8 @@ class RuntimeStage { explicit RuntimeStage(std::shared_ptr payload); ~RuntimeStage(); + RuntimeStage(RuntimeStage&&); + RuntimeStage& operator=(RuntimeStage&&); bool IsValid() const; @@ -31,11 +34,14 @@ class RuntimeStage { const std::shared_ptr& GetCodeMapping() const; + const std::shared_ptr& GetSkSLMapping() const; + private: RuntimeShaderStage stage_ = RuntimeShaderStage::kVertex; std::shared_ptr payload_; std::string entrypoint_; std::shared_ptr code_mapping_; + std::shared_ptr sksl_mapping_; std::vector uniforms_; bool is_valid_ = false; diff --git a/impeller/runtime_stage/runtime_stage_playground.cc b/impeller/runtime_stage/runtime_stage_playground.cc index 096030843315a..de0d3cf66f99e 100644 --- a/impeller/runtime_stage/runtime_stage_playground.cc +++ b/impeller/runtime_stage/runtime_stage_playground.cc @@ -17,19 +17,6 @@ RuntimeStagePlayground::RuntimeStagePlayground() = default; RuntimeStagePlayground::~RuntimeStagePlayground() = default; -std::unique_ptr RuntimeStagePlayground::CreateStageFromFixture( - const std::string& fixture_name) const { - auto fixture = flutter::testing::OpenFixtureAsMapping(fixture_name); - if (!fixture || fixture->GetSize() == 0) { - return nullptr; - } - auto stage = std::make_unique(std::move(fixture)); - if (!stage->IsValid()) { - return nullptr; - } - return stage; -} - bool RuntimeStagePlayground::RegisterStage(const RuntimeStage& stage) { std::promise registration; auto future = registration.get_future(); diff --git a/impeller/runtime_stage/runtime_stage_playground.h b/impeller/runtime_stage/runtime_stage_playground.h index 0b4168b2220c0..3a1821006c7f0 100644 --- a/impeller/runtime_stage/runtime_stage_playground.h +++ b/impeller/runtime_stage/runtime_stage_playground.h @@ -16,9 +16,6 @@ class RuntimeStagePlayground : public PlaygroundTest { ~RuntimeStagePlayground(); - std::unique_ptr CreateStageFromFixture( - const std::string& fixture_name) const; - bool RegisterStage(const RuntimeStage& stage); private: diff --git a/impeller/runtime_stage/runtime_stage_unittests.cc b/impeller/runtime_stage/runtime_stage_unittests.cc index b3aa6208e1cda..15b585a817f7f 100644 --- a/impeller/runtime_stage/runtime_stage_unittests.cc +++ b/impeller/runtime_stage/runtime_stage_unittests.cc @@ -43,7 +43,7 @@ TEST(RuntimeStageTest, CanRejectInvalidBlob) { // Not meant to be secure. Just reject obviously bad blobs using magic // numbers. ::memset(junk_allocation->GetBuffer(), 127, junk_allocation->GetLength()); - RuntimeStage stage(CreateMappingFromAllocation(std::move(junk_allocation))); + RuntimeStage stage(CreateMappingFromAllocation(junk_allocation)); ASSERT_FALSE(stage.IsValid()); } @@ -207,16 +207,27 @@ TEST_P(RuntimeStageTest, CanRegisterStage) { reg.set_value(result); })); ASSERT_TRUE(future.get()); - auto function = - library->GetFunction(stage.GetEntrypoint(), ShaderStage::kFragment); - ASSERT_NE(function, nullptr); + { + auto function = + library->GetFunction(stage.GetEntrypoint(), ShaderStage::kFragment); + ASSERT_NE(function, nullptr); + } + + // Check if unregistering works. + + library->UnregisterFunction(stage.GetEntrypoint(), ShaderStage::kFragment); + { + auto function = + library->GetFunction(stage.GetEntrypoint(), ShaderStage::kFragment); + ASSERT_EQ(function, nullptr); + } } TEST_P(RuntimeStageTest, CanCreatePipelineFromRuntimeStage) { if (GetParam() != PlaygroundBackend::kMetal) { GTEST_SKIP_("Skipped: https://github.com/flutter/flutter/issues/105538"); } - auto stage = CreateStageFromFixture("ink_sparkle.frag.iplr"); + auto stage = OpenAssetAsRuntimeStage("ink_sparkle.frag.iplr"); ASSERT_NE(stage, nullptr); ASSERT_TRUE(RegisterStage(*stage)); auto library = GetContext()->GetShaderLibrary(); @@ -237,8 +248,7 @@ TEST_P(RuntimeStageTest, CanCreatePipelineFromRuntimeStage) { desc.SetColorAttachmentDescriptor(0u, color0); desc.SetStencilAttachmentDescriptors(stencil0); desc.SetStencilPixelFormat(PixelFormat::kDefaultStencil); - auto pipeline = - GetContext()->GetPipelineLibrary()->GetPipeline(std::move(desc)).get(); + auto pipeline = GetContext()->GetPipelineLibrary()->GetPipeline(desc).get(); ASSERT_NE(pipeline, nullptr); } diff --git a/impeller/runtime_stage/runtime_types.cc b/impeller/runtime_stage/runtime_types.cc new file mode 100644 index 0000000000000..4236eae89bbfc --- /dev/null +++ b/impeller/runtime_stage/runtime_types.cc @@ -0,0 +1,17 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "impeller/runtime_stage/runtime_types.h" + +namespace impeller { + +size_t RuntimeUniformDescription::GetSize() const { + size_t size = dimensions.rows * dimensions.cols * bit_width / 8u; + if (array_elements.value_or(0) > 0) { + size *= array_elements.value(); + } + return size; +} + +} // namespace impeller diff --git a/impeller/runtime_stage/runtime_types.h b/impeller/runtime_stage/runtime_types.h index 7b3f06b0504bf..2ef8512dbd8b4 100644 --- a/impeller/runtime_stage/runtime_types.h +++ b/impeller/runtime_stage/runtime_types.h @@ -5,6 +5,7 @@ #pragma once #include +#include #include namespace impeller { @@ -44,7 +45,10 @@ struct RuntimeUniformDescription { RuntimeUniformType type = RuntimeUniformType::kFloat; RuntimeUniformDimensions dimensions; size_t bit_width; - size_t array_elements; + std::optional array_elements; + + /// @brief Computes the total number of bytes that this uniform requires. + size_t GetSize() const; }; } // namespace impeller diff --git a/impeller/tessellator/c/tessellator.cc b/impeller/tessellator/c/tessellator.cc index 7a53d9ceded5d..1bdbfde66db84 100644 --- a/impeller/tessellator/c/tessellator.cc +++ b/impeller/tessellator/c/tessellator.cc @@ -39,18 +39,26 @@ void Close(PathBuilder* builder) { struct Vertices* Tessellate(PathBuilder* builder, int fill_type, - Scalar scale, - Scalar angle_tolerance, - Scalar cusp_limit) { + Scalar tolerance) { auto path = builder->CopyPath(static_cast(fill_type)); - auto smoothing = SmoothingApproximation(scale, angle_tolerance, cusp_limit); - auto polyline = path.CreatePolyline(smoothing); + auto polyline = path.CreatePolyline(tolerance); std::vector points; - if (Tessellator{}.Tessellate(path.GetFillType(), polyline, - [&points](Point vertex) { - points.push_back(vertex.x); - points.push_back(vertex.y); - }) != Tessellator::Result::kSuccess) { + if (Tessellator{}.Tessellate( + path.GetFillType(), polyline, + [&points](const float* vertices, size_t vertices_size, + const uint16_t* indices, size_t indices_size) { + // Results are expected to be re-duplicated. + std::vector raw_points; + for (auto i = 0u; i < vertices_size; i += 2) { + raw_points.emplace_back(Point{vertices[i], vertices[i + 1]}); + } + for (auto i = 0u; i < indices_size; i++) { + auto point = raw_points[indices[i]]; + points.push_back(point.x); + points.push_back(point.y); + } + return true; + }) != Tessellator::Result::kSuccess) { return nullptr; } diff --git a/impeller/tessellator/c/tessellator.h b/impeller/tessellator/c/tessellator.h index 23a24e1f9603f..7a323b5413233 100644 --- a/impeller/tessellator/c/tessellator.h +++ b/impeller/tessellator/c/tessellator.h @@ -42,9 +42,7 @@ IMPELLER_API void Close(PathBuilder* builder); IMPELLER_API struct Vertices* Tessellate(PathBuilder* builder, int fill_type, - Scalar scale, - Scalar angle_tolerance, - Scalar cusp_limit); + Scalar tolerance); IMPELLER_API void DestroyVertices(Vertices* vertices); diff --git a/impeller/tessellator/tessellator.cc b/impeller/tessellator/tessellator.cc index 603532d095c0b..4e2c3c535f41e 100644 --- a/impeller/tessellator/tessellator.cc +++ b/impeller/tessellator/tessellator.cc @@ -55,7 +55,7 @@ static int ToTessWindingRule(FillType fill_type) { Tessellator::Result Tessellator::Tessellate( FillType fill_type, const Path::Polyline& polyline, - const VertexCallback& callback) const { + const BuilderCallback& callback) const { if (!callback) { return Result::kInputError; } @@ -105,26 +105,20 @@ Tessellator::Result Tessellator::Tessellate( return Result::kTessellationError; } - // TODO(csg): This copy can be elided entirely for the current use case. - std::vector points; - std::vector indices; - int vertexItemCount = tessGetVertexCount(tessellator) * kVertexSize; auto vertices = tessGetVertices(tessellator); - for (int i = 0; i < vertexItemCount; i += 2) { - points.emplace_back(vertices[i], vertices[i + 1]); - } - int elementItemCount = tessGetElementCount(tessellator) * kPolygonSize; auto elements = tessGetElements(tessellator); + // libtess uses an int index internally due to usage of -1 as a sentinel + // value. + std::vector indices(elementItemCount); for (int i = 0; i < elementItemCount; i++) { - indices.emplace_back(elements[i]); + indices[i] = static_cast(elements[i]); } - - for (auto index : indices) { - auto vtx = points[index]; - callback(vtx); + if (!callback(vertices, vertexItemCount, indices.data(), elementItemCount)) { + return Result::kInputError; } + return Result::kSuccess; } diff --git a/impeller/tessellator/tessellator.h b/impeller/tessellator/tessellator.h index 7a2fded0e8ebc..3a5ae97bb659b 100644 --- a/impeller/tessellator/tessellator.h +++ b/impeller/tessellator/tessellator.h @@ -43,20 +43,24 @@ class Tessellator { ~Tessellator(); - using VertexCallback = std::function; + using BuilderCallback = std::function; + //---------------------------------------------------------------------------- /// @brief Generates filled triangles from the polyline. A callback is - /// invoked for each vertex of the triangle. + /// invoked once for the entire tessellation. /// /// @param[in] fill_type The fill rule to use when filling. /// @param[in] polyline The polyline - /// @param[in] callback The callback + /// @param[in] callback The callback, return false to indicate failure. /// /// @return The result status of the tessellation. /// Tessellator::Result Tessellate(FillType fill_type, const Path::Polyline& polyline, - const VertexCallback& callback) const; + const BuilderCallback& callback) const; private: CTessellator c_tessellator_; diff --git a/impeller/tessellator/tessellator_unittests.cc b/impeller/tessellator/tessellator_unittests.cc index f9184b6805a42..56c2478540819 100644 --- a/impeller/tessellator/tessellator_unittests.cc +++ b/impeller/tessellator/tessellator_unittests.cc @@ -10,13 +10,15 @@ namespace impeller { namespace testing { -TEST(TessellatorTest, TessellatorReturnsCorrectResultStatus) { +TEST(TessellatorTest, TessellatorBuilderReturnsCorrectResultStatus) { // Zero points. { Tessellator t; auto polyline = PathBuilder{}.TakePath().CreatePolyline(); - Tessellator::Result result = - t.Tessellate(FillType::kPositive, polyline, [](Point point) {}); + Tessellator::Result result = t.Tessellate( + FillType::kPositive, polyline, + [](const float* vertices, size_t vertices_size, const uint16_t* indices, + size_t indices_size) { return true; }); ASSERT_EQ(polyline.points.size(), 0u); ASSERT_EQ(result, Tessellator::Result::kInputError); @@ -26,9 +28,10 @@ TEST(TessellatorTest, TessellatorReturnsCorrectResultStatus) { { Tessellator t; auto polyline = PathBuilder{}.LineTo({0, 0}).TakePath().CreatePolyline(); - Tessellator::Result result = - t.Tessellate(FillType::kPositive, polyline, [](Point point) {}); - + Tessellator::Result result = t.Tessellate( + FillType::kPositive, polyline, + [](const float* vertices, size_t vertices_size, const uint16_t* indices, + size_t indices_size) { return true; }); ASSERT_EQ(polyline.points.size(), 1u); ASSERT_EQ(result, Tessellator::Result::kSuccess); } @@ -38,8 +41,10 @@ TEST(TessellatorTest, TessellatorReturnsCorrectResultStatus) { Tessellator t; auto polyline = PathBuilder{}.AddLine({0, 0}, {0, 1}).TakePath().CreatePolyline(); - Tessellator::Result result = - t.Tessellate(FillType::kPositive, polyline, [](Point point) {}); + Tessellator::Result result = t.Tessellate( + FillType::kPositive, polyline, + [](const float* vertices, size_t vertices_size, const uint16_t* indices, + size_t indices_size) { return true; }); ASSERT_EQ(polyline.points.size(), 2u); ASSERT_EQ(result, Tessellator::Result::kSuccess); @@ -54,12 +59,28 @@ TEST(TessellatorTest, TessellatorReturnsCorrectResultStatus) { builder.AddLine({coord, coord}, {coord + 1, coord + 1}); } auto polyline = builder.TakePath().CreatePolyline(); - Tessellator::Result result = - t.Tessellate(FillType::kPositive, polyline, [](Point point) {}); + Tessellator::Result result = t.Tessellate( + FillType::kPositive, polyline, + [](const float* vertices, size_t vertices_size, const uint16_t* indices, + size_t indices_size) { return true; }); ASSERT_EQ(polyline.points.size(), 2000u); ASSERT_EQ(result, Tessellator::Result::kSuccess); } + + // Closure fails. + { + Tessellator t; + auto polyline = + PathBuilder{}.AddLine({0, 0}, {0, 1}).TakePath().CreatePolyline(); + Tessellator::Result result = t.Tessellate( + FillType::kPositive, polyline, + [](const float* vertices, size_t vertices_size, const uint16_t* indices, + size_t indices_size) { return false; }); + + ASSERT_EQ(polyline.points.size(), 2u); + ASSERT_EQ(result, Tessellator::Result::kInputError); + } } } // namespace testing diff --git a/impeller/tools/build_metal_library.py b/impeller/tools/build_metal_library.py index d78a2e5dcfab6..08a3a4d83d942 100644 --- a/impeller/tools/build_metal_library.py +++ b/impeller/tools/build_metal_library.py @@ -100,15 +100,19 @@ def main(): '-Oz', # Allow aggressive, lossy floating-point optimizations. '-ffast-math', + # limiting to ios-metal1.2 disables shader debug symbols, only + # enabling these in optimize mode. + # see https://github.com/flutter/flutter/issues/106066 + '--std=ios-metal1.2', ] if args.platform == 'ios': - # limiting to ios-metal1.2 disables shader debug symbols, only - # enabling these in optimize mode. - # see https://github.com/flutter/flutter/issues/106066 command += [ - '--std=ios-metal1.2', '-mios-version-min=10.0', ] + elif args.platform == 'ios-simulator': + command += [ + '-miphonesimulator-version-min=11.0', + ] else: command += [ # Embeds both sources and driver options in the output. This aids in diff --git a/impeller/tools/impeller.gni b/impeller/tools/impeller.gni index a01b18c176bf8..38495962cdfed 100644 --- a/impeller/tools/impeller.gni +++ b/impeller/tools/impeller.gni @@ -17,7 +17,7 @@ declare_args() { impeller_enable_opengles = is_mac || is_linux || is_win || is_android # Whether the Vulkan backend is enabled. - impeller_enable_vulkan = false + impeller_enable_vulkan = is_linux || is_android # Whether to use a prebuilt impellerc. # If this is the empty string, impellerc will be built. @@ -236,6 +236,10 @@ template("impellerc") { if (defined(invoker.iplr) && invoker.iplr) { iplr = invoker.iplr } + json = false + if (defined(invoker.json) && invoker.json) { + json = invoker.json + } # Not needed on every path. not_needed([ @@ -247,6 +251,7 @@ template("impellerc") { # Optional: invoker.defines specifies a list of valueless macro definitions. # Optional: invoker.intermediates_subdir specifies the subdirectory in which # to put intermediates. + # Optional: invoker.json Causes output format to be JSON instead of flatbuffer. _impellerc(target_name) { sources = invoker.shaders @@ -275,6 +280,10 @@ template("impellerc") { "$shader_target_flag", ] + if (json) { + args += [ "--json" ] + } + if (sksl) { sl_intermediate = "$generated_dir/{{source_file_part}}.${invoker.sl_file_extension}" @@ -452,7 +461,7 @@ template("impeller_shaders_gles") { sl_file_extension = "gles" # Metal reflectors generate a superset of information. - if (impeller_enable_metal) { + if (impeller_enable_metal || impeller_enable_vulkan) { intermediates_subdir = "gles" } if (is_mac) { @@ -489,7 +498,7 @@ template("impeller_shaders_gles") { group(target_name) { public_deps = [ ":$embed_gles_lib" ] - if (!impeller_enable_metal) { + if (!impeller_enable_metal && !impeller_enable_vulkan) { public_deps += [ ":$reflect_gles" ] } } diff --git a/impeller/typographer/backends/skia/text_render_context_skia.cc b/impeller/typographer/backends/skia/text_render_context_skia.cc index 96ef3f6851839..c1b6405bc193b 100644 --- a/impeller/typographer/backends/skia/text_render_context_skia.cc +++ b/impeller/typographer/backends/skia/text_render_context_skia.cc @@ -47,10 +47,10 @@ static FontGlyphPair::Set CollectUniqueFontGlyphPairsSet( static FontGlyphPair::Vector CollectUniqueFontGlyphPairs( GlyphAtlas::Type type, - TextRenderContext::FrameIterator frame_iterator) { + const TextRenderContext::FrameIterator& frame_iterator) { TRACE_EVENT0("impeller", __FUNCTION__); FontGlyphPair::Vector vector; - auto set = CollectUniqueFontGlyphPairsSet(type, std::move(frame_iterator)); + auto set = CollectUniqueFontGlyphPairsSet(type, frame_iterator); vector.reserve(set.size()); for (const auto& item : set) { vector.emplace_back(item); @@ -340,13 +340,13 @@ static std::shared_ptr UploadGlyphTextureAtlas( std::shared_ptr TextRenderContextSkia::CreateGlyphAtlas( GlyphAtlas::Type type, + std::shared_ptr atlas_context, FrameIterator frame_iterator) const { TRACE_EVENT0("impeller", __FUNCTION__); if (!IsValid()) { return nullptr; } - - auto glyph_atlas = std::make_shared(type); + auto last_atlas = atlas_context->GetGlyphAtlas(); // --------------------------------------------------------------------------- // Step 1: Collect unique font-glyph pairs in the frame. @@ -354,11 +354,23 @@ std::shared_ptr TextRenderContextSkia::CreateGlyphAtlas( auto font_glyph_pairs = CollectUniqueFontGlyphPairs(type, frame_iterator); if (font_glyph_pairs.empty()) { - return glyph_atlas; + return last_atlas; } // --------------------------------------------------------------------------- - // Step 2: Get the optimum size of the texture atlas. + // Step 2: Determine if the atlas type and font glyph pairs are compatible + // with the current atlas and reuse if possible. + // --------------------------------------------------------------------------- + if (last_atlas->GetType() == type && + last_atlas->HasSamePairs(font_glyph_pairs)) { + return last_atlas; + } + + auto glyph_atlas = std::make_shared(type); + atlas_context->UpdateGlyphAtlas(glyph_atlas); + + // --------------------------------------------------------------------------- + // Step 3: Get the optimum size of the texture atlas. // --------------------------------------------------------------------------- std::vector glyph_positions; const auto atlas_size = @@ -368,7 +380,7 @@ std::shared_ptr TextRenderContextSkia::CreateGlyphAtlas( } // --------------------------------------------------------------------------- - // Step 3: Find location of font-glyph pairs in the atlas. We have this from + // Step 4: Find location of font-glyph pairs in the atlas. We have this from // the last step. So no need to do create another rect packer. But just do a // sanity check of counts. This could also be just an assertion as only a // construction issue would cause such a failure. @@ -378,7 +390,7 @@ std::shared_ptr TextRenderContextSkia::CreateGlyphAtlas( } // --------------------------------------------------------------------------- - // Step 4: Record the positions in the glyph atlas. + // Step 5: Record the positions in the glyph atlas. // --------------------------------------------------------------------------- for (size_t i = 0, count = glyph_positions.size(); i < count; i++) { glyph_atlas->AddTypefaceGlyphPosition(font_glyph_pairs[i], @@ -386,7 +398,7 @@ std::shared_ptr TextRenderContextSkia::CreateGlyphAtlas( } // --------------------------------------------------------------------------- - // Step 5: Draw font-glyph pairs in the correct spot in the atlas. + // Step 6: Draw font-glyph pairs in the correct spot in the atlas. // --------------------------------------------------------------------------- auto bitmap = CreateAtlasBitmap(*glyph_atlas, atlas_size); if (!bitmap) { @@ -394,7 +406,7 @@ std::shared_ptr TextRenderContextSkia::CreateGlyphAtlas( } // --------------------------------------------------------------------------- - // Step 6: Upload the atlas as a texture. + // Step 7: Upload the atlas as a texture. // --------------------------------------------------------------------------- PixelFormat format; switch (type) { @@ -416,7 +428,7 @@ std::shared_ptr TextRenderContextSkia::CreateGlyphAtlas( } // --------------------------------------------------------------------------- - // Step 7: Record the texture in the glyph atlas. + // Step 8: Record the texture in the glyph atlas. // --------------------------------------------------------------------------- glyph_atlas->SetTexture(std::move(texture)); diff --git a/impeller/typographer/backends/skia/text_render_context_skia.h b/impeller/typographer/backends/skia/text_render_context_skia.h index 1b11df9d79cb0..0c97a8716e7ad 100644 --- a/impeller/typographer/backends/skia/text_render_context_skia.h +++ b/impeller/typographer/backends/skia/text_render_context_skia.h @@ -18,6 +18,7 @@ class TextRenderContextSkia : public TextRenderContext { // |TextRenderContext| std::shared_ptr CreateGlyphAtlas( GlyphAtlas::Type type, + std::shared_ptr atlas_context, FrameIterator iterator) const override; private: diff --git a/impeller/typographer/glyph_atlas.cc b/impeller/typographer/glyph_atlas.cc index dc1d48ccbbf21..3a6470e97404d 100644 --- a/impeller/typographer/glyph_atlas.cc +++ b/impeller/typographer/glyph_atlas.cc @@ -4,8 +4,23 @@ #include "impeller/typographer/glyph_atlas.h" +#include + namespace impeller { +GlyphAtlasContext::GlyphAtlasContext() + : atlas_(std::make_shared(GlyphAtlas::Type::kAlphaBitmap)) {} + +GlyphAtlasContext::~GlyphAtlasContext() {} + +std::shared_ptr GlyphAtlasContext::GetGlyphAtlas() const { + return atlas_; +} + +void GlyphAtlasContext::UpdateGlyphAtlas(std::shared_ptr atlas) { + atlas_ = std::move(atlas); +} + GlyphAtlas::GlyphAtlas(Type type) : type_(type) {} GlyphAtlas::~GlyphAtlas() = default; @@ -61,4 +76,13 @@ size_t GlyphAtlas::IterateGlyphs( return count; } +bool GlyphAtlas::HasSamePairs(const FontGlyphPair::Vector& new_glyphs) { + for (const auto& pair : new_glyphs) { + if (positions_.find(pair) == positions_.end()) { + return false; + } + } + return true; +} + } // namespace impeller diff --git a/impeller/typographer/glyph_atlas.h b/impeller/typographer/glyph_atlas.h index 3c278f64550e1..0b533643b6437 100644 --- a/impeller/typographer/glyph_atlas.h +++ b/impeller/typographer/glyph_atlas.h @@ -116,6 +116,16 @@ class GlyphAtlas { /// std::optional FindFontGlyphPosition(const FontGlyphPair& pair) const; + //---------------------------------------------------------------------------- + /// @brief whether this atlas contains all of the same font-glyph pairs + /// as the vector. + /// + /// @param[in] new_glyphs The full set of new glyphs + /// + /// @return Whether this atlas contains all passed pairs. + /// + bool HasSamePairs(const FontGlyphPair::Vector& new_glyphs); + private: const Type type_; std::shared_ptr texture_; @@ -129,4 +139,27 @@ class GlyphAtlas { FML_DISALLOW_COPY_AND_ASSIGN(GlyphAtlas); }; +//------------------------------------------------------------------------------ +/// @brief A container for caching a glyph atlas across frames. +/// +class GlyphAtlasContext { + public: + GlyphAtlasContext(); + + ~GlyphAtlasContext(); + + //---------------------------------------------------------------------------- + /// @brief Retrieve the current glyph atlas. + std::shared_ptr GetGlyphAtlas() const; + + //---------------------------------------------------------------------------- + /// @brief Update the context with a newly constructed glyph atlas. + void UpdateGlyphAtlas(std::shared_ptr atlas); + + private: + std::shared_ptr atlas_; + + FML_DISALLOW_COPY_AND_ASSIGN(GlyphAtlasContext); +}; + } // namespace impeller diff --git a/impeller/typographer/lazy_glyph_atlas.cc b/impeller/typographer/lazy_glyph_atlas.cc index c8e05330acf58..3e415716a528c 100644 --- a/impeller/typographer/lazy_glyph_atlas.cc +++ b/impeller/typographer/lazy_glyph_atlas.cc @@ -8,6 +8,8 @@ #include "impeller/typographer/text_render_context.h" #include "lazy_glyph_atlas.h" +#include + namespace impeller { LazyGlyphAtlas::LazyGlyphAtlas() = default; @@ -26,6 +28,7 @@ bool LazyGlyphAtlas::HasColor() const { std::shared_ptr LazyGlyphAtlas::CreateOrGetGlyphAtlas( GlyphAtlas::Type type, + std::shared_ptr atlas_context, std::shared_ptr context) const { { auto atlas_it = atlas_map_.find(type); @@ -47,7 +50,8 @@ std::shared_ptr LazyGlyphAtlas::CreateOrGetGlyphAtlas( i++; return &result; }; - auto atlas = text_context->CreateGlyphAtlas(type, iterator); + auto atlas = + text_context->CreateGlyphAtlas(type, std::move(atlas_context), iterator); if (!atlas || !atlas->IsValid()) { VALIDATION_LOG << "Could not create valid atlas."; return nullptr; diff --git a/impeller/typographer/lazy_glyph_atlas.h b/impeller/typographer/lazy_glyph_atlas.h index 68869aba11fe5..841bb4f2e0e46 100644 --- a/impeller/typographer/lazy_glyph_atlas.h +++ b/impeller/typographer/lazy_glyph_atlas.h @@ -23,6 +23,7 @@ class LazyGlyphAtlas { std::shared_ptr CreateOrGetGlyphAtlas( GlyphAtlas::Type type, + std::shared_ptr atlas_context, std::shared_ptr context) const; bool HasColor() const; diff --git a/impeller/typographer/text_render_context.cc b/impeller/typographer/text_render_context.cc index c19e7ac01f1fb..072e33ab882d0 100644 --- a/impeller/typographer/text_render_context.cc +++ b/impeller/typographer/text_render_context.cc @@ -4,6 +4,8 @@ #include "impeller/typographer/text_render_context.h" +#include + #include "impeller/typographer/backends/skia/text_render_context_skia.h" namespace impeller { @@ -34,6 +36,7 @@ const std::shared_ptr& TextRenderContext::GetContext() const { std::shared_ptr TextRenderContext::CreateGlyphAtlas( GlyphAtlas::Type type, + std::shared_ptr atlas_context, const TextFrame& frame) const { size_t count = 0; FrameIterator iterator = [&]() -> const TextFrame* { @@ -43,7 +46,7 @@ std::shared_ptr TextRenderContext::CreateGlyphAtlas( } return nullptr; }; - return CreateGlyphAtlas(type, iterator); + return CreateGlyphAtlas(type, std::move(atlas_context), iterator); } } // namespace impeller diff --git a/impeller/typographer/text_render_context.h b/impeller/typographer/text_render_context.h index 7c2277070c856..c63ac912a1fa8 100644 --- a/impeller/typographer/text_render_context.h +++ b/impeller/typographer/text_render_context.h @@ -44,10 +44,13 @@ class TextRenderContext { virtual std::shared_ptr CreateGlyphAtlas( GlyphAtlas::Type type, + std::shared_ptr atlas_context, FrameIterator iterator) const = 0; - std::shared_ptr CreateGlyphAtlas(GlyphAtlas::Type type, - const TextFrame& frame) const; + std::shared_ptr CreateGlyphAtlas( + GlyphAtlas::Type type, + std::shared_ptr atlas_context, + const TextFrame& frame) const; protected: //---------------------------------------------------------------------------- diff --git a/impeller/typographer/typographer_unittests.cc b/impeller/typographer/typographer_unittests.cc index 3802043307901..7bd81264c4df7 100644 --- a/impeller/typographer/typographer_unittests.cc +++ b/impeller/typographer/typographer_unittests.cc @@ -36,12 +36,14 @@ TEST_P(TypographerTest, CanCreateRenderContext) { TEST_P(TypographerTest, CanCreateGlyphAtlas) { auto context = TextRenderContext::Create(GetContext()); + auto atlas_context = std::make_shared(); ASSERT_TRUE(context && context->IsValid()); SkFont sk_font; auto blob = SkTextBlob::MakeFromString("hello", sk_font); ASSERT_TRUE(blob); - auto atlas = context->CreateGlyphAtlas(GlyphAtlas::Type::kAlphaBitmap, - TextFrameFromTextBlob(blob)); + auto atlas = + context->CreateGlyphAtlas(GlyphAtlas::Type::kAlphaBitmap, atlas_context, + TextFrameFromTextBlob(blob)); ASSERT_NE(atlas, nullptr); OpenPlaygroundHere([](RenderTarget&) { return true; }); } @@ -80,7 +82,7 @@ TEST_P(TypographerTest, LazyAtlasTracksColor) { LazyGlyphAtlas lazy_atlas; ASSERT_FALSE(lazy_atlas.HasColor()); - lazy_atlas.AddTextFrame(std::move(frame)); + lazy_atlas.AddTextFrame(frame); ASSERT_FALSE(lazy_atlas.HasColor()); @@ -88,19 +90,21 @@ TEST_P(TypographerTest, LazyAtlasTracksColor) { ASSERT_TRUE(frame.HasColor()); - lazy_atlas.AddTextFrame(std::move(frame)); + lazy_atlas.AddTextFrame(frame); ASSERT_TRUE(lazy_atlas.HasColor()); } TEST_P(TypographerTest, GlyphAtlasWithOddUniqueGlyphSize) { auto context = TextRenderContext::Create(GetContext()); + auto atlas_context = std::make_shared(); ASSERT_TRUE(context && context->IsValid()); SkFont sk_font; auto blob = SkTextBlob::MakeFromString("AGH", sk_font); ASSERT_TRUE(blob); - auto atlas = context->CreateGlyphAtlas(GlyphAtlas::Type::kAlphaBitmap, - TextFrameFromTextBlob(blob)); + auto atlas = + context->CreateGlyphAtlas(GlyphAtlas::Type::kAlphaBitmap, atlas_context, + TextFrameFromTextBlob(blob)); ASSERT_NE(atlas, nullptr); ASSERT_NE(atlas->GetTexture(), nullptr); @@ -110,8 +114,32 @@ TEST_P(TypographerTest, GlyphAtlasWithOddUniqueGlyphSize) { atlas->GetTexture()->GetSize().height); } +TEST_P(TypographerTest, GlyphAtlasIsRecycledIfUnchanged) { + auto context = TextRenderContext::Create(GetContext()); + auto atlas_context = std::make_shared(); + ASSERT_TRUE(context && context->IsValid()); + SkFont sk_font; + auto blob = SkTextBlob::MakeFromString("spooky skellingtons", sk_font); + ASSERT_TRUE(blob); + auto atlas = + context->CreateGlyphAtlas(GlyphAtlas::Type::kAlphaBitmap, atlas_context, + TextFrameFromTextBlob(blob)); + ASSERT_NE(atlas, nullptr); + ASSERT_NE(atlas->GetTexture(), nullptr); + ASSERT_EQ(atlas, atlas_context->GetGlyphAtlas()); + + // now attempt to re-create an atlas with the same text blob. + + auto next_atlas = + context->CreateGlyphAtlas(GlyphAtlas::Type::kAlphaBitmap, atlas_context, + TextFrameFromTextBlob(blob)); + ASSERT_EQ(atlas, next_atlas); + ASSERT_EQ(atlas_context->GetGlyphAtlas(), atlas); +} + TEST_P(TypographerTest, GlyphAtlasWithLotsOfdUniqueGlyphSize) { auto context = TextRenderContext::Create(GetContext()); + auto atlas_context = std::make_shared(); ASSERT_TRUE(context && context->IsValid()); SkFont sk_font; @@ -133,9 +161,8 @@ TEST_P(TypographerTest, GlyphAtlasWithLotsOfdUniqueGlyphSize) { } return nullptr; }; - - auto atlas = - context->CreateGlyphAtlas(GlyphAtlas::Type::kAlphaBitmap, iterator); + auto atlas = context->CreateGlyphAtlas(GlyphAtlas::Type::kAlphaBitmap, + atlas_context, iterator); ASSERT_NE(atlas, nullptr); ASSERT_NE(atlas->GetTexture(), nullptr); diff --git a/lib/snapshot/BUILD.gn b/lib/snapshot/BUILD.gn index 22930d5c8bcdf..d8176bdf5151d 100644 --- a/lib/snapshot/BUILD.gn +++ b/lib/snapshot/BUILD.gn @@ -6,7 +6,6 @@ import("//build/compiled_action.gni") import("//build/fuchsia/sdk.gni") import("//flutter/common/config.gni") import("//flutter/lib/ui/dart_ui.gni") -import("//flutter/sky/tools/macos.gni") import("//third_party/dart/utils/compile_platform.gni") # Generates the Dart/Flutter core platform files and tools. @@ -252,7 +251,7 @@ bin_to_linkable("platform_strong_dill_linkable") { # This target is used for builds targeting iOS/Android OS. if (host_os == "mac" && target_os != "mac" && (target_cpu == "arm" || target_cpu == "arm64")) { - strip_bitcode("create_arm_gen_snapshot") { + copy("create_arm_gen_snapshot") { # The toolchain-specific output directory. For cross-compiles, this is a # clang-x64 or clang-arm64 subdirectory of the top-level build directory. host_output_dir = get_label_info( @@ -265,8 +264,8 @@ if (host_os == "mac" && target_os != "mac" && target_cpu_suffix = "armv7" } - input = "${host_output_dir}/gen_snapshot" - output = "${host_output_dir}/gen_snapshot_${target_cpu_suffix}" + sources = [ "${host_output_dir}/gen_snapshot" ] + outputs = [ "${host_output_dir}/gen_snapshot_${target_cpu_suffix}" ] deps = [ "//third_party/dart/runtime/bin:gen_snapshot($host_toolchain)" ] visibility = [ ":*" ] } @@ -280,15 +279,15 @@ if (host_os == "mac" && target_os != "mac" && # # This target is used for builds targeting macOS. if (host_os == "mac" && target_os == "mac") { - strip_bitcode("create_macos_gen_snapshots") { + copy("create_macos_gen_snapshots") { # The toolchain-specific output directory. For cross-compiles, this is a # clang-x64 or clang-arm64 subdirectory of the top-level build directory. host_output_dir = get_label_info( "//third_party/dart/runtime/bin:gen_snapshot($host_toolchain)", "root_out_dir") - input = "${host_output_dir}/gen_snapshot" - output = "${root_out_dir}/gen_snapshot_${target_cpu}" + sources = [ "${host_output_dir}/gen_snapshot" ] + outputs = [ "${root_out_dir}/gen_snapshot_${target_cpu}" ] deps = [ "//third_party/dart/runtime/bin:gen_snapshot($host_toolchain)" ] metadata = { snapshot_entitlement_file_path = [ "gen_snapshot_{$target_cpu}" ] diff --git a/lib/ui/BUILD.gn b/lib/ui/BUILD.gn index 652fef02b628c..fc6356153ee4c 100644 --- a/lib/ui/BUILD.gn +++ b/lib/ui/BUILD.gn @@ -231,6 +231,7 @@ if (enable_unittests) { "painting/image_dispose_unittests.cc", "painting/image_encoding_unittests.cc", "painting/image_generator_registry_unittests.cc", + "painting/paint_unittests.cc", "painting/path_unittests.cc", "painting/single_frame_codec_unittests.cc", "semantics/semantics_update_builder_unittests.cc", diff --git a/lib/ui/compositing.dart b/lib/ui/compositing.dart index 843be9631a0e5..30104639e7e55 100644 --- a/lib/ui/compositing.dart +++ b/lib/ui/compositing.dart @@ -106,9 +106,10 @@ abstract class _EngineLayerWrapper implements EngineLayer { bool _debugWasUsedAsOldLayer = false; bool _debugCheckNotUsedAsOldLayer() { + // The hashCode formatting should match shortHash in the framework assert( !_debugWasUsedAsOldLayer, - 'Layer $runtimeType was previously used as oldLayer.\n' + 'Layer $runtimeType#${hashCode.toUnsigned(20).toRadixString(16).padLeft(5, '0')} was previously used as oldLayer.\n' 'Once a layer is used as oldLayer, it may not be used again. Instead, ' 'after calling one of the SceneBuilder.push* methods and passing an oldLayer ' 'to it, use the layer returned by the method as oldLayer in subsequent ' diff --git a/lib/ui/compositing/scene.cc b/lib/ui/compositing/scene.cc index e06e042cc5480..c5070c6376091 100644 --- a/lib/ui/compositing/scene.cc +++ b/lib/ui/compositing/scene.cc @@ -95,7 +95,7 @@ static sk_sp CreateDeferredImage( std::shared_ptr layer_tree, uint32_t width, uint32_t height, - fml::WeakPtr snapshot_delegate, + fml::TaskRunnerAffineWeakPtr snapshot_delegate, fml::RefPtr raster_task_runner, fml::RefPtr unref_queue) { #if IMPELLER_SUPPORTS_RENDERING @@ -110,7 +110,7 @@ static sk_sp CreateDeferredImage( width, height, kRGBA_8888_SkColorType, kPremul_SkAlphaType); return DlDeferredImageGPUSkia::MakeFromLayerTree( image_info, std::move(layer_tree), std::move(snapshot_delegate), - std::move(raster_task_runner), std::move(unref_queue)); + raster_task_runner, std::move(unref_queue)); } void Scene::RasterizeToImage(uint32_t width, diff --git a/lib/ui/dart_ui.cc b/lib/ui/dart_ui.cc index 5417889d044b5..595988a19bb66 100644 --- a/lib/ui/dart_ui.cc +++ b/lib/ui/dart_ui.cc @@ -83,6 +83,7 @@ typedef CanvasPath Path; V(ImageDescriptor::initEncoded, 3) \ V(ImmutableBuffer::init, 3) \ V(ImmutableBuffer::initFromAsset, 3) \ + V(ImmutableBuffer::initFromFile, 3) \ V(ImageDescriptor::initRaw, 6) \ V(IsolateNameServerNatives::LookupPortByName, 1) \ V(IsolateNameServerNatives::RegisterPortWithName, 2) \ diff --git a/lib/ui/fixtures/shaders/BUILD.gn b/lib/ui/fixtures/shaders/BUILD.gn index 9563a8105f4b1..ff4b9b458e7cb 100644 --- a/lib/ui/fixtures/shaders/BUILD.gn +++ b/lib/ui/fixtures/shaders/BUILD.gn @@ -24,8 +24,20 @@ if (enable_unittests) { iplr = true } + impellerc("ink_sparkle_web") { + shaders = [ "//flutter/impeller/fixtures/ink_sparkle.frag" ] + shader_target_flag = "--sksl" + intermediates_subdir = "iplr-json" + sl_file_extension = "iplr" + iplr = true + json = true + } + test_fixtures("fixtures") { - deps = [ ":ink_sparkle" ] + deps = [ + ":ink_sparkle", + ":ink_sparkle_web", + ] fixtures = get_target_outputs(":ink_sparkle") dest = "$root_gen_dir/flutter/lib/ui" } diff --git a/lib/ui/fixtures/shaders/general_shaders/uniform_arrays.frag b/lib/ui/fixtures/shaders/general_shaders/uniform_arrays.frag index 64878088a9f9d..c1efea1833672 100644 --- a/lib/ui/fixtures/shaders/general_shaders/uniform_arrays.frag +++ b/lib/ui/fixtures/shaders/general_shaders/uniform_arrays.frag @@ -12,7 +12,6 @@ layout ( location = 1 ) uniform float floatArray[2]; layout ( location = 3 ) uniform vec2 vec2Array[2]; layout ( location = 7 ) uniform vec3 vec3Array[2]; layout ( location = 13 ) uniform mat2 mat2Array[2]; -layout ( location = 21 ) uniform float float2dArray[2][2]; void main() { vec4 badColor = vec4(1.0, 0, 0, 1.0); @@ -39,11 +38,7 @@ void main() { mat2Array[0][1][1] >= mat2Array[1][0][0] || mat2Array[1][0][0] >= mat2Array[1][0][1] || mat2Array[1][0][1] >= mat2Array[1][1][0] || - mat2Array[1][1][0] >= mat2Array[1][1][1] || - mat2Array[1][1][1] >= float2dArray[0][0] || - float2dArray[0][0] >= float2dArray[0][1] || - float2dArray[0][1] >= float2dArray[1][0] || - float2dArray[1][0] >= float2dArray[1][1]) { + mat2Array[1][1][0] >= mat2Array[1][1][1]) { oColor = badColor; } else { oColor = goodColor; diff --git a/lib/ui/fixtures/shaders/general_shaders/uniforms_sorted.frag b/lib/ui/fixtures/shaders/general_shaders/uniforms_sorted.frag index 3c97433f004ba..827fc18ce39a5 100644 --- a/lib/ui/fixtures/shaders/general_shaders/uniforms_sorted.frag +++ b/lib/ui/fixtures/shaders/general_shaders/uniforms_sorted.frag @@ -11,6 +11,8 @@ precision highp float; +#include + layout(location = 0) uniform vec4 u_color; layout(location = 1) uniform float u_alpha; layout(location = 2) uniform vec4 u_sparkle_color; @@ -93,7 +95,7 @@ float turbulence(vec2 uv) { void main() { // This block of code triggers the compiler to emit the uniforms out of order // if they are not explicitly sorted. - vec2 p = gl_FragCoord.xy; + vec2 p = FlutterFragCoord(); vec2 uv = p * u_resolution_scale; vec2 density_uv = uv - mod(p, u_noise_scale); float radius = u_max_radius * u_radius_scale; diff --git a/lib/ui/fixtures/ui_test.dart b/lib/ui/fixtures/ui_test.dart index 6ccd2388ce877..f1d213ec22cd8 100644 --- a/lib/ui/fixtures/ui_test.dart +++ b/lib/ui/fixtures/ui_test.dart @@ -12,7 +12,8 @@ void main() {} /// Mutiple tests use this to signal to the C++ side that they are ready for /// validation. -void _finish() native 'Finish'; +@pragma('vm:external-name', 'Finish') +external void _finish(); @pragma('vm:entry-point') void customOnErrorTrue() { @@ -58,10 +59,15 @@ void validateSceneBuilderAndScene() { scene.dispose(); _validateSceneHasNoLayers(); } -_validateBuilderHasLayers(SceneBuilder builder) native 'ValidateBuilderHasLayers'; -_validateBuilderHasNoLayers() native 'ValidateBuilderHasNoLayers'; -_captureScene(Scene scene) native 'CaptureScene'; -_validateSceneHasNoLayers() native 'ValidateSceneHasNoLayers'; + +@pragma('vm:external-name', 'ValidateBuilderHasLayers') +external _validateBuilderHasLayers(SceneBuilder builder); +@pragma('vm:external-name', 'ValidateBuilderHasNoLayers') +external _validateBuilderHasNoLayers(); +@pragma('vm:external-name', 'CaptureScene') +external _captureScene(Scene scene); +@pragma('vm:external-name', 'ValidateSceneHasNoLayers') +external _validateSceneHasNoLayers(); @pragma('vm:entry-point') void validateEngineLayerDispose() { @@ -74,9 +80,13 @@ void validateEngineLayerDispose() { layer.dispose(); _validateEngineLayerDispose(); } -_captureRootLayer(SceneBuilder sceneBuilder) native 'CaptureRootLayer'; -_validateLayerTreeCounts() native 'ValidateLayerTreeCounts'; -_validateEngineLayerDispose() native 'ValidateEngineLayerDispose'; + +@pragma('vm:external-name', 'CaptureRootLayer') +external _captureRootLayer(SceneBuilder sceneBuilder); +@pragma('vm:external-name', 'ValidateLayerTreeCounts') +external _validateLayerTreeCounts(); +@pragma('vm:external-name', 'ValidateEngineLayerDispose') +external _validateEngineLayerDispose(); @pragma('vm:entry-point') Future createSingleFrameCodec() async { @@ -98,7 +108,9 @@ Future createSingleFrameCodec() async { assert(buffer.debugDisposed); _finish(); } -void _validateCodec(Codec codec) native 'ValidateCodec'; + +@pragma('vm:external-name', 'ValidateCodec') +external void _validateCodec(Codec codec); @pragma('vm:entry-point') void createVertices() { @@ -126,7 +138,9 @@ void createVertices() { ); _validateVertices(vertices); } -void _validateVertices(Vertices vertices) native 'ValidateVertices'; + +@pragma('vm:external-name', 'ValidateVertices') +external void _validateVertices(Vertices vertices); @pragma('vm:entry-point') void sendSemanticsUpdate() { @@ -212,12 +226,12 @@ void sendSemanticsUpdate() { transform: transform, childrenInTraversalOrder: childrenInTraversalOrder, childrenInHitTestOrder: childrenInHitTestOrder, - additionalActions: additionalActions - ); + additionalActions: additionalActions); _semanticsUpdate(builder.build()); } -void _semanticsUpdate(SemanticsUpdate update) native 'SemanticsUpdate'; +@pragma('vm:external-name', 'SemanticsUpdate') +external void _semanticsUpdate(SemanticsUpdate update); @pragma('vm:entry-point') void createPath() { @@ -229,7 +243,9 @@ void createPath() { path.lineTo(100, 100); }); } -void _validatePath(Path path) native 'ValidatePath'; + +@pragma('vm:external-name', 'ValidatePath') +external void _validatePath(Path path); @pragma('vm:entry-point') void frameCallback(_Image, int) { @@ -263,16 +279,19 @@ void platformMessageResponseTest() { }); } -void _callPlatformMessageResponseDartPort(int port) native 'CallPlatformMessageResponseDartPort'; -void _callPlatformMessageResponseDart(void Function(ByteData? result) callback) native 'CallPlatformMessageResponseDart'; -void _finishCallResponse(bool didPass) native 'FinishCallResponse'; +@pragma('vm:external-name', 'CallPlatformMessageResponseDartPort') +external void _callPlatformMessageResponseDartPort(int port); +@pragma('vm:external-name', 'CallPlatformMessageResponseDart') +external void _callPlatformMessageResponseDart(void Function(ByteData? result) callback); +@pragma('vm:external-name', 'FinishCallResponse') +external void _finishCallResponse(bool didPass); @pragma('vm:entry-point') void messageCallback(dynamic data) {} @pragma('vm:entry-point') -void validateConfiguration() native 'ValidateConfiguration'; - +@pragma('vm:external-name', 'ValidateConfiguration') +external void validateConfiguration(); // Draw a circle on a Canvas that has a PictureRecorder. Take the image from // the PictureRecorder, and encode it as png. Check that the png data is @@ -295,9 +314,11 @@ Future encodeImageProducesExternalUint8List() async { _validateExternal(result); }); } -void _encodeImage(Image i, int format, void Function(Uint8List result)) - native 'EncodeImage'; -void _validateExternal(Uint8List result) native 'ValidateExternal'; + +@pragma('vm:external-name', 'EncodeImage') +external void _encodeImage(Image i, int format, void Function(Uint8List result)); +@pragma('vm:external-name', 'ValidateExternal') +external void _validateExternal(Uint8List result); @pragma('vm:entry-point') Future pumpImage() async { @@ -358,13 +379,28 @@ Future pumpImage() async { window.onBeginFrame = renderImage; window.scheduleFrame(); } -void _captureImageAndPicture(Image image, Picture picture) native 'CaptureImageAndPicture'; + +@pragma('vm:external-name', 'CaptureImageAndPicture') +external void _captureImageAndPicture(Image image, Picture picture); + +@pragma('vm:entry-point') +void convertPaintToDlPaint() { + Paint paint = Paint(); + paint.blendMode = BlendMode.modulate; + paint.color = Color.fromARGB(0x11, 0x22, 0x33, 0x44); + paint.colorFilter = ColorFilter.mode(Color.fromARGB(0x55, 0x66, 0x77, 0x88), BlendMode.xor); + paint.maskFilter = MaskFilter.blur(BlurStyle.inner, .75); + paint.style = PaintingStyle.stroke; + _convertPaintToDlPaint(paint); +} +@pragma('vm:external-name', 'ConvertPaintToDlPaint') +external void _convertPaintToDlPaint(Paint paint); @pragma('vm:entry-point') -void hooksTests() { - void test(String name, VoidCallback testFunction) { +void hooksTests() async { + Future test(String name, FutureOr Function() testFunction) async { try { - testFunction(); + await testFunction(); } catch (e) { print('Test "$name" failed!'); rethrow; @@ -389,7 +425,7 @@ void hooksTests() { } } - test('onMetricsChanged preserves callback zone', () { + await test('onMetricsChanged preserves callback zone', () { late Zone originalZone; late Zone callbackZone; late double devicePixelRatio; @@ -434,7 +470,7 @@ void hooksTests() { } }); - test('onError preserves the callback zone', () { + await test('onError preserves the callback zone', () { late Zone originalZone; late Zone callbackZone; final Object error = Exception('foo'); @@ -451,14 +487,15 @@ void hooksTests() { }); _callHook('_onError', 2, error, StackTrace.current); + PlatformDispatcher.instance.onError = null; expectIdentical(originalZone, callbackZone); }); - test('updateUserSettings can handle an empty object', () { + await test('updateUserSettings can handle an empty object', () { _callHook('_updateUserSettingsData', 1, '{}'); }); - test('PlatformDispatcher.locale returns unknown locale when locales is set to empty list', () { + await test('PlatformDispatcher.locale returns unknown locale when locales is set to empty list', () { late Locale locale; int callCount = 0; runZoned(() { @@ -489,7 +526,7 @@ void hooksTests() { } }); - test('deprecated region equals', () { + await test('deprecated region equals', () { // These are equal because ZR is deprecated and was mapped to CD. const Locale x = Locale('en', 'ZR'); const Locale y = Locale('en', 'CD'); @@ -497,7 +534,7 @@ void hooksTests() { expectEquals(x.countryCode, y.countryCode); }); - test('Window padding/insets/viewPadding/systemGestureInsets', () { + await test('Window padding/insets/viewPadding/systemGestureInsets', () { _callHook( '_updateWindowMetrics', 20, @@ -559,7 +596,7 @@ void hooksTests() { expectEquals(window.systemGestureInsets.bottom, 44.0); }); - test('Window physical touch slop', () { + await test('Window physical touch slop', () { _callHook( '_updateWindowMetrics', 20, @@ -645,7 +682,7 @@ void hooksTests() { GestureSettings(physicalTouchSlop: 22.0)); }); - test('onLocaleChanged preserves callback zone', () { + await test('onLocaleChanged preserves callback zone', () { late Zone innerZone; late Zone runZone; Locale? locale; @@ -663,7 +700,7 @@ void hooksTests() { expectEquals(locale, const Locale('en', 'US')); }); - test('onBeginFrame preserves callback zone', () { + await test('onBeginFrame preserves callback zone', () { late Zone innerZone; late Zone runZone; late Duration start; @@ -681,7 +718,7 @@ void hooksTests() { expectEquals(start, const Duration(microseconds: 1234)); }); - test('onDrawFrame preserves callback zone', () { + await test('onDrawFrame preserves callback zone', () { late Zone innerZone; late Zone runZone; @@ -696,7 +733,7 @@ void hooksTests() { expectIdentical(runZone, innerZone); }); - test('onReportTimings preserves callback zone', () { + await test('onReportTimings preserves callback zone', () { late Zone innerZone; late Zone runZone; @@ -711,7 +748,7 @@ void hooksTests() { expectIdentical(runZone, innerZone); }); - test('onPointerDataPacket preserves callback zone', () { + await test('onPointerDataPacket preserves callback zone', () { late Zone innerZone; late Zone runZone; late PointerDataPacket data; @@ -730,7 +767,7 @@ void hooksTests() { expectEquals(data.data.length, 0); }); - test('onSemanticsEnabledChanged preserves callback zone', () { + await test('onSemanticsEnabledChanged preserves callback zone', () { late Zone innerZone; late Zone runZone; late bool enabled; @@ -749,7 +786,7 @@ void hooksTests() { expectEquals(enabled, newValue); }); - test('onSemanticsAction preserves callback zone', () { + await test('onSemanticsAction preserves callback zone', () { late Zone innerZone; late Zone runZone; late int id; @@ -770,7 +807,7 @@ void hooksTests() { expectEquals(action, 4); }); - test('onPlatformMessage preserves callback zone', () { + await test('onPlatformMessage preserves callback zone', () { late Zone innerZone; late Zone runZone; late String name; @@ -788,7 +825,7 @@ void hooksTests() { expectEquals(name, 'testName'); }); - test('onTextScaleFactorChanged preserves callback zone', () { + await test('onTextScaleFactorChanged preserves callback zone', () { late Zone innerZone; late Zone runZoneTextScaleFactor; late Zone runZonePlatformBrightness; @@ -822,7 +859,7 @@ void hooksTests() { expectEquals(platformBrightness, Brightness.dark); }); - test('onFrameDataChanged preserves callback zone', () { + await test('onFrameDataChanged preserves callback zone', () { late Zone innerZone; late Zone runZone; late int frameNumber; @@ -841,7 +878,7 @@ void hooksTests() { expectEquals(frameNumber, 2); }); - test('_futureize handles callbacker sync error', () async { + await test('_futureize handles callbacker sync error', () async { String? callbacker(void Function(Object? arg) cb) { return 'failure'; } @@ -854,7 +891,7 @@ void hooksTests() { expectNotEquals(error, null); }); - test('_futureize does not leak sync uncaught exceptions into the zone', () async { + await test('_futureize does not leak sync uncaught exceptions into the zone', () async { String? callbacker(void Function(Object? arg) cb) { cb(null); // indicates failure } @@ -867,7 +904,7 @@ void hooksTests() { expectNotEquals(error, null); }); - test('_futureize does not leak async uncaught exceptions into the zone', () async { + await test('_futureize does not leak async uncaught exceptions into the zone', () async { String? callbacker(void Function(Object? arg) cb) { Timer.run(() { cb(null); // indicates failure @@ -882,7 +919,7 @@ void hooksTests() { expectNotEquals(error, null); }); - test('_futureize successfully returns a value sync', () async { + await test('_futureize successfully returns a value sync', () async { String? callbacker(void Function(Object? arg) cb) { cb(true); } @@ -891,7 +928,7 @@ void hooksTests() { expectEquals(result, true); }); - test('_futureize successfully returns a value async', () async { + await test('_futureize successfully returns a value async', () async { String? callbacker(void Function(Object? arg) cb) { Timer.run(() { cb(true); @@ -902,7 +939,7 @@ void hooksTests() { expectEquals(result, true); }); - test('root isolate token', () async { + await test('root isolate token', () async { if (RootIsolateToken.instance == null) { throw Exception('We should have a token on a root isolate.'); } @@ -914,7 +951,7 @@ void hooksTests() { } }); - test('send port message without registering', () async { + await test('send port message without registering', () async { ReceivePort receivePort = ReceivePort(); Isolate.spawn(_backgroundIsolateSendWithoutRegistering, receivePort.sendPort); bool didError = await receivePort.first as bool; @@ -979,7 +1016,8 @@ Future _futurize(_Callbacker callbacker) { return completer.future; } -void _callHook( +@pragma('vm:external-name', 'CallHook') +external void _callHook( String name, [ int argCount = 0, Object? arg0, @@ -1002,4 +1040,4 @@ void _callHook( Object? arg18, Object? arg19, Object? arg20, -]) native 'CallHook'; +]); diff --git a/lib/ui/geometry.dart b/lib/ui/geometry.dart index 23edb691d1fc3..9945ba8666898 100644 --- a/lib/ui/geometry.dart +++ b/lib/ui/geometry.dart @@ -634,7 +634,8 @@ class Size extends OffsetBase { class Rect { /// Construct a rectangle from its left, top, right, and bottom edges. /// - /// ![](https://flutter.github.io/assets-for-api-docs/assets/dart-ui/rect_from_ltrb.png) + /// ![](https://flutter.github.io/assets-for-api-docs/assets/dart-ui/rect_from_ltrb.png#gh-light-mode-only) + /// ![](https://flutter.github.io/assets-for-api-docs/assets/dart-ui/rect_from_ltrb_dark.png#gh-dark-mode-only) @pragma('vm:entry-point') const Rect.fromLTRB(this.left, this.top, this.right, this.bottom) : assert(left != null), @@ -648,14 +649,16 @@ class Rect { /// To construct a [Rect] from an [Offset] and a [Size], you can use the /// rectangle constructor operator `&`. See [Offset.&]. /// - /// ![](https://flutter.github.io/assets-for-api-docs/assets/dart-ui/rect_from_ltwh.png) + /// ![](https://flutter.github.io/assets-for-api-docs/assets/dart-ui/rect_from_ltwh.png#gh-light-mode-only) + /// ![](https://flutter.github.io/assets-for-api-docs/assets/dart-ui/rect_from_ltwh_dark.png#gh-dark-mode-only) const Rect.fromLTWH(double left, double top, double width, double height) : this.fromLTRB(left, top, left + width, top + height); /// Construct a rectangle that bounds the given circle. /// /// The `center` argument is assumed to be an offset from the origin. /// - /// ![](https://flutter.github.io/assets-for-api-docs/assets/dart-ui/rect_from_circle.png) + /// ![](https://flutter.github.io/assets-for-api-docs/assets/dart-ui/rect_from_circle.png#gh-light-mode-only) + /// ![](https://flutter.github.io/assets-for-api-docs/assets/dart-ui/rect_from_circle_dark.png#gh-dark-mode-only) Rect.fromCircle({ required Offset center, required double radius }) : this.fromCenter( center: center, width: radius * 2, @@ -666,7 +669,8 @@ class Rect { /// /// The `center` argument is assumed to be an offset from the origin. /// - /// ![](https://flutter.github.io/assets-for-api-docs/assets/dart-ui/rect_from_center.png) + /// ![](https://flutter.github.io/assets-for-api-docs/assets/dart-ui/rect_from_center.png#gh-light-mode-only) + /// ![](https://flutter.github.io/assets-for-api-docs/assets/dart-ui/rect_from_center_dark.png#gh-dark-mode-only) Rect.fromCenter({ required Offset center, required double width, required double height }) : this.fromLTRB( center.dx - width / 2, center.dy - height / 2, @@ -677,7 +681,8 @@ class Rect { /// Construct the smallest rectangle that encloses the given offsets, treating /// them as vectors from the origin. /// - /// ![](https://flutter.github.io/assets-for-api-docs/assets/dart-ui/rect_from_points.png) + /// ![](https://flutter.github.io/assets-for-api-docs/assets/dart-ui/rect_from_points.png#gh-light-mode-only) + /// ![](https://flutter.github.io/assets-for-api-docs/assets/dart-ui/rect_from_points_dark.png#gh-dark-mode-only) Rect.fromPoints(Offset a, Offset b) : this.fromLTRB( math.min(a.dx, b.dx), math.min(a.dy, b.dy), @@ -934,12 +939,14 @@ class Rect { class Radius { /// Constructs a circular radius. [x] and [y] will have the same radius value. /// - /// ![](https://flutter.github.io/assets-for-api-docs/assets/dart-ui/radius_circular.png) + /// ![](https://flutter.github.io/assets-for-api-docs/assets/dart-ui/radius_circular.png#gh-light-mode-only) + /// ![](https://flutter.github.io/assets-for-api-docs/assets/dart-ui/radius_circular_dark.png#gh-dark-mode-only) const Radius.circular(double radius) : this.elliptical(radius, radius); /// Constructs an elliptical radius with the given radii. /// - /// ![](https://flutter.github.io/assets-for-api-docs/assets/dart-ui/radius_elliptical.png) + /// ![](https://flutter.github.io/assets-for-api-docs/assets/dart-ui/radius_elliptical.png#gh-light-mode-only) + /// ![](https://flutter.github.io/assets-for-api-docs/assets/dart-ui/radius_elliptical_dark.png#gh-dark-mode-only) const Radius.elliptical(this.x, this.y); /// The radius value on the horizontal axis. diff --git a/lib/ui/painting.dart b/lib/ui/painting.dart index a411a59ef9987..7dbb9b62d6beb 100644 --- a/lib/ui/painting.dart +++ b/lib/ui/painting.dart @@ -1112,6 +1112,8 @@ class Paint { // // The binary format must match the deserialization code in paint.cc. + // C++ unit tests access this. + @pragma('vm:entry-point') final ByteData _data = ByteData(_kDataByteCount); static const int _kIsAntiAliasIndex = 0; @@ -1147,6 +1149,8 @@ class Paint { static const int _kDataByteCount = 56; // Binary format must match the deserialization code in paint.cc. + // C++ unit tests access this. + @pragma('vm:entry-point') List? _objects; List _ensureObjectsInitialized() { @@ -2430,7 +2434,8 @@ class Path extends NativeFieldWrapperClass1 { /// point to the given point (x2,y2), using the control point /// (x1,y1). /// - /// ![](https://flutter.github.io/assets-for-api-docs/assets/dart-ui/path_quadratic_to.png) + /// ![](https://flutter.github.io/assets-for-api-docs/assets/dart-ui/path_quadratic_to.png#gh-light-mode-only) + /// ![](https://flutter.github.io/assets-for-api-docs/assets/dart-ui/path_quadratic_to_dark.png#gh-dark-mode-only) @FfiNative, Float, Float, Float, Float)>('Path::quadraticBezierTo', isLeaf: true) external void quadraticBezierTo(double x1, double y1, double x2, double y2); @@ -2446,7 +2451,8 @@ class Path extends NativeFieldWrapperClass1 { /// to the given point (x3,y3), using the control points (x1,y1) and /// (x2,y2). /// - /// ![](https://flutter.github.io/assets-for-api-docs/assets/dart-ui/path_cubic_to.png) + /// ![](https://flutter.github.io/assets-for-api-docs/assets/dart-ui/path_cubic_to.png#gh-light-mode-only) + /// ![](https://flutter.github.io/assets-for-api-docs/assets/dart-ui/path_cubic_to_dark.png#gh-dark-mode-only) @FfiNative, Float, Float, Float, Float, Float, Float)>('Path::cubicTo', isLeaf: true) external void cubicTo(double x1, double y1, double x2, double y2, double x3, double y3); @@ -2463,7 +2469,8 @@ class Path extends NativeFieldWrapperClass1 { /// hyperbola; if the weight equals 1, it's a parabola; and if it is /// less than 1, it is an ellipse. /// - /// ![](https://flutter.github.io/assets-for-api-docs/assets/dart-ui/path_conic_to.png) + /// ![](https://flutter.github.io/assets-for-api-docs/assets/dart-ui/path_conic_to.png#gh-light-mode-only) + /// ![](https://flutter.github.io/assets-for-api-docs/assets/dart-ui/path_conic_to_dark.png#gh-dark-mode-only) @FfiNative, Float, Float, Float, Float, Float)>('Path::conicTo', isLeaf: true) external void conicTo(double x1, double y1, double x2, double y2, double w); @@ -2594,9 +2601,11 @@ class Path extends NativeFieldWrapperClass1 { /// rectangle and with positive angles going clockwise around the /// oval. /// - /// ![](https://flutter.github.io/assets-for-api-docs/assets/dart-ui/path_add_arc.png) + /// ![](https://flutter.github.io/assets-for-api-docs/assets/dart-ui/path_add_arc.png#gh-light-mode-only) + /// ![](https://flutter.github.io/assets-for-api-docs/assets/dart-ui/path_add_arc_dark.png#gh-dark-mode-only) /// - /// ![](https://flutter.github.io/assets-for-api-docs/assets/dart-ui/path_add_arc_ccw.png) + /// ![](https://flutter.github.io/assets-for-api-docs/assets/dart-ui/path_add_arc_ccw.png#gh-light-mode-only) + /// ![](https://flutter.github.io/assets-for-api-docs/assets/dart-ui/path_add_arc_ccw_dark.png#gh-dark-mode-only) void addArc(Rect oval, double startAngle, double sweepAngle) { assert(_rectIsValid(oval)); _addArc(oval.left, oval.top, oval.right, oval.bottom, startAngle, sweepAngle); @@ -4179,7 +4188,7 @@ class FragmentProgram extends NativeFieldWrapperClass1 { >{}; static void _reinitializeShader(String assetKey) { - // If a shader for the assent isn't already registered, then there's no + // If a shader for the asset isn't already registered, then there's no // need to reinitialize it. The new shader will be loaded and initialized // the next time the program access it. final WeakReference? programRef = _shaderRegistry == null @@ -4913,7 +4922,8 @@ class Canvas extends NativeFieldWrapperClass1 { /// /// The `p1` and `p2` arguments are interpreted as offsets from the origin. /// - /// ![](https://flutter.github.io/assets-for-api-docs/assets/dart-ui/canvas_line.png) + /// ![](https://flutter.github.io/assets-for-api-docs/assets/dart-ui/canvas_line.png#gh-light-mode-only) + /// ![](https://flutter.github.io/assets-for-api-docs/assets/dart-ui/canvas_line_dark.png#gh-dark-mode-only) void drawLine(Offset p1, Offset p2, Paint paint) { assert(_offsetIsValid(p1)); assert(_offsetIsValid(p2)); @@ -4939,7 +4949,8 @@ class Canvas extends NativeFieldWrapperClass1 { /// Draws a rectangle with the given [Paint]. Whether the rectangle is filled /// or stroked (or both) is controlled by [Paint.style]. /// - /// ![](https://flutter.github.io/assets-for-api-docs/assets/dart-ui/canvas_rect.png) + /// ![](https://flutter.github.io/assets-for-api-docs/assets/dart-ui/canvas_rect.png#gh-light-mode-only) + /// ![](https://flutter.github.io/assets-for-api-docs/assets/dart-ui/canvas_rect_dark.png#gh-dark-mode-only) void drawRect(Rect rect, Paint paint) { assert(_rectIsValid(rect)); assert(paint != null); @@ -4952,7 +4963,8 @@ class Canvas extends NativeFieldWrapperClass1 { /// Draws a rounded rectangle with the given [Paint]. Whether the rectangle is /// filled or stroked (or both) is controlled by [Paint.style]. /// - /// ![](https://flutter.github.io/assets-for-api-docs/assets/dart-ui/canvas_rrect.png) + /// ![](https://flutter.github.io/assets-for-api-docs/assets/dart-ui/canvas_rrect.png#gh-light-mode-only) + /// ![](https://flutter.github.io/assets-for-api-docs/assets/dart-ui/canvas_rrect_dark.png#gh-dark-mode-only) void drawRRect(RRect rrect, Paint paint) { assert(_rrectIsValid(rrect)); assert(paint != null); @@ -4981,7 +4993,8 @@ class Canvas extends NativeFieldWrapperClass1 { /// with the given [Paint]. Whether the oval is filled or stroked (or both) is /// controlled by [Paint.style]. /// - /// ![](https://flutter.github.io/assets-for-api-docs/assets/dart-ui/canvas_oval.png) + /// ![](https://flutter.github.io/assets-for-api-docs/assets/dart-ui/canvas_oval.png#gh-light-mode-only) + /// ![](https://flutter.github.io/assets-for-api-docs/assets/dart-ui/canvas_oval_dark.png#gh-dark-mode-only) void drawOval(Rect rect, Paint paint) { assert(_rectIsValid(rect)); assert(paint != null); @@ -4996,7 +5009,8 @@ class Canvas extends NativeFieldWrapperClass1 { /// the third argument. Whether the circle is filled or stroked (or both) is /// controlled by [Paint.style]. /// - /// ![](https://flutter.github.io/assets-for-api-docs/assets/dart-ui/canvas_circle.png) + /// ![](https://flutter.github.io/assets-for-api-docs/assets/dart-ui/canvas_circle.png#gh-light-mode-only) + /// ![](https://flutter.github.io/assets-for-api-docs/assets/dart-ui/canvas_circle_dark.png#gh-dark-mode-only) void drawCircle(Offset c, double radius, Paint paint) { assert(_offsetIsValid(c)); assert(paint != null); @@ -5016,7 +5030,8 @@ class Canvas extends NativeFieldWrapperClass1 { /// closed back to the center, forming a circle sector. Otherwise, the arc is /// not closed, forming a circle segment. /// - /// ![](https://flutter.github.io/assets-for-api-docs/assets/dart-ui/canvas_draw_arc.png) + /// ![](https://flutter.github.io/assets-for-api-docs/assets/dart-ui/canvas_draw_arc.png#gh-light-mode-only) + /// ![](https://flutter.github.io/assets-for-api-docs/assets/dart-ui/canvas_draw_arc_dark.png#gh-dark-mode-only) /// /// This method is optimized for drawing arcs and should be faster than [Path.arcTo]. void drawArc(Rect rect, double startAngle, double sweepAngle, bool useCenter, Paint paint) { @@ -6086,12 +6101,30 @@ class ImmutableBuffer extends NativeFieldWrapperClass1 { }).then((int length) => instance.._length = length); } + /// Create a buffer from the file with [path]. + /// + /// Throws an [Exception] if the asset does not exist. + static Future fromFilePath(String path) { + final ImmutableBuffer instance = ImmutableBuffer._(0); + return _futurize((_Callback callback) { + return instance._initFromFile(path, callback); + }).then((int length) { + if (length == -1) { + throw Exception('Could not load file at $path.'); + } + return instance.._length = length; + }); + } + @FfiNative('ImmutableBuffer::init') external String? _init(Uint8List list, _Callback callback); @FfiNative('ImmutableBuffer::initFromAsset') external String? _initFromAsset(String assetKey, _Callback callback); + @FfiNative('ImmutableBuffer::initFromFile') + external String? _initFromFile(String assetKey, _Callback callback); + /// The length, in bytes, of the underlying data. int get length => _length; int _length; diff --git a/lib/ui/painting/display_list_deferred_image_gpu_impeller.cc b/lib/ui/painting/display_list_deferred_image_gpu_impeller.cc index 4bb0268fbd9aa..49fb3e214d777 100644 --- a/lib/ui/painting/display_list_deferred_image_gpu_impeller.cc +++ b/lib/ui/painting/display_list_deferred_image_gpu_impeller.cc @@ -5,12 +5,14 @@ #include "flutter/lib/ui/painting/display_list_deferred_image_gpu_impeller.h" #include "display_list_deferred_image_gpu_impeller.h" +#include + namespace flutter { sk_sp DlDeferredImageGPUImpeller::Make( std::shared_ptr layer_tree, const SkISize& size, - fml::WeakPtr snapshot_delegate, + fml::TaskRunnerAffineWeakPtr snapshot_delegate, fml::RefPtr raster_task_runner) { return sk_sp(new DlDeferredImageGPUImpeller( DlDeferredImageGPUImpeller::ImageWrapper::Make( @@ -21,7 +23,7 @@ sk_sp DlDeferredImageGPUImpeller::Make( sk_sp DlDeferredImageGPUImpeller::Make( sk_sp display_list, const SkISize& size, - fml::WeakPtr snapshot_delegate, + fml::TaskRunnerAffineWeakPtr snapshot_delegate, fml::RefPtr raster_task_runner) { return sk_sp(new DlDeferredImageGPUImpeller( DlDeferredImageGPUImpeller::ImageWrapper::Make( @@ -31,7 +33,7 @@ sk_sp DlDeferredImageGPUImpeller::Make( DlDeferredImageGPUImpeller::DlDeferredImageGPUImpeller( std::shared_ptr wrapper) - : wrapper_(wrapper) {} + : wrapper_(std::move(wrapper)) {} // |DlImage| DlDeferredImageGPUImpeller::~DlDeferredImageGPUImpeller() = default; @@ -88,7 +90,7 @@ std::shared_ptr DlDeferredImageGPUImpeller::ImageWrapper::Make( sk_sp display_list, const SkISize& size, - fml::WeakPtr snapshot_delegate, + fml::TaskRunnerAffineWeakPtr snapshot_delegate, fml::RefPtr raster_task_runner) { auto wrapper = std::shared_ptr(new ImageWrapper( std::move(display_list), size, std::move(snapshot_delegate), @@ -101,7 +103,7 @@ std::shared_ptr DlDeferredImageGPUImpeller::ImageWrapper::Make( std::shared_ptr layer_tree, const SkISize& size, - fml::WeakPtr snapshot_delegate, + fml::TaskRunnerAffineWeakPtr snapshot_delegate, fml::RefPtr raster_task_runner) { auto wrapper = std::shared_ptr( new ImageWrapper(nullptr, size, std::move(snapshot_delegate), @@ -113,7 +115,7 @@ DlDeferredImageGPUImpeller::ImageWrapper::Make( DlDeferredImageGPUImpeller::ImageWrapper::ImageWrapper( sk_sp display_list, const SkISize& size, - fml::WeakPtr snapshot_delegate, + fml::TaskRunnerAffineWeakPtr snapshot_delegate, fml::RefPtr raster_task_runner) : size_(size), display_list_(std::move(display_list)), diff --git a/lib/ui/painting/display_list_deferred_image_gpu_impeller.h b/lib/ui/painting/display_list_deferred_image_gpu_impeller.h index 0e722e38c94c5..7fa57ecb163a6 100644 --- a/lib/ui/painting/display_list_deferred_image_gpu_impeller.h +++ b/lib/ui/painting/display_list_deferred_image_gpu_impeller.h @@ -20,13 +20,13 @@ class DlDeferredImageGPUImpeller final : public DlImage { static sk_sp Make( std::shared_ptr layer_tree, const SkISize& size, - fml::WeakPtr snapshot_delegate, + fml::TaskRunnerAffineWeakPtr snapshot_delegate, fml::RefPtr raster_task_runner); static sk_sp Make( sk_sp display_list, const SkISize& size, - fml::WeakPtr snapshot_delegate, + fml::TaskRunnerAffineWeakPtr snapshot_delegate, fml::RefPtr raster_task_runner); // |DlImage| @@ -59,13 +59,13 @@ class DlDeferredImageGPUImpeller final : public DlImage { static std::shared_ptr Make( sk_sp display_list, const SkISize& size, - fml::WeakPtr snapshot_delegate, + fml::TaskRunnerAffineWeakPtr snapshot_delegate, fml::RefPtr raster_task_runner); static std::shared_ptr Make( std::shared_ptr layer_tree, const SkISize& size, - fml::WeakPtr snapshot_delegate, + fml::TaskRunnerAffineWeakPtr snapshot_delegate, fml::RefPtr raster_task_runner); bool isTextureBacked() const; @@ -82,17 +82,18 @@ class DlDeferredImageGPUImpeller final : public DlImage { SkISize size_; sk_sp display_list_; std::shared_ptr texture_; - fml::WeakPtr snapshot_delegate_; + fml::TaskRunnerAffineWeakPtr snapshot_delegate_; fml::RefPtr raster_task_runner_; std::shared_ptr texture_registry_; mutable std::mutex error_mutex_; std::optional error_; - ImageWrapper(sk_sp display_list, - const SkISize& size, - fml::WeakPtr snapshot_delegate, - fml::RefPtr raster_task_runner); + ImageWrapper( + sk_sp display_list, + const SkISize& size, + fml::TaskRunnerAffineWeakPtr snapshot_delegate, + fml::RefPtr raster_task_runner); // If a layer tree is provided, it will be flattened during the raster // thread task spwaned by this method. After being flattened into a display diff --git a/lib/ui/painting/display_list_deferred_image_gpu_skia.cc b/lib/ui/painting/display_list_deferred_image_gpu_skia.cc index 365ead72feedd..14874c2133c0e 100644 --- a/lib/ui/painting/display_list_deferred_image_gpu_skia.cc +++ b/lib/ui/painting/display_list_deferred_image_gpu_skia.cc @@ -11,7 +11,7 @@ namespace flutter { sk_sp DlDeferredImageGPUSkia::Make( const SkImageInfo& image_info, sk_sp display_list, - fml::WeakPtr snapshot_delegate, + fml::TaskRunnerAffineWeakPtr snapshot_delegate, const fml::RefPtr& raster_task_runner, fml::RefPtr unref_queue) { return sk_sp(new DlDeferredImageGPUSkia( @@ -24,7 +24,7 @@ sk_sp DlDeferredImageGPUSkia::Make( sk_sp DlDeferredImageGPUSkia::MakeFromLayerTree( const SkImageInfo& image_info, std::shared_ptr layer_tree, - fml::WeakPtr snapshot_delegate, + fml::TaskRunnerAffineWeakPtr snapshot_delegate, const fml::RefPtr& raster_task_runner, fml::RefPtr unref_queue) { return sk_sp(new DlDeferredImageGPUSkia( @@ -42,14 +42,14 @@ DlDeferredImageGPUSkia::DlDeferredImageGPUSkia( // |DlImage| DlDeferredImageGPUSkia::~DlDeferredImageGPUSkia() { - fml::TaskRunner::RunNowOrPostTask( - raster_task_runner_, [image_wrapper = std::move(image_wrapper_)]() { - if (!image_wrapper) { - return; - } - image_wrapper->Unregister(); - image_wrapper->DeleteTexture(); - }); + fml::TaskRunner::RunNowOrPostTask(raster_task_runner_, + [image_wrapper = image_wrapper_]() { + if (!image_wrapper) { + return; + } + image_wrapper->Unregister(); + image_wrapper->DeleteTexture(); + }); } // |DlImage| @@ -94,7 +94,7 @@ std::shared_ptr DlDeferredImageGPUSkia::ImageWrapper::Make( const SkImageInfo& image_info, sk_sp display_list, - fml::WeakPtr snapshot_delegate, + fml::TaskRunnerAffineWeakPtr snapshot_delegate, fml::RefPtr raster_task_runner, fml::RefPtr unref_queue) { auto wrapper = std::shared_ptr(new ImageWrapper( @@ -108,7 +108,7 @@ std::shared_ptr DlDeferredImageGPUSkia::ImageWrapper::MakeFromLayerTree( const SkImageInfo& image_info, std::shared_ptr layer_tree, - fml::WeakPtr snapshot_delegate, + fml::TaskRunnerAffineWeakPtr snapshot_delegate, fml::RefPtr raster_task_runner, fml::RefPtr unref_queue) { auto wrapper = std::shared_ptr( @@ -121,7 +121,7 @@ DlDeferredImageGPUSkia::ImageWrapper::MakeFromLayerTree( DlDeferredImageGPUSkia::ImageWrapper::ImageWrapper( const SkImageInfo& image_info, sk_sp display_list, - fml::WeakPtr snapshot_delegate, + fml::TaskRunnerAffineWeakPtr snapshot_delegate, fml::RefPtr raster_task_runner, fml::RefPtr unref_queue) : image_info_(image_info), diff --git a/lib/ui/painting/display_list_deferred_image_gpu_skia.h b/lib/ui/painting/display_list_deferred_image_gpu_skia.h index d5e3f807fdf9b..f80e9e10c97c9 100644 --- a/lib/ui/painting/display_list_deferred_image_gpu_skia.h +++ b/lib/ui/painting/display_list_deferred_image_gpu_skia.h @@ -25,14 +25,14 @@ class DlDeferredImageGPUSkia final : public DlImage { static sk_sp Make( const SkImageInfo& image_info, sk_sp display_list, - fml::WeakPtr snapshot_delegate, + fml::TaskRunnerAffineWeakPtr snapshot_delegate, const fml::RefPtr& raster_task_runner, fml::RefPtr unref_queue); static sk_sp MakeFromLayerTree( const SkImageInfo& image_info, std::shared_ptr layer_tree, - fml::WeakPtr snapshot_delegate, + fml::TaskRunnerAffineWeakPtr snapshot_delegate, const fml::RefPtr& raster_task_runner, fml::RefPtr unref_queue); @@ -77,14 +77,14 @@ class DlDeferredImageGPUSkia final : public DlImage { static std::shared_ptr Make( const SkImageInfo& image_info, sk_sp display_list, - fml::WeakPtr snapshot_delegate, + fml::TaskRunnerAffineWeakPtr snapshot_delegate, fml::RefPtr raster_task_runner, fml::RefPtr unref_queue); static std::shared_ptr MakeFromLayerTree( const SkImageInfo& image_info, std::shared_ptr layer_tree, - fml::WeakPtr snapshot_delegate, + fml::TaskRunnerAffineWeakPtr snapshot_delegate, fml::RefPtr raster_task_runner, fml::RefPtr unref_queue); @@ -99,7 +99,7 @@ class DlDeferredImageGPUSkia final : public DlImage { private: const SkImageInfo image_info_; sk_sp display_list_; - fml::WeakPtr snapshot_delegate_; + fml::TaskRunnerAffineWeakPtr snapshot_delegate_; fml::RefPtr raster_task_runner_; fml::RefPtr unref_queue_; std::shared_ptr texture_registry_; @@ -112,11 +112,12 @@ class DlDeferredImageGPUSkia final : public DlImage { // May be used if this image is not texture backed. sk_sp image_; - ImageWrapper(const SkImageInfo& image_info, - sk_sp display_list, - fml::WeakPtr snapshot_delegate, - fml::RefPtr raster_task_runner, - fml::RefPtr unref_queue); + ImageWrapper( + const SkImageInfo& image_info, + sk_sp display_list, + fml::TaskRunnerAffineWeakPtr snapshot_delegate, + fml::RefPtr raster_task_runner, + fml::RefPtr unref_queue); // If a layer tree is provided, it will be flattened during the raster // thread task spwaned by this method. After being flattened into a display diff --git a/lib/ui/painting/fragment_program.cc b/lib/ui/painting/fragment_program.cc index 87b8ef59ee92b..3e814e1753dfe 100644 --- a/lib/ui/painting/fragment_program.cc +++ b/lib/ui/painting/fragment_program.cc @@ -3,7 +3,10 @@ // found in the LICENSE file. #include +#include +#include +#include "display_list/display_list_runtime_effect.h" #include "flutter/lib/ui/painting/fragment_program.h" #include "flutter/assets/asset_manager.h" @@ -12,6 +15,7 @@ #include "flutter/lib/ui/dart_wrapper.h" #include "flutter/lib/ui/ui_dart_state.h" #include "flutter/lib/ui/window/platform_configuration.h" + #include "third_party/skia/include/core/SkString.h" #include "third_party/tonic/converter/dart_converter.h" #include "third_party/tonic/dart_args.h" @@ -40,8 +44,23 @@ std::string FragmentProgram::initFromAsset(const std::string& asset_name) { return std::string("Asset '") + asset_name + std::string("' does not contain valid shader data."); } - { - auto code_mapping = runtime_stage.GetCodeMapping(); + + int sampled_image_count = 0; + size_t other_uniforms_bytes = 0; + for (const auto& uniform_description : runtime_stage.GetUniforms()) { + if (uniform_description.type == + impeller::RuntimeUniformType::kSampledImage) { + sampled_image_count++; + } else { + other_uniforms_bytes += uniform_description.GetSize(); + } + } + + if (UIDartState::Current()->IsImpellerEnabled()) { + runtime_effect_ = DlRuntimeEffect::MakeImpeller( + std::make_unique(std::move(runtime_stage))); + } else { + auto code_mapping = runtime_stage.GetSkSLMapping(); auto code_size = code_mapping->GetSize(); const char* sksl = reinterpret_cast(code_mapping->GetMapping()); @@ -52,24 +71,7 @@ std::string FragmentProgram::initFromAsset(const std::string& asset_name) { return std::string("Invalid SkSL:\n") + sksl + std::string("\nSkSL Error:\n") + result.errorText.c_str(); } - runtime_effect_ = result.effect; - } - - int sampled_image_count = 0; - size_t other_uniforms_bytes = 0; - for (const auto& uniform_description : runtime_stage.GetUniforms()) { - if (uniform_description.type == - impeller::RuntimeUniformType::kSampledImage) { - sampled_image_count++; - } else { - size_t size = uniform_description.dimensions.rows * - uniform_description.dimensions.cols * - uniform_description.bit_width / 8u; - if (uniform_description.array_elements > 0) { - size *= uniform_description.array_elements; - } - other_uniforms_bytes += size; - } + runtime_effect_ = DlRuntimeEffect::MakeSkia(result.effect); } Dart_Handle ths = Dart_HandleFromWeakPersistent(dart_wrapper()); @@ -96,7 +98,7 @@ std::string FragmentProgram::initFromAsset(const std::string& asset_name) { } std::shared_ptr FragmentProgram::MakeDlColorSource( - sk_sp float_uniforms, + std::shared_ptr> float_uniforms, const std::vector>& children) { return DlColorSource::MakeRuntimeEffect(runtime_effect_, children, std::move(float_uniforms)); diff --git a/lib/ui/painting/fragment_program.h b/lib/ui/painting/fragment_program.h index b7250b6aadcd3..50da9cbf9dba0 100644 --- a/lib/ui/painting/fragment_program.h +++ b/lib/ui/painting/fragment_program.h @@ -5,13 +5,15 @@ #ifndef FLUTTER_LIB_UI_PAINTING_FRAGMENT_PROGRAM_H_ #define FLUTTER_LIB_UI_PAINTING_FRAGMENT_PROGRAM_H_ +#include "flutter/display_list/display_list_runtime_effect.h" #include "flutter/lib/ui/dart_wrapper.h" #include "flutter/lib/ui/painting/fragment_shader.h" #include "flutter/lib/ui/painting/shader.h" -#include "third_party/skia/include/effects/SkRuntimeEffect.h" + #include "third_party/tonic/dart_library_natives.h" #include "third_party/tonic/typed_data/typed_list.h" +#include #include #include @@ -34,12 +36,12 @@ class FragmentProgram : public RefCountedDartWrappable { Dart_Handle samplers); std::shared_ptr MakeDlColorSource( - sk_sp float_uniforms, + std::shared_ptr> float_uniforms, const std::vector>& children); private: FragmentProgram(); - sk_sp runtime_effect_; + sk_sp runtime_effect_; }; } // namespace flutter diff --git a/lib/ui/painting/fragment_shader.cc b/lib/ui/painting/fragment_shader.cc index 84c8aa2291693..f1243ea971d6d 100644 --- a/lib/ui/painting/fragment_shader.cc +++ b/lib/ui/painting/fragment_shader.cc @@ -3,6 +3,7 @@ // found in the LICENSE file. #include +#include #include #include "flutter/lib/ui/painting/fragment_shader.h" @@ -78,7 +79,15 @@ void ReusableFragmentShader::SetSampler(Dart_Handle index_handle, std::shared_ptr ReusableFragmentShader::shader( DlImageSampling sampling) { FML_CHECK(program_); - return program_->MakeDlColorSource(uniform_data_, samplers_); + + // The lifetime of this object is longer than a frame, and the uniforms can be + // continually changed on the UI thread. So we take a copy of the uniforms + // before handing it to the DisplayList for consumption on the render thread. + auto uniform_data = std::make_shared>(); + uniform_data->resize(uniform_data_->size()); + memcpy(uniform_data->data(), uniform_data_->bytes(), uniform_data->size()); + + return program_->MakeDlColorSource(std::move(uniform_data), samplers_); } void ReusableFragmentShader::Dispose() { diff --git a/lib/ui/painting/image.cc b/lib/ui/painting/image.cc index e09b302587adf..2a9ab500c8e41 100644 --- a/lib/ui/painting/image.cc +++ b/lib/ui/painting/image.cc @@ -18,10 +18,7 @@ namespace flutter { typedef CanvasImage Image; // Since _Image is a private class, we can't use IMPLEMENT_WRAPPERTYPEINFO -static const tonic::DartWrapperInfo kDartWrapperInfoUIImage = { - "ui", - "_Image", -}; +static const tonic::DartWrapperInfo kDartWrapperInfoUIImage("ui", "_Image"); const tonic::DartWrapperInfo& Image::dart_wrapper_info_ = kDartWrapperInfoUIImage; diff --git a/lib/ui/painting/image_decoder_impeller.cc b/lib/ui/painting/image_decoder_impeller.cc index 31a5ab0db815d..4130f37e75794 100644 --- a/lib/ui/painting/image_decoder_impeller.cc +++ b/lib/ui/painting/image_decoder_impeller.cc @@ -137,7 +137,7 @@ std::shared_ptr ImageDecoderImpeller::DecompressTexture( return scaled_bitmap; } -static sk_sp UploadTexture( +sk_sp ImageDecoderImpeller::UploadTexture( const std::shared_ptr& context, std::shared_ptr bitmap) { TRACE_EVENT0("impeller", __FUNCTION__); diff --git a/lib/ui/painting/image_decoder_impeller.h b/lib/ui/painting/image_decoder_impeller.h index 0d1afcf2a3dcc..fdaa0a600f006 100644 --- a/lib/ui/painting/image_decoder_impeller.h +++ b/lib/ui/painting/image_decoder_impeller.h @@ -37,6 +37,10 @@ class ImageDecoderImpeller final : public ImageDecoder { SkISize target_size, impeller::ISize max_texture_size); + static sk_sp UploadTexture( + const std::shared_ptr& context, + std::shared_ptr bitmap); + private: using FutureContext = std::shared_future>; FutureContext context_; diff --git a/lib/ui/painting/image_decoder_unittests.cc b/lib/ui/painting/image_decoder_unittests.cc index 55c5e7e756bee..7a5e3cfd0aa00 100644 --- a/lib/ui/painting/image_decoder_unittests.cc +++ b/lib/ui/painting/image_decoder_unittests.cc @@ -18,6 +18,11 @@ #include "flutter/testing/test_dart_native_resolver.h" #include "flutter/testing/test_gl_surface.h" #include "flutter/testing/testing.h" +#include "third_party/skia/include/codec/SkCodecAnimation.h" +#include "third_party/skia/include/core/SkData.h" +#include "third_party/skia/include/core/SkEncodedImageFormat.h" +#include "third_party/skia/include/core/SkImageInfo.h" +#include "third_party/skia/include/core/SkSize.h" namespace flutter { namespace testing { diff --git a/lib/ui/painting/image_encoding.cc b/lib/ui/painting/image_encoding.cc index 6b1fa6b9dfd30..7f3e9d56c96d6 100644 --- a/lib/ui/painting/image_encoding.cc +++ b/lib/ui/painting/image_encoding.cc @@ -66,7 +66,7 @@ void ConvertImageToRaster( const fml::RefPtr& raster_task_runner, const fml::RefPtr& io_task_runner, const fml::WeakPtr& resource_context, - const fml::WeakPtr& snapshot_delegate, + const fml::TaskRunnerAffineWeakPtr& snapshot_delegate, const std::shared_ptr& is_gpu_disabled_sync_switch) { // If the owning_context is kRaster, we can't access it on this task runner. if (dl_image->owning_context() != DlImage::OwningContext::kRaster) { @@ -220,7 +220,7 @@ void EncodeImageAndInvokeDataCallback( const fml::RefPtr& raster_task_runner, const fml::RefPtr& io_task_runner, const fml::WeakPtr& resource_context, - const fml::WeakPtr& snapshot_delegate, + const fml::TaskRunnerAffineWeakPtr& snapshot_delegate, const std::shared_ptr& is_gpu_disabled_sync_switch) { auto callback_task = fml::MakeCopyable( [callback = std::move(callback)](sk_sp encoded) mutable { @@ -275,9 +275,9 @@ Dart_Handle EncodeImage(CanvasImage* canvas_image, snapshot_delegate = UIDartState::Current()->GetSnapshotDelegate()]() mutable { EncodeImageAndInvokeDataCallback( - std::move(image), std::move(callback), image_format, ui_task_runner, - std::move(raster_task_runner), std::move(io_task_runner), - io_manager->GetResourceContext(), std::move(snapshot_delegate), + image, std::move(callback), image_format, ui_task_runner, + raster_task_runner, io_task_runner, + io_manager->GetResourceContext(), snapshot_delegate, io_manager->GetIsGpuDisabledSyncSwitch()); })); diff --git a/lib/ui/painting/image_generator.h b/lib/ui/painting/image_generator.h index c3ed972259f3e..13b93fc94c3dc 100644 --- a/lib/ui/painting/image_generator.h +++ b/lib/ui/painting/image_generator.h @@ -7,6 +7,7 @@ #include #include "flutter/fml/macros.h" +#include "third_party/skia/include/codec/SkCodecAnimation.h" #include "third_party/skia/include/core/SkImageInfo.h" #include "third_party/skia/src/codec/SkCodecImageGenerator.h" diff --git a/lib/ui/painting/image_generator_registry_unittests.cc b/lib/ui/painting/image_generator_registry_unittests.cc index 66ff6424a0b90..3051e42410644 100644 --- a/lib/ui/painting/image_generator_registry_unittests.cc +++ b/lib/ui/painting/image_generator_registry_unittests.cc @@ -8,6 +8,8 @@ #include "flutter/shell/common/shell_test.h" #include "flutter/testing/testing.h" +#include "third_party/skia/include/codec/SkCodecAnimation.h" + namespace flutter { namespace testing { diff --git a/lib/ui/painting/immutable_buffer.cc b/lib/ui/painting/immutable_buffer.cc index 7540135fd8f6b..0d86b07c24e4a 100644 --- a/lib/ui/painting/immutable_buffer.cc +++ b/lib/ui/painting/immutable_buffer.cc @@ -6,11 +6,14 @@ #include +#include "flutter/fml/file.h" +#include "flutter/fml/make_copyable.h" #include "flutter/lib/ui/ui_dart_state.h" #include "flutter/lib/ui/window/platform_configuration.h" #include "third_party/tonic/converter/dart_converter.h" #include "third_party/tonic/dart_args.h" #include "third_party/tonic/dart_binding_macros.h" +#include "third_party/tonic/dart_persistent_value.h" #if FML_OS_ANDROID #include @@ -77,6 +80,72 @@ Dart_Handle ImmutableBuffer::initFromAsset(Dart_Handle buffer_handle, return Dart_Null(); } +Dart_Handle ImmutableBuffer::initFromFile(Dart_Handle raw_buffer_handle, + Dart_Handle file_path_handle, + Dart_Handle callback_handle) { + UIDartState::ThrowIfUIOperationsProhibited(); + if (!Dart_IsClosure(callback_handle)) { + return tonic::ToDart("Callback must be a function"); + } + + uint8_t* chars = nullptr; + intptr_t file_path_length = 0; + Dart_Handle result = + Dart_StringToUTF8(file_path_handle, &chars, &file_path_length); + if (Dart_IsError(result)) { + return tonic::ToDart("File path must be valid UTF8"); + } + + std::string file_path = std::string{reinterpret_cast(chars), + static_cast(file_path_length)}; + + auto* dart_state = UIDartState::Current(); + auto ui_task_runner = dart_state->GetTaskRunners().GetUITaskRunner(); + auto buffer_callback = + std::make_unique(dart_state, callback_handle); + auto buffer_handle = std::make_unique( + dart_state, raw_buffer_handle); + + auto ui_task = fml::MakeCopyable( + [buffer_callback = std::move(buffer_callback), + buffer_handle = std::move(buffer_handle)](const sk_sp& sk_data, + size_t buffer_size) mutable { + auto dart_state = buffer_callback->dart_state().lock(); + if (!dart_state) { + return; + } + tonic::DartState::Scope scope(dart_state); + if (!sk_data) { + // -1 is used as a sentinel that the file could not be opened. + tonic::DartInvoke(buffer_callback->Get(), {tonic::ToDart(-1)}); + return; + } + auto buffer = fml::MakeRefCounted(sk_data); + buffer->AssociateWithDartWrapper(buffer_handle->Get()); + tonic::DartInvoke(buffer_callback->Get(), {tonic::ToDart(buffer_size)}); + }); + + dart_state->GetConcurrentTaskRunner()->PostTask( + [file_path = std::move(file_path), + ui_task_runner = std::move(ui_task_runner), ui_task] { + auto mapping = std::make_unique(fml::OpenFile( + file_path.c_str(), false, fml::FilePermission::kRead)); + + sk_sp sk_data; + size_t buffer_size = 0; + if (mapping->IsValid()) { + buffer_size = mapping->GetSize(); + const void* bytes = static_cast(mapping->GetMapping()); + sk_data = MakeSkDataWithCopy(bytes, buffer_size); + } + ui_task_runner->PostTask( + [sk_data = std::move(sk_data), ui_task = ui_task, buffer_size]() { + ui_task(sk_data, buffer_size); + }); + }); + return Dart_Null(); +} + #if FML_OS_ANDROID // Compressed image buffers are allocated on the UI thread but are deleted on a diff --git a/lib/ui/painting/immutable_buffer.h b/lib/ui/painting/immutable_buffer.h index 5c51f65c51f2f..daf1d6ca6d2f8 100644 --- a/lib/ui/painting/immutable_buffer.h +++ b/lib/ui/painting/immutable_buffer.h @@ -56,6 +56,20 @@ class ImmutableBuffer : public RefCountedDartWrappable { Dart_Handle asset_name_handle, Dart_Handle callback_handle); + /// Initializes a new ImmutableData from an File path. + /// + /// The zero indexed argument is the caller that will be registered as the + /// Dart peer of the native ImmutableBuffer object. + /// + /// The first indexed argumented is a String corresponding to the file path + /// to load. + /// + /// The second indexed argument is expected to be a void callback to signal + /// when the copy has completed. + static Dart_Handle initFromFile(Dart_Handle buffer_handle, + Dart_Handle file_path_handle, + Dart_Handle callback_handle); + /// The length of the data in bytes. size_t length() const { FML_DCHECK(data_); diff --git a/lib/ui/painting/multi_frame_codec.cc b/lib/ui/painting/multi_frame_codec.cc index 986c2f5e6721f..3099a618b8c61 100644 --- a/lib/ui/painting/multi_frame_codec.cc +++ b/lib/ui/painting/multi_frame_codec.cc @@ -8,7 +8,11 @@ #include "flutter/fml/make_copyable.h" #include "flutter/lib/ui/painting/image.h" +#if IMPELLER_SUPPORTS_RENDERING +#include "flutter/lib/ui/painting/image_decoder_impeller.h" +#endif // IMPELLER_SUPPORTS_RENDERING #include "third_party/dart/runtime/include/dart_api.h" +#include "third_party/skia/include/codec/SkCodecAnimation.h" #include "third_party/skia/include/core/SkPixelRef.h" #include "third_party/tonic/logging/dart_invoke.h" @@ -26,6 +30,7 @@ MultiFrameCodec::State::State(std::shared_ptr generator) ImageGenerator::kInfinitePlayCount ? -1 : generator_->GetPlayCount() - 1), + is_impeller_enabled_(UIDartState::Current()->IsImpellerEnabled()), nextFrameIndex_(0) {} static void InvokeNextFrameCallback( @@ -77,9 +82,11 @@ static bool CopyToBitmap(SkBitmap* dst, return true; } -sk_sp MultiFrameCodec::State::GetNextFrameImage( +sk_sp MultiFrameCodec::State::GetNextFrameImage( fml::WeakPtr resourceContext, - const std::shared_ptr& gpu_disable_sync_switch) { + const std::shared_ptr& gpu_disable_sync_switch, + std::shared_ptr impeller_context_, + fml::RefPtr unref_queue) { SkBitmap bitmap = SkBitmap(); SkImageInfo info = generator_->GetInfo().makeColorType(kN32_SkColorType); if (info.alphaType() == kUnpremul_SkAlphaType) { @@ -125,30 +132,45 @@ sk_sp MultiFrameCodec::State::GetNextFrameImage( lastRequiredFrame_ = std::make_unique(bitmap); lastRequiredFrameIndex_ = nextFrameIndex_; } - sk_sp result; +#if IMPELLER_SUPPORTS_RENDERING + if (is_impeller_enabled_) { + sk_sp result; + // impeller, transfer to DlImageImpeller + gpu_disable_sync_switch->Execute(fml::SyncSwitch::Handlers().SetIfFalse( + [&result, &bitmap, &impeller_context_] { + result = ImageDecoderImpeller::UploadTexture( + impeller_context_, std::make_shared(bitmap)); + })); + + return result; + } +#endif // IMPELLER_SUPPORTS_RENDERING + + sk_sp skImage; gpu_disable_sync_switch->Execute( fml::SyncSwitch::Handlers() - .SetIfTrue([&result, &bitmap] { + .SetIfTrue([&skImage, &bitmap] { // Defer decoding until time of draw later on the raster thread. Can // happen when GL operations are currently forbidden such as in the // background on iOS. - result = SkImage::MakeFromBitmap(bitmap); + skImage = SkImage::MakeFromBitmap(bitmap); }) - .SetIfFalse([&result, &resourceContext, &bitmap] { + .SetIfFalse([&skImage, &resourceContext, &bitmap] { if (resourceContext) { SkPixmap pixmap(bitmap.info(), bitmap.pixelRef()->pixels(), bitmap.pixelRef()->rowBytes()); - result = SkImage::MakeCrossContextFromPixmap( + skImage = SkImage::MakeCrossContextFromPixmap( resourceContext.get(), pixmap, true); } else { // Defer decoding until time of draw later on the raster thread. // Can happen when GL operations are currently forbidden such as // in the background on iOS. - result = SkImage::MakeFromBitmap(bitmap); + skImage = SkImage::MakeFromBitmap(bitmap); } })); - return result; + + return DlImageGPU::Make({skImage, std::move(unref_queue)}); } void MultiFrameCodec::State::GetNextFrameAndInvokeCallback( @@ -157,14 +179,16 @@ void MultiFrameCodec::State::GetNextFrameAndInvokeCallback( fml::WeakPtr resourceContext, fml::RefPtr unref_queue, const std::shared_ptr& gpu_disable_sync_switch, - size_t trace_id) { + size_t trace_id, + std::shared_ptr impeller_context) { fml::RefPtr image = nullptr; int duration = 0; - sk_sp skImage = - GetNextFrameImage(std::move(resourceContext), gpu_disable_sync_switch); - if (skImage) { + sk_sp dlImage = + GetNextFrameImage(std::move(resourceContext), gpu_disable_sync_switch, + std::move(impeller_context), std::move(unref_queue)); + if (dlImage) { image = CanvasImage::Create(); - image->set_image(DlImageGPU::Make({skImage, std::move(unref_queue)})); + image->set_image(dlImage); ImageGenerator::FrameInfo frameInfo = generator_->GetFrameInfo(nextFrameIndex_); duration = frameInfo.duration; @@ -218,7 +242,8 @@ Dart_Handle MultiFrameCodec::getNextFrame(Dart_Handle callback_handle) { state->GetNextFrameAndInvokeCallback( std::move(callback), ui_task_runner, io_manager->GetResourceContext(), io_manager->GetSkiaUnrefQueue(), - io_manager->GetIsGpuDisabledSyncSwitch(), trace_id); + io_manager->GetIsGpuDisabledSyncSwitch(), trace_id, + io_manager->GetImpellerContext()); })); return Dart_Null(); diff --git a/lib/ui/painting/multi_frame_codec.h b/lib/ui/painting/multi_frame_codec.h index 3ccf8c7699ffc..3cb42b0706bc4 100644 --- a/lib/ui/painting/multi_frame_codec.h +++ b/lib/ui/painting/multi_frame_codec.h @@ -44,6 +44,7 @@ class MultiFrameCodec : public Codec { const std::shared_ptr generator_; const int frameCount_; const int repetitionCount_; + bool is_impeller_enabled_ = false; // The non-const members and functions below here are only read or written // to on the IO thread. They are not safe to access or write on the UI @@ -55,9 +56,11 @@ class MultiFrameCodec : public Codec { // The index of the last decoded required frame. int lastRequiredFrameIndex_ = -1; - sk_sp GetNextFrameImage( + sk_sp GetNextFrameImage( fml::WeakPtr resourceContext, - const std::shared_ptr& gpu_disable_sync_switch); + const std::shared_ptr& gpu_disable_sync_switch, + std::shared_ptr impeller_context_, + fml::RefPtr unref_queue); void GetNextFrameAndInvokeCallback( std::unique_ptr callback, @@ -65,7 +68,8 @@ class MultiFrameCodec : public Codec { fml::WeakPtr resourceContext, fml::RefPtr unref_queue, const std::shared_ptr& gpu_disable_sync_switch, - size_t trace_id); + size_t trace_id, + std::shared_ptr impeller_context_); }; // Shared across the UI and IO task runners. diff --git a/lib/ui/painting/paint.cc b/lib/ui/painting/paint.cc index 9749c220f2ed0..2849526ca00a4 100644 --- a/lib/ui/painting/paint.cc +++ b/lib/ui/painting/paint.cc @@ -331,6 +331,98 @@ bool Paint::sync_to(DisplayListBuilder* builder, return true; } +void Paint::toDlPaint(DlPaint& paint) const { + if (isNull()) { + return; + } + FML_DCHECK(paint == DlPaint()); + + tonic::DartByteData byte_data(paint_data_); + FML_CHECK(byte_data.length_in_bytes() == kDataByteCount); + + const uint32_t* uint_data = static_cast(byte_data.data()); + const float* float_data = static_cast(byte_data.data()); + + Dart_Handle values[kObjectCount]; + if (!Dart_IsNull(paint_objects_)) { + FML_DCHECK(Dart_IsList(paint_objects_)); + intptr_t length = 0; + Dart_ListLength(paint_objects_, &length); + + FML_CHECK(length == kObjectCount); + if (Dart_IsError( + Dart_ListGetRange(paint_objects_, 0, kObjectCount, values))) { + return; + } + + Dart_Handle shader = values[kShaderIndex]; + if (!Dart_IsNull(shader)) { + if (Shader* decoded = tonic::DartConverter::FromDart(shader)) { + auto sampling = + ImageFilter::SamplingFromIndex(uint_data[kFilterQualityIndex]); + paint.setColorSource(decoded->shader(sampling)); + } + } + + Dart_Handle color_filter = values[kColorFilterIndex]; + if (!Dart_IsNull(color_filter)) { + ColorFilter* decoded = + tonic::DartConverter::FromDart(color_filter); + paint.setColorFilter(decoded->filter()); + } + + Dart_Handle image_filter = values[kImageFilterIndex]; + if (!Dart_IsNull(image_filter)) { + ImageFilter* decoded = + tonic::DartConverter::FromDart(image_filter); + paint.setImageFilter(decoded->filter()); + } + } + + paint.setAntiAlias(uint_data[kIsAntiAliasIndex] == 0); + + uint32_t encoded_color = uint_data[kColorIndex]; + paint.setColor(encoded_color ^ kColorDefault); + + uint32_t encoded_blend_mode = uint_data[kBlendModeIndex]; + uint32_t blend_mode = encoded_blend_mode ^ kBlendModeDefault; + paint.setBlendMode(static_cast(blend_mode)); + + uint32_t style = uint_data[kStyleIndex]; + paint.setDrawStyle(static_cast(style)); + + float stroke_width = float_data[kStrokeWidthIndex]; + paint.setStrokeWidth(stroke_width); + + float stroke_miter_limit = float_data[kStrokeMiterLimitIndex]; + paint.setStrokeMiter(stroke_miter_limit + kStrokeMiterLimitDefault); + + uint32_t stroke_cap = uint_data[kStrokeCapIndex]; + paint.setStrokeCap(static_cast(stroke_cap)); + + uint32_t stroke_join = uint_data[kStrokeJoinIndex]; + paint.setStrokeJoin(static_cast(stroke_join)); + + paint.setInvertColors(uint_data[kInvertColorIndex] != 0); + + paint.setDither(uint_data[kDitherIndex] != 0); + + switch (uint_data[kMaskFilterIndex]) { + case kNull: + break; + case kBlur: + SkBlurStyle blur_style = + static_cast(uint_data[kMaskFilterBlurStyleIndex]); + double sigma = float_data[kMaskFilterSigmaIndex]; + std::shared_ptr dl_filter = + std::make_shared(blur_style, sigma); + if (dl_filter->skia_object()) { + paint.setMaskFilter(dl_filter); + } + break; + } +} + } // namespace flutter namespace tonic { diff --git a/lib/ui/painting/paint.h b/lib/ui/painting/paint.h index 2e4dad7ad59d8..6e74535dbe726 100644 --- a/lib/ui/painting/paint.h +++ b/lib/ui/painting/paint.h @@ -19,6 +19,8 @@ class Paint { const SkPaint* paint(SkPaint& paint) const; + void toDlPaint(DlPaint& paint) const; + /// Synchronize the Dart properties to the display list according /// to the attribute flags that indicate which properties are needed. /// The return value indicates if the paint was non-null and can diff --git a/lib/ui/painting/paint_unittests.cc b/lib/ui/painting/paint_unittests.cc new file mode 100644 index 0000000000000..d7b2edd09e463 --- /dev/null +++ b/lib/ui/painting/paint_unittests.cc @@ -0,0 +1,62 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "flutter/lib/ui/painting/paint.h" +#include "flutter/shell/common/shell_test.h" +#include "flutter/shell/common/thread_host.h" + +#include "flutter/testing/testing.h" + +namespace flutter { +namespace testing { + +TEST_F(ShellTest, ConvertPaintToDlPaint) { + auto message_latch = std::make_shared(); + DlPaint dl_paint; + + auto nativeToDlPaint = [message_latch, &dl_paint](Dart_NativeArguments args) { + Dart_Handle dart_paint = Dart_GetNativeArgument(args, 0); + Dart_Handle paint_objects = + Dart_GetField(dart_paint, tonic::ToDart("_objects")); + Dart_Handle paint_data = Dart_GetField(dart_paint, tonic::ToDart("_data")); + Paint ui_paint(paint_objects, paint_data); + ui_paint.toDlPaint(dl_paint); + message_latch->Signal(); + }; + + Settings settings = CreateSettingsForFixture(); + TaskRunners task_runners("test", // label + GetCurrentTaskRunner(), // platform + CreateNewThread(), // raster + CreateNewThread(), // ui + CreateNewThread() // io + ); + + AddNativeCallback("ConvertPaintToDlPaint", + CREATE_NATIVE_ENTRY(nativeToDlPaint)); + + std::unique_ptr shell = CreateShell(settings, task_runners); + + ASSERT_TRUE(shell->IsSetup()); + auto configuration = RunConfiguration::InferFromSettings(settings); + configuration.SetEntrypoint("convertPaintToDlPaint"); + + shell->RunEngine(std::move(configuration), [](auto result) { + ASSERT_EQ(result, Engine::RunStatus::Success); + }); + + message_latch->Wait(); + DestroyShell(std::move(shell), task_runners); + + ASSERT_EQ(dl_paint.getBlendMode(), DlBlendMode::kModulate); + ASSERT_EQ(static_cast(dl_paint.getColor()), 0x11223344u); + ASSERT_EQ(*dl_paint.getColorFilter(), + DlBlendColorFilter(0x55667788, DlBlendMode::kXor)); + ASSERT_EQ(*dl_paint.getMaskFilter(), + DlBlurMaskFilter(SkBlurStyle::kInner_SkBlurStyle, 0.75)); + ASSERT_EQ(dl_paint.getDrawStyle(), DlDrawStyle::kStroke); +} + +} // namespace testing +} // namespace flutter diff --git a/lib/ui/painting/picture.cc b/lib/ui/painting/picture.cc index 32ad74fabe372..0121c85c7c662 100644 --- a/lib/ui/painting/picture.cc +++ b/lib/ui/painting/picture.cc @@ -62,7 +62,7 @@ static sk_sp CreateDeferredImage( sk_sp display_list, uint32_t width, uint32_t height, - fml::WeakPtr snapshot_delegate, + fml::TaskRunnerAffineWeakPtr snapshot_delegate, fml::RefPtr raster_task_runner, fml::RefPtr unref_queue) { #if IMPELLER_SUPPORTS_RENDERING @@ -155,8 +155,8 @@ Dart_Handle Picture::RasterizeToImage(const sk_sp& display_list, // We can't create an image on this task runner because we don't have a // graphics context. Even if we did, it would be slow anyway. Also, this - // thread owns the sole reference to the layer tree. So we flatten the layer - // tree into a picture and use that as the thread transport mechanism. + // thread owns the sole reference to the layer tree. So we do it in the + // raster thread. auto picture_bounds = SkISize::Make(width, height); diff --git a/lib/ui/platform_dispatcher.dart b/lib/ui/platform_dispatcher.dart index 5509ccb3f1827..e5ebda9961017 100644 --- a/lib/ui/platform_dispatcher.dart +++ b/lib/ui/platform_dispatcher.dart @@ -750,19 +750,6 @@ class PlatformDispatcher { _invoke(onAccessibilityFeaturesChanged, _onAccessibilityFeaturesChangedZone,); } - /// Change the retained semantics data about this platform dispatcher. - /// - /// If [semanticsEnabled] is true, the user has requested that this function - /// be called whenever the semantic content of this platform dispatcher - /// changes. - /// - /// In either case, this function disposes the given update, which means the - /// semantics update cannot be used further. - void updateSemantics(SemanticsUpdate update) => _updateSemantics(update); - - @FfiNative)>('PlatformConfigurationNativeApi::UpdateSemantics') - external static void _updateSemantics(SemanticsUpdate update); - /// The system-reported default locale of the device. /// /// This establishes the language and formatting conventions that application @@ -1048,7 +1035,7 @@ class PlatformDispatcher { } } - /// Whether the user has requested that [updateSemantics] be called when the + /// Whether the user has requested that updateSemantics be called when the /// semantic contents of a view changes. /// /// The [onSemanticsEnabledChanged] callback is called whenever this value @@ -1084,7 +1071,7 @@ class PlatformDispatcher { /// performed. /// /// This callback is used when the user expresses the action they wish to - /// perform based on the semantics supplied by [updateSemantics]. + /// perform based on the semantics supplied by updateSemantics. /// /// The framework invokes this callback in the same zone in which the /// callback was set. @@ -1256,7 +1243,7 @@ class PlatformConfiguration { /// format. final bool alwaysUse24HourFormat; - /// Whether the user has requested that [updateSemantics] be called when the + /// Whether the user has requested that updateSemantics be called when the /// semantic contents of a view changes. final bool semanticsEnabled; diff --git a/lib/ui/plugins/callback_cache.cc b/lib/ui/plugins/callback_cache.cc index 218134504712f..4208ee6a903ea 100644 --- a/lib/ui/plugins/callback_cache.cc +++ b/lib/ui/plugins/callback_cache.cc @@ -130,8 +130,7 @@ void DartCallbackCache::LoadCacheFromDisk() { Document d; d.Parse(cache_contents.c_str()); if (d.HasParseError() || !d.IsArray()) { - FML_LOG(INFO) << "Could not parse callback cache, aborting restore"; - // TODO(bkonyi): log and bail (delete cache?) + // Could not parse callback cache, aborting restore. return; } const auto entries = d.GetArray(); diff --git a/lib/ui/semantics.dart b/lib/ui/semantics.dart index e18aff4d63f62..9bf8d2be76d8c 100644 --- a/lib/ui/semantics.dart +++ b/lib/ui/semantics.dart @@ -285,7 +285,9 @@ class SemanticsAction { // // When changes are made to this class, the equivalent APIs in // `lib/ui/semantics/semantics_node.h` and in each of the embedders *must* be -// updated. +// updated. If the change affects the visibility of a [SemanticsNode] to +// accessibility services, `flutter_test/controller.dart#SemanticsController._importantFlags` +// must be updated as well. class SemanticsFlag { const SemanticsFlag._(this.index) : assert(index != null); @@ -324,7 +326,10 @@ class SemanticsFlag { // value in testing/dart/semantics_test.dart, or tests will fail. Also, // please update the Flag enum in // flutter/shell/platform/android/io/flutter/view/AccessibilityBridge.java, - // and the SemanticsFlag class in lib/web_ui/lib/semantics.dart. + // and the SemanticsFlag class in lib/web_ui/lib/semantics.dart. If the new flag + // affects the visibility of a [SemanticsNode] to accessibility services, + // `flutter_test/controller.dart#SemanticsController._importantFlags` + // must be updated as well. /// The semantics node has the quality of either being "checked" or "unchecked". /// diff --git a/lib/ui/text.dart b/lib/ui/text.dart index fb2627e3a122e..69983ae736e27 100644 --- a/lib/ui/text.dart +++ b/lib/ui/text.dart @@ -2865,8 +2865,7 @@ class Paragraph extends NativeFieldWrapperClass1 { final List nextBoundary = _getLineBoundary(position.offset + 1); final TextRange nextLine = TextRange(start: nextBoundary[0], end: nextBoundary[1]); - // If there is no next line, because we're at the end of the field, return - // line. + // If there is no next line, because we're at the end of the field, return line. if (!nextLine.isValid) { return line; } @@ -2876,7 +2875,6 @@ class Paragraph extends NativeFieldWrapperClass1 { // word wrap (downstream), we need to return the line for the next offset. if (position.affinity == TextAffinity.downstream && line != nextLine && position.offset == line.end && line.end == nextLine.start) { - final List nextBoundary = _getLineBoundary(position.offset + 1); return TextRange(start: nextBoundary[0], end: nextBoundary[1]); } return line; diff --git a/lib/ui/ui_dart_state.cc b/lib/ui/ui_dart_state.cc index d67b540a045dc..df5f74bd46c09 100644 --- a/lib/ui/ui_dart_state.cc +++ b/lib/ui/ui_dart_state.cc @@ -30,7 +30,7 @@ UIDartState::Context::Context(const TaskRunners& task_runners) UIDartState::Context::Context( const TaskRunners& task_runners, - fml::WeakPtr snapshot_delegate, + fml::TaskRunnerAffineWeakPtr snapshot_delegate, fml::WeakPtr io_manager, fml::RefPtr unref_queue, fml::WeakPtr image_decoder, @@ -38,6 +38,7 @@ UIDartState::Context::Context( std::string advisory_script_uri, std::string advisory_script_entrypoint, std::shared_ptr volatile_path_tracker, + std::shared_ptr concurrent_task_runner, bool enable_impeller) : task_runners(task_runners), snapshot_delegate(std::move(snapshot_delegate)), @@ -48,6 +49,7 @@ UIDartState::Context::Context( advisory_script_uri(std::move(advisory_script_uri)), advisory_script_entrypoint(std::move(advisory_script_entrypoint)), volatile_path_tracker(std::move(volatile_path_tracker)), + concurrent_task_runner(std::move(concurrent_task_runner)), enable_impeller(enable_impeller) {} UIDartState::UIDartState( @@ -95,6 +97,7 @@ void UIDartState::DidSetIsolate() { void UIDartState::ThrowIfUIOperationsProhibited() { if (!UIDartState::Current()->IsRootIsolate()) { + Dart_EnterScope(); Dart_ThrowException( tonic::ToDart("UI actions are only available on root isolate.")); } @@ -145,6 +148,11 @@ std::shared_ptr UIDartState::GetVolatilePathTracker() return context_.volatile_path_tracker; } +std::shared_ptr +UIDartState::GetConcurrentTaskRunner() const { + return context_.concurrent_task_runner; +} + void UIDartState::ScheduleMicrotask(Dart_Handle closure) { if (tonic::CheckAndHandleError(closure) || !Dart_IsClosure(closure)) { return; @@ -173,7 +181,8 @@ void UIDartState::AddOrRemoveTaskObserver(bool add) { } } -fml::WeakPtr UIDartState::GetSnapshotDelegate() const { +fml::TaskRunnerAffineWeakPtr +UIDartState::GetSnapshotDelegate() const { return context_.snapshot_delegate; } diff --git a/lib/ui/ui_dart_state.h b/lib/ui/ui_dart_state.h index 2103cda24f451..b00d6bd72975a 100644 --- a/lib/ui/ui_dart_state.h +++ b/lib/ui/ui_dart_state.h @@ -46,7 +46,7 @@ class UIDartState : public tonic::DartState { explicit Context(const TaskRunners& task_runners); Context(const TaskRunners& task_runners, - fml::WeakPtr snapshot_delegate, + fml::TaskRunnerAffineWeakPtr snapshot_delegate, fml::WeakPtr io_manager, fml::RefPtr unref_queue, fml::WeakPtr image_decoder, @@ -54,6 +54,7 @@ class UIDartState : public tonic::DartState { std::string advisory_script_uri, std::string advisory_script_entrypoint, std::shared_ptr volatile_path_tracker, + std::shared_ptr concurrent_task_runner, bool enable_impeller); /// The task runners used by the shell hosting this runtime controller. This @@ -64,7 +65,7 @@ class UIDartState : public tonic::DartState { /// The snapshot delegate used by the /// isolate to gather raster snapshots /// of Flutter view hierarchies. - fml::WeakPtr snapshot_delegate; + fml::TaskRunnerAffineWeakPtr snapshot_delegate; /// The IO manager used by the isolate for asynchronous texture uploads. fml::WeakPtr io_manager; @@ -93,6 +94,10 @@ class UIDartState : public tonic::DartState { /// Cache for tracking path volatility. std::shared_ptr volatile_path_tracker; + /// The task runner whose tasks may be executed concurrently on a pool + /// of shared worker threads. + std::shared_ptr concurrent_task_runner; + /// Whether Impeller is enabled or not. bool enable_impeller = false; }; @@ -128,7 +133,9 @@ class UIDartState : public tonic::DartState { std::shared_ptr GetVolatilePathTracker() const; - fml::WeakPtr GetSnapshotDelegate() const; + std::shared_ptr GetConcurrentTaskRunner() const; + + fml::TaskRunnerAffineWeakPtr GetSnapshotDelegate() const; fml::WeakPtr GetImageDecoder() const; diff --git a/lib/ui/window.dart b/lib/ui/window.dart index 4e0c07d4d3710..6450fad95c413 100644 --- a/lib/ui/window.dart +++ b/lib/ui/window.dart @@ -266,6 +266,19 @@ abstract class FlutterView { @FfiNative)>('PlatformConfigurationNativeApi::Render') external static void _render(Scene scene); + + /// Change the retained semantics data about this [FlutterView]. + /// + /// If [PlatformDispatcher.semanticsEnabled] is true, the user has requested that this function + /// be called whenever the semantic content of this [FlutterView] + /// changes. + /// + /// This function disposes the given update, which means the semantics update + /// cannot be used further. + void updateSemantics(SemanticsUpdate update) => _updateSemantics(update); + + @FfiNative)>('PlatformConfigurationNativeApi::UpdateSemantics') + external static void _updateSemantics(SemanticsUpdate update); } /// A top-level platform window displaying a Flutter layer tree drawn from a @@ -721,17 +734,6 @@ class SingletonFlutterWindow extends FlutterWindow { platformDispatcher.onAccessibilityFeaturesChanged = callback; } - /// Change the retained semantics data about this window. - /// - /// {@macro dart.ui.window.functionForwardWarning} - /// - /// If [semanticsEnabled] is true, the user has requested that this function - /// be called whenever the semantic content of this window changes. - /// - /// In either case, this function disposes the given update, which means the - /// semantics update cannot be used further. - void updateSemantics(SemanticsUpdate update) => platformDispatcher.updateSemantics(update); - /// Sends a message to a platform-specific plugin. /// /// {@macro dart.ui.window.functionForwardWarning} diff --git a/lib/ui/window/platform_configuration.cc b/lib/ui/window/platform_configuration.cc index 940e6a968c872..1d008de30f52f 100644 --- a/lib/ui/window/platform_configuration.cc +++ b/lib/ui/window/platform_configuration.cc @@ -344,9 +344,7 @@ Dart_Handle PlatformConfigurationNativeApi::SendPortPlatformMessage( c_send_port, tonic::DartConverter::FromDart(identifier), name); - HandlePlatformMessage(dart_state, name, data_handle, response); - - return Dart_Null(); + return HandlePlatformMessage(dart_state, name, data_handle, response); } void PlatformConfigurationNativeApi::RespondToPlatformMessage( diff --git a/lib/ui/window/platform_message_response_dart_port.cc b/lib/ui/window/platform_message_response_dart_port.cc index ffa4a0d79cc74..8f559bf3983a6 100644 --- a/lib/ui/window/platform_message_response_dart_port.cc +++ b/lib/ui/window/platform_message_response_dart_port.cc @@ -17,11 +17,6 @@ #include "third_party/tonic/typed_data/dart_byte_data.h" namespace flutter { -namespace { -void FreeFinalizer(void* isolate_callback_data, void* peer) { - free(peer); -} -} // namespace PlatformMessageResponseDartPort::PlatformMessageResponseDartPort( Dart_Port send_port, @@ -39,18 +34,11 @@ void PlatformMessageResponseDartPort::Complete( }; response_identifier.value.as_int64 = identifier_; Dart_CObject response_data = { - .type = Dart_CObject_kExternalTypedData, + .type = Dart_CObject_kTypedData, }; - // TODO(https://github.com/dart-lang/sdk/issues/49827): Move to kTypedData - // when const values are accepted. Also consider using kExternalTypedData only - // when the payload is >= 1KB. - uint8_t* copy = static_cast(malloc(data->GetSize())); - memcpy(copy, data->GetMapping(), data->GetSize()); - response_data.value.as_external_typed_data.type = Dart_TypedData_kUint8; - response_data.value.as_external_typed_data.length = data->GetSize(); - response_data.value.as_external_typed_data.data = copy; - response_data.value.as_external_typed_data.peer = copy; - response_data.value.as_external_typed_data.callback = FreeFinalizer; + response_data.value.as_typed_data.type = Dart_TypedData_kUint8; + response_data.value.as_typed_data.length = data->GetSize(); + response_data.value.as_typed_data.values = data->GetMapping(); std::array response_values = {&response_identifier, &response_data}; diff --git a/lib/ui/window/platform_message_response_dart_port_unittests.cc b/lib/ui/window/platform_message_response_dart_port_unittests.cc index 407e412ece336..7dda83049d926 100644 --- a/lib/ui/window/platform_message_response_dart_port_unittests.cc +++ b/lib/ui/window/platform_message_response_dart_port_unittests.cc @@ -66,7 +66,7 @@ TEST_F(ShellTest, PlatformMessageResponseDartPort) { message_latch->Wait(); ASSERT_TRUE(did_pass); - DestroyShell(std::move(shell), std::move(task_runners)); + DestroyShell(std::move(shell), task_runners); } } // namespace testing diff --git a/lib/ui/window/platform_message_response_dart_unittests.cc b/lib/ui/window/platform_message_response_dart_unittests.cc index 8c362e75b299b..a9a29198bcf4d 100644 --- a/lib/ui/window/platform_message_response_dart_unittests.cc +++ b/lib/ui/window/platform_message_response_dart_unittests.cc @@ -65,7 +65,7 @@ TEST_F(ShellTest, PlatformMessageResponseDart) { message_latch->Wait(); ASSERT_TRUE(did_pass); - DestroyShell(std::move(shell), std::move(task_runners)); + DestroyShell(std::move(shell), task_runners); } } // namespace testing diff --git a/lib/ui/window/pointer_data.h b/lib/ui/window/pointer_data.h index 7a57f176ebbb9..1f323cc4f8169 100644 --- a/lib/ui/window/pointer_data.h +++ b/lib/ui/window/pointer_data.h @@ -9,7 +9,8 @@ namespace flutter { -// If this value changes, update the pointer data unpacking code in hooks.dart. +// If this value changes, update the pointer data unpacking code in +// platform_dispatcher.dart. static constexpr int kPointerDataFieldCount = 35; static constexpr int kBytesPerField = sizeof(int64_t); // Must match the button constants in events.dart. diff --git a/lib/ui/window/pointer_data_packet_converter_unittests.cc b/lib/ui/window/pointer_data_packet_converter_unittests.cc index bc858334e856b..dbadbdbd98f14 100644 --- a/lib/ui/window/pointer_data_packet_converter_unittests.cc +++ b/lib/ui/window/pointer_data_packet_converter_unittests.cc @@ -146,7 +146,7 @@ void UnpackPointerPacket(std::vector& output, // NOLINT packet.reset(); } -TEST(PointerDataPacketConverterTest, CanConvetPointerDataPacket) { +TEST(PointerDataPacketConverterTest, CanConvertPointerDataPacket) { PointerDataPacketConverter converter; auto packet = std::make_unique(6); PointerData data; diff --git a/lib/web_ui/README.md b/lib/web_ui/README.md index f4e87cb31c6eb..720e43ccc255f 100644 --- a/lib/web_ui/README.md +++ b/lib/web_ui/README.md @@ -25,9 +25,10 @@ get help for a specific subcommand, run `felt help SUBCOMMAND`. The most useful subcommands are: - `felt build` - builds a local Flutter Web engine ready to be used by the - Flutter framework. To use the local engine build, pass - `--local-engine=host_debug_unopt` to the `flutter` command, or to - `dev/bots/test.dart` when running a web shard, such as `web_tests`. + Flutter framework. To use the local engine build, build with + `felt build --host`, then pass `--local-engine=host_debug_unopt` to the + `flutter` command, or to `dev/bots/test.dart` when running a web shard, such + as `web_tests`. - `felt test` - runs web engine tests. By default, this runs all tests using Chromium. Passing one or more paths to specific tests would run just the specified tests. Run `felt help test` for more options. diff --git a/lib/web_ui/dev/browser_lock.yaml b/lib/web_ui/dev/browser_lock.yaml index 1fc22247b977b..38e3e65b7340a 100644 --- a/lib/web_ui/dev/browser_lock.yaml +++ b/lib/web_ui/dev/browser_lock.yaml @@ -13,11 +13,11 @@ chrome: # `self.m.platform.name.capitalize()` evaluates to. See: # # recipe_modules/web_util/api.py - Linux: 1027016 - Mac: 1027007 - Mac_Arm: 1026994 - Win: 1026943 - version: '105.0' # CIPD tag for the above Build IDs. Normally "ChromeMajorVersion.UploadAttempt". ;) + Linux: 1047731 + Mac: 1047732 + Mac_Arm: 1047734 + Win: 1047731 + version: '107.0' # CIPD tag for the above Build IDs. Normally "ChromeMajorVersion.UploadAttempt". ;) ## Firefox does not use CIPD. To update the version, simply update it in this ## file. diff --git a/lib/web_ui/dev/build.dart b/lib/web_ui/dev/build.dart index e5334fe17630b..215d59a2dbf95 100644 --- a/lib/web_ui/dev/build.dart +++ b/lib/web_ui/dev/build.dart @@ -3,7 +3,7 @@ // found in the LICENSE file. import 'dart:async'; -import 'dart:io' show Directory, Platform; +import 'dart:io' show Directory; import 'package:args/command_runner.dart'; import 'package:path/path.dart' as path; @@ -23,8 +23,14 @@ class BuildCommand extends Command with ArgUtils { ); argParser.addFlag( 'build-canvaskit', - help: 'Build CanvasKit locally instead of getting it from CIPD. Disabled ' + help: 'Build CanvasKit locally instead of getting it from CIPD. Enabled ' 'by default.', + defaultsTo: true + ); + argParser.addFlag( + 'host', + help: 'Build the host build instead of the wasm build, which is ' + 'currently needed for `flutter run --local-engine` to work.' ); } @@ -38,19 +44,15 @@ class BuildCommand extends Command with ArgUtils { bool get buildCanvasKit => boolArg('build-canvaskit'); + bool get host => boolArg('host'); + @override FutureOr run() async { final FilePath libPath = FilePath.fromWebUi('lib'); final List steps = [ - GnPipelineStep(), - NinjaPipelineStep(target: environment.engineBuildDir), + GnPipelineStep(buildCanvasKit: buildCanvasKit, host: host), + NinjaPipelineStep(target: host ? environment.hostDebugUnoptDir : environment.wasmReleaseOutDir), ]; - if (buildCanvasKit) { - steps.addAll([ - GnPipelineStep(target: 'canvaskit'), - NinjaPipelineStep(target: environment.wasmReleaseOutDir), - ]); - } final Pipeline buildPipeline = Pipeline(steps: steps); await buildPipeline.run(); @@ -73,8 +75,10 @@ class BuildCommand extends Command with ArgUtils { /// Not safe to interrupt as it may leave the `out/` directory in a corrupted /// state. GN is pretty quick though, so it's OK to not support interruption. class GnPipelineStep extends ProcessStep { - GnPipelineStep({this.target = 'engine'}) - : assert(target == 'engine' || target == 'canvaskit'); + GnPipelineStep({required this.buildCanvasKit, required this.host}); + + final bool buildCanvasKit; + final bool host; @override String get description => 'gn'; @@ -82,33 +86,27 @@ class GnPipelineStep extends ProcessStep { @override bool get isSafeToInterrupt => false; - /// The target to build with gn. - /// - /// Acceptable values: engine, canvaskit - final String target; - - @override - Future createProcess() { - print('Running gn for $target...'); - final List gnArgs = []; - if (target == 'engine') { - gnArgs.addAll([ - '--unopt', - if (Platform.isMacOS) '--xcode-symlinks', + List get _gnArgs { + if (host) { + return [ + '--unoptimized', '--full-dart-sdk', - if (environment.isMacosArm) '--mac-cpu=arm64', - ]); - } else if (target == 'canvaskit') { - gnArgs.addAll([ - '--wasm', - '--runtime-mode=release', - ]); + ]; } else { - throw StateError('Target was not engine or canvaskit: $target'); + return [ + '--web', + '--runtime-mode=release', + if (buildCanvasKit) '--build-canvaskit', + ]; } + } + + @override + Future createProcess() { + print('Running gn...'); return startProcess( path.join(environment.flutterDirectory.path, 'tools', 'gn'), - gnArgs, + _gnArgs, ); } } diff --git a/lib/web_ui/dev/chrome.dart b/lib/web_ui/dev/chrome.dart index 18d8a74a85e2d..d195413f42dd0 100644 --- a/lib/web_ui/dev/chrome.dart +++ b/lib/web_ui/dev/chrome.dart @@ -21,11 +21,15 @@ import 'environment.dart'; /// Provides an environment for desktop Chrome. class ChromeEnvironment implements BrowserEnvironment { + ChromeEnvironment(this._enableWasmGC); + late final BrowserInstallation _installation; + final bool _enableWasmGC; + @override Future launchBrowserInstance(Uri url, {bool debug = false}) async { - return Chrome(url, _installation, debug: debug); + return Chrome(url, _installation, debug: debug, enableWasmGC: _enableWasmGC); } @override @@ -60,7 +64,7 @@ class ChromeEnvironment implements BrowserEnvironment { class Chrome extends Browser { /// Starts a new instance of Chrome open to the given [url], which may be a /// [Uri] or a [String]. - factory Chrome(Uri url, BrowserInstallation installation, {bool debug = false}) { + factory Chrome(Uri url, BrowserInstallation installation, {required bool debug, required bool enableWasmGC}) { final Completer remoteDebuggerCompleter = Completer.sync(); return Chrome._(BrowserProcess(() async { // A good source of various Chrome CLI options: @@ -76,7 +80,15 @@ class Chrome extends Browser { final bool isChromeNoSandbox = Platform.environment['CHROME_NO_SANDBOX'] == 'true'; final String dir = environment.webUiDartToolDir.createTempSync('test_chrome_user_data_').resolveSymbolicLinksSync(); + final String jsFlags = enableWasmGC ? [ + '--experimental-wasm-gc', + '--wasm-gc-js-interop', + '--experimental-wasm-stack-switching', + '--experimental-wasm-type-reflection', + '--wasm-gc-js-interop', + ].join(' ') : ''; final List args = [ + if (jsFlags.isNotEmpty) '--js-flags=$jsFlags', '--user-data-dir=$dir', url.toString(), if (!debug) diff --git a/lib/web_ui/dev/common.dart b/lib/web_ui/dev/common.dart index b951c362de9f2..eab1360ac87c2 100644 --- a/lib/web_ui/dev/common.dart +++ b/lib/web_ui/dev/common.dart @@ -261,10 +261,10 @@ const List kAllBrowserNames = [ /// Creates an environment for a browser. /// /// The [browserName] matches the browser name passed as the `--browser` option. -BrowserEnvironment getBrowserEnvironment(String browserName) { +BrowserEnvironment getBrowserEnvironment(String browserName, { required bool enableWasmGC }) { switch (browserName) { case kChrome: - return ChromeEnvironment(); + return ChromeEnvironment(enableWasmGC); case kEdge: return EdgeEnvironment(); case kFirefox: diff --git a/lib/web_ui/dev/environment.dart b/lib/web_ui/dev/environment.dart index 8cdac3e6598a7..436d8cf47dcf9 100644 --- a/lib/web_ui/dev/environment.dart +++ b/lib/web_ui/dev/environment.dart @@ -20,21 +20,19 @@ Environment? _environment; class Environment { factory Environment() { final bool isMacosArm = ffi.Abi.current() == ffi.Abi.macosArm64; + final io.File dartExecutable = io.File(io.Platform.resolvedExecutable); final io.File self = io.File.fromUri(io.Platform.script); + final io.Directory engineSrcDir = self.parent.parent.parent.parent.parent; final io.Directory engineToolsDir = io.Directory(pathlib.join(engineSrcDir.path, 'flutter', 'tools')); final io.Directory outDir = io.Directory(pathlib.join(engineSrcDir.path, 'out')); - final io.Directory engineBuildDir = - io.Directory(pathlib.join( - outDir.path, - isMacosArm ? 'host_debug_unopt_arm64' : 'host_debug_unopt' - )); final io.Directory wasmReleaseOutDir = io.Directory(pathlib.join(outDir.path, 'wasm_release')); - final io.Directory dartSdkDir = - io.Directory(pathlib.join(engineBuildDir.path, 'dart-sdk')); + final io.Directory hostDebugUnoptDir = + io.Directory(pathlib.join(outDir.path, 'host_debug_unopt')); + final io.Directory dartSdkDir = dartExecutable.parent.parent; final io.Directory webUiRootDir = io.Directory( pathlib.join(engineSrcDir.path, 'flutter', 'lib', 'web_ui')); @@ -55,8 +53,8 @@ class Environment { engineSrcDir: engineSrcDir, engineToolsDir: engineToolsDir, outDir: outDir, - engineBuildDir: engineBuildDir, wasmReleaseOutDir: wasmReleaseOutDir, + hostDebugUnoptDir: hostDebugUnoptDir, dartSdkDir: dartSdkDir, ); } @@ -68,8 +66,8 @@ class Environment { required this.engineSrcDir, required this.engineToolsDir, required this.outDir, - required this.engineBuildDir, required this.wasmReleaseOutDir, + required this.hostDebugUnoptDir, required this.dartSdkDir, }); @@ -93,23 +91,40 @@ class Environment { /// This is where you'll find the ninja output, such as the Dart SDK. final io.Directory outDir; - /// The output directory for the host_debug_unopt build. - final io.Directory engineBuildDir; - /// The output directory for the wasm_release build. /// /// We build CanvasKit in release mode to reduce code size. final io.Directory wasmReleaseOutDir; + /// The output directory for the host_debug_unopt build. + final io.Directory hostDebugUnoptDir; + /// The root of the Dart SDK. final io.Directory dartSdkDir; /// The "dart" executable file. String get dartExecutable => pathlib.join(dartSdkDir.path, 'bin', 'dart'); + /// Path to dartaotruntime for running aot snapshots + String get dartAotRuntimePath => pathlib.join(dartSdkDir.path, 'bin', 'dartaotruntime'); + /// The "pub" executable file. String get pubExecutable => pathlib.join(dartSdkDir.path, 'bin', 'pub'); + /// The path to dart2wasm pre-compiled snapshot + String get dart2wasmSnapshotPath => pathlib.join(dartSdkDir.path, 'bin', 'snapshots', 'dart2wasm_product.snapshot'); + + /// The path to dart2wasm.dart file + String get dart2wasmScriptPath => pathlib.join( + engineSrcDir.path, + 'third_party', + 'dart', + 'pkg', + 'dart2wasm', + 'bin', + 'dart2wasm.dart' + ); + /// Path to where github.com/flutter/engine is checked out inside the engine workspace. io.Directory get flutterDirectory => io.Directory(pathlib.join(engineSrcDir.path, 'flutter')); diff --git a/lib/web_ui/dev/run.dart b/lib/web_ui/dev/run.dart index f83121f3b1c9d..eaed34bfbf80c 100644 --- a/lib/web_ui/dev/run.dart +++ b/lib/web_ui/dev/run.dart @@ -33,11 +33,17 @@ class RunCommand extends Command with ArgUtils { help: 'Whether we require Skia Gold to be available or not. When this ' 'flag is true, the tests will fail if Skia Gold is not available.', ); + argParser.addFlag( + 'wasm', + help: 'Whether the test we are running are compiled to webassembly.' + ); } @override String get name => 'run'; + bool get isWasm => boolArg('wasm'); + bool get isListSteps => boolArg('list'); /// When running screenshot tests, require Skia Gold to be available and @@ -59,6 +65,7 @@ class RunCommand extends Command with ArgUtils { 'run_tests_$browserName': RunTestsStep( browserName: browserName, isDebug: false, + isWasm: isWasm, doUpdateScreenshotGoldens: false, requireSkiaGold: requireSkiaGold, overridePathToCanvasKit: null, diff --git a/lib/web_ui/dev/steps/compile_tests_step.dart b/lib/web_ui/dev/steps/compile_tests_step.dart index 80e6bc93331e6..cfef289f20792 100644 --- a/lib/web_ui/dev/steps/compile_tests_step.dart +++ b/lib/web_ui/dev/steps/compile_tests_step.dart @@ -23,9 +23,10 @@ import '../utils.dart'; /// * test/ - compiled test code /// * test_images/ - test images copied from Skis sources. class CompileTestsStep implements PipelineStep { - CompileTestsStep({this.testFiles, this.useLocalCanvasKit = false}); + CompileTestsStep({this.testFiles, this.useLocalCanvasKit = false, this.isWasm = false}); final List? testFiles; + final bool isWasm; final bool useLocalCanvasKit; @@ -43,11 +44,15 @@ class CompileTestsStep implements PipelineStep { @override Future run() async { await environment.webUiBuildDir.create(); + if (isWasm) { + await copyDart2WasmTestScript(); + await copyDart2WasmRuntime(); + } await copyCanvasKitFiles(useLocalCanvasKit: useLocalCanvasKit); await buildHostPage(); await copyTestFonts(); await copySkiaTestImages(); - await compileTests(testFiles ?? findAllTests()); + await compileTests(testFiles ?? findAllTests(), isWasm); } } @@ -124,6 +129,32 @@ Future copySkiaTestImages() async { } } +Future copyDart2WasmRuntime() async { + final io.File sourceFile = io.File(pathlib.join( + environment.dartSdkDir.path, + 'bin', + 'dart2wasm_runtime.mjs', + )); + final io.Directory targetDir = io.Directory(pathlib.join( + environment.webUiBuildDir.path, + 'dart2wasm_runtime.mjs', + )); + + await sourceFile.copy(targetDir.path); +} + +Future copyDart2WasmTestScript() async { + final io.File sourceFile = io.File(pathlib.join( + environment.webUiDevDir.path, + 'test_dart2wasm.js', + )); + final io.Directory targetDir = io.Directory(pathlib.join( + environment.webUiBuildDir.path, + 'test_dart2wasm.js', + )); + await sourceFile.copy(targetDir.path); +} + Future copyCanvasKitFiles({bool useLocalCanvasKit = false}) async { // If CanvasKit has been built locally, use that instead of the CIPD version. final io.File localCanvasKitWasm = io.File(pathlib.join( @@ -191,43 +222,26 @@ Future copyCanvasKitFiles({bool useLocalCanvasKit = false}) async { } /// Compiles the specified unit tests. -Future compileTests(List testFiles) async { +Future compileTests(List testFiles, bool isWasm) async { final Stopwatch stopwatch = Stopwatch()..start(); - // Separate HTML targets from CanvasKit targets because the two use - // different dart2js options. - final List htmlTargets = []; - final List canvasKitTargets = []; - final List skwasmTargets = []; - final String canvasKitTestDirectory = - pathlib.join(environment.webUiTestDir.path, 'canvaskit'); - final String skwasmTestDirectory = - pathlib.join(environment.webUiTestDir.path, 'skwasm'); - for (final FilePath testFile in testFiles) { - if (pathlib.isWithin(canvasKitTestDirectory, testFile.absolute)) { - canvasKitTargets.add(testFile); - } else if (pathlib.isWithin(skwasmTestDirectory, testFile.absolute)) { - skwasmTargets.add(testFile); - } else { - htmlTargets.add(testFile); - } - } + final TestsByRenderer sortedTests = sortTestsByRenderer(testFiles); await Future.wait(>[ - if (htmlTargets.isNotEmpty) - _compileTestsInParallel(targets: htmlTargets), - if (canvasKitTargets.isNotEmpty) - _compileTestsInParallel(targets: canvasKitTargets, forCanvasKit: true), - if (skwasmTargets.isNotEmpty) - _compileTestsInParallel(targets: skwasmTargets, forSkwasm: true), + if (sortedTests.htmlTests.isNotEmpty) + _compileTestsInParallel(targets: sortedTests.htmlTests, isWasm: isWasm), + if (sortedTests.canvasKitTests.isNotEmpty) + _compileTestsInParallel(targets: sortedTests.canvasKitTests, renderer: Renderer.canvasKit, isWasm: isWasm), + if (sortedTests.skwasmTests.isNotEmpty) + _compileTestsInParallel(targets: sortedTests.skwasmTests, renderer: Renderer.skwasm, isWasm: isWasm), ]); stopwatch.stop(); - final int targetCount = htmlTargets.length + canvasKitTargets.length; + final int targetCount = sortedTests.numTargetsToCompile; print( 'Built $targetCount tests in ${stopwatch.elapsedMilliseconds ~/ 1000} ' - 'seconds using $_dart2jsConcurrency concurrent dart2js processes.', + 'seconds using $_dart2jsConcurrency concurrent compile processes.', ); } @@ -239,12 +253,12 @@ final Pool _dart2jsPool = Pool(_dart2jsConcurrency); /// Spawns multiple dart2js processes to compile [targets] in parallel. Future _compileTestsInParallel({ required List targets, - bool forCanvasKit = false, - bool forSkwasm = false, + Renderer renderer = Renderer.html, + bool isWasm = false, }) async { final Stream results = _dart2jsPool.forEach( targets, - (FilePath file) => compileUnitTest(file, forCanvasKit: forCanvasKit, forSkwasm: forSkwasm), + (FilePath file) => compileUnitTest(file, renderer: renderer, isWasm: isWasm), ); await for (final bool isSuccess in results) { if (!isSuccess) { @@ -253,6 +267,11 @@ Future _compileTestsInParallel({ } } +Future compileUnitTest(FilePath input, {required Renderer renderer, required bool isWasm}) async { + return isWasm ? compileUnitTestToWasm(input, renderer: renderer) + : compileUnitTestToJS(input, renderer: renderer); +} + /// Compiles one unit test using `dart2js`. /// /// When building for CanvasKit we have to use extra argument @@ -261,7 +280,7 @@ Future _compileTestsInParallel({ /// Dart2js creates the following outputs: /// - target.browser_test.dart.js /// - target.browser_test.dart.js.deps -/// - target.browser_test.dart.js.maps +/// - target.browser_test.dart.js.map /// under the same directory with test file. If all these files are not in /// the same directory, Chrome dev tools cannot load the source code during /// debug. @@ -270,14 +289,18 @@ Future _compileTestsInParallel({ /// directory before test are build. See [_copyFilesFromTestToBuild]. /// /// Later the extra files will be deleted in [_cleanupExtraFilesUnderTestDir]. -Future compileUnitTest(FilePath input, {required bool forCanvasKit, required bool forSkwasm}) async { +Future compileUnitTestToJS(FilePath input, {required Renderer renderer}) async { + // Compile to different directories for different renderers. This allows us + // to run the same test in multiple renderers. final String targetFileName = pathlib.join( environment.webUiBuildDir.path, + getBuildDirForRenderer(renderer), '${input.relativeToWebUi}.browser_test.dart.js', ); final io.Directory directoryToTarget = io.Directory(pathlib.join( environment.webUiBuildDir.path, + getBuildDirForRenderer(renderer), pathlib.dirname(input.relativeToWebUi))); if (!directoryToTarget.existsSync()) { @@ -295,8 +318,8 @@ Future compileUnitTest(FilePath input, {required bool forCanvasKit, requir // are designed to run in one specific mode. So instead, we specify the // renderer explicitly. '-DFLUTTER_WEB_AUTO_DETECT=false', - '-DFLUTTER_WEB_USE_SKIA=$forCanvasKit', - '-DFLUTTER_WEB_USE_SKWASM=$forSkwasm', + '-DFLUTTER_WEB_USE_SKIA=${renderer == Renderer.canvasKit}', + '-DFLUTTER_WEB_USE_SKWASM=${renderer == Renderer.skwasm}', '-O2', '-o', @@ -319,6 +342,50 @@ Future compileUnitTest(FilePath input, {required bool forCanvasKit, requir } } +Future compileUnitTestToWasm(FilePath input, {required Renderer renderer}) async { + final String targetFileName = pathlib.join( + environment.webUiBuildDir.path, + '${input.relativeToWebUi}.browser_test.dart.wasm', + ); + + final io.Directory directoryToTarget = io.Directory(pathlib.join( + environment.webUiBuildDir.path, + pathlib.dirname(input.relativeToWebUi))); + + if (!directoryToTarget.existsSync()) { + directoryToTarget.createSync(recursive: true); + } + + final List arguments = [ + environment.dart2wasmSnapshotPath, + + '--dart-sdk=${environment.dartSdkDir.path}', + + // We do not want to auto-select a renderer in tests. As of today, tests + // are designed to run in one specific mode. So instead, we specify the + // renderer explicitly. + '-DFLUTTER_WEB_AUTO_DETECT=false', + '-DFLUTTER_WEB_USE_SKIA=${renderer == Renderer.canvasKit}', + '-DFLUTTER_WEB_USE_SKWASM=${renderer == Renderer.skwasm}', + input.relativeToWebUi, // current path. + targetFileName, // target path. + ]; + + final int exitCode = await runProcess( + environment.dartAotRuntimePath, + arguments, + workingDirectory: environment.webUiRootDir.path, + ); + + if (exitCode != 0) { + io.stderr.writeln('ERROR: Failed to compile test $input. ' + 'dart2wasm exited with exit code $exitCode'); + return false; + } else { + return true; + } +} + Future buildHostPage() async { final String hostDartPath = pathlib.join('lib', 'static', 'host.dart'); final io.File hostDartFile = io.File(pathlib.join( diff --git a/lib/web_ui/dev/steps/run_tests_step.dart b/lib/web_ui/dev/steps/run_tests_step.dart index 38d733a1f9493..fbb19a4b4822b 100644 --- a/lib/web_ui/dev/steps/run_tests_step.dart +++ b/lib/web_ui/dev/steps/run_tests_step.dart @@ -38,11 +38,13 @@ class RunTestsStep implements PipelineStep { required this.requireSkiaGold, this.testFiles, required this.overridePathToCanvasKit, + required this.isWasm }); final String browserName; final List? testFiles; final bool isDebug; + final bool isWasm; final bool doUpdateScreenshotGoldens; final String? overridePathToCanvasKit; @@ -62,21 +64,55 @@ class RunTestsStep implements PipelineStep { Future run() async { await _prepareTestResultsDirectory(); - final BrowserEnvironment browserEnvironment = getBrowserEnvironment(browserName); + final BrowserEnvironment browserEnvironment = getBrowserEnvironment(browserName, enableWasmGC: isWasm); await browserEnvironment.prepare(); final SkiaGoldClient? skiaClient = await _createSkiaClient(); final List testFiles = this.testFiles ?? findAllTests(); - await _runTestBatch( - testFiles: testFiles, - browserEnvironment: browserEnvironment, - expectFailure: false, - isDebug: isDebug, - doUpdateScreenshotGoldens: doUpdateScreenshotGoldens, - skiaClient: skiaClient, - overridePathToCanvasKit: overridePathToCanvasKit, - ); + final TestsByRenderer sortedTests = sortTestsByRenderer(testFiles); + + if (sortedTests.htmlTests.isNotEmpty) { + await _runTestBatch( + testFiles: sortedTests.htmlTests, + renderer: Renderer.html, + browserEnvironment: browserEnvironment, + expectFailure: false, + isDebug: isDebug, + isWasm: isWasm, + doUpdateScreenshotGoldens: doUpdateScreenshotGoldens, + skiaClient: skiaClient, + overridePathToCanvasKit: overridePathToCanvasKit, + ); + } + + if (sortedTests.canvasKitTests.isNotEmpty) { + await _runTestBatch( + testFiles: sortedTests.canvasKitTests, + renderer: Renderer.canvasKit, + browserEnvironment: browserEnvironment, + expectFailure: false, + isDebug: isDebug, + isWasm: isWasm, + doUpdateScreenshotGoldens: doUpdateScreenshotGoldens, + skiaClient: skiaClient, + overridePathToCanvasKit: overridePathToCanvasKit, + ); + } + + if (sortedTests.skwasmTests.isNotEmpty) { + await _runTestBatch( + testFiles: sortedTests.skwasmTests, + renderer: Renderer.skwasm, + browserEnvironment: browserEnvironment, + expectFailure: false, + isDebug: isDebug, + isWasm: isWasm, + doUpdateScreenshotGoldens: doUpdateScreenshotGoldens, + skiaClient: skiaClient, + overridePathToCanvasKit: overridePathToCanvasKit, + ); + } await browserEnvironment.cleanup(); @@ -143,7 +179,9 @@ Future _prepareTestResultsDirectory() async { /// value if any tests fail. Future _runTestBatch({ required List testFiles, + required Renderer renderer, required bool isDebug, + required bool isWasm, required BrowserEnvironment browserEnvironment, required bool doUpdateScreenshotGoldens, required bool expectFailure, @@ -154,6 +192,10 @@ Future _runTestBatch({ environment.webUiRootDir.path, browserEnvironment.packageTestConfigurationYamlFile, ); + final String precompiledBuildDir = pathlib.join( + environment.webUiBuildDir.path, + getBuildDirForRenderer(renderer), + ); final List testArgs = [ ...['-r', 'compact'], // Disable concurrency. Running with concurrency proved to be flaky. @@ -163,7 +205,7 @@ Future _runTestBatch({ if (expectFailure) '--reporter=name-only', '--platform=${browserEnvironment.packageTestRuntime.identifier}', - '--precompiled=${environment.webUiBuildDir.path}', + '--precompiled=$precompiledBuildDir', '--configuration=$configurationFilePath', '--', ...testFiles.map((FilePath f) => f.relativeToWebUi), @@ -183,11 +225,13 @@ Future _runTestBatch({ ], () { return BrowserPlatform.start( browserEnvironment: browserEnvironment, + renderer: renderer, // It doesn't make sense to update a screenshot for a test that is // expected to fail. doUpdateScreenshotGoldens: !expectFailure && doUpdateScreenshotGoldens, skiaClient: skiaClient, overridePathToCanvasKit: overridePathToCanvasKit, + isWasm: isWasm, ); }); diff --git a/lib/web_ui/dev/test_dart2wasm.js b/lib/web_ui/dev/test_dart2wasm.js new file mode 100644 index 0000000000000..0ce4cfee510dd --- /dev/null +++ b/lib/web_ui/dev/test_dart2wasm.js @@ -0,0 +1,73 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// This script runs in HTML files and loads and instantiates dart unit tests +// that are compiled to WebAssembly. It is based off of the `test/dart.js` +// script from the `test` dart package. + +window.onload = async function () { + // Sends an error message to the server indicating that the script failed to + // load. + // + // This mimics a MultiChannel-formatted message. + var sendLoadException = function (message) { + window.parent.postMessage({ + "href": window.location.href, + "data": [0, { "type": "loadException", "message": message }], + "exception": true, + }, window.location.origin); + } + + // Listen for dartLoadException events and forward to the server. + window.addEventListener('dartLoadException', function (e) { + sendLoadException(e.detail); + }); + + // The basename of the current page. + var name = window.location.href.replace(/.*\//, '').replace(/#.*/, ''); + + // Find . + var links = document.getElementsByTagName("link"); + var testLinks = []; + var length = links.length; + for (var i = 0; i < length; ++i) { + if (links[i].rel == "x-dart-test") testLinks.push(links[i]); + } + + if (testLinks.length != 1) { + sendLoadException( + 'Expected exactly 1 in ' + name + ', found ' + + testLinks.length + '.'); + return; + } + + var link = testLinks[0]; + + if (link.href == '') { + sendLoadException( + 'Expected in ' + name + ' to have an "href" ' + + 'attribute.'); + return; + } + + let dart2wasm_runtime; + let moduleInstance; + try { + dart2wasm_runtime = await import('./dart2wasm_runtime.mjs'); + const dartModulePromise = WebAssembly.compileStreaming(fetch(link.href + ".browser_test.dart.wasm")); + moduleInstance = await dart2wasm_runtime.instantiate(dartModulePromise, {}); + } catch (exception) { + const message = `Failed to fetch and instantiate wasm module: ${exception}`; + sendLoadException(message); + } + + if (moduleInstance) { + try { + await dart2wasm_runtime.invoke(moduleInstance); + } catch (exception) { + const message = `Exception while invoking test: ${exception}`; + sendLoadException(message); + } + } +}; diff --git a/lib/web_ui/dev/test_platform.dart b/lib/web_ui/dev/test_platform.dart index ac84a6f749302..dbb29c81e15f3 100644 --- a/lib/web_ui/dev/test_platform.dart +++ b/lib/web_ui/dev/test_platform.dart @@ -38,13 +38,16 @@ import 'package:web_test_utils/image_compare.dart'; import 'browser.dart'; import 'environment.dart' as env; +import 'utils.dart'; /// Custom test platform that serves web engine unit tests. class BrowserPlatform extends PlatformPlugin { BrowserPlatform._({ required this.browserEnvironment, required this.server, + required this.renderer, required this.isDebug, + required this.isWasm, required this.doUpdateScreenshotGoldens, required this.packageConfig, required this.skiaClient, @@ -100,16 +103,20 @@ class BrowserPlatform extends PlatformPlugin { /// instead of failing the test on screenshot mismatches. static Future start({ required BrowserEnvironment browserEnvironment, + required Renderer renderer, required bool doUpdateScreenshotGoldens, required SkiaGoldClient? skiaClient, required String? overridePathToCanvasKit, + required bool isWasm, }) async { final shelf_io.IOServer server = shelf_io.IOServer(await HttpMultiServer.loopback(0)); return BrowserPlatform._( browserEnvironment: browserEnvironment, + renderer: renderer, server: server, isDebug: Configuration.current.pauseAfterLoad, + isWasm: isWasm, doUpdateScreenshotGoldens: doUpdateScreenshotGoldens, packageConfig: await loadPackageConfigUri((await Isolate.packageConfig)!), skiaClient: skiaClient, @@ -122,12 +129,17 @@ class BrowserPlatform extends PlatformPlugin { /// breakpoints in the code. final bool isDebug; + final bool isWasm; + /// The underlying server. final shelf.Server server; /// Provides the environment for the browser running tests. final BrowserEnvironment browserEnvironment; + /// The renderer that tests are running under. + final Renderer renderer; + /// The URL for this server. Uri get url => server.url.resolve('/'); @@ -361,6 +373,7 @@ class BrowserPlatform extends PlatformPlugin { static const Map contentTypes = { '.js': 'text/javascript', + '.mjs': 'text/javascript', '.wasm': 'application/wasm', '.html': 'text/html', '.htm': 'text/html', @@ -384,11 +397,21 @@ class BrowserPlatform extends PlatformPlugin { /// /// This is used for trivial use-cases, such as `favicon.ico`, host pages, etc. shelf.Response buildDirectoryHandler(shelf.Request request) { - final File fileInBuild = File(p.join( + File fileInBuild = File(p.join( env.environment.webUiBuildDir.path, request.url.path, )); + // If we can't find the file in the top-level `build` directory, then it + // may be in the renderer-specific `build` subdirectory. + if (!fileInBuild.existsSync()) { + fileInBuild = File(p.join( + env.environment.webUiBuildDir.path, + getBuildDirForRenderer(renderer), + request.url.path, + )); + } + if (!fileInBuild.existsSync()) { return shelf.Response.notFound('File not found: ${request.url.path}'); } @@ -422,6 +445,8 @@ class BrowserPlatform extends PlatformPlugin { final String scriptBase = htmlEscape.convert(p.basename(test)); final String link = ''; + final String testRunner = isWasm ? '/test_dart2wasm.js' : 'packages/test/dart.js'; + return shelf.Response.ok(''' @@ -434,7 +459,7 @@ class BrowserPlatform extends PlatformPlugin { }; $link - + ''', headers: {'Content-Type': 'text/html'}); @@ -485,10 +510,6 @@ class BrowserPlatform extends PlatformPlugin { return suite; } - @override - StreamChannel loadChannel(String path, SuitePlatform platform) => - throw UnimplementedError(); - Future? _browserManager; Future get browserManager async => (await _browserManager!)!; @@ -516,7 +537,9 @@ class BrowserPlatform extends PlatformPlugin { url: hostUrl, future: completer.future, packageConfig: packageConfig, + isWasm: isWasm, debug: isDebug, + renderer: renderer, ); // Store null values for browsers that error out so we know not to load them @@ -612,7 +635,7 @@ class BrowserManager { /// Creates a new BrowserManager that communicates with the browser over /// [webSocket]. BrowserManager._(this.packageConfig, this._browser, this._browserEnvironment, - WebSocketChannel webSocket) { + this._renderer, this._isWasm, WebSocketChannel webSocket) { // The duration should be short enough that the debugging console is open as // soon as the user is done setting breakpoints, but long enough that a test // doing a lot of synchronous work doesn't trigger a false positive. @@ -658,6 +681,9 @@ class BrowserManager { /// The browser environment for this test. final BrowserEnvironment _browserEnvironment; + /// The renderer for this test. + final Renderer _renderer; + /// The channel used to communicate with the browser. /// /// This is connected to a page running `static/host.dart`. @@ -681,6 +707,9 @@ class BrowserManager { /// Whether the channel to the browser has closed. bool _closed = false; + /// Whether we are running tests that have been compiled to WebAssembly. + final bool _isWasm; + /// The completer for [_BrowserEnvironment.displayPause]. /// /// This will be `null` as long as the browser isn't displaying a pause @@ -722,6 +751,8 @@ class BrowserManager { required Uri url, required Future future, required PackageConfig packageConfig, + required Renderer renderer, + required bool isWasm, bool debug = false, }) async { final Browser browser = @@ -732,6 +763,8 @@ class BrowserManager { future: future, packageConfig: packageConfig, browser: browser, + renderer: renderer, + isWasm: isWasm, debug: debug); } @@ -741,6 +774,8 @@ class BrowserManager { required Future future, required PackageConfig packageConfig, required Browser browser, + required Renderer renderer, + required bool isWasm, bool debug = false, }) { final Completer completer = Completer(); @@ -762,7 +797,7 @@ class BrowserManager { return; } completer.complete(BrowserManager._( - packageConfig, browser, browserEnvironment, webSocket)); + packageConfig, browser, browserEnvironment, renderer, isWasm, webSocket)); }).catchError((Object error, StackTrace stackTrace) { browser.close(); if (completer.isCompleted) { @@ -824,6 +859,11 @@ class BrowserManager { sink.close(); })); + if (Configuration.current.pauseAfterLoad) { + print('Browser loaded. Press enter to start tests...'); + stdin.readLineSync(); + } + return _pool.withResource(() async { _channel.sink.add({ 'command': 'loadSuite', @@ -841,24 +881,30 @@ class BrowserManager { suiteChannel, message); - final String sourceMapFileName = - '${p.basename(path)}.browser_test.dart.js.map'; - final String pathToTest = p.dirname(path); - - final String mapPath = p.join(env.environment.webUiRootDir.path, - 'build', pathToTest, sourceMapFileName); - - final Map packageMap = { - for (Package p in packageConfig.packages) p.name: p.packageUriRoot - }; - final JSStackTraceMapper mapper = JSStackTraceMapper( - await File(mapPath).readAsString(), - mapUrl: p.toUri(mapPath), - packageMap: packageMap, - sdkRoot: p.toUri(sdkDir), - ); + if (_isWasm) { + // We don't have mapping for wasm yet. But we should send a message + // to let the host page move forward. + controller!.channel('test.browser.mapper').sink.add(null); + } else { + final String sourceMapFileName = + '${p.basename(path)}.browser_test.dart.js.map'; + final String pathToTest = p.dirname(path); + + final String mapPath = p.join(env.environment.webUiRootDir.path, + 'build', getBuildDirForRenderer(_renderer), pathToTest, sourceMapFileName); + + final Map packageMap = { + for (Package p in packageConfig.packages) p.name: p.packageUriRoot + }; + final JSStackTraceMapper mapper = JSStackTraceMapper( + await File(mapPath).readAsString(), + mapUrl: p.toUri(mapPath), + packageMap: packageMap, + sdkRoot: p.toUri(sdkDir), + ); - controller!.channel('test.browser.mapper').sink.add(mapper.serialize()); + controller!.channel('test.browser.mapper').sink.add(mapper.serialize()); + } _controllers.add(controller!); return await controller!.suite; @@ -920,6 +966,10 @@ class BrowserManager { /// Closes the manager and releases any resources it owns, including closing /// the browser. Future close() => _closeMemoizer.runOnce(() { + if (Configuration.current.pauseAfterLoad) { + print('Test run finished. Press enter to close browser...'); + stdin.readLineSync(); + } _closed = true; _timer.cancel(); _pauseCompleter?.complete(); diff --git a/lib/web_ui/dev/test_runner.dart b/lib/web_ui/dev/test_runner.dart index 1a695c310258d..6d552fd75819c 100644 --- a/lib/web_ui/dev/test_runner.dart +++ b/lib/web_ui/dev/test_runner.dart @@ -31,17 +31,17 @@ class TestCommand extends Command with ArgUtils { help: 'Run in watch mode so the tests re-run whenever a change is ' 'made.', ) - ..addFlag('use-system-flutter', - help: - 'integration tests are using flutter repository for various tasks' - ', such as flutter drive, flutter pub get. If this flag is set, felt ' - 'will use flutter command without cloning the repository. This flag ' - 'can save internet bandwidth. However use with caution. Note that ' - 'since flutter repo is always synced to youngest commit older than ' - 'the engine commit for the tests running in CI, the tests results ' - "won't be consistent with CIs when this flag is set. flutter " - 'command should be set in the PATH for this flag to be useful.' - 'This flag can also be used to test local Flutter changes.') + ..addFlag( + 'use-system-flutter', + help: 'integration tests are using flutter repository for various tasks' + ', such as flutter drive, flutter pub get. If this flag is set, felt ' + 'will use flutter command without cloning the repository. This flag ' + 'can save internet bandwidth. However use with caution. Note that ' + 'since flutter repo is always synced to youngest commit older than ' + 'the engine commit for the tests running in CI, the tests results ' + "won't be consistent with CIs when this flag is set. flutter " + 'command should be set in the PATH for this flag to be useful.' + 'This flag can also be used to test local Flutter changes.') ..addFlag( 'require-skia-gold', help: @@ -74,6 +74,10 @@ class TestCommand extends Command with ArgUtils { 'tests. If omitted, the test runner uses the default CanvasKit ' 'build.', ) + ..addFlag( + 'wasm', + help: 'Whether the test we are running are compiled to webassembly.' + ) ..addFlag( 'use-local-canvaskit', help: 'Optional. Whether or not to use the locally built version of ' @@ -91,6 +95,8 @@ class TestCommand extends Command with ArgUtils { bool get failEarly => boolArg('fail-early'); + bool get isWasm => boolArg('wasm'); + /// Whether to start the browser in debug mode. /// /// In this mode the browser pauses before running the test to allow @@ -131,11 +137,12 @@ class TestCommand extends Command with ArgUtils { final Pipeline testPipeline = Pipeline(steps: [ if (isWatchMode) ClearTerminalScreenStep(), - CompileTestsStep(testFiles: testFiles, useLocalCanvasKit: useLocalCanvasKit), + CompileTestsStep(testFiles: testFiles, useLocalCanvasKit: useLocalCanvasKit, isWasm: isWasm), RunTestsStep( browserName: browserName, testFiles: testFiles, isDebug: isDebug, + isWasm: isWasm, doUpdateScreenshotGoldens: doUpdateScreenshotGoldens, requireSkiaGold: requireSkiaGold, overridePathToCanvasKit: overridePathToCanvasKit, diff --git a/lib/web_ui/dev/utils.dart b/lib/web_ui/dev/utils.dart index 21c580e9c1ae5..c71a6148eb26d 100644 --- a/lib/web_ui/dev/utils.dart +++ b/lib/web_ui/dev/utils.dart @@ -379,3 +379,68 @@ List findAllTests() { path.relative(f.path, from: environment.webUiRootDir.path))) .toList(); } + +/// The renderer used to run the test. +enum Renderer { + html, + canvasKit, + skwasm, +} + +/// The `FilePath`s for all the tests, organized by renderer. +class TestsByRenderer { + TestsByRenderer(this.htmlTests, this.canvasKitTests, this.skwasmTests); + + /// Tests which should be run with the HTML renderer. + final List htmlTests; + + /// Tests which should be run with the CanvasKit renderer. + final List canvasKitTests; + + /// Tests which should be run with the Skwasm renderer. + final List skwasmTests; + + /// The total number of targets to compile. + /// + /// The number of uiTests is doubled since they are compiled twice: once for + /// the HTML renderer and once for the CanvasKit renderer. + int get numTargetsToCompile => htmlTests.length + canvasKitTests.length + skwasmTests.length; +} + +/// Given a list of test files, organizes them by which renderer should run them. +TestsByRenderer sortTestsByRenderer(List testFiles) { + final List htmlTargets = []; + final List canvasKitTargets = []; + final List skwasmTargets = []; + final String canvasKitTestDirectory = + path.join(environment.webUiTestDir.path, 'canvaskit'); + final String skwasmTestDirectory = + path.join(environment.webUiTestDir.path, 'skwasm'); + final String uiTestDirectory = + path.join(environment.webUiTestDir.path, 'ui'); + for (final FilePath testFile in testFiles) { + if (path.isWithin(canvasKitTestDirectory, testFile.absolute)) { + canvasKitTargets.add(testFile); + } else if (path.isWithin(skwasmTestDirectory, testFile.absolute)) { + skwasmTargets.add(testFile); + } else if (path.isWithin(uiTestDirectory, testFile.absolute)) { + htmlTargets.add(testFile); + canvasKitTargets.add(testFile); + } else { + htmlTargets.add(testFile); + } + } + return TestsByRenderer(htmlTargets, canvasKitTargets, skwasmTargets); +} + +/// The build directory to compile a test into given the renderer. +String getBuildDirForRenderer(Renderer renderer) { + switch (renderer) { + case Renderer.html: + return 'html_tests'; + case Renderer.canvasKit: + return 'canvaskit_tests'; + case Renderer.skwasm: + return 'skwasm_tests'; + } +} diff --git a/lib/web_ui/lib/painting.dart b/lib/web_ui/lib/painting.dart index c5ffd4095e057..b98df71628029 100644 --- a/lib/web_ui/lib/painting.dart +++ b/lib/web_ui/lib/painting.dart @@ -728,6 +728,10 @@ class ImmutableBuffer { throw UnsupportedError('ImmutableBuffer.fromAsset is not supported on the web.'); } + static Future fromFilePath(String path) async { + throw UnsupportedError('ImmutableBuffer.fromFilePath is not supported on the web.'); + } + Uint8List? _list; int get length => _length; @@ -803,36 +807,22 @@ class ImageDescriptor { } } -class FragmentProgram { - FragmentProgram._(); - +abstract class FragmentProgram { static Future fromAsset(String assetKey) { - throw UnsupportedError('FragmentProgram is not supported for the CanvasKit or HTML renderers.'); + return engine.renderer.createFragmentProgram(assetKey); } - FragmentShader fragmentShader() { - throw UnsupportedError('FragmentProgram is not supported for the CanvasKit or HTML renderers.'); - } + FragmentShader fragmentShader(); } -class FragmentShader extends Shader { - FragmentShader._() : super._(); - - void setFloat(int index, double value) { - throw UnsupportedError('FragmentShader is not supported for the CanvasKit or HTML renderers.'); - } +abstract class FragmentShader implements Shader { + void setFloat(int index, double value); - void setSampler(int index, ImageShader sampler) { - throw UnsupportedError('FragmentShader is not supported for the CanvasKit or HTML renderers.'); - } + void setSampler(int index, ImageShader sampler); @override - void dispose() { - throw UnsupportedError('FragmentShader is not supported for the CanvasKit or HTML renderers.'); - } + void dispose(); @override - bool get debugDisposed { - throw UnsupportedError('FragmentShader is not supported for the CanvasKit or HTML renderers.'); - } + bool get debugDisposed; } diff --git a/lib/web_ui/lib/src/engine.dart b/lib/web_ui/lib/src/engine.dart index 6249cc7994e95..f83e43ce5245d 100644 --- a/lib/web_ui/lib/src/engine.dart +++ b/lib/web_ui/lib/src/engine.dart @@ -108,7 +108,6 @@ export 'engine/initialization.dart'; export 'engine/js_interop/js_loader.dart'; export 'engine/js_interop/js_promise.dart'; export 'engine/key_map.g.dart'; -export 'engine/keyboard.dart'; export 'engine/keyboard_binding.dart'; export 'engine/mouse_cursor.dart'; export 'engine/navigation/history.dart'; @@ -125,6 +124,7 @@ export 'engine/plugins.dart'; export 'engine/pointer_binding.dart'; export 'engine/pointer_converter.dart'; export 'engine/profiler.dart'; +export 'engine/raw_keyboard.dart'; export 'engine/renderer.dart'; export 'engine/rrect_renderer.dart'; export 'engine/safe_browser_api.dart'; @@ -148,6 +148,8 @@ export 'engine/svg.dart'; export 'engine/test_embedding.dart'; export 'engine/text/canvas_paragraph.dart'; export 'engine/text/font_collection.dart'; +export 'engine/text/fragmenter.dart'; +export 'engine/text/layout_fragmenter.dart'; export 'engine/text/layout_service.dart'; export 'engine/text/line_break_properties.dart'; export 'engine/text/line_breaker.dart'; diff --git a/lib/web_ui/lib/src/engine/canvas_pool.dart b/lib/web_ui/lib/src/engine/canvas_pool.dart index 188cf7d0ec2a0..60365b892d0e3 100644 --- a/lib/web_ui/lib/src/engine/canvas_pool.dart +++ b/lib/web_ui/lib/src/engine/canvas_pool.dart @@ -1012,7 +1012,7 @@ class ContextStateHandle { } } } else if (paint.color != null) { - final String? colorString = colorToCssString(paint.color); + final String? colorString = colorValueToCssString(paint.color); fillStyle = colorString; strokeStyle = colorString; } else { @@ -1036,12 +1036,8 @@ class ContextStateHandle { if (maskFilter != null) { context.save(); context.shadowBlur = convertSigmaToRadius(maskFilter.webOnlySigma); - if (paint.color != null) { - // Shadow color must be fully opaque. - context.shadowColor = colorToCssString(paint.color!.withAlpha(255)); - } else { - context.shadowColor = colorToCssString(const ui.Color(0xFF000000)); - } + // Shadow color must be fully opaque. + context.shadowColor = colorToCssString(ui.Color(paint.color).withAlpha(255)); // On the web a shadow must always be painted together with the shape // that casts it. In order to paint just the shadow, we offset the shape diff --git a/lib/web_ui/lib/src/engine/canvaskit/canvaskit_api.dart b/lib/web_ui/lib/src/engine/canvaskit/canvaskit_api.dart index 74cd573f53f9d..4199f675fb28b 100644 --- a/lib/web_ui/lib/src/engine/canvaskit/canvaskit_api.dart +++ b/lib/web_ui/lib/src/engine/canvaskit/canvaskit_api.dart @@ -25,14 +25,6 @@ import '../profiler.dart'; /// Entrypoint into the CanvasKit API. late CanvasKit canvasKit; -/// Whether to use a CanvasKit implementation provided by a JavaScript -/// `window.h5vcc.canvasKit` object. -/// -/// Cobalt may use this object to expose a native implementation of the -/// CanvasKit bindings. If this exists, use it instead of using the normal -/// downloaded CanvasKit library. -final bool useH5vccCanvasKit = h5vcc != null; - /// Sets the [CanvasKit] object on `window` so we can use `@JS()` to bind to /// static APIs. /// @@ -47,21 +39,6 @@ external set windowFlutterCanvasKit(CanvasKit? value); @JS('window.flutterCanvasKit') external CanvasKit? get windowFlutterCanvasKit; -@JS('window.h5vcc') -external H5vcc? get h5vcc; - -@JS('window.h5vcc') -external set debugH5vccSetter(H5vcc? value); - -@JS() -@anonymous -@staticInterop -abstract class H5vcc {} - -extension H5vccExtension on H5vcc { - external CanvasKit? get canvasKit; -} - @JS() @anonymous @staticInterop @@ -160,16 +137,15 @@ extension CanvasKitExtension on CanvasKit { SkPartialImageInfo info, ); - /// Gets a Skia surface from Cobalt's h5vcc object. - /// - /// This is only applicable when running on Cobalt and when using Cobalt's - /// h5vcc CanvasKit bindings. - /// - /// On Cobalt, this is the only way to get a Skia surface. Other CanvasKit - /// Make...Surface methods are not supported. - external SkSurface getH5vccSkSurface(); + /// Retrieve the RuntimeEffect namespace for null checking. + external Object? get RuntimeEffect; } +// TODO(jonahwilliams): remove this once all CanvasKit versions +// are built in the SDK. +// https://github.com/flutter/flutter/issues/114260 +final bool isRuntimeEffectAvailable = windowFlutterCanvasKit?.RuntimeEffect != null; + @JS('window.CanvasKitInit') external CanvasKitInitPromise CanvasKitInit(CanvasKitInitOptions options); @@ -2562,6 +2538,19 @@ external Object? get exports; @JS() external Object? get module; +@JS('window.flutterCanvasKit.RuntimeEffect') +@anonymous +@staticInterop +class SkRuntimeEffect {} + +@JS('window.flutterCanvasKit.RuntimeEffect.Make') +external SkRuntimeEffect? MakeRuntimeEffect(String program); + +extension SkSkRuntimeEffectExtension on SkRuntimeEffect { + external SkShader? makeShader(List uniforms); + external SkShader? makeShaderWithChildren(List uniforms, List children); +} + /// Monkey-patch the top-level `module` and `exports` objects so that /// CanvasKit doesn't attempt to register itself as an anonymous module. /// @@ -2652,7 +2641,7 @@ Future _downloadCanvasKitJs() { final String canvasKitJavaScriptUrl = canvasKitJavaScriptBindingsUrl; final DomHTMLScriptElement canvasKitScript = createDomHTMLScriptElement(); - canvasKitScript.src = canvasKitJavaScriptUrl; + canvasKitScript.src = createTrustedScriptUrl(canvasKitJavaScriptUrl); final Completer canvasKitLoadCompleter = Completer(); late DomEventListener callback; diff --git a/lib/web_ui/lib/src/engine/canvaskit/color_filter.dart b/lib/web_ui/lib/src/engine/canvaskit/color_filter.dart index df4c9d7409b39..23d32191f3fed 100644 --- a/lib/web_ui/lib/src/engine/canvaskit/color_filter.dart +++ b/lib/web_ui/lib/src/engine/canvaskit/color_filter.dart @@ -81,8 +81,26 @@ class CkBlendModeColorFilter extends CkColorFilter { final ui.Color color; final ui.BlendMode blendMode; + static Float32List get identityTransform => _identityTransform ?? _computeIdentityTransform(); + static Float32List? _identityTransform; + + static Float32List _computeIdentityTransform() { + final Float32List result = Float32List(20); + const List translationIndices = [0, 6, 12, 18]; + for (final int i in translationIndices) { + result[i] = 1; + } + _identityTransform = result; + return result; + } + @override SkColorFilter _initRawColorFilter() { + /// Return the identity matrix when the color opacity is 0. Replicates + /// effect of applying no filter + if (color.opacity == 0) { + return canvasKit.ColorFilter.MakeMatrix(identityTransform); + } final SkColorFilter? filter = canvasKit.ColorFilter.MakeBlend( toSharedSkColor1(color), toSkBlendMode(blendMode), diff --git a/lib/web_ui/lib/src/engine/canvaskit/embedded_views.dart b/lib/web_ui/lib/src/engine/canvaskit/embedded_views.dart index a2e028a0e822d..27694946d5a23 100644 --- a/lib/web_ui/lib/src/engine/canvaskit/embedded_views.dart +++ b/lib/web_ui/lib/src/engine/canvaskit/embedded_views.dart @@ -486,8 +486,8 @@ class HtmlViewEmbedder { skiaSceneHost.insertBefore(platformViewRoot, elementToInsertBefore); final Surface? overlay = _overlays[viewId]; if (overlay != null) { - skiaSceneHost - .insertBefore(overlay.htmlElement, elementToInsertBefore); + skiaSceneHost.insertBefore( + overlay.htmlElement, elementToInsertBefore); } } else { final DomElement platformViewRoot = _viewClipChains[viewId]!.root; @@ -601,8 +601,15 @@ class HtmlViewEmbedder { return; } final List> overlayGroups = getOverlayGroups(_compositionOrder); - final Iterable viewsNeedingOverlays = - overlayGroups.map((List group) => group.last); + final List viewsNeedingOverlays = + overlayGroups.map((List group) => group.last).toList(); + // If there were more visible views than overlays, then the last group + // doesn't have an overlay. + if (viewsNeedingOverlays.length > SurfaceFactory.instance.maximumOverlays) { + assert(viewsNeedingOverlays.length == + SurfaceFactory.instance.maximumOverlays + 1); + viewsNeedingOverlays.removeLast(); + } if (diffResult == null) { // Everything is going to be explicitly recomposited anyway. Release all // the surfaces and assign an overlay to all the surfaces needing one. @@ -631,12 +638,16 @@ class HtmlViewEmbedder { // of the composition order which can share the same overlay. Every overlay // group is a list containing a visible view followed by zero or more // invisible views. + // + // If there are more visible views than overlays, then the views which cannot + // be assigned an overlay are grouped together and will be rendered on top of + // the rest of the scene. List> getOverlayGroups(List views) { // Visibility groups are typically a visible view followed by zero or more // invisible views. However, if the view list begins with one or more // invisible views, we can group them with the first visible view. - final int maxGroups = SurfaceFactory.instance.maximumOverlays; - if (maxGroups == 0) { + final int maxOverlays = SurfaceFactory.instance.maximumOverlays; + if (maxOverlays == 0) { return const >[]; } bool foundFirstVisibleView = false; @@ -644,20 +655,22 @@ class HtmlViewEmbedder { List currentGroup = []; int i = 0; for (; i < views.length; i++) { - // If we're on the last group, then break and just add all the rest of the - // views to current group. - if (result.length == maxGroups - 1) { - break; - } final int view = views[i]; if (platformViewManager.isInvisible(view)) { currentGroup.add(view); } else { if (foundFirstVisibleView) { - // We hit this case if this is the first visible view. result.add(currentGroup); - currentGroup = [view]; + // If we are out of overlays, then break let the rest of the views be + // added to an extra group that will be rendered on top of the scene. + if (result.length == maxOverlays) { + currentGroup = []; + break; + } else { + currentGroup = [view]; + } } else { + // We hit this case if this is the first visible view. foundFirstVisibleView = true; currentGroup.add(view); } @@ -676,7 +689,7 @@ class HtmlViewEmbedder { assert(!_overlays.containsKey(viewId)); // Try reusing a cached overlay created for another platform view. - final Surface overlay = SurfaceFactory.instance.getOverlay()!; + final Surface overlay = SurfaceFactory.instance.getSurface()!; overlay.createOrUpdateSurface(_frameSize); _overlays[viewId] = overlay; } diff --git a/lib/web_ui/lib/src/engine/canvaskit/font_fallbacks.dart b/lib/web_ui/lib/src/engine/canvaskit/font_fallbacks.dart index 0cbc7ea3a790c..3491a43261208 100644 --- a/lib/web_ui/lib/src/engine/canvaskit/font_fallbacks.dart +++ b/lib/web_ui/lib/src/engine/canvaskit/font_fallbacks.dart @@ -447,12 +447,7 @@ class FallbackFontDownloadQueue { final Uint8List bytes = downloadedData[url]!; FontFallbackData.instance.registerFallbackFont(font.name, bytes); if (pendingFonts.isEmpty) { - _fontsLoading = renderer.fontCollection.ensureFontsLoaded(); - try { - await _fontsLoading; - } finally { - _fontsLoading = null; - } + renderer.fontCollection.registerDownloadedFonts(); sendFontChangeMessage(); } } diff --git a/lib/web_ui/lib/src/engine/canvaskit/fonts.dart b/lib/web_ui/lib/src/engine/canvaskit/fonts.dart index 645407b03ac69..694a015168e87 100644 --- a/lib/web_ui/lib/src/engine/canvaskit/fonts.dart +++ b/lib/web_ui/lib/src/engine/canvaskit/fonts.dart @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +import 'dart:async'; import 'dart:convert'; import 'dart:typed_data'; @@ -22,36 +23,29 @@ const String _robotoUrl = /// Manages the fonts used in the Skia-based backend. class SkiaFontCollection implements FontCollection { - final Set _registeredFontFamilies = {}; + final Set _downloadedFontFamilies = {}; - /// Fonts that started the download process. + /// Fonts that started the download process, but are not yet registered. /// - /// Once downloaded successfully, this map is cleared and the resulting - /// [RegisteredFont]s are added to [_downloadedFonts]. - final List> _pendingFonts = >[]; + /// /// Once downloaded successfully, this map is cleared and the resulting + /// [UnregisteredFont]s are added to [_registeredFonts]. + final List _unregisteredFonts = []; - /// Fonts that have been downloaded and parsed into [SkTypeface]. - /// - /// These fonts may not yet have been registered with the [fontProvider]. This - /// happens after [ensureFontsLoaded] completes. - final List _downloadedFonts = []; + final List _registeredFonts = []; - /// Returns fonts that have been downloaded and parsed. + /// Returns fonts that have been downloaded, registered, and parsed. /// /// This should only be used in tests. - List? get debugDownloadedFonts { + List? get debugRegisteredFonts { if (!assertionsEnabled) { return null; } - return _downloadedFonts; + return _registeredFonts; } final Map> familyToFontMap = >{}; - @override - Future ensureFontsLoaded() async { - await _loadFonts(); - + void _registerWithFontProvider() { if (fontProvider != null) { fontProvider!.delete(); fontProvider = null; @@ -59,7 +53,7 @@ class SkiaFontCollection implements FontCollection { fontProvider = canvasKit.TypefaceFontProvider.Make(); familyToFontMap.clear(); - for (final RegisteredFont font in _downloadedFonts) { + for (final RegisteredFont font in _registeredFonts) { fontProvider!.registerFont(font.bytes, font.family); familyToFontMap .putIfAbsent(font.family, () => []) @@ -75,21 +69,6 @@ class SkiaFontCollection implements FontCollection { } } - /// Loads all of the unloaded fonts in [_pendingFonts] and adds them - /// to [_downloadedFonts]. - Future _loadFonts() async { - if (_pendingFonts.isEmpty) { - return; - } - final List loadedFonts = await Future.wait(_pendingFonts); - for (final RegisteredFont? font in loadedFonts) { - if (font != null) { - _downloadedFonts.add(font); - } - } - _pendingFonts.clear(); - } - @override Future loadFontFromList(Uint8List list, {String? fontFamily}) async { if (fontFamily == null) { @@ -103,8 +82,8 @@ class SkiaFontCollection implements FontCollection { final SkTypeface? typeface = canvasKit.Typeface.MakeFreeTypeFaceFromData(list.buffer); if (typeface != null) { - _downloadedFonts.add(RegisteredFont(list, fontFamily, typeface)); - await ensureFontsLoaded(); + _registeredFonts.add(RegisteredFont(list, fontFamily, typeface)); + _registerWithFontProvider(); } else { printWarning('Failed to parse font family "$fontFamily"'); return; @@ -113,7 +92,7 @@ class SkiaFontCollection implements FontCollection { /// Loads fonts from `FontManifest.json`. @override - Future registerFonts(AssetManager assetManager) async { + Future downloadAssetFonts(AssetManager assetManager) async { ByteData byteData; try { @@ -134,6 +113,8 @@ class SkiaFontCollection implements FontCollection { 'There was a problem trying to load FontManifest.json'); } + final List> pendingFonts = >[]; + for (final Map fontFamily in fontManifest.cast>()) { final String family = fontFamily.readString('family'); @@ -141,72 +122,103 @@ class SkiaFontCollection implements FontCollection { for (final dynamic fontAssetItem in fontAssets) { final Map fontAsset = fontAssetItem as Map; final String asset = fontAsset.readString('asset'); - _registerFont(assetManager.getAssetUrl(asset), family); + _downloadFont(pendingFonts, assetManager.getAssetUrl(asset), family); } } /// We need a default fallback font for CanvasKit, in order to /// avoid crashing while laying out text with an unregistered font. We chose /// Roboto to match Android. - if (!_isFontFamilyRegistered('Roboto')) { + if (!_isFontFamilyDownloaded('Roboto')) { // Download Roboto and add it to the font buffers. - _registerFont(_robotoUrl, 'Roboto'); + _downloadFont(pendingFonts, _robotoUrl, 'Roboto'); + } + + final List completedPendingFonts = await Future.wait(pendingFonts); + _unregisteredFonts.addAll(completedPendingFonts.whereType()); + } + + @override + void registerDownloadedFonts() { + RegisteredFont? makeRegisterFont(ByteBuffer buffer, String url, String family) { + final Uint8List bytes = buffer.asUint8List(); + final SkTypeface? typeface = + canvasKit.Typeface.MakeFreeTypeFaceFromData(bytes.buffer); + if (typeface != null) { + return RegisteredFont(bytes, family, typeface); + } else { + printWarning('Failed to load font $family at $url'); + printWarning('Verify that $url contains a valid font.'); + return null; + } + } + + for (final UnregisteredFont unregisteredFont in _unregisteredFonts) { + final RegisteredFont? registeredFont = makeRegisterFont( + unregisteredFont.bytes, + unregisteredFont.url, + unregisteredFont.family + ); + if (registeredFont != null) { + _registeredFonts.add(registeredFont); + } } + + _unregisteredFonts.clear(); + _registerWithFontProvider(); } /// Whether the [fontFamily] was registered and/or loaded. - bool _isFontFamilyRegistered(String fontFamily) { - return _registeredFontFamilies.contains(fontFamily); + bool _isFontFamilyDownloaded(String fontFamily) { + return _downloadedFontFamilies.contains(fontFamily); } /// Loads the Ahem font, unless it's already been loaded using - /// `FontManifest.json` (see [registerFonts]). + /// `FontManifest.json` (see [downloadAssetFonts]). /// /// `FontManifest.json` has higher priority than the default test font URLs. /// This allows customizing test environments where fonts are loaded from /// different URLs. @override - void debugRegisterTestFonts() { - if (!_isFontFamilyRegistered(ahemFontFamily)) { - _registerFont(ahemFontUrl, ahemFontFamily); + Future debugDownloadTestFonts() async { + final List> pendingFonts = >[]; + if (!_isFontFamilyDownloaded(ahemFontFamily)) { + _downloadFont(pendingFonts, ahemFontUrl, ahemFontFamily); } - if (!_isFontFamilyRegistered(robotoFontFamily)) { - _registerFont(robotoTestFontUrl, robotoFontFamily); + if (!_isFontFamilyDownloaded(robotoFontFamily)) { + _downloadFont(pendingFonts, robotoTestFontUrl, robotoFontFamily); } - if (!_isFontFamilyRegistered(robotoVariableFontFamily)) { - _registerFont(robotoVariableTestFontUrl, robotoVariableFontFamily); + if (!_isFontFamilyDownloaded(robotoVariableFontFamily)) { + _downloadFont(pendingFonts, robotoVariableTestFontUrl, robotoVariableFontFamily); } + final List completedPendingFonts = await Future.wait(pendingFonts); + _unregisteredFonts.addAll(completedPendingFonts.whereType()); + // Ahem must be added to font fallbacks list regardless of where it was // downloaded from. FontFallbackData.instance.globalFontFallbacks.add(ahemFontFamily); } - void _registerFont(String url, String family) { - Future downloadFont() async { + void _downloadFont( + List> waitUnregisteredFonts, + String url, + String family + ) { + Future downloadFont() async { ByteBuffer buffer; try { buffer = await httpFetch(url).then(_getArrayBuffer); + return UnregisteredFont(buffer, url, family); } catch (e) { printWarning('Failed to load font $family at $url'); printWarning(e.toString()); return null; } - - final Uint8List bytes = buffer.asUint8List(); - final SkTypeface? typeface = - canvasKit.Typeface.MakeFreeTypeFaceFromData(bytes.buffer); - if (typeface != null) { - return RegisteredFont(bytes, family, typeface); - } else { - printWarning('Failed to load font $family at $url'); - printWarning('Verify that $url contains a valid font.'); - return null; - } } - _registeredFontFamilies.add(family); - _pendingFonts.add(downloadFont()); + _downloadedFontFamilies.add(family); + waitUnregisteredFonts.add(downloadFont()); } @@ -249,3 +261,11 @@ class RegisteredFont { /// This is used to determine which code points are supported by this font. final SkTypeface typeface; } + +/// Represents a font that has been downloaded but not registered. +class UnregisteredFont { + const UnregisteredFont(this.bytes, this.url, this.family); + final ByteBuffer bytes; + final String url; + final String family; +} diff --git a/lib/web_ui/lib/src/engine/canvaskit/image_filter.dart b/lib/web_ui/lib/src/engine/canvaskit/image_filter.dart index 231e89f900d9c..63caf9d6ed6f7 100644 --- a/lib/web_ui/lib/src/engine/canvaskit/image_filter.dart +++ b/lib/web_ui/lib/src/engine/canvaskit/image_filter.dart @@ -4,6 +4,7 @@ import 'dart:typed_data'; +import 'package:ui/src/engine/vector_math.dart'; import 'package:ui/ui.dart' as ui; import '../util.dart'; @@ -104,6 +105,15 @@ class _CkBlurImageFilter extends CkImageFilter { @override SkImageFilter _initSkiaObject() { + /// Return the identity matrix when both sigmaX and sigmaY are 0. Replicates + /// effect of applying no filter + if (sigmaX == 0 && sigmaY == 0) { + return canvasKit.ImageFilter.MakeMatrixTransform( + toSkMatrixFromFloat32(Matrix4.identity().storage), + toSkFilterOptions(ui.FilterQuality.none), + null + ); + } return canvasKit.ImageFilter.MakeBlur( sigmaX, sigmaY, diff --git a/lib/web_ui/lib/src/engine/canvaskit/painting.dart b/lib/web_ui/lib/src/engine/canvaskit/painting.dart index 585b224bcd009..419037574b9ba 100644 --- a/lib/web_ui/lib/src/engine/canvaskit/painting.dart +++ b/lib/web_ui/lib/src/engine/canvaskit/painting.dart @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +import 'dart:convert'; import 'dart:typed_data'; import 'package:ui/ui.dart' as ui; @@ -20,7 +21,7 @@ import 'skia_object_cache.dart'; class CkPaint extends ManagedSkiaObject implements ui.Paint { CkPaint(); - static const ui.Color _defaultPaintColor = ui.Color(0xFF000000); + static const int _defaultPaintColor = 0xFF000000; @override ui.BlendMode get blendMode => _blendMode; @@ -102,17 +103,17 @@ class CkPaint extends ManagedSkiaObject implements ui.Paint { bool _isAntiAlias = true; @override - ui.Color get color => _color; + ui.Color get color => ui.Color(_color); @override set color(ui.Color value) { - if (_color == value) { + if (_color == value.value) { return; } - _color = value; + _color = value.value; skiaObject.setColorInt(value.value); } - ui.Color _color = _defaultPaintColor; + int _color = _defaultPaintColor; @override bool get invertColors => _invertColors; @@ -150,7 +151,11 @@ class CkPaint extends ManagedSkiaObject implements ui.Paint { if (_shader == value) { return; } - _shader = value as CkShader?; + if (value is CkFragmentShader) { + _shader = value.createShader(); + } else { + _shader = value as CkShader?; + } skiaObject.setShader(_shader?.withQuality(_filterQuality)); } @@ -263,7 +268,7 @@ class CkPaint extends ManagedSkiaObject implements ui.Paint { SkPaint createDefault() { final SkPaint paint = SkPaint(); paint.setAntiAlias(_isAntiAlias); - paint.setColorInt(_color.value); + paint.setColorInt(_color); return paint; } @@ -276,7 +281,7 @@ class CkPaint extends ManagedSkiaObject implements ui.Paint { paint.setStyle(toSkPaintStyle(_style)); paint.setStrokeWidth(_strokeWidth); paint.setAntiAlias(_isAntiAlias); - paint.setColorInt(_color.value); + paint.setColorInt(_color); paint.setShader(_shader?.withQuality(_filterQuality)); paint.setMaskFilter(_ckMaskFilter?.skiaObject); paint.setColorFilter(_effectiveColorFilter?.skiaObject); @@ -302,3 +307,218 @@ final Float32List _invertColorMatrix = Float32List.fromList(const [ final ManagedSkColorFilter _invertColorFilter = ManagedSkColorFilter(CkMatrixColorFilter(_invertColorMatrix)); + +class UniformData { + const UniformData({ + required this.name, + required this.location, + required this.type, + }); + + final String name; + final UniformType type; + final int location; + + static const UniformData empty = + UniformData(name: '', location: -1, type: UniformType.Float); +} + +enum UniformType { + Boolean, + SByte, + UByte, + Short, + UShort, + Int, + Uint, + Int64, + Uint64, + Half, + Float, + Double, + SampledImage, +} + +UniformType? uniformTypeFromJson(int value) { + switch (value) { + case 0: + return UniformType.Boolean; + case 1: + return UniformType.SByte; + case 2: + return UniformType.UByte; + case 3: + return UniformType.Short; + case 4: + return UniformType.UShort; + case 5: + return UniformType.Int; + case 6: + return UniformType.Uint; + case 7: + return UniformType.Int64; + case 8: + return UniformType.Uint64; + case 9: + return UniformType.Half; + case 10: + return UniformType.Float; + case 11: + return UniformType.Double; + case 12: + return UniformType.SampledImage; + } + return null; +} + +class CkFragmentProgram implements ui.FragmentProgram { + CkFragmentProgram(this.name, this.effect, this.uniforms, this.floatCount, + this.textureCount); + + static Future fromBytes(String name, Uint8List data) async { + final String contents = utf8.decode(data); + final Object? rawShaderData = json.decode(contents); + if (rawShaderData is! Map) { + throw const FormatException('Invalid Shader Data'); + } + final Object? source = rawShaderData['sksl']; + final Object? rawUniforms = rawShaderData['uniforms']; + if (source is! String || rawUniforms is! List) { + throw const FormatException('Invalid Shader Data'); + } + final SkRuntimeEffect? effect = MakeRuntimeEffect(source); + if (effect == null) { + throw const FormatException('Invalid Shader Data'); + } + + final List uniforms = List.filled(rawUniforms.length, UniformData.empty); + + int textureCount = 0; + int floatCount = 0; + for (int i = 0; i < rawUniforms.length; i += 1) { + final Object? rawUniformData = rawUniforms[i]; + if (rawUniformData is! Map) { + throw const FormatException('Invalid Shader Data'); + } + final Object? name = rawUniformData['name']; + final Object? location = rawUniformData['location']; + final Object? rawType = rawUniformData['type']; + if (name is! String || location is! int || rawType is! int) { + throw const FormatException('Invalid Shader Data'); + } + final UniformType? type = uniformTypeFromJson(rawType); + if (type == null) { + throw const FormatException('Invalid Shader Data'); + } + if (type == UniformType.SampledImage) { + textureCount += 1; + } else { + final Object? bitWidth = rawUniformData['bit_width']; + if (bitWidth is! int) { + throw const FormatException('Invalid Shader Data'); + } + floatCount += bitWidth ~/ 32; + } + uniforms[location] = UniformData( + name: name, + location: location, + type: type, + ); + } + return CkFragmentProgram( + name, + effect, + uniforms, + floatCount, + textureCount, + ); + } + + final String name; + final SkRuntimeEffect effect; + final List uniforms; + final int floatCount; + final int textureCount; + + @override + ui.FragmentShader fragmentShader() { + return CkFragmentShader(name, effect, floatCount, textureCount); + } +} + +class CkFragmentShader implements ui.FragmentShader { + CkFragmentShader(this.name, this.effect, int floatCount, int textureCount) + : floats = List.filled(floatCount + textureCount * 2, 0), + samplers = List.filled(textureCount, null), + lastFloatIndex = floatCount; + + final String name; + final SkRuntimeEffect effect; + final int lastFloatIndex; + final List floats; + final List samplers; + + CkShader createShader() { + return CkFragmentInstance(name, effect, floats, samplers); + } + + @override + void setFloat(int index, double value) { + floats[index] = value; + } + + @override + void setSampler(int index, ui.ImageShader sampler) { + samplers[index] = (sampler as CkShader).skiaObject; + setFloat(lastFloatIndex + 2 * index, (sampler as CkImageShader).imageWidth.toDouble()); + setFloat(lastFloatIndex + 2 * index + 1, sampler.imageHeight.toDouble()); + } + + @override + void dispose() { + assert(() { + _debugDisposed = true; + return true; + }()); + } + + bool _debugDisposed = false; + + @override + bool get debugDisposed => _debugDisposed; +} + +class CkFragmentInstance extends CkShader { + CkFragmentInstance(this.name, this.effect, this.floats, this.shaders); + + final String name; + final SkRuntimeEffect effect; + final List floats; + final List shaders; + + @override + SkShader createDefault() { + final SkShader? result = shaders.isEmpty + ? effect.makeShader(floats) + : effect.makeShaderWithChildren(floats, shaders); + if (result == null) { + throw Exception('Invalid uniform data for shader $name:' + ' floatUniforms: $floats \n' + ' samplerUniforms: $shaders \n'); + } + return result; + } + + @override + SkShader resurrect() { + final SkShader? result = shaders.isEmpty + ? effect.makeShader(floats) + : effect.makeShaderWithChildren(floats, shaders); + if (result == null) { + throw Exception('Invalid uniform data for shader $name:' + ' floatUniforms: $floats \n' + ' samplerUniforms: $shaders \n'); + } + return result; + } +} diff --git a/lib/web_ui/lib/src/engine/canvaskit/path_metrics.dart b/lib/web_ui/lib/src/engine/canvaskit/path_metrics.dart index c1d4288ed0ef0..4f42d0e857f47 100644 --- a/lib/web_ui/lib/src/engine/canvaskit/path_metrics.dart +++ b/lib/web_ui/lib/src/engine/canvaskit/path_metrics.dart @@ -20,7 +20,7 @@ class CkPathMetrics extends IterableBase /// The [CkPath.isEmpty] case is special-cased to avoid booting the WASM machinery just to find out there are no contours. @override - Iterator get iterator => _path.isEmpty + late final Iterator iterator = _path.isEmpty ? const CkPathMetricIteratorEmpty._() : CkContourMeasureIter(this); } @@ -42,7 +42,7 @@ class CkContourMeasureIter extends ManagedSkiaObject if (currentMetric == null) { throw RangeError( 'PathMetricIterator is not pointing to a PathMetric. This can happen in two situations:\n' - '- The iteration has not started yet. If so, call "moveNext" to start iteration.' + '- The iteration has not started yet. If so, call "moveNext" to start iteration.\n' '- The iterator ran out of elements. If so, check that "moveNext" returns true prior to calling "current".'); } return currentMetric; diff --git a/lib/web_ui/lib/src/engine/canvaskit/picture.dart b/lib/web_ui/lib/src/engine/canvaskit/picture.dart index e70c28612254b..87a94db734c97 100644 --- a/lib/web_ui/lib/src/engine/canvaskit/picture.dart +++ b/lib/web_ui/lib/src/engine/canvaskit/picture.dart @@ -6,13 +6,14 @@ import 'dart:typed_data'; import 'package:ui/ui.dart' as ui; -import '../dom.dart'; import '../profiler.dart'; import '../util.dart'; import 'canvas.dart'; import 'canvaskit_api.dart'; import 'image.dart'; import 'skia_object_cache.dart'; +import 'surface.dart'; +import 'surface_factory.dart'; /// Implements [ui.Picture] on top of [SkPicture]. /// @@ -101,12 +102,13 @@ class CkPicture extends ManagedSkiaObject implements ui.Picture { @override ui.Image toImageSync(int width, int height) { assert(debugCheckNotDisposed('Cannot convert picture to image.')); - final DomCanvasElement tempCanvas = - createDomCanvasElement(width: width, height: height); - final SkSurface skSurface = canvasKit.MakeWebGLCanvasSurface(tempCanvas); - final SkCanvas skCanvas = skSurface.getCanvas(); - skCanvas.drawPicture(skiaObject); - final SkImage skImage = skSurface.makeImageSnapshot(); + final Surface surface = SurfaceFactory.instance.pictureToImageSurface; + final CkSurface ckSurface = + surface.createOrUpdateSurface(ui.Size(width.toDouble(), height.toDouble())); + final CkCanvas ckCanvas = ckSurface.getCanvas(); + ckCanvas.clear(const ui.Color(0x00000000)); + ckCanvas.drawPicture(this); + final SkImage skImage = ckSurface.surface.makeImageSnapshot(); final SkImageInfo imageInfo = SkImageInfo( alphaType: canvasKit.AlphaType.Premul, colorType: canvasKit.ColorType.RGBA_8888, @@ -116,8 +118,6 @@ class CkPicture extends ManagedSkiaObject implements ui.Picture { ); final Uint8List pixels = skImage.readPixels(0, 0, imageInfo); final SkImage? rasterImage = canvasKit.MakeImage(imageInfo, pixels, 4 * width); - skSurface.dispose(); - tempCanvas.remove(); if (rasterImage == null) { throw StateError('Unable to convert image pixels into SkImage.'); } diff --git a/lib/web_ui/lib/src/engine/canvaskit/renderer.dart b/lib/web_ui/lib/src/engine/canvaskit/renderer.dart index 93f229fc78339..0dba09e70e588 100644 --- a/lib/web_ui/lib/src/engine/canvaskit/renderer.dart +++ b/lib/web_ui/lib/src/engine/canvaskit/renderer.dart @@ -11,6 +11,7 @@ import 'package:ui/ui.dart' as ui; import '../dom.dart'; import '../embedder.dart'; import '../html_image_codec.dart'; +import '../initialization.dart'; import '../profiler.dart'; import '../renderer.dart'; import 'canvaskit_api.dart'; @@ -25,7 +26,6 @@ import 'picture_recorder.dart'; import 'rasterizer.dart'; import 'shader.dart'; import 'text.dart'; -import 'util.dart'; import 'vertices.dart'; class CanvasKitRenderer implements Renderer { @@ -52,12 +52,6 @@ class CanvasKitRenderer implements Renderer { Future initialize() async { if (windowFlutterCanvasKit != null) { canvasKit = windowFlutterCanvasKit!; - } else if (useH5vccCanvasKit) { - if (h5vcc?.canvasKit == null) { - throw CanvasKitError('H5vcc CanvasKit implementation not found.'); - } - canvasKit = h5vcc!.canvasKit!; - windowFlutterCanvasKit = canvasKit; } else { canvasKit = await downloadCanvasKit(); windowFlutterCanvasKit = canvasKit; @@ -377,4 +371,24 @@ class CanvasKitRenderer implements Renderer { rasterizer.draw((scene as LayerScene).layerTree); frameTimingsOnRasterFinish(); } + + @override + void clearFragmentProgramCache() { + _programs.clear(); + } + + static final Map> _programs = >{}; + + @override + Future createFragmentProgram(String assetKey) { + if (_programs.containsKey(assetKey)) { + return _programs[assetKey]!; + } + if (!isRuntimeEffectAvailable) { + throw Exception('FragmentProgram is not supported.'); + } + return _programs[assetKey] = assetManager.load(assetKey).then((ByteData data) { + return CkFragmentProgram.fromBytes(assetKey, data.buffer.asUint8List()); + }); + } } diff --git a/lib/web_ui/lib/src/engine/canvaskit/shader.dart b/lib/web_ui/lib/src/engine/canvaskit/shader.dart index 53144103abfec..86888480aa3db 100644 --- a/lib/web_ui/lib/src/engine/canvaskit/shader.dart +++ b/lib/web_ui/lib/src/engine/canvaskit/shader.dart @@ -199,6 +199,10 @@ class CkImageShader extends CkShader implements ui.ImageShader { final ui.FilterQuality? filterQuality; final CkImage _image; + int get imageWidth => _image.width; + + int get imageHeight => _image.height; + ui.FilterQuality? _cachedQuality; @override SkShader withQuality(ui.FilterQuality contextualQuality) { diff --git a/lib/web_ui/lib/src/engine/canvaskit/surface.dart b/lib/web_ui/lib/src/engine/canvaskit/surface.dart index 7e859ba394864..728913ad16342 100644 --- a/lib/web_ui/lib/src/engine/canvaskit/surface.dart +++ b/lib/web_ui/lib/src/engine/canvaskit/surface.dart @@ -142,11 +142,6 @@ class Surface { /// Creates a and SkSurface for the given [size]. CkSurface createOrUpdateSurface(ui.Size size) { - if (useH5vccCanvasKit) { - _surface ??= CkSurface(canvasKit.getH5vccSkSurface(), null); - return _surface!; - } - if (size.isEmpty) { throw CanvasKitError('Cannot create surfaces of empty size.'); } @@ -178,6 +173,9 @@ class Surface { // new canvas larger than required to avoid many canvas creations. final ui.Size newSize = previousCanvasSize == null ? size : size * 1.4; + // If we have a surface, send a dummy command to its canvas to make its context + // current or else disposing the context could fail below. + _surface?.getCanvas().clear(const ui.Color(0x00000000)); _surface?.dispose(); _surface = null; _addedToScene = false; diff --git a/lib/web_ui/lib/src/engine/canvaskit/surface_factory.dart b/lib/web_ui/lib/src/engine/canvaskit/surface_factory.dart index 2165287ef169e..c0a1b4f3c5119 100644 --- a/lib/web_ui/lib/src/engine/canvaskit/surface_factory.dart +++ b/lib/web_ui/lib/src/engine/canvaskit/surface_factory.dart @@ -46,6 +46,10 @@ class SurfaceFactory { /// all painting commands. final Surface baseSurface = Surface(); + /// A surface used specifically for `Picture.toImage` calls, which can be + /// reused in order to avoid creating too many WebGL contexts. + late final Surface pictureToImageSurface = Surface(); + /// The maximum number of surfaces which can be live at once. final int maximumSurfaces; @@ -81,7 +85,7 @@ class SurfaceFactory { /// Gets an overlay surface from the cache or creates a new one if it wouldn't /// exceed the maximum. If there are no available surfaces, returns `null`. - Surface? getOverlay() { + Surface? getSurface() { if (_cache.isNotEmpty) { final Surface surface = _cache.removeLast(); _liveSurfaces.add(surface); diff --git a/lib/web_ui/lib/src/engine/dom.dart b/lib/web_ui/lib/src/engine/dom.dart index 86ab835a798ec..d8a9e49480155 100644 --- a/lib/web_ui/lib/src/engine/dom.dart +++ b/lib/web_ui/lib/src/engine/dom.dart @@ -19,6 +19,8 @@ import 'package:js/js_util.dart' as js_util; /// these classes will be replaced by typedefs. /// NOTE: Currently, optional parameters do not behave as expected. /// For the time being, avoid passing optional parameters directly to JS. +/// NOTE: Please avoid typing external JS functions with `int`, as passing ints +/// to and from JS is not supported on all web backends. @JS() @staticInterop @@ -29,8 +31,10 @@ extension DomWindowExtension on DomWindow { external num get devicePixelRatio; external DomDocument get document; external DomHistory get history; - external int? get innerHeight; - external int? get innerWidth; + int? get innerHeight => + js_util.getProperty(this, 'innerHeight')?.toInt(); + int? get innerWidth => + js_util.getProperty(this, 'innerWidth')?.toInt(); external DomLocation get location; external DomNavigator get navigator; external DomVisualViewport? get visualViewport; @@ -48,7 +52,9 @@ extension DomWindowExtension on DomWindow { if (pseudoElt != null) pseudoElt ]) as DomCSSStyleDeclaration; external DomScreen? get screen; - external int requestAnimationFrame(DomRequestAnimationFrameCallback callback); + int requestAnimationFrame(DomRequestAnimationFrameCallback callback) => + js_util.callMethod(this, 'requestAnimationFrame', + [callback]).toInt(); void postMessage(Object message, String targetOrigin, [List? messagePorts]) => js_util.callMethod(this, 'postMessage', [ @@ -56,6 +62,10 @@ extension DomWindowExtension on DomWindow { targetOrigin, if (messagePorts != null) js_util.jsify(messagePorts) ]); + + /// The Trusted Types API (when available). + /// See: https://developer.mozilla.org/en-US/docs/Web/API/Trusted_Types_API + external DomTrustedTypePolicyFactory? get trustedTypes; } typedef DomRequestAnimationFrameCallback = void Function(num highResTime); @@ -66,6 +76,7 @@ class DomConsole {} extension DomConsoleExtension on DomConsole { external void warn(Object? arg); + external void error(Object? arg); } @JS('window') @@ -77,7 +88,8 @@ class DomNavigator {} extension DomNavigatorExtension on DomNavigator { external DomClipboard? get clipboard; - external int? get maxTouchPoints; + int? get maxTouchPoints => + js_util.getProperty(this, 'maxTouchPoints')?.toInt(); external String get vendor; external String get language; external String? get platform; @@ -106,7 +118,9 @@ extension DomDocumentExtension on DomDocument { external DomText createTextNode(String data); external DomEvent createEvent(String eventType); external DomElement? get activeElement; - external DomElement? elementFromPoint(int x, int y); + DomElement? elementFromPoint(int x, int y) => + js_util.callMethod(this, 'elementFromPoint', + [x.toDouble(), y.toDouble()]); } @JS() @@ -185,8 +199,10 @@ DomEvent createDomEvent(String type, String name) { class DomProgressEvent extends DomEvent {} extension DomProgressEventExtension on DomProgressEvent { - external int? get loaded; - external int? get total; + int? get loaded => + js_util.getProperty(this, 'loaded')?.toInt(); + int? get total => + js_util.getProperty(this, 'total')?.toInt(); } @JS() @@ -237,8 +253,10 @@ DomElement createDomElement(String tag) => domDocument.createElement(tag); extension DomElementExtension on DomElement { Iterable get children => createDomListWrapper( js_util.getProperty<_DomList>(this, 'children')); - external int get clientHeight; - external int get clientWidth; + int get clientHeight => + js_util.getProperty(this, 'clientHeight').toInt(); + int get clientWidth => + js_util.getProperty(this, 'clientWidth').toInt(); external String get id; external set id(String id); external set innerHtml(String? html); @@ -258,22 +276,18 @@ extension DomElementExtension on DomElement { external void setAttribute(String name, Object value); void appendText(String text) => append(createDomText(text)); external void removeAttribute(String name); - external set tabIndex(int? value); - external int? get tabIndex; + set tabIndex(int? value) => + js_util.setProperty(this, 'tabIndex', value?.toDouble()); + int? get tabIndex => + js_util.getProperty(this, 'tabIndex')?.toInt(); external void focus(); - - /// [scrollTop] and [scrollLeft] can both return non-integers when using - /// display scaling. - /// - /// The setters have a spurious round just in case the supplied [int] flowed - /// from the non-static interop JS API. When all of Flutter Web has been - /// migrated to static interop we can probably remove the rounds. - int get scrollTop => (js_util.getProperty(this, 'scrollTop') as num).round(); + int get scrollTop => js_util.getProperty(this, 'scrollTop').toInt(); set scrollTop(int value) => - js_util.setProperty(this, 'scrollTop', value); - int get scrollLeft => (js_util.getProperty(this, 'scrollLeft') as num).round(); + js_util.setProperty(this, 'scrollTop', value.toDouble()); + int get scrollLeft => + js_util.getProperty(this, 'scrollLeft').toInt(); set scrollLeft(int value) => - js_util.setProperty(this, 'scrollLeft', value); + js_util.setProperty(this, 'scrollLeft', value.toDouble()); external DomTokenList get classList; external set className(String value); external String get className; @@ -318,6 +332,7 @@ extension DomCSSStyleDeclarationExtension on DomCSSStyleDeclaration { set right(String value) => setProperty('right', value); set bottom(String value) => setProperty('bottom', value); set backgroundColor(String value) => setProperty('background-color', value); + set caretColor(String value) => setProperty('caret-color', value); set pointerEvents(String value) => setProperty('pointer-events', value); set filter(String value) => setProperty('filter', value); set zIndex(String value) => setProperty('z-index', value); @@ -386,6 +401,7 @@ extension DomCSSStyleDeclarationExtension on DomCSSStyleDeclaration { String get right => getPropertyValue('right'); String get bottom => getPropertyValue('bottom'); String get backgroundColor => getPropertyValue('background-color'); + String get caretColor => getPropertyValue('caret-color'); String get pointerEvents => getPropertyValue('pointer-events'); String get filter => getPropertyValue('filter'); String get zIndex => getPropertyValue('z-index'); @@ -451,7 +467,8 @@ extension DomCSSStyleDeclarationExtension on DomCSSStyleDeclaration { class DomHTMLElement extends DomElement {} extension DomHTMLElementExtension on DomHTMLElement { - int get offsetWidth => js_util.getProperty(this, 'offsetWidth') as int; + int get offsetWidth => + js_util.getProperty(this, 'offsetWidth').toInt(); } @JS() @@ -489,10 +506,14 @@ extension DomHTMLImageElementExtension on DomHTMLImageElement { external set alt(String? value); external String? get src; external set src(String? value); - external int get naturalWidth; - external int get naturalHeight; - external set width(int? value); - external set height(int? value); + int get naturalWidth => + js_util.getProperty(this, 'naturalWidth').toInt(); + int get naturalHeight => + js_util.getProperty(this, 'naturalHeight').toInt(); + set width(int? value) => + js_util.setProperty(this, 'width', value?.toDouble()); + set height(int? value) => + js_util.setProperty(this, 'height', value?.toDouble()); Future decode() => js_util.promiseToFuture(js_util.callMethod(this, 'decode', [])); } @@ -502,7 +523,7 @@ extension DomHTMLImageElementExtension on DomHTMLImageElement { class DomHTMLScriptElement extends DomHTMLElement {} extension DomHTMLScriptElementExtension on DomHTMLScriptElement { - external set src(String value); + external set src(Object /* String|TrustedScriptURL */ value); } DomHTMLScriptElement createDomHTMLScriptElement() => @@ -584,10 +605,14 @@ DomCanvasElement createDomCanvasElement({int? width, int? height}) { } extension DomCanvasElementExtension on DomCanvasElement { - external int? get width; - external set width(int? value); - external int? get height; - external set height(int? value); + int? get width => + js_util.getProperty(this, 'width')?.toInt(); + set width(int? value) => + js_util.setProperty(this, 'width', value?.toDouble()); + int? get height => + js_util.getProperty(this, 'height')?.toInt(); + set height(int? value) => + js_util.setProperty(this, 'height', value?.toDouble()); external bool? get isConnected; String toDataURL([String type = 'image/png']) => js_util.callMethod(this, 'toDataURL', [type]); @@ -616,6 +641,8 @@ extension DomCanvasRenderingContext2DExtension on DomCanvasRenderingContext2D { external set fillStyle(Object? style); external String get font; external set font(String value); + external String get direction; + external set direction(String value); external set lineWidth(num? value); external set strokeStyle(Object? value); external Object? get strokeStyle; @@ -633,7 +660,9 @@ extension DomCanvasRenderingContext2DExtension on DomCanvasRenderingContext2D { void fillText(String text, num x, num y, [num? maxWidth]) => js_util.callMethod(this, 'fillText', [text, x, y, if (maxWidth != null) maxWidth]); - external DomImageData getImageData(int x, int y, int sw, int sh); + DomImageData getImageData(int x, int y, int sw, int sh) => + js_util.callMethod(this, 'getImageData', + [x.toDouble(), y.toDouble(), sw.toDouble(), sh.toDouble()]); external void lineTo(num x, num y); external DomTextMetrics measureText(String text); external void moveTo(num x, num y); @@ -671,12 +700,21 @@ extension DomCanvasRenderingContext2DExtension on DomCanvasRenderingContext2D { external set globalAlpha(num? value); } +@JS() +@staticInterop +class DomCanvasRenderingContextWebGl {} + +extension DomCanvasRenderingContextWebGlExtension on DomCanvasRenderingContextWebGl { + external bool isContextLost(); +} + @JS() @staticInterop class DomImageData {} DomImageData createDomImageData(Object? data, int sw, int sh) => js_util - .callConstructor(domGetConstructor('ImageData')!, [data, sw, sh]); + .callConstructor(domGetConstructor('ImageData')!, [data, + sw.toDouble(), sh.toDouble()]); extension DomImageDataExtension on DomImageData { external Uint8ClampedList get data; @@ -710,7 +748,8 @@ extension DomXMLHttpRequestExtension on DomXMLHttpRequest { external dynamic get response; external String? get responseText; external String get responseType; - external int? get status; + int? get status => + js_util.getProperty(this, 'status')?.toInt(); external set responseType(String value); void open(String method, String url, [bool? async]) => js_util.callMethod( this, 'open', [method, url, if (async != null) async]); @@ -740,7 +779,7 @@ Future domHttpRequest(String url, } })); - xhr.addEventListener('error', allowInterop(completer.completeError)); + xhr.addEventListener('error', allowInterop((DomEvent event) => completer.completeError(event))); xhr.send(sendData); return completer.future; } @@ -864,7 +903,8 @@ extension DomHTMLTextAreaElementExtension on DomHTMLTextAreaElement { external String? get value; void setSelectionRange(int start, int end, [String? direction]) => js_util.callMethod(this, 'setSelectionRange', - [start, end, if (direction != null) direction]); + [start.toDouble(), end.toDouble(), + if (direction != null) direction]); external String get name; external String get placeholder; } @@ -905,8 +945,10 @@ extension DomKeyboardEventExtension on DomKeyboardEvent { external String? get code; external bool get ctrlKey; external String? get key; - external int get keyCode; - external int get location; + int get keyCode => + js_util.getProperty(this, 'keyCode').toInt(); + int get location => + js_util.getProperty(this, 'location').toInt(); external bool get metaKey; external bool? get repeat; external bool get shiftKey; @@ -919,7 +961,9 @@ class DomHistory {} extension DomHistoryExtension on DomHistory { dynamic get state => js_util.dartify(js_util.getProperty(this, 'state')); - external void go([int? delta]); + void go([int? delta]) => + js_util.callMethod(this, 'go', + [if (delta != null) delta.toDouble()]); void pushState(dynamic data, String title, String? url) => js_util.callMethod(this, 'pushState', [ if (data is Map || data is Iterable) js_util.jsify(data as Object) else data, @@ -1065,8 +1109,10 @@ extension DomMouseEventExtension on DomMouseEvent { external num get offsetY; DomPoint get client => DomPoint(clientX, clientY); DomPoint get offset => DomPoint(offsetX, offsetY); - external int get button; - external int? get buttons; + int get button => + js_util.getProperty(this, 'button').toInt(); + int? get buttons => + js_util.getProperty(this, 'buttons')?.toInt(); external bool getModifierState(String keyArg); } @@ -1079,11 +1125,14 @@ DomMouseEvent createDomMouseEvent(String type, [Map? init]) => class DomPointerEvent extends DomMouseEvent {} extension DomPointerEventExtension on DomPointerEvent { - external int? get pointerId; + int? get pointerId => + js_util.getProperty(this, 'pointerId')?.toInt(); external String? get pointerType; external num? get pressure; - external int? get tiltX; - external int? get tiltY; + int? get tiltX => + js_util.getProperty(this, 'tiltX')?.toInt(); + int? get tiltY => + js_util.getProperty(this, 'tiltY')?.toInt(); List getCoalescedEvents() => js_util.callMethod>( this, 'getCoalescedEvents', []).cast(); @@ -1101,7 +1150,8 @@ class DomWheelEvent extends DomMouseEvent {} extension DomWheelEventExtension on DomWheelEvent { external num get deltaX; external num get deltaY; - external int get deltaMode; + int get deltaMode => + js_util.getProperty(this, 'deltaMode').toInt(); } @JS() @@ -1109,6 +1159,10 @@ extension DomWheelEventExtension on DomWheelEvent { class DomTouchEvent extends DomUIEvent {} extension DomTouchEventExtension on DomTouchEvent { + external bool get altKey; + external bool get ctrlKey; + external bool get metaKey; + external bool get shiftKey; List? get changedTouches => js_util .getProperty?>(this, 'changedTouches') ?.cast(); @@ -1119,7 +1173,8 @@ extension DomTouchEventExtension on DomTouchEvent { class DomTouch {} extension DomTouchExtension on DomTouch { - external int? get identifier; + int? get identifier => + js_util.getProperty(this, 'identifier')?.toInt(); external num get clientX; external num get clientY; DomPoint get client => DomPoint(clientX, clientY); @@ -1161,13 +1216,18 @@ extension DomHTMLInputElementExtension on DomHTMLInputElement { external set placeholder(String? value); external set name(String? value); external set autocomplete(String value); - external int? get selectionStart; - external int? get selectionEnd; - external set selectionStart(int? value); - external set selectionEnd(int? value); + int? get selectionStart => + js_util.getProperty(this, 'selectionStart')?.toInt(); + int? get selectionEnd => + js_util.getProperty(this, 'selectionEnd')?.toInt(); + set selectionStart(int? value) => + js_util.setProperty(this, 'selectionStart', value?.toDouble()); + set selectionEnd(int? value) => + js_util.setProperty(this, 'selectionEnd', value?.toDouble()); void setSelectionRange(int start, int end, [String? direction]) => js_util.callMethod(this, 'setSelectionRange', - [start, end, if (direction != null) direction]); + [start.toDouble(), end.toDouble(), + if (direction != null) direction]); external String get autocomplete; external String? get name; external String? get type; @@ -1212,10 +1272,14 @@ DomHTMLLabelElement createDomHTMLLabelElement() => class DomOffscreenCanvas extends DomEventTarget {} extension DomOffscreenCanvasExtension on DomOffscreenCanvas { - external int? get height; - external int? get width; - external set height(int? value); - external set width(int? value); + int? get height => + js_util.getProperty(this, 'height')?.toInt(); + int? get width => + js_util.getProperty(this, 'width')?.toInt(); + set height(int? value) => + js_util.setProperty(this, 'height', value?.toDouble()); + set width(int? value) => + js_util.setProperty(this, 'width', value?.toDouble()); Object? getContext(String contextType, [Map? attributes]) { return js_util.callMethod(this, 'getContext', [ contextType, @@ -1230,7 +1294,8 @@ extension DomOffscreenCanvasExtension on DomOffscreenCanvas { DomOffscreenCanvas createDomOffscreenCanvas(int width, int height) => js_util.callConstructor( - domGetConstructor('OffscreenCanvas')!, [width, height]); + domGetConstructor('OffscreenCanvas')!, + [width.toDouble(), height.toDouble()]); @JS() @staticInterop @@ -1264,7 +1329,9 @@ extension DomShadowRootExtension on DomShadowRoot { external DomElement? get host; external String? get mode; external bool? get delegatesFocus; - external DomElement? elementFromPoint(int x, int y); + DomElement? elementFromPoint(int x, int y) => + js_util.callMethod(this, 'elementFromPoint', + [x.toDouble(), y.toDouble()]); } @JS() @@ -1278,7 +1345,9 @@ class DomCSSStyleSheet extends DomStyleSheet {} extension DomCSSStyleSheetExtension on DomCSSStyleSheet { external DomCSSRuleList get cssRules; int insertRule(String rule, [int? index]) => js_util - .callMethod(this, 'insertRule', [rule, if (index != null) index]); + .callMethod( + this, 'insertRule', + [rule, if (index != null) index.toDouble()]).toInt(); } @JS() @@ -1387,7 +1456,129 @@ extension DomMessageChannelExtension on DomMessageChannel { class DomCSSRuleList {} extension DomCSSRuleListExtension on DomCSSRuleList { - external int get length; + int get length => + js_util.getProperty(this, 'length').toInt(); +} + +/// A factory to create `TrustedTypePolicy` objects. +/// See: https://developer.mozilla.org/en-US/docs/Web/API/TrustedTypePolicyFactory +@JS() +@staticInterop +abstract class DomTrustedTypePolicyFactory {} + +/// A subset of TrustedTypePolicyFactory methods. +extension DomTrustedTypePolicyFactoryExtension on DomTrustedTypePolicyFactory { + /// Creates a TrustedTypePolicy object named `policyName` that implements the + /// rules passed as `policyOptions`. + external DomTrustedTypePolicy createPolicy( + String policyName, + DomTrustedTypePolicyOptions? policyOptions, + ); +} + +/// Options to create a trusted type policy. +/// +/// The options are user-defined functions for converting strings into trusted +/// values. +/// +/// See: https://developer.mozilla.org/en-US/docs/Web/API/TrustedTypePolicyFactory/createPolicy#policyoptions +@JS() +@staticInterop +@anonymous +abstract class DomTrustedTypePolicyOptions { + /// Constructs a TrustedTypePolicyOptions object in JavaScript. + /// + /// `createScriptURL` is a callback function that contains code to run when + /// creating a TrustedScriptURL object. + /// + /// The following properties need to be manually wrapped in [allowInterop] + /// before being passed to this constructor: [createScriptURL]. + external factory DomTrustedTypePolicyOptions({ + DomCreateScriptUrlOptionFn? createScriptURL, + }); +} + +/// Type of the function used to configure createScriptURL. +typedef DomCreateScriptUrlOptionFn = String? Function(String input); + +/// A TrustedTypePolicy defines a group of functions which create TrustedType +/// objects. +/// +/// TrustedTypePolicy objects are created by `TrustedTypePolicyFactory.createPolicy`, +/// therefore this class has no constructor. +/// +/// See: https://developer.mozilla.org/en-US/docs/Web/API/TrustedTypePolicy +@JS() +@staticInterop +abstract class DomTrustedTypePolicy {} + +/// A subset of TrustedTypePolicy methods. +extension DomTrustedTypePolicyExtension on DomTrustedTypePolicy { + /// Creates a `TrustedScriptURL` for the given [input]. + /// + /// `input` is a string containing the data to be _sanitized_ by the policy. + external DomTrustedScriptURL createScriptURL(String input); +} + +/// Represents a string that a developer can insert into an _injection sink_ +/// that will parse it as an external script. +/// +/// These objects are created via `createScriptURL` and therefore have no +/// constructor. +/// +/// See: https://developer.mozilla.org/en-US/docs/Web/API/TrustedScriptURL +@JS() +@staticInterop +abstract class DomTrustedScriptURL {} + +/// A subset of TrustedScriptURL methods. +extension DomTrustedScriptUrlExtension on DomTrustedScriptURL { + /// Exposes the `toString` JS method of TrustedScriptURL. + String get url => js_util.callMethod(this, 'toString', []); +} + +// The expected set of files that the flutter-engine TrustedType policy is going +// to accept as valid. +const Set _expectedFilesForTT = { + 'canvaskit.js', +}; + +// The definition of the `flutter-engine` TrustedType policy. +// Only accessible if the Trusted Types API is available. +final DomTrustedTypePolicy _ttPolicy = domWindow.trustedTypes!.createPolicy( + 'flutter-engine', + DomTrustedTypePolicyOptions( + // Validates the given [url]. + createScriptURL: allowInterop( + (String url) { + final Uri uri = Uri.parse(url); + if (_expectedFilesForTT.contains(uri.pathSegments.last)) { + return uri.toString(); + } + domWindow.console + .error('URL rejected by TrustedTypes policy flutter-engine: $url' + '(download prevented)'); + + return null; + }, + ), + ), +); + +/// Converts a String `url` into a [DomTrustedScriptURL] object when the +/// Trusted Types API is available, else returns the unmodified `url`. +Object createTrustedScriptUrl(String url) { + if (domWindow.trustedTypes != null) { + // Pass `url` through Flutter Engine's TrustedType policy. + final DomTrustedScriptURL trustedCanvasKitUrl = + _ttPolicy.createScriptURL(url); + + assert(trustedCanvasKitUrl.url != '', + 'URL: $url rejected by TrustedTypePolicy'); + + return trustedCanvasKitUrl; + } + return url; } DomMessageChannel createDomMessageChannel() => @@ -1425,9 +1616,10 @@ bool domInstanceOfString(Object? element, String objectType) => class _DomList {} extension DomListExtension on _DomList { - external int get length; + int get length => + js_util.getProperty(this, 'length').toInt(); DomNode item(int index) => - js_util.callMethod(this, 'item', [index]); + js_util.callMethod(this, 'item', [index.toDouble()]); } class _DomListIterator extends Iterator { diff --git a/lib/web_ui/lib/src/engine/embedder.dart b/lib/web_ui/lib/src/engine/embedder.dart index 7c2b0ffaf6787..42479a07c8b2f 100644 --- a/lib/web_ui/lib/src/engine/embedder.dart +++ b/lib/web_ui/lib/src/engine/embedder.dart @@ -323,8 +323,8 @@ class FlutterViewEmbedder { _sceneHostElement!.style.opacity = '0.3'; } - PointerBinding.initInstance(glassPaneElement); - KeyboardBinding.initInstance(glassPaneElement); + KeyboardBinding.initInstance(); + PointerBinding.initInstance(glassPaneElement, KeyboardBinding.instance!.converter); if (domWindow.visualViewport == null && isWebKit) { // Older Safari versions sometimes give us bogus innerWidth/innerHeight diff --git a/lib/web_ui/lib/src/engine/engine_canvas.dart b/lib/web_ui/lib/src/engine/engine_canvas.dart index ba956254ce40f..297319a082371 100644 --- a/lib/web_ui/lib/src/engine/engine_canvas.dart +++ b/lib/web_ui/lib/src/engine/engine_canvas.dart @@ -264,7 +264,7 @@ DomElement drawParagraphElement( }) { assert(paragraph.isLaidOut); - final DomHTMLElement paragraphElement = paragraph.toDomElement(); + final DomElement paragraphElement = paragraph.toDomElement(); if (transform != null) { setElementTransform( diff --git a/lib/web_ui/lib/src/engine/fonts.dart b/lib/web_ui/lib/src/engine/fonts.dart index 0dd6c816c8357..f124e88f94a47 100644 --- a/lib/web_ui/lib/src/engine/fonts.dart +++ b/lib/web_ui/lib/src/engine/fonts.dart @@ -2,14 +2,33 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +import 'dart:async'; import 'dart:typed_data'; import 'assets.dart'; abstract class FontCollection { + + /// Fonts loaded with [loadFontFromList] do not need to be registered + /// with [registerDownloadedFonts]. Fonts are both downloaded and registered + /// with [loadFontFromList] calls. Future loadFontFromList(Uint8List list, {String? fontFamily}); - Future ensureFontsLoaded(); - Future registerFonts(AssetManager assetManager); - void debugRegisterTestFonts(); + + /// Completes when fonts from FontManifest.json have been downloaded. + Future downloadAssetFonts(AssetManager assetManager); + + /// Registers both downloaded fonts and fallback fonts with the TypefaceFontProvider. + /// + /// Downloading of fonts happens separately from registering of fonts so that + /// the download step can happen concurrently with the initalization of the renderer. + /// + /// The correct order of calls to register downloaded fonts: + /// 1) [downloadAssetFonts] + /// 2) [registerDownloadedFonts] + /// + /// For fallbackFonts, call registerFallbackFont (see font_fallbacks.dart) + /// for each fallback font before calling [registerDownloadedFonts] + void registerDownloadedFonts(); + FutureOr debugDownloadTestFonts(); void clear(); } diff --git a/lib/web_ui/lib/src/engine/html/bitmap_canvas.dart b/lib/web_ui/lib/src/engine/html/bitmap_canvas.dart index e0c70ebb703e1..844c8290ac7d0 100644 --- a/lib/web_ui/lib/src/engine/html/bitmap_canvas.dart +++ b/lib/web_ui/lib/src/engine/html/bitmap_canvas.dart @@ -399,7 +399,7 @@ class BitmapCanvas extends EngineCanvas { @override void drawColor(ui.Color color, ui.BlendMode blendMode) { final SurfacePaintData paintData = SurfacePaintData() - ..color = color + ..color = color.value ..blendMode = blendMode; if (_useDomForRenderingFill(paintData)) { drawRect(_computeScreenBounds(_canvasPool.currentTransform), paintData); @@ -440,13 +440,10 @@ class BitmapCanvas extends EngineCanvas { @override void drawRect(ui.Rect rect, SurfacePaintData paint) { if (_useDomForRenderingFillAndStroke(paint)) { + rect = adjustRectForDom(rect, paint); final DomHTMLElement element = buildDrawRectElement( rect, paint, 'draw-rect', _canvasPool.currentTransform); - _drawElement( - element, - ui.Offset( - math.min(rect.left, rect.right), math.min(rect.top, rect.bottom)), - paint); + _drawElement(element, rect.topLeft, paint); } else { setUpPaint(paint, rect); _canvasPool.drawRect(rect, paint.style); @@ -482,16 +479,12 @@ class BitmapCanvas extends EngineCanvas { @override void drawRRect(ui.RRect rrect, SurfacePaintData paint) { - final ui.Rect rect = rrect.outerRect; if (_useDomForRenderingFillAndStroke(paint)) { + final ui.Rect rect = adjustRectForDom(rrect.outerRect, paint); final DomHTMLElement element = buildDrawRectElement( rect, paint, 'draw-rrect', _canvasPool.currentTransform); applyRRectBorderRadius(element.style, rrect); - _drawElement( - element, - ui.Offset( - math.min(rect.left, rect.right), math.min(rect.top, rect.bottom)), - paint); + _drawElement(element, rect.topLeft, paint); } else { setUpPaint(paint, rrect.outerRect); _canvasPool.drawRRect(rrect, paint.style); @@ -509,13 +502,10 @@ class BitmapCanvas extends EngineCanvas { @override void drawOval(ui.Rect rect, SurfacePaintData paint) { if (_useDomForRenderingFill(paint)) { + rect = adjustRectForDom(rect, paint); final DomHTMLElement element = buildDrawRectElement( rect, paint, 'draw-oval', _canvasPool.currentTransform); - _drawElement( - element, - ui.Offset( - math.min(rect.left, rect.right), math.min(rect.top, rect.bottom)), - paint); + _drawElement(element, rect.topLeft, paint); element.style.borderRadius = '${rect.width / 2.0}px / ${rect.height / 2.0}px'; } else { @@ -527,15 +517,11 @@ class BitmapCanvas extends EngineCanvas { @override void drawCircle(ui.Offset c, double radius, SurfacePaintData paint) { - final ui.Rect rect = ui.Rect.fromCircle(center: c, radius: radius); if (_useDomForRenderingFillAndStroke(paint)) { + final ui.Rect rect = adjustRectForDom(ui.Rect.fromCircle(center: c, radius: radius), paint); final DomHTMLElement element = buildDrawRectElement( rect, paint, 'draw-circle', _canvasPool.currentTransform); - _drawElement( - element, - ui.Offset( - math.min(rect.left, rect.right), math.min(rect.top, rect.bottom)), - paint); + _drawElement(element, rect.topLeft, paint); element.style.borderRadius = '50%'; } else { setUpPaint( @@ -555,21 +541,19 @@ class BitmapCanvas extends EngineCanvas { final SurfacePath surfacePath = path as SurfacePath; final ui.Rect? pathAsLine = surfacePath.toStraightLine(); if (pathAsLine != null) { - final ui.Rect rect = (pathAsLine.top == pathAsLine.bottom) + ui.Rect rect = (pathAsLine.top == pathAsLine.bottom) ? ui.Rect.fromLTWH( pathAsLine.left, pathAsLine.top, pathAsLine.width, 1) : ui.Rect.fromLTWH( pathAsLine.left, pathAsLine.top, 1, pathAsLine.height); + rect = adjustRectForDom(rect, paint); final DomHTMLElement element = buildDrawRectElement( rect, paint, 'draw-rect', _canvasPool.currentTransform); - _drawElement( - element, - ui.Offset(math.min(rect.left, rect.right), - math.min(rect.top, rect.bottom)), - paint); + _drawElement(element, rect.topLeft, paint); return; } + final ui.Rect? pathAsRect = surfacePath.toRect(); if (pathAsRect != null) { drawRect(pathAsRect, paint); @@ -608,8 +592,7 @@ class BitmapCanvas extends EngineCanvas { void _applyFilter(DomElement element, SurfacePaintData paint) { if (paint.maskFilter != null) { final bool isStroke = paint.style == ui.PaintingStyle.stroke; - final String cssColor = - paint.color == null ? '#000000' : colorToCssString(paint.color)!; + final String cssColor = colorValueToCssString(paint.color)!; final double sigma = paint.maskFilter!.webOnlySigma; if (browserEngine == BrowserEngine.webkit && !isStroke) { // A bug in webkit leaves artifacts when this element is animated @@ -913,9 +896,11 @@ class BitmapCanvas extends EngineCanvas { _cachedLastCssFont = null; } - void setCssFont(String cssFont) { + void setCssFont(String cssFont, ui.TextDirection textDirection) { + final DomCanvasRenderingContext2D ctx = _canvasPool.context; + ctx.direction = textDirection == ui.TextDirection.ltr ? 'ltr' : 'rtl'; + if (cssFont != _cachedLastCssFont) { - final DomCanvasRenderingContext2D ctx = _canvasPool.context; ctx.font = cssFont; _cachedLastCssFont = cssFont; } @@ -1045,7 +1030,7 @@ class BitmapCanvas extends EngineCanvas { : convertVertexPositions(mode, vertices.positions); // Draw hairline for vertices if no vertex colors are specified. save(); - final ui.Color color = paint.color ?? const ui.Color(0xFF000000); + final ui.Color color = ui.Color(paint.color); _canvasPool.contextHandle ..fillStyle = null ..strokeStyle = colorToCssString(color); @@ -1073,7 +1058,7 @@ class BitmapCanvas extends EngineCanvas { } else { _drawPointsPaint.style = ui.PaintingStyle.fill; } - _drawPointsPaint.color = paint.color ?? const ui.Color(0xFF000000); + _drawPointsPaint.color = paint.color; _drawPointsPaint.maskFilter = paint.maskFilter; final double dpr = ui.window.devicePixelRatio; diff --git a/lib/web_ui/lib/src/engine/html/clip.dart b/lib/web_ui/lib/src/engine/html/clip.dart index 08cd5aa580be0..892bc88403825 100644 --- a/lib/web_ui/lib/src/engine/html/clip.dart +++ b/lib/web_ui/lib/src/engine/html/clip.dart @@ -392,7 +392,7 @@ class PersistedPhysicalShape extends PersistedContainerSurface path, SurfacePaintData() ..style = ui.PaintingStyle.fill - ..color = color, + ..color = color.value, '${pathBounds2.right}', '${pathBounds2.bottom}'); diff --git a/lib/web_ui/lib/src/engine/html/dom_canvas.dart b/lib/web_ui/lib/src/engine/html/dom_canvas.dart index 41956fd11f064..3e63a0b99ff03 100644 --- a/lib/web_ui/lib/src/engine/html/dom_canvas.dart +++ b/lib/web_ui/lib/src/engine/html/dom_canvas.dart @@ -75,14 +75,16 @@ class DomCanvas extends EngineCanvas with SaveElementStackTracking { @override void drawRect(ui.Rect rect, SurfacePaintData paint) { + rect = adjustRectForDom(rect, paint); currentElement.append( buildDrawRectElement(rect, paint, 'draw-rect', currentTransform)); } @override void drawRRect(ui.RRect rrect, SurfacePaintData paint) { + final ui.Rect outerRect = adjustRectForDom(rrect.outerRect, paint); final DomElement element = buildDrawRectElement( - rrect.outerRect, paint, 'draw-rrect', currentTransform); + outerRect, paint, 'draw-rrect', currentTransform); applyRRectBorderRadius(element.style, rrect); currentElement.append(element); } @@ -160,8 +162,77 @@ ui.Color blurColor(ui.Color color, double sigma) { return ui.Color((reducedAlpha & 0xff) << 24 | (color.value & 0x00ffffff)); } +/// When drawing a shape (rect, rrect, circle, etc) in DOM/CSS, the [rect] given +/// by Flutter needs to be adjusted to what DOM/CSS expect. +/// +/// This method takes Flutter's [rect] and produces a new rect that can be used +/// to generate the correct CSS properties to match Flutter's expectations. +/// +/// +/// Here's what Flutter's given [rect] and [paint.strokeWidth] represent: +/// +/// top-left ↓ +/// ┌──↓──────────────────────┐ +/// →→→→x x │←← +/// │ ┌───────────────┐ │ | +/// │ │ │ │ | +/// │ │ │ │ | height +/// │ │ │ │ | +/// │ └───────────────┘ │ | +/// │ x x │←← +/// └─────────────────────────┘ +/// stroke-width ↑----↑ ↑ +/// ↑-------------------↑ width +/// +/// +/// +/// In the DOM/CSS, here's how the coordinates should look like: +/// +/// top-left ↓ +/// →→x─────────────────────────┐ +/// │ │ +/// │ x───────────────x │←← +/// │ │ │ │ | +/// │ │ │ │ | height +/// │ │ │ │ | +/// │ x───────────────x │←← +/// │ │ +/// └─────────────────────────┘ +/// border-width ↑----↑ ↑ +/// ↑---------------↑ width +/// +/// As shown in the drawing above, the width/height don't start at the top-left +/// coordinates. Instead, they start from the inner top-left (inside the border). +ui.Rect adjustRectForDom(ui.Rect rect, SurfacePaintData paint) { + double left = math.min(rect.left, rect.right); + double top = math.min(rect.top, rect.bottom); + double width = rect.width.abs(); + double height = rect.height.abs(); + + final bool isStroke = paint.style == ui.PaintingStyle.stroke; + final double strokeWidth = paint.strokeWidth ?? 0.0; + if (isStroke && strokeWidth > 0.0) { + left -= strokeWidth / 2.0; + top -= strokeWidth / 2.0; + + // width and height shouldn't go below zero. + width = math.max(0, width - strokeWidth); + height = math.max(0, height - strokeWidth); + } + + if (left != rect.left || + top != rect.top || + width != rect.width || + height != rect.height) { + return ui.Rect.fromLTWH(left, top, width, height); + } + return rect; +} + DomHTMLElement buildDrawRectElement( ui.Rect rect, SurfacePaintData paint, String tagName, Matrix4 transform) { + assert(rect.left <= rect.right); + assert(rect.top <= rect.bottom); final DomHTMLElement rectangle = domDocument.createElement(tagName) as DomHTMLElement; assert(() { @@ -172,26 +243,11 @@ DomHTMLElement buildDrawRectElement( String effectiveTransform; final bool isStroke = paint.style == ui.PaintingStyle.stroke; final double strokeWidth = paint.strokeWidth ?? 0.0; - final double left = math.min(rect.left, rect.right); - final double right = math.max(rect.left, rect.right); - final double top = math.min(rect.top, rect.bottom); - final double bottom = math.max(rect.top, rect.bottom); if (transform.isIdentity()) { - if (isStroke) { - effectiveTransform = - 'translate(${left - (strokeWidth / 2.0)}px, ${top - (strokeWidth / 2.0)}px)'; - } else { - effectiveTransform = 'translate(${left}px, ${top}px)'; - } + effectiveTransform = 'translate(${rect.left}px, ${rect.top}px)'; } else { - // Clone to avoid mutating _transform. - final Matrix4 translated = transform.clone(); - if (isStroke) { - translated.translate( - left - (strokeWidth / 2.0), top - (strokeWidth / 2.0)); - } else { - translated.translate(left, top); - } + // Clone to avoid mutating `transform`. + final Matrix4 translated = transform.clone()..translate(rect.left, rect.top); effectiveTransform = matrix4ToCssTransform(translated); } final DomCSSStyleDeclaration style = rectangle.style; @@ -201,7 +257,7 @@ DomHTMLElement buildDrawRectElement( ..transform = effectiveTransform; String cssColor = - paint.color == null ? '#000000' : colorToCssString(paint.color)!; + paint.color == null ? '#000000' : colorValueToCssString(paint.color)!; if (paint.maskFilter != null) { final double sigma = paint.maskFilter!.webOnlySigma; @@ -209,22 +265,20 @@ DomHTMLElement buildDrawRectElement( // A bug in webkit leaves artifacts when this element is animated // with filter: blur, we use boxShadow instead. style.boxShadow = '0px 0px ${sigma * 2.0}px $cssColor'; - cssColor = colorToCssString( - blurColor(paint.color ?? const ui.Color(0xFF000000), sigma))!; + cssColor = colorToCssString(blurColor(ui.Color(paint.color), sigma))!; } else { style.filter = 'blur(${sigma}px)'; } } + style + ..width = '${rect.width}px' + ..height = '${rect.height}px'; + if (isStroke) { - style - ..width = '${right - left - strokeWidth}px' - ..height = '${bottom - top - strokeWidth}px' - ..border = '${_borderStrokeToCssUnit(strokeWidth)} solid $cssColor'; + style.border = '${_borderStrokeToCssUnit(strokeWidth)} solid $cssColor'; } else { style - ..width = '${right - left}px' - ..height = '${bottom - top}px' ..backgroundColor = cssColor ..backgroundImage = _getBackgroundImageCssValue(paint.shader, rect); } @@ -290,16 +344,15 @@ SVGSVGElement pathToSvgElement( final SVGPathElement svgPath = createSVGPathElement(); root.append(svgPath); - final ui.Color color = paint.color ?? const ui.Color(0xFF000000); if (paint.style == ui.PaintingStyle.stroke || (paint.style != ui.PaintingStyle.fill && paint.strokeWidth != 0 && paint.strokeWidth != null)) { - svgPath.setAttribute('stroke', colorToCssString(color)!); + svgPath.setAttribute('stroke', colorValueToCssString(paint.color)!); svgPath.setAttribute('stroke-width', '${paint.strokeWidth ?? 1.0}'); svgPath.setAttribute('fill', 'none'); } else if (paint.color != null) { - svgPath.setAttribute('fill', colorToCssString(color)!); + svgPath.setAttribute('fill', colorValueToCssString(paint.color)!); } else { svgPath.setAttribute('fill', '#000000'); } diff --git a/lib/web_ui/lib/src/engine/html/painting.dart b/lib/web_ui/lib/src/engine/html/painting.dart index beb9f25354291..27ff910ec4769 100644 --- a/lib/web_ui/lib/src/engine/html/painting.dart +++ b/lib/web_ui/lib/src/engine/html/painting.dart @@ -83,7 +83,7 @@ class SurfacePaint implements ui.Paint { } @override - ui.Color get color => _paintData.color ?? _defaultPaintColor; + ui.Color get color => ui.Color(_paintData.color); @override set color(ui.Color value) { @@ -91,8 +91,7 @@ class SurfacePaint implements ui.Paint { _paintData = _paintData.clone(); _frozen = false; } - _paintData.color = - value.runtimeType == ui.Color ? value : ui.Color(value.value); + _paintData.color = value.value; } @override @@ -103,7 +102,7 @@ class SurfacePaint implements ui.Paint { @override set invertColors(bool value) {} - static const ui.Color _defaultPaintColor = ui.Color(0xFF000000); + static const int _defaultPaintColor = 0xFF000000; @override ui.Shader? get shader => _paintData.shader; @@ -207,7 +206,7 @@ class SurfacePaint implements ui.Paint { result.write('${semicolon}antialias off'); semicolon = '; '; } - if (color != _defaultPaintColor) { + if (color.value != _defaultPaintColor) { result.write('$semicolon$color'); semicolon = '; '; } @@ -225,7 +224,7 @@ class SurfacePaintData { ui.StrokeCap? strokeCap; ui.StrokeJoin? strokeJoin; bool isAntiAlias = true; - ui.Color? color; + int color = 0xFF000000; ui.Shader? shader; ui.MaskFilter? maskFilter; ui.FilterQuality? filterQuality; @@ -269,7 +268,7 @@ class SurfacePaintData { buffer.write('strokeJoin = $strokeJoin; '); } if (color != null) { - buffer.write('color = ${colorToCssString(color)}; '); + buffer.write('color = ${colorToCssString(ui.Color(color))}; '); } if (shader != null) { buffer.write('shader = $shader; '); @@ -288,3 +287,32 @@ class SurfacePaintData { } } } + +class HtmlFragmentProgram implements ui.FragmentProgram { + @override + ui.FragmentShader fragmentShader() { + throw UnsupportedError('FragmentProgram is not supported for the HTML renderer.'); + } +} + +class HtmlFragmentShader implements ui.FragmentShader { + @override + void setFloat(int index, double value) { + throw UnsupportedError('FragmentShader is not supported for the HTML renderer.'); + } + + @override + void setSampler(int index, ui.ImageShader sampler) { + throw UnsupportedError('FragmentShader is not supported for the HTML renderer.'); + } + + @override + void dispose() { + throw UnsupportedError('FragmentShader is not supported for the HTML renderer.'); + } + + @override + bool get debugDisposed { + throw UnsupportedError('FragmentShader is not supported for the HTML renderer.'); + } +} diff --git a/lib/web_ui/lib/src/engine/html/path/path.dart b/lib/web_ui/lib/src/engine/html/path/path.dart index 5ced01bb17000..066836901f7e6 100644 --- a/lib/web_ui/lib/src/engine/html/path/path.dart +++ b/lib/web_ui/lib/src/engine/html/path/path.dart @@ -1170,10 +1170,10 @@ class SurfacePath implements ui.Path { points[p] += offsetX; points[p + 1] += offsetY; } else { - final double x = offsetX + points[p]; - final double y = offsetY + points[p + 1]; - points[p] = (matrix4[0] * x) + (matrix4[4] * y) + matrix4[12]; - points[p + 1] = (matrix4[1] * x) + (matrix4[5] * y) + matrix4[13]; + final double x = points[p]; + final double y = points[p + 1]; + points[p] = (matrix4[0] * x) + (matrix4[4] * y) + (matrix4[12] + offsetX); + points[p + 1] = (matrix4[1] * x) + (matrix4[5] * y) + (matrix4[13] + offsetY); } } _resetAfterEdit(); diff --git a/lib/web_ui/lib/src/engine/html/path/path_metrics.dart b/lib/web_ui/lib/src/engine/html/path/path_metrics.dart index d0d2e647de47f..7dad8f3e4f0d2 100644 --- a/lib/web_ui/lib/src/engine/html/path/path_metrics.dart +++ b/lib/web_ui/lib/src/engine/html/path/path_metrics.dart @@ -34,7 +34,7 @@ class SurfacePathMetrics extends IterableBase implements ui.PathMetrics { SurfacePathMetrics(PathRef path, bool forceClosed) : _iterator = - SurfacePathMetricIterator._(_SurfacePathMeasure(path, forceClosed)); + SurfacePathMetricIterator._(_SurfacePathMeasure(PathRef.shallowCopy(path), forceClosed)); final SurfacePathMetricIterator _iterator; @@ -497,7 +497,15 @@ class SurfacePathMetricIterator implements Iterator { final _SurfacePathMeasure _pathMeasure; @override - SurfacePathMetric get current => _pathMetric!; + SurfacePathMetric get current { + if (_pathMetric == null) { + throw RangeError( + 'PathMetricIterator is not pointing to a PathMetric. This can happen in two situations:\n' + '- The iteration has not started yet. If so, call "moveNext" to start iteration.\n' + '- The iterator ran out of elements. If so, check that "moveNext" returns true prior to calling "current".'); + } + return _pathMetric!; + } @override bool moveNext() { diff --git a/lib/web_ui/lib/src/engine/html/recording_canvas.dart b/lib/web_ui/lib/src/engine/html/recording_canvas.dart index 836ce83bb14a0..280ebbdc45bba 100644 --- a/lib/web_ui/lib/src/engine/html/recording_canvas.dart +++ b/lib/web_ui/lib/src/engine/html/recording_canvas.dart @@ -1246,7 +1246,7 @@ class PaintDrawParagraph extends DrawCommand { @override String toString() { if (assertionsEnabled) { - return 'DrawParagraph(${paragraph.toPlainText()}, $offset)'; + return 'DrawParagraph(${paragraph.plainText}, $offset)'; } else { return super.toString(); } diff --git a/lib/web_ui/lib/src/engine/html/render_vertices.dart b/lib/web_ui/lib/src/engine/html/render_vertices.dart index 7ab470c4dba8d..2b062f8f5f607 100644 --- a/lib/web_ui/lib/src/engine/html/render_vertices.dart +++ b/lib/web_ui/lib/src/engine/html/render_vertices.dart @@ -230,10 +230,9 @@ class _WebGlRenderer implements GlRenderer { // Buffer kBGRA_8888. if (vertices.colors == null) { - final ui.Color color = paint.color ?? const ui.Color(0xFF000000); final Uint32List vertexColors = Uint32List(vertexCount); for (int i = 0; i < vertexCount; i++) { - vertexColors[i] = color.value; + vertexColors[i] = paint.color; } gl.bufferData(vertexColors, gl.kStaticDraw); } else { diff --git a/lib/web_ui/lib/src/engine/html/renderer.dart b/lib/web_ui/lib/src/engine/html/renderer.dart index 70b69908c26a2..dd155f2fc0efb 100644 --- a/lib/web_ui/lib/src/engine/html/renderer.dart +++ b/lib/web_ui/lib/src/engine/html/renderer.dart @@ -333,4 +333,12 @@ class HtmlRenderer implements Renderer { _viewEmbedder.addSceneToSceneHost((scene as SurfaceScene).webOnlyRootElement); frameTimingsOnRasterFinish(); } + + @override + void clearFragmentProgramCache() { } + + @override + Future createFragmentProgram(String assetKey) { + return Future.value(HtmlFragmentProgram()); + } } diff --git a/lib/web_ui/lib/src/engine/initialization.dart b/lib/web_ui/lib/src/engine/initialization.dart index 025b1399f78b1..f7659254dce91 100644 --- a/lib/web_ui/lib/src/engine/initialization.dart +++ b/lib/web_ui/lib/src/engine/initialization.dart @@ -8,12 +8,12 @@ import 'dart:developer' as developer; import 'package:ui/src/engine/assets.dart'; import 'package:ui/src/engine/browser_detection.dart'; import 'package:ui/src/engine/embedder.dart'; -import 'package:ui/src/engine/keyboard.dart'; import 'package:ui/src/engine/mouse_cursor.dart'; import 'package:ui/src/engine/navigation.dart'; import 'package:ui/src/engine/platform_dispatcher.dart'; import 'package:ui/src/engine/platform_views/content_manager.dart'; import 'package:ui/src/engine/profiler.dart'; +import 'package:ui/src/engine/raw_keyboard.dart'; import 'package:ui/src/engine/renderer.dart'; import 'package:ui/src/engine/safe_browser_api.dart'; import 'package:ui/src/engine/window.dart'; @@ -204,11 +204,12 @@ Future initializeEngineServices({ } }; - await renderer.initialize(); - assetManager ??= const AssetManager(); - await _setAssetManager(assetManager); - await renderer.fontCollection.ensureFontsLoaded(); + _setAssetManager(assetManager); + + Future initializeRendererCallback () async => renderer.initialize(); + await Future.wait(>[initializeRendererCallback(), _downloadAssetFonts()]); + renderer.fontCollection.registerDownloadedFonts(); _initializationState = DebugEngineInitializationState.initializedServices; } @@ -234,7 +235,7 @@ Future initializeEngineUi() async { } _initializationState = DebugEngineInitializationState.initializingUi; - Keyboard.initialize(onMacOs: operatingSystem == OperatingSystem.macOs); + RawKeyboard.initialize(onMacOs: operatingSystem == OperatingSystem.macOs); MouseCursor.initialize(); ensureFlutterViewEmbedderInitialized(); _initializationState = DebugEngineInitializationState.initialized; @@ -243,22 +244,24 @@ Future initializeEngineUi() async { AssetManager get assetManager => _assetManager!; AssetManager? _assetManager; -Future _setAssetManager(AssetManager assetManager) async { +void _setAssetManager(AssetManager assetManager) { assert(assetManager != null, 'Cannot set assetManager to null'); if (assetManager == _assetManager) { return; } _assetManager = assetManager; +} +Future _downloadAssetFonts() async { renderer.fontCollection.clear(); if (_assetManager != null) { - await renderer.fontCollection.registerFonts(assetManager); + await renderer.fontCollection.downloadAssetFonts(_assetManager!); } if (ui.debugEmulateFlutterTesterEnvironment) { - renderer.fontCollection.debugRegisterTestFonts(); + await renderer.fontCollection.debugDownloadTestFonts(); } } diff --git a/lib/web_ui/lib/src/engine/keyboard_binding.dart b/lib/web_ui/lib/src/engine/keyboard_binding.dart index 9a500efea9311..bb451771adc0c 100644 --- a/lib/web_ui/lib/src/engine/keyboard_binding.dart +++ b/lib/web_ui/lib/src/engine/keyboard_binding.dart @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +import 'package:meta/meta.dart'; import 'package:ui/ui.dart' as ui; import '../engine.dart' show registerHotRestartListener; @@ -30,6 +31,16 @@ final int _kLogicalShiftLeft = kWebLogicalLocationMap['Shift']![_kLocationLeft]! final int _kLogicalShiftRight = kWebLogicalLocationMap['Shift']![_kLocationRight]!; final int _kLogicalMetaLeft = kWebLogicalLocationMap['Meta']![_kLocationLeft]!; final int _kLogicalMetaRight = kWebLogicalLocationMap['Meta']![_kLocationRight]!; + +final int _kPhysicalAltLeft = kWebToPhysicalKey['AltLeft']!; +final int _kPhysicalAltRight = kWebToPhysicalKey['AltRight']!; +final int _kPhysicalControlLeft = kWebToPhysicalKey['ControlLeft']!; +final int _kPhysicalControlRight = kWebToPhysicalKey['ControlRight']!; +final int _kPhysicalShiftLeft = kWebToPhysicalKey['ShiftLeft']!; +final int _kPhysicalShiftRight = kWebToPhysicalKey['ShiftRight']!; +final int _kPhysicalMetaLeft = kWebToPhysicalKey['MetaLeft']!; +final int _kPhysicalMetaRight = kWebToPhysicalKey['MetaRight']!; + // Map logical keys for modifier keys to the functions that can get their // modifier flag out of an event. final Map _kLogicalKeyToModifierGetter = { @@ -88,7 +99,7 @@ Duration _eventTimeStampToDuration(num milliseconds) { } class KeyboardBinding { - KeyboardBinding._(this.glassPaneElement) { + KeyboardBinding._() { _setup(); } @@ -96,9 +107,9 @@ class KeyboardBinding { static KeyboardBinding? get instance => _instance; static KeyboardBinding? _instance; - static void initInstance(DomElement glassPaneElement) { + static void initInstance() { if (_instance == null) { - _instance = KeyboardBinding._(glassPaneElement); + _instance = KeyboardBinding._(); assert(() { registerHotRestartListener(_instance!._reset); return true; @@ -106,8 +117,8 @@ class KeyboardBinding { } } - final DomElement glassPaneElement; - late KeyboardConverter _converter; + KeyboardConverter get converter => _converter; + late final KeyboardConverter _converter; final Map _listeners = {}; void _addEventListener(String eventName, DomEventListener handler) { @@ -179,6 +190,7 @@ class FlutterHtmlKeyboardEvent { String get type => _event.type; String? get code => _event.code; String? get key => _event.key; + int get keyCode => _event.keyCode; bool? get repeat => _event.repeat; int? get location => _event.location; num? get timeStamp => _event.timeStamp; @@ -189,6 +201,7 @@ class FlutterHtmlKeyboardEvent { bool getModifierState(String key) => _event.getModifierState(key); void preventDefault() => _event.preventDefault(); + bool get defaultPrevented => _event.defaultPrevented; } // Reads [DomKeyboardEvent], then [dispatches ui.KeyData] accordingly. @@ -558,4 +571,107 @@ class KeyboardConverter { _dispatchKeyData = null; } } + + // Synthesize modifier keys up or down events only when the known pressing states are different. + void synthesizeModifiersIfNeeded( + bool altPressed, + bool controlPressed, + bool metaPressed, + bool shiftPressed, + num eventTimestamp, + ) { + _synthesizeModifierIfNeeded( + _kPhysicalAltLeft, + _kPhysicalAltRight, + _kLogicalAltLeft, + _kLogicalAltRight, + altPressed ? ui.KeyEventType.down : ui.KeyEventType.up, + eventTimestamp, + ); + _synthesizeModifierIfNeeded( + _kPhysicalControlLeft, + _kPhysicalControlRight, + _kLogicalControlLeft, + _kLogicalControlRight, + controlPressed ? ui.KeyEventType.down : ui.KeyEventType.up, + eventTimestamp, + ); + _synthesizeModifierIfNeeded( + _kPhysicalMetaLeft, + _kPhysicalMetaRight, + _kLogicalMetaLeft, + _kLogicalMetaRight, + metaPressed ? ui.KeyEventType.down : ui.KeyEventType.up, + eventTimestamp, + ); + _synthesizeModifierIfNeeded( + _kPhysicalShiftLeft, + _kPhysicalShiftRight, + _kLogicalShiftLeft, + _kLogicalShiftRight, + shiftPressed ? ui.KeyEventType.down : ui.KeyEventType.up, + eventTimestamp, + ); + } + + void _synthesizeModifierIfNeeded( + int physicalLeft, + int physicalRight, + int logicalLeft, + int logicalRight, + ui.KeyEventType type, + num domTimestamp, + ) { + final bool leftPressed = _pressingRecords.containsKey(physicalLeft); + final bool rightPressed = _pressingRecords.containsKey(physicalRight); + final bool alreadyPressed = leftPressed || rightPressed; + final bool synthesizeDown = type == ui.KeyEventType.down && !alreadyPressed; + final bool synthesizeUp = type == ui.KeyEventType.up && alreadyPressed; + + // Synthesize a down event only for the left key if right and left are not pressed + if (synthesizeDown) { + _synthesizeKeyDownEvent(domTimestamp, physicalLeft, logicalLeft); + } + + // Synthesize an up event for left key if pressed + if (synthesizeUp && leftPressed) { + _synthesizeKeyUpEvent(domTimestamp, physicalLeft, logicalLeft); + } + + // Synthesize an up event for right key if pressed + if (synthesizeUp && rightPressed) { + _synthesizeKeyUpEvent(domTimestamp, physicalRight, logicalRight); + } + } + + void _synthesizeKeyDownEvent(num domTimestamp, int physical, int logical) { + performDispatchKeyData(ui.KeyData( + timeStamp: _eventTimeStampToDuration(domTimestamp), + type: ui.KeyEventType.down, + physical: physical, + logical: logical, + character: null, + synthesized: true, + )); + // Update pressing state + _pressingRecords[physical] = logical; + } + + void _synthesizeKeyUpEvent(num domTimestamp, int physical, int logical) { + performDispatchKeyData(ui.KeyData( + timeStamp: _eventTimeStampToDuration(domTimestamp), + type: ui.KeyEventType.up, + physical: physical, + logical: logical, + character: null, + synthesized: true, + )); + // Update pressing states + _pressingRecords.remove(physical); + } + + @visibleForTesting + bool debugKeyIsPressed(int physical) { + return _pressingRecords.containsKey(physical); + } } diff --git a/lib/web_ui/lib/src/engine/platform_dispatcher.dart b/lib/web_ui/lib/src/engine/platform_dispatcher.dart index 5f59713698149..fee88b2ca2b26 100644 --- a/lib/web_ui/lib/src/engine/platform_dispatcher.dart +++ b/lib/web_ui/lib/src/engine/platform_dispatcher.dart @@ -690,13 +690,6 @@ class EnginePlatformDispatcher extends ui.PlatformDispatcher { _onAccessibilityFeaturesChanged, _onAccessibilityFeaturesChangedZone); } - /// Change the retained semantics data about this window. - /// - /// If [semanticsEnabled] is true, the user has requested that this function - /// be called whenever the semantic content of this window changes. - /// - /// In either case, this function disposes the given update, which means the - /// semantics update cannot be used further. @override void updateSemantics(ui.SemanticsUpdate update) { EngineSemanticsOwner.instance.updateSemantics(update); diff --git a/lib/web_ui/lib/src/engine/pointer_binding.dart b/lib/web_ui/lib/src/engine/pointer_binding.dart index 75ad7b4387d4d..72f646c7c473a 100644 --- a/lib/web_ui/lib/src/engine/pointer_binding.dart +++ b/lib/web_ui/lib/src/engine/pointer_binding.dart @@ -5,6 +5,7 @@ import 'dart:math' as math; import 'package:meta/meta.dart'; +import 'package:ui/src/engine/keyboard_binding.dart'; import 'package:ui/ui.dart' as ui; import '../engine.dart' show registerHotRestartListener; @@ -73,7 +74,7 @@ class SafariPointerEventWorkaround { } class PointerBinding { - PointerBinding(this.glassPaneElement) + PointerBinding(this.glassPaneElement, this._keyboardConverter) : _pointerDataConverter = PointerDataConverter(), _detector = const PointerSupportDetector() { if (isIosSafari) { @@ -86,9 +87,9 @@ class PointerBinding { static PointerBinding? get instance => _instance; static PointerBinding? _instance; - static void initInstance(DomElement glassPaneElement) { + static void initInstance(DomElement glassPaneElement, KeyboardConverter keyboardConverter) { if (_instance == null) { - _instance = PointerBinding(glassPaneElement); + _instance = PointerBinding(glassPaneElement, keyboardConverter); assert(() { registerHotRestartListener(_instance!.dispose); return true; @@ -107,6 +108,7 @@ class PointerBinding { PointerSupportDetector _detector; final PointerDataConverter _pointerDataConverter; + KeyboardConverter _keyboardConverter; late _BaseAdapter _adapter; /// Should be used in tests to define custom detection of pointer support. @@ -137,15 +139,23 @@ class PointerBinding { } } + @visibleForTesting + void debugOverrideKeyboardConverter(KeyboardConverter keyboardConverter) { + _keyboardConverter = keyboardConverter; + _adapter.clearListeners(); + _adapter = _createAdapter(); + _pointerDataConverter.clearPointerState(); + } + _BaseAdapter _createAdapter() { if (_detector.hasPointerEvents) { - return _PointerAdapter(_onPointerData, glassPaneElement, _pointerDataConverter); + return _PointerAdapter(_onPointerData, glassPaneElement, _pointerDataConverter, _keyboardConverter); } if (_detector.hasTouchEvents) { - return _TouchAdapter(_onPointerData, glassPaneElement, _pointerDataConverter); + return _TouchAdapter(_onPointerData, glassPaneElement, _pointerDataConverter, _keyboardConverter); } if (_detector.hasMouseEvents) { - return _MouseAdapter(_onPointerData, glassPaneElement, _pointerDataConverter); + return _MouseAdapter(_onPointerData, glassPaneElement, _pointerDataConverter, _keyboardConverter); } throw UnsupportedError('This browser does not support pointer, touch, or mouse events.'); } @@ -239,7 +249,12 @@ class _Listener { /// Common functionality that's shared among adapters. abstract class _BaseAdapter { - _BaseAdapter(this._callback, this.glassPaneElement, this._pointerDataConverter) { + _BaseAdapter( + this._callback, + this.glassPaneElement, + this._pointerDataConverter, + this._keyboardConverter, + ) { setup(); } @@ -247,6 +262,7 @@ abstract class _BaseAdapter { final DomElement glassPaneElement; final _PointerDataCallback _callback; final PointerDataConverter _pointerDataConverter; + final KeyboardConverter _keyboardConverter; /// Each subclass is expected to override this method to attach its own event /// listeners and convert events into pointer events. @@ -570,7 +586,8 @@ class _PointerAdapter extends _BaseAdapter with _WheelEventListenerMixin { _PointerAdapter( super.callback, super.glassPaneElement, - super.pointerDataConverter + super.pointerDataConverter, + super.keyboardConverter, ); final Map _sanitizers = {}; @@ -602,13 +619,27 @@ class _PointerAdapter extends _BaseAdapter with _WheelEventListenerMixin { String eventName, _PointerEventListener handler, { bool useCapture = true, + bool checkModifiers = true, }) { addEventListener(target, eventName, (DomEvent event) { final DomPointerEvent pointerEvent = event as DomPointerEvent; + if (checkModifiers) { + _checkModifiersState(event); + } handler(pointerEvent); }, useCapture: useCapture); } + void _checkModifiersState(DomPointerEvent event) { + _keyboardConverter.synthesizeModifiersIfNeeded( + event.getModifierState('Alt'), + event.getModifierState('Control'), + event.getModifierState('Meta'), + event.getModifierState('Shift'), + event.timeStamp!, + ); + } + @override void setup() { _addPointerEventListener(glassPaneElement, 'pointerdown', (DomPointerEvent event) { @@ -654,7 +685,7 @@ class _PointerAdapter extends _BaseAdapter with _WheelEventListenerMixin { _convertEventsToPointerData(data: pointerData, event: event, details: details); _callback(pointerData); } - }, useCapture: false); + }, useCapture: false, checkModifiers: false); _addPointerEventListener(domWindow, 'pointerup', (DomPointerEvent event) { final int device = _getPointerId(event); @@ -680,7 +711,7 @@ class _PointerAdapter extends _BaseAdapter with _WheelEventListenerMixin { _convertEventsToPointerData(data: pointerData, event: event, details: details); _callback(pointerData); } - }); + }, checkModifiers: false); _addWheelEventListener((DomEvent event) { _handleWheelEvent(event); @@ -767,7 +798,8 @@ class _TouchAdapter extends _BaseAdapter { _TouchAdapter( super.callback, super.glassPaneElement, - super.pointerDataConverter + super.pointerDataConverter, + super.keyboardConverter, ); final Set _pressedTouches = {}; @@ -775,13 +807,26 @@ class _TouchAdapter extends _BaseAdapter { void _pressTouch(int identifier) { _pressedTouches.add(identifier); } void _unpressTouch(int identifier) { _pressedTouches.remove(identifier); } - void _addTouchEventListener(DomEventTarget target, String eventName, _TouchEventListener handler) { + void _addTouchEventListener(DomEventTarget target, String eventName, _TouchEventListener handler, {bool checkModifiers = true,}) { addEventListener(target, eventName, (DomEvent event) { final DomTouchEvent touchEvent = event as DomTouchEvent; + if (checkModifiers) { + _checkModifiersState(event); + } handler(touchEvent); }); } + void _checkModifiersState(DomTouchEvent event) { + _keyboardConverter.synthesizeModifiersIfNeeded( + event.altKey, + event.ctrlKey, + event.metaKey, + event.shiftKey, + event.timeStamp!, + ); + } + @override void setup() { _addTouchEventListener(glassPaneElement, 'touchstart', (DomTouchEvent event) { @@ -910,7 +955,8 @@ class _MouseAdapter extends _BaseAdapter with _WheelEventListenerMixin { _MouseAdapter( super.callback, super.glassPaneElement, - super.pointerDataConverter + super.pointerDataConverter, + super.keyboardConverter, ); final _ButtonSanitizer _sanitizer = _ButtonSanitizer(); @@ -920,13 +966,27 @@ class _MouseAdapter extends _BaseAdapter with _WheelEventListenerMixin { String eventName, _MouseEventListener handler, { bool useCapture = true, + bool checkModifiers = true, }) { addEventListener(target, eventName, (DomEvent event) { final DomMouseEvent mouseEvent = event as DomMouseEvent; + if (checkModifiers) { + _checkModifiersState(event); + } handler(mouseEvent); }, useCapture: useCapture); } + void _checkModifiersState(DomMouseEvent event) { + _keyboardConverter.synthesizeModifiersIfNeeded( + event.getModifierState('Alt'), + event.getModifierState('Control'), + event.getModifierState('Meta'), + event.getModifierState('Shift'), + event.timeStamp!, + ); + } + @override void setup() { _addMouseEventListener(glassPaneElement, 'mousedown', (DomMouseEvent event) { diff --git a/lib/web_ui/lib/src/engine/keyboard.dart b/lib/web_ui/lib/src/engine/raw_keyboard.dart similarity index 88% rename from lib/web_ui/lib/src/engine/keyboard.dart rename to lib/web_ui/lib/src/engine/raw_keyboard.dart index 440f249850e83..57d16116e7c2d 100644 --- a/lib/web_ui/lib/src/engine/keyboard.dart +++ b/lib/web_ui/lib/src/engine/raw_keyboard.dart @@ -7,13 +7,14 @@ import 'dart:typed_data'; import '../engine.dart' show registerHotRestartListener; import 'dom.dart'; +import 'keyboard_binding.dart'; import 'platform_dispatcher.dart'; import 'safe_browser_api.dart'; import 'services.dart'; /// Provides keyboard bindings, such as the `flutter/keyevent` channel. -class Keyboard { - Keyboard._(this._onMacOs) { +class RawKeyboard { + RawKeyboard._(this._onMacOs) { _keydownListener = allowInterop((DomEvent event) { _handleHtmlEvent(event); }); @@ -28,16 +29,16 @@ class Keyboard { }); } - /// Initializes the [Keyboard] singleton. + /// Initializes the [RawKeyboard] singleton. /// /// Use the [instance] getter to get the singleton after calling this method. static void initialize({bool onMacOs = false}) { - _instance ??= Keyboard._(onMacOs); + _instance ??= RawKeyboard._(onMacOs); } - /// The [Keyboard] singleton. - static Keyboard? get instance => _instance; - static Keyboard? _instance; + /// The [RawKeyboard] singleton. + static RawKeyboard? get instance => _instance; + static RawKeyboard? _instance; /// A mapping of [KeyboardEvent.code] to [Timer]. /// @@ -48,7 +49,7 @@ class Keyboard { DomEventListener? _keydownListener; DomEventListener? _keyupListener; - /// Uninitializes the [Keyboard] singleton. + /// Uninitializes the [RawKeyboard] singleton. /// /// After calling this method this object becomes unusable and [instance] /// becomes `null`. Call [initialize] again to initialize a new singleton. @@ -87,13 +88,13 @@ class Keyboard { return _onMacOs; } - void _handleHtmlEvent(DomEvent event) { - if (!domInstanceOfString(event, 'KeyboardEvent')) { + void _handleHtmlEvent(DomEvent domEvent) { + if (!domInstanceOfString(domEvent, 'KeyboardEvent')) { return; } - final DomKeyboardEvent keyboardEvent = event as DomKeyboardEvent; - final String timerKey = keyboardEvent.code!; + final FlutterHtmlKeyboardEvent event = FlutterHtmlKeyboardEvent(domEvent as DomKeyboardEvent); + final String timerKey = event.code!; // Don't handle synthesizing a keyup event for modifier keys if (!_isModifierKey(event) && _shouldDoKeyGuard()) { @@ -126,11 +127,11 @@ class Keyboard { final Map eventData = { 'type': event.type, 'keymap': 'web', - 'code': keyboardEvent.code, - 'key': keyboardEvent.key, - 'location': keyboardEvent.location, + 'code': event.code, + 'key': event.key, + 'location': event.location, 'metaState': _lastMetaState, - 'keyCode': keyboardEvent.keyCode, + 'keyCode': event.keyCode, }; EnginePlatformDispatcher.instance.invokeOnPlatformMessage('flutter/keyevent', @@ -147,7 +148,7 @@ class Keyboard { ); } - void _synthesizeKeyup(DomKeyboardEvent event) { + void _synthesizeKeyup(FlutterHtmlKeyboardEvent event) { final Map eventData = { 'type': 'keyup', 'keymap': 'web', @@ -180,7 +181,7 @@ const int modifierCapsLock = 0x20; const int modifierScrollLock = 0x40; /// Creates a bitmask representing the meta state of the [event]. -int _getMetaState(DomKeyboardEvent event) { +int _getMetaState(FlutterHtmlKeyboardEvent event) { int metaState = _modifierNone; if (event.getModifierState('Shift')) { metaState |= _modifierShift; @@ -212,7 +213,7 @@ int _getMetaState(DomKeyboardEvent event) { /// /// Modifier keys are shift, alt, ctrl and meta/cmd/win. These are the keys used /// to perform keyboard shortcuts (e.g. `cmd+c`, `cmd+l`). -bool _isModifierKey(DomKeyboardEvent event) { +bool _isModifierKey(FlutterHtmlKeyboardEvent event) { final String key = event.key!; return key == 'Meta' || key == 'Shift' || key == 'Alt' || key == 'Control'; } @@ -220,7 +221,7 @@ bool _isModifierKey(DomKeyboardEvent event) { /// Returns true if the [event] is been affects by any of the modifiers key /// /// This is a strong indication that this key is been used for a shortcut -bool _isAffectedByModifiers(DomKeyboardEvent event) { +bool _isAffectedByModifiers(FlutterHtmlKeyboardEvent event) { return event.ctrlKey || event.shiftKey || event.altKey || event.metaKey; } diff --git a/lib/web_ui/lib/src/engine/renderer.dart b/lib/web_ui/lib/src/engine/renderer.dart index 41523b3491b84..5a5d3edac10f9 100644 --- a/lib/web_ui/lib/src/engine/renderer.dart +++ b/lib/web_ui/lib/src/engine/renderer.dart @@ -153,6 +153,9 @@ abstract class Renderer { ui.FilterQuality? filterQuality, ); + void clearFragmentProgramCache(); + Future createFragmentProgram(String assetKey); + ui.Path createPath(); ui.Path copyPath(ui.Path src); ui.Path combinePaths(ui.PathOperation op, ui.Path path1, ui.Path path2); diff --git a/lib/web_ui/lib/src/engine/semantics/label_and_value.dart b/lib/web_ui/lib/src/engine/semantics/label_and_value.dart index 83ad32fd6a005..748ec58f08759 100644 --- a/lib/web_ui/lib/src/engine/semantics/label_and_value.dart +++ b/lib/web_ui/lib/src/engine/semantics/label_and_value.dart @@ -4,50 +4,33 @@ import 'package:ui/ui.dart' as ui; -import '../configuration.dart'; import '../dom.dart'; import 'semantics.dart'; -/// Renders [_label] and [_value] to the semantics DOM. +/// Renders [SemanticsObject.label] and/or [SemanticsObject.value] to the semantics DOM. /// -/// The rendering method is browser-dependent. There is no explicit ARIA -/// attribute to express "value". Instead, you are expected to render the -/// value as text content of HTML. +/// VoiceOver supports "aria-label" but only in conjunction with an ARIA role. +/// Setting "aria-label" on an empty element without a role causes VoiceOver to +/// treat element as if it does not exist. VoiceOver supports role "text", which +/// is a proprietary role not supported by other browsers. Flutter Web still +/// uses it because it provides the best user experience for plain text nodes. /// -/// VoiceOver only supports "aria-label" for certain ARIA roles. For plain -/// text it expects that the label is part of the text content of the element. -/// The strategy for VoiceOver is to combine [_label] and [_value] and stamp -/// out a single child element that contains the value. +/// TalkBack supports standalone "aria-label" attribute, but does not support +/// role "text". This leads to TalkBack reading "group" or "empty group" on +/// plain text elements, but that's still better than other alternatives +/// considered. /// -/// TalkBack supports the "aria-label" attribute. However, when present, -/// TalkBack ignores the text content. Therefore, we cannot split [_label] -/// and [_value] between "aria-label" and text content. The strategy for -/// TalkBack is to combine [_label] and [_value] into a single "aria-label". -/// -/// The [_value] is not always rendered. Some semantics nodes correspond to +/// The value is not always rendered. Some semantics nodes correspond to /// interactive controls, such as an `` element. In such case the value /// is reported via that element's `value` attribute rather than rendering it /// separately. /// -/// Aria role image is not managed by this role manager. Img role and label -/// describes the visual are added in [ImageRoleManager]. +/// This role manager does not manage images and text fields. See +/// [ImageRoleManager] and [TextField]. class LabelAndValue extends RoleManager { LabelAndValue(SemanticsObject semanticsObject) : super(Role.labelAndValue, semanticsObject); - /// Supplements the "aria-label" that renders the combination of [_label] and - /// [_value] to semantics as text content. - /// - /// This extra element is needed for the following reasons: - /// - /// - VoiceOver on iOS Safari does not recognize standalone "aria-label". It - /// only works for specific roles. - /// - TalkBack does support "aria-label". However, if an element has children - /// its label is not reachable via accessibility focus. This happens, for - /// example in popup dialogs, such as the alert dialog. The text of the - /// alert is supplied as a label on the parent node. - DomElement? _auxiliaryValueElement; - @override void update() { final bool hasValue = semanticsObject.hasValue; @@ -84,42 +67,37 @@ class LabelAndValue extends RoleManager { semanticsObject.element .setAttribute('aria-label', combinedValue.toString()); - if (semanticsObject.hasFlag(ui.SemanticsFlag.isHeader)) { + // Assign one of three roles to the element: heading, group, text. + // + // - "group" is used when the node has children, irrespective of whether the + // node is marked as a header or not. This is because marking a group + // as a "heading" will prevent the AT from reaching its children. + // - "heading" is used when the framework explicitly marks the node as a + // heading and the node does not have children. + // - "text" is used by default. + // + // As of October 24, 2022, "text" only has effect on Safari. Other browsers + // ignore it. Setting role="text" prevents Safari from treating the element + // as a "group" or "empty group". Other browsers still announce it as + // "group" or "empty group". However, other options considered produced even + // worse results, such as: + // + // - Ignore the size of the element and size the focus ring to the text + // content, which is wrong. The HTML text size is irrelevant because + // Flutter renders into canvas, so the focus ring looks wrong. + // - Read out the same label multiple times. + if (semanticsObject.hasChildren) { + semanticsObject.setAriaRole('group', true); + } else if (semanticsObject.hasFlag(ui.SemanticsFlag.isHeader)) { semanticsObject.setAriaRole('heading', true); + } else { + semanticsObject.setAriaRole('text', true); } - - if (_auxiliaryValueElement == null) { - _auxiliaryValueElement = domDocument.createElement('flt-semantics-value'); - // Absolute positioning and sizing of leaf text elements confuses - // VoiceOver. So we let the browser size the value node. The node will - // still have a bigger tap area. However, if the node is a parent to other - // nodes, then VoiceOver behaves as expected with absolute positioning and - // sizing. - if (semanticsObject.hasChildren) { - _auxiliaryValueElement!.style - ..position = 'absolute' - ..top = '0' - ..left = '0' - ..width = '${semanticsObject.rect!.width}px' - ..height = '${semanticsObject.rect!.height}px'; - } - - // Normally use a small font size so that text doesn't leave the scope - // of the semantics node. When debugging semantics, use a font size - // that's reasonably visible. - _auxiliaryValueElement!.style.fontSize = configuration.debugShowSemanticsNodes ? '12px' : '6px'; - semanticsObject.element.append(_auxiliaryValueElement!); - } - _auxiliaryValueElement!.text = combinedValue.toString(); } void _cleanUpDom() { - if (_auxiliaryValueElement != null) { - _auxiliaryValueElement!.remove(); - _auxiliaryValueElement = null; - } semanticsObject.element.removeAttribute('aria-label'); - semanticsObject.setAriaRole('heading', false); + semanticsObject.clearAriaRole(); } @override diff --git a/lib/web_ui/lib/src/engine/semantics/semantics.dart b/lib/web_ui/lib/src/engine/semantics/semantics.dart index 3f5448b53a3c5..878a14882f6a8 100644 --- a/lib/web_ui/lib/src/engine/semantics/semantics.dart +++ b/lib/web_ui/lib/src/engine/semantics/semantics.dart @@ -1221,6 +1221,11 @@ class SemanticsObject { } } + /// Removes the `role` HTML attribue, if any. + void clearAriaRole() { + element.removeAttribute('role'); + } + /// Role managers. /// /// The [_roleManagers] map needs to have a stable order for easier debugging diff --git a/lib/web_ui/lib/src/engine/skwasm/skwasm_impl/renderer.dart b/lib/web_ui/lib/src/engine/skwasm/skwasm_impl/renderer.dart index ff240beba203b..00f3108af1b24 100644 --- a/lib/web_ui/lib/src/engine/skwasm/skwasm_impl/renderer.dart +++ b/lib/web_ui/lib/src/engine/skwasm/skwasm_impl/renderer.dart @@ -165,4 +165,12 @@ class SkwasmRenderer implements Renderer { void reset(FlutterViewEmbedder embedder) { throw UnimplementedError('Not yet implemented'); } + + @override + void clearFragmentProgramCache() { } + + @override + Future createFragmentProgram(String assetKey) { + throw UnimplementedError('Not yet implemented'); + } } diff --git a/lib/web_ui/lib/src/engine/skwasm/skwasm_stub/renderer.dart b/lib/web_ui/lib/src/engine/skwasm/skwasm_stub/renderer.dart index 6858335cd4e90..4a3f5621c7e5c 100644 --- a/lib/web_ui/lib/src/engine/skwasm/skwasm_stub/renderer.dart +++ b/lib/web_ui/lib/src/engine/skwasm/skwasm_stub/renderer.dart @@ -164,4 +164,12 @@ class SkwasmRenderer implements Renderer { void reset(FlutterViewEmbedder embedder) { throw UnimplementedError('Skwasm not implemented on this platform.'); } + + @override + void clearFragmentProgramCache() { } + + @override + Future createFragmentProgram(String assetKey) { + throw UnimplementedError('Skwasm not implemented on this platform.'); + } } diff --git a/lib/web_ui/lib/src/engine/text/canvas_paragraph.dart b/lib/web_ui/lib/src/engine/text/canvas_paragraph.dart index df3680ad0c15e..272781147c78d 100644 --- a/lib/web_ui/lib/src/engine/text/canvas_paragraph.dart +++ b/lib/web_ui/lib/src/engine/text/canvas_paragraph.dart @@ -9,6 +9,7 @@ import '../embedder.dart'; import '../html/bitmap_canvas.dart'; import '../profiler.dart'; import '../util.dart'; +import 'layout_fragmenter.dart'; import 'layout_service.dart'; import 'paint_service.dart'; import 'paragraph.dart'; @@ -16,6 +17,8 @@ import 'word_breaker.dart'; const ui.Color _defaultTextColor = ui.Color(0xFFFF0000); +final String placeholderChar = String.fromCharCode(0xFFFC); + /// A paragraph made up of a flat list of text spans and placeholders. /// /// [CanvasParagraph] doesn't use a DOM element to represent the structure of @@ -30,9 +33,8 @@ class CanvasParagraph implements ui.Paragraph { this.spans, { required this.paragraphStyle, required this.plainText, - required this.placeholderCount, required this.canDrawOnCanvas, - }); + }) : assert(spans.isNotEmpty); /// The flat list of spans that make up this paragraph. final List spans; @@ -43,9 +45,6 @@ class CanvasParagraph implements ui.Paragraph { /// The full textual content of the paragraph. late String plainText; - /// The number of placeholders in this paragraph. - final int placeholderCount; - /// Whether this paragraph can be drawn on a bitmap canvas. /// /// Some text features cannot be rendered into a 2D canvas and must use HTML, @@ -84,8 +83,6 @@ class CanvasParagraph implements ui.Paragraph { /// Whether this paragraph has been laid out or not. bool isLaidOut = false; - bool get isRtl => paragraphStyle.effectiveTextDirection == ui.TextDirection.rtl; - ui.ParagraphConstraints? _lastUsedConstraints; late final TextLayoutService _layoutService = TextLayoutService(this); @@ -135,27 +132,23 @@ class CanvasParagraph implements ui.Paragraph { _paintService.paint(canvas, offset); } - /// Generates a flat string computed from all the spans of the paragraph. - String toPlainText() => plainText; - - DomHTMLElement? _cachedDomElement; + DomElement? _cachedDomElement; /// Returns a DOM element that represents the entire paragraph and its /// children. /// /// Generates a new DOM element on every invocation. - DomHTMLElement toDomElement() { + DomElement toDomElement() { assert(isLaidOut); - final DomHTMLElement? domElement = _cachedDomElement; + final DomElement? domElement = _cachedDomElement; if (domElement == null) { return _cachedDomElement ??= _createDomElement(); } - return domElement.cloneNode(true) as DomHTMLElement; + return domElement.cloneNode(true) as DomElement; } - DomHTMLElement _createDomElement() { - final DomHTMLElement rootElement = - domDocument.createElement('flt-paragraph') as DomHTMLElement; + DomElement _createDomElement() { + final DomElement rootElement = domDocument.createElement('flt-paragraph'); // 1. Set paragraph-level styles. @@ -168,38 +161,24 @@ class CanvasParagraph implements ui.Paragraph { // 2. Append all spans to the paragraph. - DomHTMLElement? lastSpanElement; for (int i = 0; i < lines.length; i++) { final ParagraphLine line = lines[i]; - final List boxes = line.boxes; - final StringBuffer buffer = StringBuffer(); - - int j = 0; - while (j < boxes.length) { - final RangeBox box = boxes[j++]; - - if (box is SpanBox) { - lastSpanElement = domDocument.createElement('flt-span') as - DomHTMLElement; - applyTextStyleToElement( - element: lastSpanElement, - style: box.span.style, - isSpan: true, - ); - _positionSpanElement(lastSpanElement, line, box); - lastSpanElement.appendText(box.toText()); - rootElement.append(lastSpanElement); - buffer.write(box.toText()); - } else if (box is PlaceholderBox) { - lastSpanElement = null; - } else { - throw UnimplementedError('Unknown box type: ${box.runtimeType}'); + for (final LayoutFragment fragment in line.fragments) { + if (fragment.isPlaceholder) { + continue; + } + + final String text = fragment.getText(this); + if (text.isEmpty) { + continue; } - } - final String? ellipsis = line.ellipsis; - if (ellipsis != null) { - (lastSpanElement ?? rootElement).appendText(ellipsis); + final DomElement spanElement = domDocument.createElement('flt-span'); + applyTextStyleToElement(element: spanElement, style: fragment.style); + _positionSpanElement(spanElement, line, fragment); + + spanElement.appendText(text); + rootElement.append(spanElement); } } @@ -228,10 +207,17 @@ class CanvasParagraph implements ui.Paragraph { @override ui.TextRange getWordBoundary(ui.TextPosition position) { - final String text = toPlainText(); - - final int start = WordBreaker.prevBreakIndex(text, position.offset + 1); - final int end = WordBreaker.nextBreakIndex(text, position.offset); + final int characterPosition; + switch (position.affinity) { + case ui.TextAffinity.upstream: + characterPosition = position.offset - 1; + break; + case ui.TextAffinity.downstream: + characterPosition = position.offset; + break; + } + final int start = WordBreaker.prevBreakIndex(plainText, characterPosition + 1); + final int end = WordBreaker.nextBreakIndex(plainText, characterPosition); return ui.TextRange(start: start, end: end); } @@ -275,8 +261,8 @@ class CanvasParagraph implements ui.Paragraph { } } -void _positionSpanElement(DomElement element, ParagraphLine line, RangeBox box) { - final ui.Rect boxRect = box.toTextBox(line, forPainting: true).toRect(); +void _positionSpanElement(DomElement element, ParagraphLine line, LayoutFragment fragment) { + final ui.Rect boxRect = fragment.toPaintingTextBox().toRect(); element.style ..position = 'absolute' ..top = '${boxRect.top}px' @@ -287,29 +273,17 @@ void _positionSpanElement(DomElement element, ParagraphLine line, RangeBox box) ..lineHeight = '${boxRect.height}px'; } -/// A common interface for all types of spans that make up a paragraph. -/// -/// These spans are stored as a flat list in the paragraph object. -abstract class ParagraphSpan { - /// The index of the beginning of the range of text represented by this span. - int get start; - - /// The index of the end of the range of text represented by this span. - int get end; -} - -/// Represent a span of text in the paragraph. -/// -/// It's a "flat" text span as opposed to the framework text spans that are -/// hierarchical. +/// Represents a span in the paragraph. /// /// Instead of keeping spans and styles in a tree hierarchy like the framework /// does, we flatten the structure and resolve/merge all the styles from parent /// nodes. -class FlatTextSpan implements ParagraphSpan { - /// Creates a [FlatTextSpan] with the given [style], representing the span of +/// +/// These spans are stored as a flat list in the paragraph object. +class ParagraphSpan { + /// Creates a [ParagraphSpan] with the given [style], representing the span of /// text in the range between [start] and [end]. - FlatTextSpan({ + ParagraphSpan({ required this.style, required this.start, required this.end, @@ -318,29 +292,33 @@ class FlatTextSpan implements ParagraphSpan { /// The resolved style of the span. final EngineTextStyle style; - @override + /// The index of the beginning of the range of text represented by this span. final int start; - @override + /// The index of the end of the range of text represented by this span. final int end; - - String textOf(CanvasParagraph paragraph) { - final String text = paragraph.toPlainText(); - assert(end <= text.length); - return text.substring(start, end); - } } class PlaceholderSpan extends ParagraphPlaceholder implements ParagraphSpan { PlaceholderSpan( - int index, - super.width, - super.height, - super.alignment, { - required super.baselineOffset, - required super.baseline, - }) : start = index, - end = index; + this.style, + this.start, + this.end, + double width, + double height, + ui.PlaceholderAlignment alignment, { + required double baselineOffset, + required ui.TextBaseline baseline, + }) : super( + width, + height, + alignment, + baselineOffset: baselineOffset, + baseline: baseline, + ); + + @override + final EngineTextStyle style; @override final int start; @@ -608,18 +586,24 @@ class CanvasParagraphBuilder implements ui.ParagraphBuilder { double? baselineOffset, ui.TextBaseline? baseline, }) { - // TODO(mdebbar): for measurement of placeholders, look at: - // - https://github.com/flutter/engine/blob/c0f7e8acf9318d264ad6a235facd097de597ffcc/third_party/txt/src/txt/paragraph_txt.cc#L325-L350 - // Require a baseline to be specified if using a baseline-based alignment. assert(!(alignment == ui.PlaceholderAlignment.aboveBaseline || alignment == ui.PlaceholderAlignment.belowBaseline || alignment == ui.PlaceholderAlignment.baseline) || baseline != null); + final int start = _plainTextBuffer.length; + _plainTextBuffer.write(placeholderChar); + final int end = _plainTextBuffer.length; + + final EngineTextStyle style = _currentStyleNode.resolveStyle(); + _updateCanDrawOnCanvas(style); + _placeholderCount++; _placeholderScales.add(scale); _spans.add(PlaceholderSpan( - _plainTextBuffer.length, + style, + start, + end, width * scale, height * scale, alignment, @@ -644,42 +628,56 @@ class CanvasParagraphBuilder implements ui.ParagraphBuilder { @override void addText(String text) { - final EngineTextStyle style = _currentStyleNode.resolveStyle(); final int start = _plainTextBuffer.length; _plainTextBuffer.write(text); final int end = _plainTextBuffer.length; - if (_canDrawOnCanvas) { - final ui.TextDecoration? decoration = style.decoration; - if (decoration != null && decoration != ui.TextDecoration.none) { - _canDrawOnCanvas = false; - } + final EngineTextStyle style = _currentStyleNode.resolveStyle(); + _updateCanDrawOnCanvas(style); + + _spans.add(ParagraphSpan(style: style, start: start, end: end)); + } + + void _updateCanDrawOnCanvas(EngineTextStyle style) { + if (!_canDrawOnCanvas) { + return; } - if (_canDrawOnCanvas) { - final List? fontFeatures = style.fontFeatures; - if (fontFeatures != null && fontFeatures.isNotEmpty) { - _canDrawOnCanvas = false; - } + final ui.TextDecoration? decoration = style.decoration; + if (decoration != null && decoration != ui.TextDecoration.none) { + _canDrawOnCanvas = false; + return; } - if (_canDrawOnCanvas) { - final List? fontVariations = style.fontVariations; - if (fontVariations != null && fontVariations.isNotEmpty) { - _canDrawOnCanvas = false; - } + final List? fontFeatures = style.fontFeatures; + if (fontFeatures != null && fontFeatures.isNotEmpty) { + _canDrawOnCanvas = false; + return; } - _spans.add(FlatTextSpan(style: style, start: start, end: end)); + final List? fontVariations = style.fontVariations; + if (fontVariations != null && fontVariations.isNotEmpty) { + _canDrawOnCanvas = false; + return; + } } @override CanvasParagraph build() { + if (_spans.isEmpty) { + // In case `addText` and `addPlaceholder` were never called. + // + // We want the paragraph to always have a non-empty list of spans to match + // the expectations of the [LayoutFragmenter]. + _spans.add( + ParagraphSpan(style: _rootStyleNode.resolveStyle(), start: 0, end: 0), + ); + } + return CanvasParagraph( _spans, paragraphStyle: _paragraphStyle, plainText: _plainTextBuffer.toString(), - placeholderCount: _placeholderCount, canDrawOnCanvas: _canDrawOnCanvas, ); } diff --git a/lib/web_ui/lib/src/engine/text/font_collection.dart b/lib/web_ui/lib/src/engine/text/font_collection.dart index f66aa77245038..74b49b23d1559 100644 --- a/lib/web_ui/lib/src/engine/text/font_collection.dart +++ b/lib/web_ui/lib/src/engine/text/font_collection.dart @@ -17,17 +17,17 @@ import 'layout_service.dart'; /// This class is responsible for registering and loading fonts. /// /// Once an asset manager has been set in the framework, call -/// [registerFonts] with it to register fonts declared in the +/// [downloadAssetFonts] with it to register fonts declared in the /// font manifest. If test fonts are enabled, then call -/// [registerTestFonts] as well. +/// [debugDownloadTestFonts] as well. class HtmlFontCollection implements FontCollection { FontManager? _assetFontManager; FontManager? _testFontManager; - /// Reads the font manifest using the [assetManager] and registers all of the + /// Reads the font manifest using the [assetManager] and downloads all of the /// fonts declared within. @override - Future registerFonts(AssetManager assetManager) async { + Future downloadAssetFonts(AssetManager assetManager) async { ByteData byteData; try { @@ -67,10 +67,11 @@ class HtmlFontCollection implements FontCollection { descriptors[descriptor] = '${fontAsset[descriptor]}'; } } - _assetFontManager!.registerAsset( + _assetFontManager!.downloadAsset( family!, 'url(${assetManager.getAssetUrl(asset)})', descriptors); } } + await _assetFontManager!.downloadAllFonts(); } @override @@ -81,24 +82,23 @@ class HtmlFontCollection implements FontCollection { return _assetFontManager!._loadFontFaceBytes(fontFamily, list); } - /// Registers fonts that are used by tests. + /// Downloads fonts that are used by tests. @override - void debugRegisterTestFonts() { + Future debugDownloadTestFonts() async { _testFontManager = FontManager(); - _testFontManager!.registerAsset( + _testFontManager!.downloadAsset( ahemFontFamily, 'url($ahemFontUrl)', const {}); - _testFontManager!.registerAsset(robotoFontFamily, + _testFontManager!.downloadAsset(robotoFontFamily, 'url($robotoTestFontUrl)', const {}); - _testFontManager!.registerAsset(robotoVariableFontFamily, + _testFontManager!.downloadAsset(robotoVariableFontFamily, 'url($robotoVariableTestFontUrl)', const {}); + await _testFontManager!.downloadAllFonts(); } - /// Returns a [Future] that completes when the registered fonts are loaded - /// and ready to be used. @override - Future ensureFontsLoaded() async { - await _assetFontManager?.ensureFontsLoaded(); - await _testFontManager?.ensureFontsLoaded(); + void registerDownloadedFonts() { + _assetFontManager?.registerDownloadedFonts(); + _testFontManager?.registerDownloadedFonts(); } /// Unregister all fonts that have been registered. @@ -124,7 +124,12 @@ class FontManager { FontManager._(); - final List> _fontLoadingFutures = >[]; + /// Fonts that started the downloading process. Once the fonts have downloaded + /// without error, they are moved to [_downloadedFonts]. Those fonts + /// are subsequently registered by [registerDownloadedFonts]. + final List> _fontLoadingFutures = >[]; + + final List _downloadedFonts = []; // Regular expression to detect a string with no punctuations. // For example font family 'Ahem!' does not fall into this category @@ -167,7 +172,7 @@ class FontManager { /// /// * https://developer.mozilla.org/en-US/docs/Web/CSS/font-family#Valid_family_names /// * https://drafts.csswg.org/css-fonts-3/#font-family-prop - void registerAsset( + void downloadAsset( String family, String asset, Map descriptors, @@ -187,19 +192,37 @@ class FontManager { String asset, Map descriptors, ) { + Future fontFaceLoad(DomFontFace fontFace) async { + try { + final DomFontFace loadedFontFace = await fontFace.load(); + return loadedFontFace; + } catch (e) { + printWarning('Error while trying to load font family "$family":\n$e'); + return null; + } + } // try/catch because `new FontFace` can crash with an improper font family. try { final DomFontFace fontFace = createDomFontFace(family, asset, descriptors); - _fontLoadingFutures.add(fontFace.load().then((_) { - domDocument.fonts!.add(fontFace); - }, onError: (dynamic e) { - printWarning('Error while trying to load font family "$family":\n$e'); - })); + _fontLoadingFutures.add(fontFaceLoad(fontFace)); } catch (e) { printWarning('Error while loading font family "$family":\n$e'); } } + void registerDownloadedFonts() { + if (_downloadedFonts.isEmpty) { + return; + } + _downloadedFonts.forEach(domDocument.fonts!.add); + } + + + Future downloadAllFonts() async { + final List loadedFonts = await Future.wait(_fontLoadingFutures); + _downloadedFonts.addAll(loadedFonts.whereType()); + } + // Loads a font from bytes, surfacing errors through the future. Future _loadFontFaceBytes(String family, Uint8List list) { // Since these fonts are loaded by user code, surface the error @@ -219,12 +242,6 @@ class FontManager { throw Exception(exception.toString()); }); } - - /// Returns a [Future] that completes when all fonts that have been - /// registered with this font manager have been loaded and are ready to use. - Future ensureFontsLoaded() { - return Future.wait(_fontLoadingFutures); - } } /// A font manager that works without using the CSS Font Loading API. @@ -241,8 +258,18 @@ class _PolyfillFontManager extends FontManager { static const Duration _fontLoadTimeout = Duration(seconds: 2); static const Duration _fontLoadRetryDuration = Duration(milliseconds: 50); + final List> _completerFutures = >[]; + + @override + Future downloadAllFonts() async { + await Future.wait(_completerFutures); + } + + @override + void registerDownloadedFonts() {} + @override - void registerAsset( + void downloadAsset( String family, String asset, Map descriptors, @@ -314,6 +341,6 @@ class _PolyfillFontManager extends FontManager { fontLoadStart = DateTime.now(); watchWidth(); - _fontLoadingFutures.add(completer.future); + _completerFutures.add(completer.future); } } diff --git a/lib/web_ui/lib/src/engine/text/fragmenter.dart b/lib/web_ui/lib/src/engine/text/fragmenter.dart new file mode 100644 index 0000000000000..9fdd82e167c03 --- /dev/null +++ b/lib/web_ui/lib/src/engine/text/fragmenter.dart @@ -0,0 +1,34 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +/// Splits [text] into a list of [TextFragment]s. +/// +/// Various subclasses can perform the fragmenting based on their own criteria. +/// +/// See: +/// +/// - [LineBreakFragmenter]: Fragments text based on line break opportunities. +/// - [BidiFragmenter]: Fragments text based on directionality. +abstract class TextFragmenter { + const TextFragmenter(this.text); + + /// The text to be fragmented. + final String text; + + /// Performs the fragmenting of [text] and returns a list of [TextFragment]s. + List fragment(); +} + +/// Represents a fragment produced by [TextFragmenter]. +abstract class TextFragment { + const TextFragment(this.start, this.end); + + final int start; + final int end; + + /// Whether this fragment's range overlaps with the range from [start] to [end]. + bool overlapsWith(int start, int end) { + return start < this.end && this.start < end; + } +} diff --git a/lib/web_ui/lib/src/engine/text/layout_fragmenter.dart b/lib/web_ui/lib/src/engine/text/layout_fragmenter.dart new file mode 100644 index 0000000000000..0c48c0f5eeb92 --- /dev/null +++ b/lib/web_ui/lib/src/engine/text/layout_fragmenter.dart @@ -0,0 +1,628 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import 'dart:math' as math; + +import 'package:ui/ui.dart' as ui; + +import '../util.dart'; +import 'canvas_paragraph.dart'; +import 'fragmenter.dart'; +import 'layout_service.dart'; +import 'line_breaker.dart'; +import 'paragraph.dart'; +import 'text_direction.dart'; + +/// Splits [text] into fragments that are ready to be laid out by +/// [TextLayoutService]. +/// +/// This fragmenter takes into account line breaks, directionality and styles. +class LayoutFragmenter extends TextFragmenter { + const LayoutFragmenter(super.text, this.paragraphSpans); + + final List paragraphSpans; + + @override + List fragment() { + final List fragments = []; + + int fragmentStart = 0; + + final Iterator lineBreakFragments = LineBreakFragmenter(text).fragment().iterator..moveNext(); + final Iterator bidiFragments = BidiFragmenter(text).fragment().iterator..moveNext(); + final Iterator spans = paragraphSpans.iterator..moveNext(); + + LineBreakFragment currentLineBreakFragment = lineBreakFragments.current; + BidiFragment currentBidiFragment = bidiFragments.current; + ParagraphSpan currentSpan = spans.current; + + while (true) { + final int fragmentEnd = math.min( + currentLineBreakFragment.end, + math.min( + currentBidiFragment.end, + currentSpan.end, + ), + ); + + final int distanceFromLineBreak = currentLineBreakFragment.end - fragmentEnd; + + final LineBreakType lineBreakType = distanceFromLineBreak == 0 + ? currentLineBreakFragment.type + : LineBreakType.prohibited; + + final int trailingNewlines = currentLineBreakFragment.trailingNewlines - distanceFromLineBreak; + final int trailingSpaces = currentLineBreakFragment.trailingSpaces - distanceFromLineBreak; + + final int fragmentLength = fragmentEnd - fragmentStart; + fragments.add(LayoutFragment( + fragmentStart, + fragmentEnd, + lineBreakType, + currentBidiFragment.textDirection, + currentBidiFragment.fragmentFlow, + currentSpan, + trailingNewlines: clampInt(trailingNewlines, 0, fragmentLength), + trailingSpaces: clampInt(trailingSpaces, 0, fragmentLength), + )); + + fragmentStart = fragmentEnd; + + bool moved = false; + if (currentLineBreakFragment.end == fragmentEnd) { + if (lineBreakFragments.moveNext()) { + moved = true; + currentLineBreakFragment = lineBreakFragments.current; + } + } + if (currentBidiFragment.end == fragmentEnd) { + if (bidiFragments.moveNext()) { + moved = true; + currentBidiFragment = bidiFragments.current; + } + } + if (currentSpan.end == fragmentEnd) { + if (spans.moveNext()) { + moved = true; + currentSpan = spans.current; + } + } + + // Once we reached the end of all fragments, exit the loop. + if (!moved) { + break; + } + } + + return fragments; + } +} + +abstract class _CombinedFragment extends TextFragment { + _CombinedFragment( + super.start, + super.end, + this.type, + this._textDirection, + this.fragmentFlow, + this.span, { + required this.trailingNewlines, + required this.trailingSpaces, + }) : assert(trailingNewlines >= 0), + assert(trailingSpaces >= trailingNewlines); + + final LineBreakType type; + + ui.TextDirection? get textDirection => _textDirection; + ui.TextDirection? _textDirection; + + final FragmentFlow fragmentFlow; + + final ParagraphSpan span; + + final int trailingNewlines; + + final int trailingSpaces; + + @override + int get hashCode => Object.hash( + start, + end, + type, + textDirection, + fragmentFlow, + span, + trailingNewlines, + trailingSpaces, + ); + + @override + bool operator ==(Object other) { + return other is LayoutFragment && + other.start == start && + other.end == end && + other.type == type && + other.textDirection == textDirection && + other.fragmentFlow == fragmentFlow && + other.span == span && + other.trailingNewlines == trailingNewlines && + other.trailingSpaces == trailingSpaces; + } +} + +class LayoutFragment extends _CombinedFragment with _FragmentMetrics, _FragmentPosition, _FragmentBox { + LayoutFragment( + super.start, + super.end, + super.type, + super.textDirection, + super.fragmentFlow, + super.span, { + required super.trailingNewlines, + required super.trailingSpaces, + }); + + int get length => end - start; + bool get isSpaceOnly => length == trailingSpaces; + bool get isPlaceholder => span is PlaceholderSpan; + bool get isBreak => type != LineBreakType.prohibited; + bool get isHardBreak => type == LineBreakType.mandatory || type == LineBreakType.endOfText; + EngineTextStyle get style => span.style; + + /// Returns the substring from [paragraph] that corresponds to this fragment, + /// excluding new line characters. + String getText(CanvasParagraph paragraph) { + return paragraph.plainText.substring(start, end - trailingNewlines); + } + + /// Splits this fragment into two fragments with the split point being the + /// given [index]. + // TODO(mdebbar): If we ever get multiple return values in Dart, we should use it! + // See: https://github.com/dart-lang/language/issues/68 + List split(int index) { + assert(start <= index); + assert(index <= end); + + if (start == index) { + return [null, this]; + } + + if (end == index) { + return [this, null]; + } + + // The length of the second fragment after the split. + final int secondLength = end - index; + + // Trailing spaces/new lines go to the second fragment. Any left over goes + // to the first fragment. + final int secondTrailingNewlines = math.min(trailingNewlines, secondLength); + final int secondTrailingSpaces = math.min(trailingSpaces, secondLength); + + return [ + LayoutFragment( + start, + index, + LineBreakType.prohibited, + textDirection, + fragmentFlow, + span, + trailingNewlines: trailingNewlines - secondTrailingNewlines, + trailingSpaces: trailingSpaces - secondTrailingSpaces, + ), + LayoutFragment( + index, + end, + type, + textDirection, + fragmentFlow, + span, + trailingNewlines: secondTrailingNewlines, + trailingSpaces: secondTrailingSpaces, + ), + ]; + } + + @override + String toString() { + return '$LayoutFragment($start, $end, $type, $textDirection)'; + } +} + +mixin _FragmentMetrics on _CombinedFragment { + late Spanometer _spanometer; + + /// The rise from the baseline as calculated from the font and style for this text. + double get ascent => _ascent; + late double _ascent; + + /// The drop from the baseline as calculated from the font and style for this text. + double get descent => _descent; + late double _descent; + + /// The width of the measured text, not including trailing spaces. + double get widthExcludingTrailingSpaces => _widthExcludingTrailingSpaces; + late double _widthExcludingTrailingSpaces; + + /// The width of the measured text, including any trailing spaces. + double get widthIncludingTrailingSpaces => _widthIncludingTrailingSpaces + _extraWidthForJustification; + late double _widthIncludingTrailingSpaces; + + double _extraWidthForJustification = 0.0; + + /// The total height as calculated from the font and style for this text. + double get height => ascent + descent; + + double get widthOfTrailingSpaces => widthIncludingTrailingSpaces - widthExcludingTrailingSpaces; + + /// Set measurement values for the fragment. + void setMetrics(Spanometer spanometer, { + required double ascent, + required double descent, + required double widthExcludingTrailingSpaces, + required double widthIncludingTrailingSpaces, + }) { + _spanometer = spanometer; + _ascent = ascent; + _descent = descent; + _widthExcludingTrailingSpaces = widthExcludingTrailingSpaces; + _widthIncludingTrailingSpaces = widthIncludingTrailingSpaces; + } +} + +/// Encapsulates positioning of the fragment relative to the line. +/// +/// The coordinates are all relative to the line it belongs to. For example, +/// [left] is the distance from the left edge of the line to the left edge of +/// the fragment. +/// +/// This is what the various measurements/coordinates look like for a fragment +/// in an LTR paragraph: +/// +/// *------------------------line.width-----------------* +/// *---width----* +/// ┌─────────────────┬────────────┬────────────────────┐ +/// │ │--FRAGMENT--│ │ +/// └─────────────────┴────────────┴────────────────────┘ +/// *---startOffset---* +/// *------left-------* +/// *--------endOffset-------------* +/// *----------right---------------* +/// +/// +/// And in an RTL paragraph, [startOffset] and [endOffset] are flipped because +/// the line starts from the right. Here's what they look like: +/// +/// *------------------------line.width-----------------* +/// *---width----* +/// ┌─────────────────┬────────────┬────────────────────┐ +/// │ │--FRAGMENT--│ │ +/// └─────────────────┴────────────┴────────────────────┘ +/// *----startOffset-----* +/// *------left-------* +/// *-----------endOffset-------------* +/// *----------right---------------* +/// +mixin _FragmentPosition on _CombinedFragment, _FragmentMetrics { + /// The distance from the beginning of the line to the beginning of the fragment. + double get startOffset => _startOffset; + late double _startOffset; + + /// The width of the line that contains this fragment. + late ParagraphLine line; + + /// The distance from the beginning of the line to the end of the fragment. + double get endOffset => startOffset + widthIncludingTrailingSpaces; + + /// The distance from the left edge of the line to the left edge of the fragment. + double get left => line.textDirection == ui.TextDirection.ltr + ? startOffset + : line.width - endOffset; + + /// The distance from the left edge of the line to the right edge of the fragment. + double get right => line.textDirection == ui.TextDirection.ltr + ? endOffset + : line.width - startOffset; + + /// Set the horizontal position of this fragment relative to the [line] that + /// contains it. + void setPosition({ + required double startOffset, + required ui.TextDirection textDirection, + }) { + _startOffset = startOffset; + _textDirection ??= textDirection; + } + + /// Adjust the width of this fragment for paragraph justification. + void justifyTo({required double paragraphWidth}) { + // Only justify this fragment if it's not a trailing space in the line. + if (end > line.endIndex - line.trailingSpaces) { + // Don't justify fragments that are part of trailing spaces of the line. + return; + } + + if (trailingSpaces == 0) { + // If this fragment has no spaces, there's nothing to justify. + return; + } + + final double justificationTotal = paragraphWidth - line.width; + final double justificationPerSpace = justificationTotal / line.nonTrailingSpaces; + _extraWidthForJustification = justificationPerSpace * trailingSpaces; + } +} + +/// Encapsulates calculations related to the bounding box of the fragment +/// relative to the paragraph. +mixin _FragmentBox on _CombinedFragment, _FragmentMetrics, _FragmentPosition { + double get top => line.baseline - ascent; + double get bottom => line.baseline + descent; + + late final ui.TextBox _textBoxIncludingTrailingSpaces = ui.TextBox.fromLTRBD( + line.left + left, + top, + line.left + right, + bottom, + textDirection!, + ); + + /// Whether or not the trailing spaces of this fragment are part of trailing + /// spaces of the line containing the fragment. + bool get _isPartOfTrailingSpacesInLine => end > line.endIndex - line.trailingSpaces; + + /// Returns a [ui.TextBox] for the purpose of painting this fragment. + /// + /// The coordinates of the resulting [ui.TextBox] are relative to the + /// paragraph, not to the line. + /// + /// Trailing spaces in each line aren't painted on the screen, so they are + /// excluded from the resulting text box. + ui.TextBox toPaintingTextBox() { + if (_isPartOfTrailingSpacesInLine) { + // For painting, we exclude the width of trailing spaces from the box. + return textDirection! == ui.TextDirection.ltr + ? ui.TextBox.fromLTRBD( + line.left + left, + top, + line.left + right - widthOfTrailingSpaces, + bottom, + textDirection!, + ) + : ui.TextBox.fromLTRBD( + line.left + left + widthOfTrailingSpaces, + top, + line.left + right, + bottom, + textDirection!, + ); + } + return _textBoxIncludingTrailingSpaces; + } + + /// Returns a [ui.TextBox] representing this fragment. + /// + /// The coordinates of the resulting [ui.TextBox] are relative to the + /// paragraph, not to the line. + /// + /// As opposed to [toPaintingTextBox], the resulting text box from this method + /// includes trailing spaces of the fragment. + ui.TextBox toTextBox({ + int? start, + int? end, + }) { + start ??= this.start; + end ??= this.end; + + if (start <= this.start && end >= this.end - trailingNewlines) { + return _textBoxIncludingTrailingSpaces; + } + return _intersect(start, end); + } + + /// Performs the intersection of this fragment with the range given by [start] and + /// [end] indices, and returns a [ui.TextBox] representing that intersection. + /// + /// The coordinates of the resulting [ui.TextBox] are relative to the + /// paragraph, not to the line. + ui.TextBox _intersect(int start, int end) { + // `_intersect` should only be called when there's an actual intersection. + assert(start > this.start || end < this.end); + + final double before; + if (start <= this.start) { + before = 0.0; + } else { + _spanometer.currentSpan = span; + before = _spanometer.measureRange(this.start, start); + } + + final double after; + if (end >= this.end - trailingNewlines) { + after = 0.0; + } else { + _spanometer.currentSpan = span; + after = _spanometer.measureRange(end, this.end - trailingNewlines); + } + + final double left, right; + if (textDirection! == ui.TextDirection.ltr) { + // Example: let's say the text is "Loremipsum" and we want to get the box + // for "rem". In this case, `before` is the width of "Lo", and `after` + // is the width of "ipsum". + // + // Here's how the measurements/coordinates look like: + // + // before after + // |----| |----------| + // +---------------------+ + // | L o r e m i p s u m | + // +---------------------+ + // this.left ^ ^ this.right + left = this.left + before; + right = this.right - after; + } else { + // Example: let's say the text is "txet_werbeH" ("Hebrew_text" flowing from + // right to left). Say we want to get the box for "brew". The `before` is + // the width of "He", and `after` is the width of "_text". + // + // after before + // |----------| |----| + // +-----------------------+ + // | t x e t _ w e r b e H | + // +-----------------------+ + // this.left ^ ^ this.right + // + // Notice how `before` and `after` are reversed in the RTL example. That's + // because the text flows from right to left. + left = this.left + after; + right = this.right - before; + } + + // The fragment's left and right edges are relative to the line. In order + // to make them relative to the paragraph, we need to add the left edge of + // the line. + return ui.TextBox.fromLTRBD( + line.left + left, + top, + line.left + right, + bottom, + textDirection!, + ); + } + + /// Returns the text position within this fragment's range that's closest to + /// the given [x] offset. + /// + /// The [x] offset is expected to be relative to the left edge of the fragment. + ui.TextPosition getPositionForX(double x) { + x = _makeXDirectionAgnostic(x); + + final int startIndex = start; + final int endIndex = end - trailingNewlines; + + // Check some special cases to return the result quicker. + + final int length = endIndex - startIndex; + if (length == 0) { + return ui.TextPosition(offset: startIndex); + } + if (length == 1) { + // Find out if `x` is closer to `startIndex` or `endIndex`. + final double distanceFromStart = x; + final double distanceFromEnd = widthIncludingTrailingSpaces - x; + return distanceFromStart < distanceFromEnd + ? ui.TextPosition(offset: startIndex) + : ui.TextPosition(offset: endIndex, affinity: ui.TextAffinity.upstream,); + } + + _spanometer.currentSpan = span; + // The resulting `cutoff` is the index of the character where the `x` offset + // falls. We should return the text position of either `cutoff` or + // `cutoff + 1` depending on which one `x` is closer to. + // + // offset x + // ↓ + // "A B C D E F" + // ↑ + // cutoff + final int cutoff = _spanometer.forceBreak( + startIndex, + endIndex, + availableWidth: x, + allowEmpty: true, + ); + + if (cutoff == endIndex) { + return ui.TextPosition( + offset: cutoff, + affinity: ui.TextAffinity.upstream, + ); + } + + final double lowWidth = _spanometer.measureRange(startIndex, cutoff); + final double highWidth = _spanometer.measureRange(startIndex, cutoff + 1); + + // See if `x` is closer to `cutoff` or `cutoff + 1`. + if (x - lowWidth < highWidth - x) { + // The offset is closer to cutoff. + return ui.TextPosition(offset: cutoff); + } else { + // The offset is closer to cutoff + 1. + return ui.TextPosition( + offset: cutoff + 1, + affinity: ui.TextAffinity.upstream, + ); + } + } + + /// Transforms the [x] coordinate to be direction-agnostic. + /// + /// The X (input) is relative to the [left] edge of the fragment, and this + /// method returns an X' (output) that's relative to beginning of the text. + /// + /// Here's how it looks for a fragment with LTR content: + /// + /// *------------------------line width------------------* + /// *-----X (input) + /// ┌───────────┬────────────────────────┬───────────────┐ + /// │ │ ---text-direction----> │ │ + /// └───────────┴────────────────────────┴───────────────┘ + /// *-----X' (output) + /// *---left----* + /// *---------------right----------------* + /// + /// + /// And here's how it looks for a fragment with RTL content: + /// + /// *------------------------line width------------------* + /// *-----X (input) + /// ┌───────────┬────────────────────────┬───────────────┐ + /// │ │ <---text-direction---- │ │ + /// └───────────┴────────────────────────┴───────────────┘ + /// (output) X'-----------------* + /// *---left----* + /// *---------------right----------------* + /// + double _makeXDirectionAgnostic(double x) { + if (textDirection == ui.TextDirection.rtl) { + return widthIncludingTrailingSpaces - x; + } + return x; + } +} + +class EllipsisFragment extends LayoutFragment { + EllipsisFragment( + int index, + ParagraphSpan span, + ) : super( + index, + index, + LineBreakType.endOfText, + null, + // The ellipsis is always at the end of the line, so it can't be + // sandwiched. This means it'll always follow the paragraph direction. + FragmentFlow.sandwich, + span, + trailingNewlines: 0, + trailingSpaces: 0, + ); + + @override + bool get isSpaceOnly => false; + + @override + bool get isPlaceholder => false; + + @override + String getText(CanvasParagraph paragraph) { + return paragraph.paragraphStyle.ellipsis!; + } + + @override + List split(int index) { + throw Exception('Cannot split an EllipsisFragment'); + } +} diff --git a/lib/web_ui/lib/src/engine/text/layout_service.dart b/lib/web_ui/lib/src/engine/text/layout_service.dart index a5b91bd016cd7..b289abc13c5d1 100644 --- a/lib/web_ui/lib/src/engine/text/layout_service.dart +++ b/lib/web_ui/lib/src/engine/text/layout_service.dart @@ -9,6 +9,7 @@ import 'package:ui/ui.dart' as ui; import '../dom.dart'; import 'canvas_paragraph.dart'; +import 'layout_fragmenter.dart'; import 'line_breaker.dart'; import 'measurement.dart'; import 'paragraph.dart'; @@ -23,7 +24,8 @@ class TextLayoutService { final CanvasParagraph paragraph; - final DomCanvasRenderingContext2D context = createDomCanvasElement().context2D; + final DomCanvasRenderingContext2D context = + createDomCanvasElement().context2D; // *** Results of layout *** // @@ -51,13 +53,10 @@ class TextLayoutService { ui.Rect get paintBounds => _paintBounds; ui.Rect _paintBounds = ui.Rect.zero; - // *** Convenient shortcuts used during layout *** // + late final Spanometer spanometer = Spanometer(paragraph, context); - int? get maxLines => paragraph.paragraphStyle.maxLines; - bool get unlimitedLines => maxLines == null; - - String? get ellipsis => paragraph.paragraphStyle.ellipsis; - bool get hasEllipsis => ellipsis != null; + late final LayoutFragmenter layoutFragmenter = + LayoutFragmenter(paragraph.plainText, paragraph.spans); /// Performs the layout on a paragraph given the [constraints]. /// @@ -74,8 +73,6 @@ class TextLayoutService { /// 2. Enough lines have been computed to satisfy [maxLines]. /// 3. An ellipsis is appended because of an overflow. void performLayout(ui.ParagraphConstraints constraints) { - final int spanCount = paragraph.spans.length; - // Reset results from previous layout. width = constraints.width; height = 0.0; @@ -85,129 +82,51 @@ class TextLayoutService { didExceedMaxLines = false; lines.clear(); - if (spanCount == 0) { - return; - } - - final Spanometer spanometer = Spanometer(paragraph, context); - - int spanIndex = 0; LineBuilder currentLine = LineBuilder.first(paragraph, spanometer, maxWidth: constraints.width); - // The only way to exit this while loop is by hitting one of the `break;` - // statements (e.g. when we reach `endOfText`, when ellipsis has been - // appended). - while (true) { - // ************************** // - // *** HANDLE END OF TEXT *** // - // ************************** // - - // All spans have been consumed. - final bool reachedEnd = spanIndex == spanCount; - if (reachedEnd) { - // In some cases, we need to extend the line to the end of text and - // build it: - // - // 1. Line is not empty. This could happen when the last span is a - // placeholder. - // - // 2. We haven't reached `LineBreakType.endOfText` yet. This could - // happen when the last character is a new line. - if (currentLine.isNotEmpty || currentLine.end.type != LineBreakType.endOfText) { - currentLine.extendToEndOfText(); - lines.add(currentLine.build()); - } - break; - } + final List fragments = + layoutFragmenter.fragment()..forEach(spanometer.measureFragment); - // ********************************* // - // *** THE MAIN MEASUREMENT PART *** // - // ********************************* // + outerLoop: + for (int i = 0; i < fragments.length; i++) { + final LayoutFragment fragment = fragments[i]; - ParagraphSpan span = paragraph.spans[spanIndex]; + currentLine.addFragment(fragment); - if (span is PlaceholderSpan) { - if (currentLine.widthIncludingSpace + span.width <= constraints.width) { - // The placeholder fits on the current line. - currentLine.addPlaceholder(span); - } else { - // The placeholder can't fit on the current line. - if (currentLine.isNotEmpty) { - lines.add(currentLine.build()); - currentLine = currentLine.nextLine(); - } - currentLine.addPlaceholder(span); + while (currentLine.isOverflowing) { + if (currentLine.canHaveEllipsis) { + currentLine.insertEllipsis(); + lines.add(currentLine.build()); + didExceedMaxLines = true; + break outerLoop; } - spanIndex++; - } else if (span is FlatTextSpan) { - spanometer.currentSpan = span; - final DirectionalPosition nextBreak = currentLine.findNextBreak(); - final double additionalWidth = - currentLine.getAdditionalWidthTo(nextBreak.lineBreak); - - if (currentLine.width + additionalWidth <= constraints.width) { - // The line can extend to `nextBreak` without overflowing. - currentLine.extendTo(nextBreak); - if (nextBreak.type == LineBreakType.mandatory) { - lines.add(currentLine.build()); - currentLine = currentLine.nextLine(); - } + + if (currentLine.isBreakable) { + currentLine.revertToLastBreakOpportunity(); } else { - // The chunk of text can't fit into the current line. - final bool isLastLine = - (hasEllipsis && unlimitedLines) || lines.length + 1 == maxLines; - - if (isLastLine && hasEllipsis) { - // We've reached the line that requires an ellipsis to be appended - // to it. - - currentLine.forceBreak( - nextBreak, - allowEmpty: true, - ellipsis: ellipsis, - ); - lines.add(currentLine.build(ellipsis: ellipsis)); - break; - } else if (currentLine.isNotBreakable) { - // The entire line is unbreakable, which means we are dealing - // with a single block of text that doesn't fit in a single line. - // We need to force-break it without adding an ellipsis. - - currentLine.forceBreak(nextBreak, allowEmpty: false); - lines.add(currentLine.build()); - currentLine = currentLine.nextLine(); - } else { - // Normal line break. - currentLine.revertToLastBreakOpportunity(); - // If a revert had occurred in the line, we need to revert the span - // index accordingly. - // - // If no revert occurred, then `revertedToSpan` will be equal to - // `span` and the following while loop won't do anything. - final ParagraphSpan revertedToSpan = currentLine.lastSegment.span; - while (span != revertedToSpan) { - span = paragraph.spans[--spanIndex]; - } - lines.add(currentLine.build()); - currentLine = currentLine.nextLine(); - } + // The line can't be legally broken, so the last fragment (that caused + // the line to overflow) needs to be force-broken. + currentLine.forceBreakLastFragment(); } - // Only go to the next span if we've reached the end of this span. - if (currentLine.end.index >= span.end) { - currentLine.createBox(); - ++spanIndex; - } - } else { - throw UnimplementedError('Unknown span type: ${span.runtimeType}'); + i += currentLine.appendZeroWidthFragments(fragments, startFrom: i + 1); + lines.add(currentLine.build()); + currentLine = currentLine.nextLine(); } - if (lines.length == maxLines) { - break; + if (currentLine.isHardBreak) { + lines.add(currentLine.build()); + currentLine = currentLine.nextLine(); } } + final int? maxLines = paragraph.paragraphStyle.maxLines; + if (maxLines != null && lines.length > maxLines) { + didExceedMaxLines = true; + lines.removeRange(maxLines, lines.length); + } + // ***************************************************************** // // *** PARAGRAPH BASELINE & HEIGHT & LONGEST LINE & PAINT BOUNDS *** // // ***************************************************************** // @@ -241,69 +160,58 @@ class TextLayoutService { height, ); - // ********************** // - // *** POSITION BOXES *** // - // ********************** // + // **************************** // + // *** FRAGMENT POSITIONING *** // + // **************************** // + // We have to perform justification alignment first so that we can position + // fragments correctly later. if (lines.isNotEmpty) { - final ParagraphLine lastLine = lines.last; - final bool shouldJustifyParagraph = - width.isFinite && - paragraph.paragraphStyle.textAlign == ui.TextAlign.justify; + final bool shouldJustifyParagraph = width.isFinite && + paragraph.paragraphStyle.textAlign == ui.TextAlign.justify; - for (final ParagraphLine line in lines) { + if (shouldJustifyParagraph) { // Don't apply justification to the last line. - final bool shouldJustifyLine = shouldJustifyParagraph && line != lastLine; - _positionLineBoxes(line, withJustification: shouldJustifyLine); + for (int i = 0; i < lines.length - 1; i++) { + for (final LayoutFragment fragment in lines[i].fragments) { + fragment.justifyTo(paragraphWidth: width); + } + } } } + lines.forEach(_positionLineFragments); + // ******************************** // // *** MAX/MIN INTRINSIC WIDTHS *** // // ******************************** // - spanIndex = 0; - currentLine = - LineBuilder.first(paragraph, spanometer, maxWidth: constraints.width); - - while (spanIndex < spanCount) { - final ParagraphSpan span = paragraph.spans[spanIndex]; - bool breakToNextLine = false; - - if (span is PlaceholderSpan) { - currentLine.addPlaceholder(span); - spanIndex++; - } else if (span is FlatTextSpan) { - spanometer.currentSpan = span; - final DirectionalPosition nextBreak = currentLine.findNextBreak(); - - // For the purpose of max intrinsic width, we don't care if the line - // fits within the constraints or not. So we always extend it. - currentLine.extendTo(nextBreak); - if (nextBreak.type == LineBreakType.mandatory) { - // We don't want to break the line now because we want to update - // min/max intrinsic widths below first. - breakToNextLine = true; - } - - // Only go to the next span if we've reached the end of this span. - if (currentLine.end.index >= span.end) { - spanIndex++; - } - } + // TODO(mdebbar): Handle maxLines https://github.com/flutter/flutter/issues/91254 - final double widthOfLastSegment = currentLine.lastSegment.width; - if (minIntrinsicWidth < widthOfLastSegment) { - minIntrinsicWidth = widthOfLastSegment; - } + double runningMinIntrinsicWidth = 0; + double runningMaxIntrinsicWidth = 0; + for (final LayoutFragment fragment in fragments) { + runningMinIntrinsicWidth += fragment.widthExcludingTrailingSpaces; // Max intrinsic width includes the width of trailing spaces. - if (maxIntrinsicWidth < currentLine.widthIncludingSpace) { - maxIntrinsicWidth = currentLine.widthIncludingSpace; - } - - if (breakToNextLine) { - currentLine = currentLine.nextLine(); + runningMaxIntrinsicWidth += fragment.widthIncludingTrailingSpaces; + + switch (fragment.type) { + case LineBreakType.prohibited: + break; + + case LineBreakType.opportunity: + minIntrinsicWidth = math.max(minIntrinsicWidth, runningMinIntrinsicWidth); + runningMinIntrinsicWidth = 0; + break; + + case LineBreakType.mandatory: + case LineBreakType.endOfText: + minIntrinsicWidth = math.max(minIntrinsicWidth, runningMinIntrinsicWidth); + maxIntrinsicWidth = math.max(maxIntrinsicWidth, runningMaxIntrinsicWidth); + runningMinIntrinsicWidth = 0; + runningMaxIntrinsicWidth = 0; + break; } } } @@ -311,143 +219,130 @@ class TextLayoutService { ui.TextDirection get _paragraphDirection => paragraph.paragraphStyle.effectiveTextDirection; - /// Positions the boxes in the given [line] and takes into account their - /// directions, the paragraph's direction, and alignment justification. - void _positionLineBoxes(ParagraphLine line, { - required bool withJustification, - }) { - final List boxes = line.boxes; - final double justifyPerSpaceBox = withJustification - ? _calculateJustifyPerSpaceBox(line) - : 0.0; + /// Positions the fragments taking into account their directions and the + /// paragraph's direction. + void _positionLineFragments(ParagraphLine line) { + ui.TextDirection previousDirection = _paragraphDirection; - int i = 0; - double cumulativeWidth = 0.0; - while (i < boxes.length) { - final RangeBox box = boxes[i]; - if (box.boxDirection == _paragraphDirection) { - // The box is in the same direction as the paragraph. - box.startOffset = cumulativeWidth; - box.lineWidth = line.width; - if (box is SpanBox && box.isSpaceOnly && !box.isTrailingSpace) { - box._width += justifyPerSpaceBox; + double startOffset = 0.0; + int? sandwichStart; + int sequenceStart = 0; + + for (int i = 0; i <= line.fragments.length; i++) { + if (i < line.fragments.length) { + final LayoutFragment fragment = line.fragments[i]; + + if (fragment.fragmentFlow == FragmentFlow.previous) { + sandwichStart = null; + continue; + } + if (fragment.fragmentFlow == FragmentFlow.sandwich) { + sandwichStart ??= i; + continue; } - cumulativeWidth += box.width; - i++; - continue; - } - // At this point, we found a box that has the opposite direction to the - // paragraph. This could be a sequence of one or more boxes. - // - // These boxes should flow in the opposite direction. So we need to - // position them in reverse order. - // - // If the last box in the sequence is a space-only box (contains only - // whitespace characters), it should be excluded from the sequence. - // - // Example: an LTR paragraph with the contents: - // - // "ABC rtl1 rtl2 rtl3 XYZ" - // ^ ^ ^ ^ - // SP1 SP2 SP3 SP4 - // - // - // box direction: LTR RTL LTR - // |------>|<-----------------------|------> - // +----------------------------------------+ - // | ABC | | rtl3 | | rtl2 | | rtl1 | | XYZ | - // +----------------------------------------+ - // ^ ^ ^ ^ - // SP1 SP3 SP2 SP4 - // - // Notice how SP2 and SP3 are flowing in the RTL direction because of the - // surrounding RTL words. SP4 is also preceded by an RTL word, but it marks - // the end of the RTL sequence, so it goes back to flowing in the paragraph - // direction (LTR). - - final int first = i; - int lastNonSpaceBox = first; - i++; - while (i < boxes.length && boxes[i].boxDirection != _paragraphDirection) { - final RangeBox box = boxes[i]; - if (box is SpanBox && box.isSpaceOnly) { - // Do nothing. - } else { - lastNonSpaceBox = i; + assert(fragment.fragmentFlow == FragmentFlow.ltr || + fragment.fragmentFlow == FragmentFlow.rtl); + + final ui.TextDirection currentDirection = + fragment.fragmentFlow == FragmentFlow.ltr + ? ui.TextDirection.ltr + : ui.TextDirection.rtl; + + if (currentDirection == previousDirection) { + sandwichStart = null; + continue; } - i++; } - final int last = lastNonSpaceBox; - i = lastNonSpaceBox + 1; - - // The range (first:last) is the entire sequence of boxes that have the - // opposite direction to the paragraph. - final double sequenceWidth = _positionLineBoxesInReverse( - line, - first, - last, - startOffset: cumulativeWidth, - justifyPerSpaceBox: justifyPerSpaceBox, - ); - cumulativeWidth += sequenceWidth; + + // We've reached a fragment that'll flip the text direction. Let's + // position the sequence that we've been traversing. + + if (sandwichStart == null) { + // Position fragments in range [sequenceStart:i) + startOffset += _positionFragmentRange( + line: line, + start: sequenceStart, + end: i, + direction: previousDirection, + startOffset: startOffset, + ); + } else { + // Position fragments in range [sequenceStart:sandwichStart) + startOffset += _positionFragmentRange( + line: line, + start: sequenceStart, + end: sandwichStart, + direction: previousDirection, + startOffset: startOffset, + ); + // Position fragments in range [sandwichStart:i) + startOffset += _positionFragmentRange( + line: line, + start: sandwichStart, + end: i, + direction: _paragraphDirection, + startOffset: startOffset, + ); + } + + sequenceStart = i; + sandwichStart = null; + + if (i < line.fragments.length){ + previousDirection = line.fragments[i].textDirection!; + } } } - /// Positions a sequence of boxes in the direction opposite to the paragraph - /// text direction. - /// - /// This is needed when a right-to-left sequence appears in the middle of a - /// left-to-right paragraph, or vice versa. - /// - /// Returns the total width of all the positioned boxes in the sequence. - /// - /// [first] and [last] are expected to be inclusive. - double _positionLineBoxesInReverse( - ParagraphLine line, - int first, - int last, { + double _positionFragmentRange({ + required ParagraphLine line, + required int start, + required int end, + required ui.TextDirection direction, required double startOffset, - required double justifyPerSpaceBox, }) { - final List boxes = line.boxes; + assert(start <= end); + double cumulativeWidth = 0.0; - for (int i = last; i >= first; i--) { - // Update the visual position of each box. - final RangeBox box = boxes[i]; - assert(box.boxDirection != _paragraphDirection); - box.startOffset = startOffset + cumulativeWidth; - box.lineWidth = line.width; - if (box is SpanBox && box.isSpaceOnly && !box.isTrailingSpace) { - box._width += justifyPerSpaceBox; - } - cumulativeWidth += box.width; + // The bodies of the two for loops below must remain identical. The only + // difference is the looping direction. One goes from start to end, while + // the other goes from end to start. + + if (direction == _paragraphDirection) { + for (int i = start; i < end; i++) { + cumulativeWidth += + _positionOneFragment(line, i, startOffset + cumulativeWidth, direction); + } + } else { + for (int i = end - 1; i >= start; i--) { + cumulativeWidth += + _positionOneFragment(line, i, startOffset + cumulativeWidth, direction); + } } + return cumulativeWidth; } - /// Calculates for the given [line], the amount of extra width that needs to be - /// added to each space box in order to align the line with the rest of the - /// paragraph. - double _calculateJustifyPerSpaceBox(ParagraphLine line) { - final double justifyTotal = width - line.width; - - final int spaceBoxesToJustify = line.nonTrailingSpaceBoxCount; - if (spaceBoxesToJustify > 0) { - return justifyTotal / spaceBoxesToJustify; - } - - return 0.0; + double _positionOneFragment( + ParagraphLine line, + int i, + double startOffset, + ui.TextDirection direction, + ) { + final LayoutFragment fragment = line.fragments[i]; + fragment.setPosition(startOffset: startOffset, textDirection: direction); + return fragment.widthIncludingTrailingSpaces; } List getBoxesForPlaceholders() { final List boxes = []; for (final ParagraphLine line in lines) { - for (final RangeBox box in line.boxes) { - if (box is PlaceholderBox) { - boxes.add(box.toTextBox(line, forPainting: false)); + for (final LayoutFragment fragment in line.fragments) { + if (fragment.isPlaceholder) { + boxes.add(fragment.toTextBox()); } } } @@ -465,7 +360,7 @@ class TextLayoutService { return []; } - final int length = paragraph.toPlainText().length; + final int length = paragraph.plainText.length; // Ranges that are out of bounds should return an empty list. if (start > length || end > length) { return []; @@ -475,9 +370,9 @@ class TextLayoutService { for (final ParagraphLine line in lines) { if (line.overlapsWith(start, end)) { - for (final RangeBox box in line.boxes) { - if (box is SpanBox && box.overlapsWith(start, end)) { - boxes.add(box.intersect(line, start, end, forPainting: false)); + for (final LayoutFragment fragment in line.fragments) { + if (!fragment.isPlaceholder && fragment.overlapsWith(start, end)) { + boxes.add(fragment.toTextBox(start: start, end: end)); } } } @@ -501,15 +396,15 @@ class TextLayoutService { // [offset] is to the right of the line. if (offset.dx >= line.left + line.widthWithTrailingSpaces) { return ui.TextPosition( - offset: line.endIndexWithoutNewlines, + offset: line.endIndex - line.trailingNewlines, affinity: ui.TextAffinity.upstream, ); } final double dx = offset.dx - line.left; - for (final RangeBox box in line.boxes) { - if (box.left <= dx && dx <= box.right) { - return box.getPositionForX(dx); + for (final LayoutFragment fragment in line.fragments) { + if (fragment.left <= dx && dx <= fragment.right) { + return fragment.getPositionForX(dx - fragment.left); } } // Is this ever reachable? @@ -530,496 +425,32 @@ class TextLayoutService { } } -/// Represents a box inside a paragraph span with the range of [start] to [end]. -/// -/// The box's coordinates are all relative to the line it belongs to. For -/// example, [left] is the distance from the left edge of the line to the left -/// edge of the box. -/// -/// This is what the various measurements/coordinates look like for a box in an -/// LTR paragraph: -/// -/// *------------------------lineWidth------------------* -/// *--width--* -/// ┌─────────────────┬─────────┬───────────────────────┐ -/// │ │---BOX---│ │ -/// └─────────────────┴─────────┴───────────────────────┘ -/// *---startOffset---* -/// *------left-------* -/// *--------endOffset----------* -/// *----------right------------* -/// -/// -/// And in an RTL paragraph, [startOffset] and [endOffset] are flipped because -/// the line starts from the right. Here's what they look like: -/// -/// *------------------------lineWidth------------------* -/// *--width--* -/// ┌─────────────────┬─────────┬───────────────────────┐ -/// │ │---BOX---│ │ -/// └─────────────────┴─────────┴───────────────────────┘ -/// *------startOffset------* -/// *------left-------* -/// *-----------endOffset-------------* -/// *----------right------------* -/// -abstract class RangeBox { - RangeBox( - this.start, - this.end, - this.paragraphDirection, - this.boxDirection, - ); - - final LineBreakResult start; - final LineBreakResult end; - - /// The distance from the beginning of the line to the beginning of the box. - late final double startOffset; - - /// The distance from the beginning of the line to the end of the box. - double get endOffset => startOffset + width; - - /// The distance from the left edge of the line to the left edge of the box. - double get left => paragraphDirection == ui.TextDirection.ltr - ? startOffset - : lineWidth - endOffset; - - /// The distance from the left edge of the line to the right edge of the box. - double get right => paragraphDirection == ui.TextDirection.ltr - ? endOffset - : lineWidth - startOffset; - - /// The distance from the left edge of the box to the right edge of the box. - double get width; - - /// The width of the line that this box belongs to. - late final double lineWidth; - - /// The text direction of the paragraph that this box belongs to. - final ui.TextDirection paragraphDirection; - - /// Indicates how this box flows among other boxes. - /// - /// Example: In an LTR paragraph, the text "ABC hebrew_word 123 DEF" is shown - /// visually in the following order: - /// - /// +-------------------------------+ - /// | ABC | 123 | drow_werbeh | DEF | - /// +-------------------------------+ - /// box direction: LTR RTL RTL LTR - /// ----> <---- <------------ ----> - /// - /// (In the above example, we are ignoring whitespace to simplify). - final ui.TextDirection boxDirection; - - /// Returns a [ui.TextBox] representing this range box in the given [line]. - /// - /// The coordinates of the resulting [ui.TextBox] are relative to the - /// paragraph, not to the line. - /// - /// The [forPainting] parameter specifies whether the text box is wanted for - /// painting purposes or not. The difference is observed in the handling of - /// trailing spaces. Trailing spaces aren't painted on the screen, but their - /// dimensions are still useful for other cases like highlighting selection. - ui.TextBox toTextBox(ParagraphLine line, {required bool forPainting}); - - /// Returns the text position within this box's range that's closest to the - /// given [x] offset. - /// - /// The [x] offset is expected to be relative to the left edge of the line, - /// just like the coordinates of this box. - ui.TextPosition getPositionForX(double x); -} - -/// Represents a box for a [PlaceholderSpan]. -class PlaceholderBox extends RangeBox { - PlaceholderBox( - this.placeholder, { - required LineBreakResult index, - required ui.TextDirection paragraphDirection, - required ui.TextDirection boxDirection, - }) : super(index, index, paragraphDirection, boxDirection); - - final PlaceholderSpan placeholder; - - @override - double get width => placeholder.width; - - @override - ui.TextBox toTextBox(ParagraphLine line, {required bool forPainting}) { - final double left = line.left + this.left; - final double right = line.left + this.right; - - final double lineTop = line.baseline - line.ascent; - - final double top; - switch (placeholder.alignment) { - case ui.PlaceholderAlignment.top: - top = lineTop; - break; - - case ui.PlaceholderAlignment.middle: - top = lineTop + (line.height - placeholder.height) / 2; - break; - - case ui.PlaceholderAlignment.bottom: - top = lineTop + line.height - placeholder.height; - break; - - case ui.PlaceholderAlignment.aboveBaseline: - top = line.baseline - placeholder.height; - break; - - case ui.PlaceholderAlignment.belowBaseline: - top = line.baseline; - break; - - case ui.PlaceholderAlignment.baseline: - top = line.baseline - placeholder.baselineOffset; - break; - } - - return ui.TextBox.fromLTRBD( - left, - top, - right, - top + placeholder.height, - paragraphDirection, - ); - } - - @override - ui.TextPosition getPositionForX(double x) { - // See if `x` is closer to the left edge or the right edge of the box. - final bool closerToLeft = x - left < right - x; - return ui.TextPosition( - offset: start.index, - affinity: closerToLeft ? ui.TextAffinity.upstream : ui.TextAffinity.downstream, - ); - } -} - -/// Represents a box in a [FlatTextSpan]. -class SpanBox extends RangeBox { - SpanBox( - this.spanometer, { - required LineBreakResult start, - required LineBreakResult end, - required double width, - required ui.TextDirection paragraphDirection, - required ui.TextDirection boxDirection, - required this.contentDirection, - required this.isSpaceOnly, - }) : span = spanometer.currentSpan, - height = spanometer.height, - baseline = spanometer.ascent, - _width = width, - super(start, end, paragraphDirection, boxDirection); - - - final Spanometer spanometer; - final FlatTextSpan span; - - /// The direction of the text inside this box. - /// - /// To illustrate the difference between [boxDirection] and [contentDirection] - /// here's an example: - /// - /// In an LTR paragraph, the text "ABC hebrew_word 123 DEF" is rendered as - /// follows: - /// - /// ----> <---- <------------ ----> - /// box direction: LTR RTL RTL LTR - /// +-------------------------------+ - /// | ABC | 123 | drow_werbeh | DEF | - /// +-------------------------------+ - /// content direction: LTR LTR RTL LTR - /// ----> ----> <------------ ----> - /// - /// Notice the box containing "123" flows in the RTL direction (because it - /// comes after an RTL box), while the content of the box flows in the LTR - /// direction (i.e. the text is shown as "123" not "321"). - final ui.TextDirection contentDirection; - - /// Whether this box is made of only white space. - final bool isSpaceOnly; - - /// Whether this box is a trailing space box at the end of a line. - bool get isTrailingSpace => _isTrailingSpace; - bool _isTrailingSpace = false; - - /// This is made mutable so it can be updated later in the layout process for - /// the purpose of aligning the lines of a paragraph with [ui.TextAlign.justify]. - double _width; - - @override - double get width => _width; - - /// Whether the contents of this box flow in the left-to-right direction. - bool get isContentLtr => contentDirection == ui.TextDirection.ltr; - - /// Whether the contents of this box flow in the right-to-left direction. - bool get isContentRtl => !isContentLtr; - - /// The distance from the top edge to the bottom edge of the box. - final double height; - - /// The distance from the top edge of the box to the alphabetic baseline of - /// the box. - final double baseline; - - /// Whether this box's range overlaps with the range from [startIndex] to - /// [endIndex]. - bool overlapsWith(int startIndex, int endIndex) { - return startIndex < end.index && start.index < endIndex; - } - - /// Returns the substring of the paragraph that's represented by this box. - /// - /// Trailing newlines are omitted, if any. - String toText() { - return spanometer.paragraph.toPlainText().substring(start.index, end.indexWithoutTrailingNewlines); - } - - @override - ui.TextBox toTextBox(ParagraphLine line, {required bool forPainting}) { - return intersect(line, start.index, end.index, forPainting: forPainting); - } - - /// Performs the intersection of this box with the range given by [start] and - /// [end] indices, and returns a [ui.TextBox] representing that intersection. - /// - /// The coordinates of the resulting [ui.TextBox] are relative to the - /// paragraph, not to the line. - ui.TextBox intersect(ParagraphLine line, int start, int end, {required bool forPainting}) { - final double top = line.baseline - baseline; - - final double before; - if (start <= this.start.index) { - before = 0.0; - } else { - spanometer.currentSpan = span; - before = spanometer._measure(this.start.index, start); - } - - final double after; - if (end >= this.end.indexWithoutTrailingNewlines) { - after = 0.0; - } else { - spanometer.currentSpan = span; - after = spanometer._measure(end, this.end.indexWithoutTrailingNewlines); - } - - double left, right; - if (isContentLtr) { - // Example: let's say the text is "Loremipsum" and we want to get the box - // for "rem". In this case, `before` is the width of "Lo", and `after` - // is the width of "ipsum". - // - // Here's how the measurements/coordinates look like: - // - // before after - // |----| |----------| - // +---------------------+ - // | L o r e m i p s u m | - // +---------------------+ - // this.left ^ ^ this.right - left = this.left + before; - right = this.right - after; - } else { - // Example: let's say the text is "txet_werbeH" ("Hebrew_text" flowing from - // right to left). Say we want to get the box for "brew". The `before` is - // the width of "He", and `after` is the width of "_text". - // - // after before - // |----------| |----| - // +-----------------------+ - // | t x e t _ w e r b e H | - // +-----------------------+ - // this.left ^ ^ this.right - // - // Notice how `before` and `after` are reversed in the RTL example. That's - // because the text flows from right to left. - left = this.left + after; - right = this.right - before; - } - - // When painting a paragraph, trailing spaces should have a zero width. - final bool isZeroWidth = forPainting && isTrailingSpace; - if (isZeroWidth) { - // Collapse the box to the left or to the right depending on the paragraph - // direction. - if (paragraphDirection == ui.TextDirection.ltr) { - right = left; - } else { - left = right; - } - } - - // The [RangeBox]'s left and right edges are relative to the line. In order - // to make them relative to the paragraph, we need to add the left edge of - // the line. - return ui.TextBox.fromLTRBD( - line.left + left, - top, - line.left + right, - top + height, - contentDirection, - ); - } - - /// Transforms the [x] coordinate to be relative to this box and matches the - /// flow of content. - /// - /// In LTR paragraphs, the [startOffset] and [endOffset] of an RTL box - /// indicate the visual beginning and end of the box. But the text inside the - /// box flows in the opposite direction (from [endOffset] to [startOffset]). - /// - /// The X (input) is relative to the line, and always from left-to-right - /// independent of paragraph and content direction. - /// - /// Here's how it looks for a box with LTR content: - /// - /// *------------------------lineWidth------------------* - /// *---------------X (input) - /// ┌───────────┬────────────────────────┬───────────────┐ - /// │ │ --content-direction--> │ │ - /// └───────────┴────────────────────────┴───────────────┘ - /// *---X' (output) - /// *---left----* - /// *---------------right----------------* - /// - /// - /// And here's how it looks for a box with RTL content: - /// - /// *------------------------lineWidth------------------* - /// *----------------X (input) - /// ┌───────────┬────────────────────────┬───────────────┐ - /// │ │ <--content-direction-- │ │ - /// └───────────┴────────────────────────┴───────────────┘ - /// (output) X'------------------* - /// *---left----* - /// *---------------right----------------* - /// - double _makeXRelativeToContent(double x) { - return isContentRtl ? right - x : x - left; - } - - @override - ui.TextPosition getPositionForX(double x) { - spanometer.currentSpan = span; - - x = _makeXRelativeToContent(x); - - final int startIndex = start.index; - final int endIndex = end.indexWithoutTrailingNewlines; - // The resulting `cutoff` is the index of the character where the `x` offset - // falls. We should return the text position of either `cutoff` or - // `cutoff + 1` depending on which one `x` is closer to. - // - // offset x - // ↓ - // "A B C D E F" - // ↑ - // cutoff - final int cutoff = spanometer.forceBreak( - startIndex, - endIndex, - availableWidth: x, - allowEmpty: true, - ); - - if (cutoff == endIndex) { - return ui.TextPosition( - offset: cutoff, - affinity: ui.TextAffinity.upstream, - ); - } - - final double lowWidth = spanometer._measure(startIndex, cutoff); - final double highWidth = spanometer._measure(startIndex, cutoff + 1); - - // See if `x` is closer to `cutoff` or `cutoff + 1`. - if (x - lowWidth < highWidth - x) { - // The offset is closer to cutoff. - return ui.TextPosition( - offset: cutoff, - ); - } else { - // The offset is closer to cutoff + 1. - return ui.TextPosition( - offset: cutoff + 1, - affinity: ui.TextAffinity.upstream, - ); - } - } -} - -/// Represents a segment in a line of a paragraph. -/// -/// For example, this line: "Lorem ipsum dolor sit" is broken up into the -/// following segments: -/// -/// - "Lorem " -/// - "ipsum " -/// - "dolor " -/// - "sit" -class LineSegment { - LineSegment({ - required this.span, - required this.start, - required this.end, - required this.width, - required this.widthIncludingSpace, - }); - - /// The span that this segment belongs to. - final ParagraphSpan span; - - /// The index of the beginning of the segment in the paragraph. - final LineBreakResult start; - - /// The index of the end of the segment in the paragraph. - final LineBreakResult end; - - /// The width of the segment excluding any trailing white space. - final double width; - - /// The width of the segment including any trailing white space. - final double widthIncludingSpace; - - /// The width of the trailing white space in the segment. - double get widthOfTrailingSpace => widthIncludingSpace - width; - - /// Whether this segment is made of only white space. - /// - /// We rely on the [width] to determine this because relying on incides - /// doesn't work well for placeholders (they are zero-length strings). - bool get isSpaceOnly => width == 0; -} - /// Builds instances of [ParagraphLine] for the given [paragraph]. /// /// Usage of this class starts by calling [LineBuilder.first] to start building /// the first line of the paragraph. /// -/// Then new line breaks can be found by calling [LineBuilder.findNextBreak]. +/// Then fragments can be added by calling [addFragment]. /// -/// The line can be extended one or more times before it's built by calling -/// [LineBuilder.build] which generates the [ParagraphLine] instance. +/// After adding a fragment, one can use [isOverflowing] to determine whether +/// the added fragment caused the line to overflow or not. /// -/// To start building the next line, simply call [LineBuilder.nextLine] which -/// creates a new [LineBuilder] that can be extended and built and so on. +/// Once the line is complete, it can be built by calling [build] to generate +/// a [ParagraphLine] instance. +/// +/// To start building the next line, simply call [nextLine] to get a new +/// [LineBuilder] for the next line. class LineBuilder { LineBuilder._( this.paragraph, this.spanometer, { required this.maxWidth, - required this.start, required this.lineNumber, required this.accumulatedHeight, - }) : _end = start; + required List fragments, + }) : _fragments = fragments { + _recalculateMetrics(); + } /// Creates a [LineBuilder] for the first line in a paragraph. factory LineBuilder.first( @@ -1032,41 +463,47 @@ class LineBuilder { spanometer, maxWidth: maxWidth, lineNumber: 0, - start: const LineBreakResult.sameIndex(0, LineBreakType.prohibited), accumulatedHeight: 0.0, + fragments: [], ); } - final List _segments = []; - final List _boxes = []; + final List _fragments; + List? _fragmentsForNextLine; + + int get startIndex { + assert(_fragments.isNotEmpty || _fragmentsForNextLine!.isNotEmpty); + + return isNotEmpty + ? _fragments.first.start + : _fragmentsForNextLine!.first.start; + } + + int get endIndex { + assert(_fragments.isNotEmpty || _fragmentsForNextLine!.isNotEmpty); + + return isNotEmpty + ? _fragments.last.end + : _fragmentsForNextLine!.first.start; + } final double maxWidth; final CanvasParagraph paragraph; final Spanometer spanometer; - final LineBreakResult start; final int lineNumber; /// The accumulated height of all preceding lines, excluding the current line. final double accumulatedHeight; - /// The index of the end of the line so far. - LineBreakResult get end => _end; - LineBreakResult _end; - set end(LineBreakResult value) { - if (value.type != LineBreakType.prohibited) { - isBreakable = true; - } - _end = value; - } - /// The width of the line so far, excluding trailing white space. double width = 0.0; /// The width of the line so far, including trailing white space. double widthIncludingSpace = 0.0; - /// The width of trailing white space in the line. - double get widthOfTrailingSpace => widthIncludingSpace - width; + double get _widthExcludingLastFragment => _fragments.length > 1 + ? widthIncludingSpace - _fragments.last.widthIncludingTrailingSpaces + : 0; /// The distance from the top of the line to the alphabetic baseline. double ascent = 0.0; @@ -1077,22 +514,31 @@ class LineBuilder { /// The height of the line so far. double get height => ascent + descent; - /// The last segment in this line. - LineSegment get lastSegment => _segments.last; + int _lastBreakableFragment = -1; + int _breakCount = 0; - /// Returns true if there is at least one break opportunity in the line. - bool isBreakable = false; + /// Whether this line can be legally broken into more than one line. + bool get isBreakable { + if (_fragments.isEmpty) { + return false; + } + if (_fragments.last.isBreak) { + // We need one more break other than the last one. + return _breakCount > 1; + } + return _breakCount > 0; + } - /// Returns true if there's no break opportunity in the line. + /// Returns true if the line can't be legally broken any further. bool get isNotBreakable => !isBreakable; - /// Whether the end of this line is a prohibited break. - bool get isEndProhibited => end.type == LineBreakType.prohibited; + int _spaceCount = 0; + int _trailingSpaces = 0; - int _spaceBoxCount = 0; + bool get isEmpty => _fragments.isEmpty; + bool get isNotEmpty => _fragments.isNotEmpty; - bool get isEmpty => _segments.isEmpty; - bool get isNotEmpty => _segments.isNotEmpty; + bool get isHardBreak => _fragments.isNotEmpty && _fragments.last.isHardBreak; /// The horizontal offset necessary for the line to be correctly aligned. double get alignOffset { @@ -1113,81 +559,72 @@ class LineBuilder { } } - /// Measures the width of text between the end of this line and [newEnd]. - double getAdditionalWidthTo(LineBreakResult newEnd) { - // If the extension is all made of space characters, it shouldn't add - // anything to the width. - if (end.index == newEnd.indexWithoutTrailingSpaces) { - return 0.0; + bool get isOverflowing => width > maxWidth; + + bool get canHaveEllipsis { + if (paragraph.paragraphStyle.ellipsis == null) { + return false; } - return widthOfTrailingSpace + spanometer.measure(end, newEnd); + final int? maxLines = paragraph.paragraphStyle.maxLines; + return (maxLines == null) || (maxLines == lineNumber + 1); } - bool get _isLastBoxAPlaceholder { - if (_boxes.isEmpty) { + bool get _canAppendEmptyFragments { + if (isHardBreak) { + // Can't append more fragments to this line if it has a hard break. return false; } - return _boxes.last is PlaceholderBox; + + if (_fragmentsForNextLine?.isNotEmpty ?? false) { + // If we already have fragments prepared for the next line, then we can't + // append more fragments to this line. + return false; + } + + return true; } ui.TextDirection get _paragraphDirection => paragraph.paragraphStyle.effectiveTextDirection; - late ui.TextDirection _currentBoxDirection = _paragraphDirection; + void addFragment(LayoutFragment fragment) { + _updateMetrics(fragment); - late ui.TextDirection _currentContentDirection = _paragraphDirection; + if (fragment.isBreak) { + _lastBreakableFragment = _fragments.length; + } - bool _shouldCreateBoxBeforeExtendingTo(DirectionalPosition newEnd) { - // When the direction changes, we need to make sure to put them in separate - // boxes. - return newEnd.isSpaceOnly || _currentBoxDirection != newEnd.textDirection || _currentContentDirection != newEnd.textDirection; + _fragments.add(fragment); } - /// Extends the line by setting a [newEnd]. - void extendTo(DirectionalPosition newEnd) { - ascent = math.max(ascent, spanometer.ascent); - descent = math.max(descent, spanometer.descent); + /// Updates the [LineBuilder]'s metrics to take into account the new [fragment]. + void _updateMetrics(LayoutFragment fragment) { + _spaceCount += fragment.trailingSpaces; - // When the direction changes, we need to make sure to put them in separate - // boxes. - if (_shouldCreateBoxBeforeExtendingTo(newEnd)) { - createBox(); + if (fragment.isSpaceOnly) { + _trailingSpaces += fragment.trailingSpaces; + } else { + _trailingSpaces = fragment.trailingSpaces; + width = widthIncludingSpace + fragment.widthExcludingTrailingSpaces; } - _currentBoxDirection = newEnd.textDirection ?? _currentBoxDirection; - _currentContentDirection = newEnd.textDirection ?? ui.TextDirection.ltr; + widthIncludingSpace += fragment.widthIncludingTrailingSpaces; - _addSegment(_createSegment(newEnd.lineBreak)); - if (newEnd.isSpaceOnly) { - // Whitespace sequences go in their own boxes. - createBox(isSpaceOnly: true); + if (fragment.isPlaceholder) { + _adjustPlaceholderAscentDescent(fragment); } - } - /// Extends the line to the end of the paragraph. - void extendToEndOfText() { - if (end.type == LineBreakType.endOfText) { - return; + if (fragment.isBreak) { + _breakCount++; } - final LineBreakResult endOfText = LineBreakResult.sameIndex( - paragraph.toPlainText().length, - LineBreakType.endOfText, - ); - - // The spanometer may not be ready in some cases. E.g. when the paragraph - // is made up of only placeholders and no text. - if (spanometer.isReady) { - ascent = math.max(ascent, spanometer.ascent); - descent = math.max(descent, spanometer.descent); - _addSegment(_createSegment(endOfText)); - } else { - end = endOfText; - } + ascent = math.max(ascent, fragment.ascent); + descent = math.max(descent, fragment.descent); } - void addPlaceholder(PlaceholderSpan placeholder) { - // Increase the line's height to fit the placeholder, if necessary. + void _adjustPlaceholderAscentDescent(LayoutFragment fragment) { + final PlaceholderSpan placeholder = fragment.span as PlaceholderSpan; + final double ascent, descent; switch (placeholder.alignment) { case ui.PlaceholderAlignment.top: @@ -1229,330 +666,198 @@ class LineBuilder { break; } - this.ascent = math.max(this.ascent, ascent); - this.descent = math.max(this.descent, descent); - - _addSegment(LineSegment( - span: placeholder, - start: end, - end: end, - width: placeholder.width, - widthIncludingSpace: placeholder.width, - )); - - // Add the placeholder box. - _boxes.add(PlaceholderBox( - placeholder, - index: _currentBoxStart, - paragraphDirection: _paragraphDirection, - boxDirection: _currentBoxDirection, - )); - _currentBoxStartOffset = widthIncludingSpace; - // Breaking is always allowed after a placeholder. - isBreakable = true; - } - - /// Creates a new segment to be appended to the end of this line. - LineSegment _createSegment(LineBreakResult segmentEnd) { - // The segment starts at the end of the line. - final LineBreakResult segmentStart = end; - return LineSegment( - span: spanometer.currentSpan, - start: segmentStart, - end: segmentEnd, - width: spanometer.measure(segmentStart, segmentEnd), - widthIncludingSpace: - spanometer.measureIncludingSpace(segmentStart, segmentEnd), + // Update the metrics of the fragment to reflect the calculated ascent and + // descent. + fragment.setMetrics(spanometer, + ascent: ascent, + descent: descent, + widthExcludingTrailingSpaces: fragment.widthExcludingTrailingSpaces, + widthIncludingTrailingSpaces: fragment.widthIncludingTrailingSpaces, ); } - /// Adds a segment to this line. - /// - /// It adjusts the width properties to accommodate the new segment. It also - /// sets the line end to the end of the segment. - void _addSegment(LineSegment segment) { - _segments.add(segment); - - // Adding a space-only segment has no effect on `width` because it doesn't - // include trailing white space. - if (!segment.isSpaceOnly) { - // Add the width of previous trailing space. - width += widthOfTrailingSpace + segment.width; + void _recalculateMetrics() { + width = 0; + widthIncludingSpace = 0; + ascent = 0; + descent = 0; + _spaceCount = 0; + _trailingSpaces = 0; + _breakCount = 0; + _lastBreakableFragment = -1; + + for (int i = 0; i < _fragments.length; i++) { + _updateMetrics(_fragments[i]); + if (_fragments[i].isBreak) { + _lastBreakableFragment = i; + } } - widthIncludingSpace += segment.widthIncludingSpace; - end = segment.end; } - /// Removes the latest [LineSegment] added by [_addSegment]. - /// - /// It re-adjusts the width properties and the end of the line. - LineSegment _popSegment() { - final LineSegment poppedSegment = _segments.removeLast(); - - if (_segments.isEmpty) { - width = 0.0; - widthIncludingSpace = 0.0; - end = start; - } else { - widthIncludingSpace -= poppedSegment.widthIncludingSpace; - end = lastSegment.end; - - // Now, let's figure out what to do with `width`. - - // Popping a space-only segment has no effect on `width`. - if (!poppedSegment.isSpaceOnly) { - // First, we subtract the width of the popped segment. - width -= poppedSegment.width; - - // Second, we subtract all trailing spaces from `width`. There could be - // multiple trailing segments that are space-only. - double widthOfTrailingSpace = 0.0; - int i = _segments.length - 1; - while (i >= 0 && _segments[i].isSpaceOnly) { - // Since the segment is space-only, `widthIncludingSpace` contains - // the width of the space and nothing else. - widthOfTrailingSpace += _segments[i].widthIncludingSpace; - i--; - } - if (i >= 0) { - // Having `i >= 0` means in the above loop we stopped at a - // non-space-only segment. We should also subtract its trailing spaces. - widthOfTrailingSpace += _segments[i].widthOfTrailingSpace; - } - width -= widthOfTrailingSpace; - } - } + void forceBreakLastFragment({ double? availableWidth, bool allowEmptyLine = false }) { + assert(isNotEmpty); - // Now let's fixes boxes if they need fixing. - // - // If we popped a segment of an already created box, we should pop the box - // too. - if (_currentBoxStart.index > poppedSegment.start.index) { - final RangeBox poppedBox = _boxes.removeLast(); - _currentBoxStartOffset -= poppedBox.width; - if (poppedBox is SpanBox && poppedBox.isSpaceOnly) { - _spaceBoxCount--; - } - } + availableWidth ??= maxWidth; + assert(widthIncludingSpace > availableWidth); - return poppedSegment; - } + _fragmentsForNextLine ??= []; - /// Force-breaks the line in order to fit in [maxWidth] while trying to extend - /// to [nextBreak]. - /// - /// This should only be called when there isn't enough width to extend to - /// [nextBreak], and either of the following is true: - /// - /// 1. An ellipsis is being appended to this line, OR - /// 2. The line doesn't have any line break opportunities and has to be - /// force-broken. - void forceBreak( - DirectionalPosition nextBreak, { - required bool allowEmpty, - String? ellipsis, - }) { - if (ellipsis == null) { - final double availableWidth = maxWidth - widthIncludingSpace; - final int breakingPoint = spanometer.forceBreak( - end.index, - nextBreak.lineBreak.indexWithoutTrailingSpaces, - availableWidth: availableWidth, - allowEmpty: allowEmpty, - ); + // When the line has fragments other than the last one, we can always allow + // the last fragment to be empty (i.e. completely removed from the line). + final bool hasOtherFragments = _fragments.length > 1; + final bool allowLastFragmentToBeEmpty = hasOtherFragments || allowEmptyLine; - // This condition can be true in the following case: - // 1. Next break is only one character away, with zero or many spaces. AND - // 2. There isn't enough width to fit the single character. AND - // 3. `allowEmpty` is false. - if (breakingPoint == nextBreak.lineBreak.indexWithoutTrailingSpaces) { - // In this case, we just extend to `nextBreak` instead of creating a new - // artificial break. It's safe (and better) to do so, because we don't - // want the trailing white space to go to the next line. - extendTo(nextBreak); - } else { - extendTo(nextBreak.copyWithIndex(breakingPoint)); + final LayoutFragment lastFragment = _fragments.last; + + if (lastFragment.isPlaceholder) { + // Placeholder can't be force-broken. Either keep all of it in the line or + // move it to the next line. + if (allowLastFragmentToBeEmpty) { + _fragmentsForNextLine!.insert(0, _fragments.removeLast()); + _recalculateMetrics(); } return; } - // For example: "foo bar baz". Let's say all characters have the same width, and - // the constraint width can only fit 9 characters "foo bar b". So if the - // paragraph has an ellipsis, we can't just remove the last segment "baz" - // and replace it with "..." because that would overflow. - // - // We need to keep popping segments until we are able to fit the "..." - // without overflowing. In this example, that would be: "foo ba..." - - final double ellipsisWidth = spanometer.measureText(ellipsis); - final double availableWidth = maxWidth - ellipsisWidth; - - // First, we create the new segment until `nextBreak`. - LineSegment segmentToBreak = _createSegment(nextBreak.lineBreak); + spanometer.currentSpan = lastFragment.span; + final double lineWidthWithoutLastFragment = widthIncludingSpace - lastFragment.widthIncludingTrailingSpaces; + final double availableWidthForFragment = availableWidth - lineWidthWithoutLastFragment; + final int forceBreakEnd = lastFragment.end - lastFragment.trailingNewlines; - // Then, we keep popping until we find the segment that has to be broken. - // After the loop ends, two things are correct: - // 1. All remaining segments in `_segments` can fit within constraints. - // 2. Adding `segmentToBreak` causes the line to overflow. - while (_segments.isNotEmpty && widthIncludingSpace > availableWidth) { - segmentToBreak = _popSegment(); - } - - spanometer.currentSpan = segmentToBreak.span as FlatTextSpan; - final double availableWidthForSegment = - availableWidth - widthIncludingSpace; final int breakingPoint = spanometer.forceBreak( - segmentToBreak.start.index, - segmentToBreak.end.index, - availableWidth: availableWidthForSegment, - allowEmpty: allowEmpty, + lastFragment.start, + forceBreakEnd, + availableWidth: availableWidthForFragment, + allowEmpty: allowLastFragmentToBeEmpty, ); - // There's a possibility that the end of line has moved backwards, so we - // need to remove some boxes in that case. - while (_boxes.isNotEmpty && _boxes.last.end.index > breakingPoint) { - _boxes.removeLast(); + if (breakingPoint == forceBreakEnd) { + // The entire fragment remained intact. Let's keep everything as is. + return; } - _currentBoxStartOffset = widthIncludingSpace; - extendTo(nextBreak.copyWithIndex(breakingPoint)); - } + _fragments.removeLast(); + _recalculateMetrics(); - /// Looks for the last break opportunity in the line and reverts the line to - /// that point. - /// - /// If the line already ends with a break opportunity, this method does - /// nothing. - void revertToLastBreakOpportunity() { - assert(isBreakable); - while (isEndProhibited) { - _popSegment(); + final List split = lastFragment.split(breakingPoint); + + final LayoutFragment? first = split.first; + if (first != null) { + spanometer.measureFragment(first); + addFragment(first); } - // Make sure the line is not empty and still breakable after popping a few - // segments. - assert(isNotEmpty); - assert(isBreakable); - } - LineBreakResult get _currentBoxStart { - if (_boxes.isEmpty) { - return start; + final LayoutFragment? second = split.last; + if (second != null) { + spanometer.measureFragment(second); + _fragmentsForNextLine!.insert(0, second); } - // The end of the last box is the start of the new box. - return _boxes.last.end; } - double _currentBoxStartOffset = 0.0; + void insertEllipsis() { + assert(canHaveEllipsis); + assert(isOverflowing); - double get _currentBoxWidth => widthIncludingSpace - _currentBoxStartOffset; + final String ellipsisText = paragraph.paragraphStyle.ellipsis!; - /// Cuts a new box in the line. - /// - /// If this is the first box in the line, it'll start at the beginning of the - /// line. Else, it'll start at the end of the last box. - /// - /// A box should be cut whenever the end of line is reached, when switching - /// from one span to another, or when switching text direction. - /// - /// [isSpaceOnly] indicates that the box contains nothing but whitespace - /// characters. - void createBox({bool isSpaceOnly = false}) { - final LineBreakResult boxStart = _currentBoxStart; - final LineBreakResult boxEnd = end; - // Avoid creating empty boxes. This could happen when the end of a span - // coincides with the end of a line. In this case, `createBox` is called twice. - if (boxStart.index == boxEnd.index) { - return; - } + _fragmentsForNextLine = []; - _boxes.add(SpanBox( - spanometer, - start: boxStart, - end: boxEnd, - width: _currentBoxWidth, - paragraphDirection: _paragraphDirection, - boxDirection: _currentBoxDirection, - contentDirection: _currentContentDirection, - isSpaceOnly: isSpaceOnly, - )); - - if (isSpaceOnly) { - _spaceBoxCount++; + spanometer.currentSpan = _fragments.last.span; + double ellipsisWidth = spanometer.measureText(ellipsisText); + double availableWidth = math.max(0, maxWidth - ellipsisWidth); + + while (_widthExcludingLastFragment > availableWidth) { + _fragmentsForNextLine!.insert(0, _fragments.removeLast()); + _recalculateMetrics(); + + spanometer.currentSpan = _fragments.last.span; + ellipsisWidth = spanometer.measureText(ellipsisText); + availableWidth = maxWidth - ellipsisWidth; } - _currentBoxStartOffset = widthIncludingSpace; + final LayoutFragment lastFragment = _fragments.last; + forceBreakLastFragment(availableWidth: availableWidth, allowEmptyLine: true); + + final EllipsisFragment ellipsisFragment = EllipsisFragment( + endIndex, + lastFragment.span, + ); + ellipsisFragment.setMetrics(spanometer, + ascent: lastFragment.ascent, + descent: lastFragment.descent, + widthExcludingTrailingSpaces: ellipsisWidth, + widthIncludingTrailingSpaces: ellipsisWidth, + ); + addFragment(ellipsisFragment); } - /// Builds the [ParagraphLine] instance that represents this line. - ParagraphLine build({String? ellipsis}) { - // At the end of each line, we cut the last box of the line. - createBox(); + void revertToLastBreakOpportunity() { + assert(isBreakable); - final double ellipsisWidth = - ellipsis == null ? 0.0 : spanometer.measureText(ellipsis); + // The last fragment in the line may or may not be breakable. Regardless, + // it needs to be removed. + // + // We need to find the latest breakable fragment in the line (other than the + // last fragment). Such breakable fragment is guaranteed to be found because + // the line `isBreakable`. + + // Start from the end and skip the last fragment. + int i = _fragments.length - 2; + while (!_fragments[i].isBreak) { + i--; + } - final int endIndexWithoutNewlines = math.max(start.index, end.indexWithoutTrailingNewlines); - final bool hardBreak; - if (end.type != LineBreakType.endOfText && _isLastBoxAPlaceholder) { - hardBreak = false; - } else { - hardBreak = end.isHard; + _fragmentsForNextLine = _fragments.getRange(i + 1, _fragments.length).toList(); + _fragments.removeRange(i + 1, _fragments.length); + _recalculateMetrics(); + } + + /// Appends as many zero-width fragments as this line allows. + /// + /// Returns the number of fragments that were appended. + int appendZeroWidthFragments(List fragments, {required int startFrom}) { + int i = startFrom; + while (_canAppendEmptyFragments && + i < fragments.length && + fragments[i].widthExcludingTrailingSpaces == 0) { + addFragment(fragments[i]); + i++; } + return i - startFrom; + } - _processTrailingSpaces(); + /// Builds the [ParagraphLine] instance that represents this line. + ParagraphLine build() { + if (_fragmentsForNextLine == null) { + _fragmentsForNextLine = _fragments.getRange(_lastBreakableFragment + 1, _fragments.length).toList(); + _fragments.removeRange(_lastBreakableFragment + 1, _fragments.length); + } - return ParagraphLine( + final int trailingNewlines = isEmpty ? 0 : _fragments.last.trailingNewlines; + final ParagraphLine line = ParagraphLine( lineNumber: lineNumber, - ellipsis: ellipsis, - startIndex: start.index, - endIndex: end.index, - endIndexWithoutNewlines: endIndexWithoutNewlines, - hardBreak: hardBreak, - width: width + ellipsisWidth, - widthWithTrailingSpaces: widthIncludingSpace + ellipsisWidth, + startIndex: startIndex, + endIndex: endIndex, + trailingNewlines: trailingNewlines, + trailingSpaces: _trailingSpaces, + spaceCount: _spaceCount, + hardBreak: isHardBreak, + width: width, + widthWithTrailingSpaces: widthIncludingSpace, left: alignOffset, height: height, baseline: accumulatedHeight + ascent, ascent: ascent, descent: descent, - boxes: _boxes, - spaceBoxCount: _spaceBoxCount, - trailingSpaceBoxCount: _trailingSpaceBoxCount, + fragments: _fragments, + textDirection: _paragraphDirection, ); - } - - int _trailingSpaceBoxCount = 0; - - void _processTrailingSpaces() { - _trailingSpaceBoxCount = 0; - for (int i = _boxes.length - 1; i >= 0; i--) { - final RangeBox box = _boxes[i]; - final bool isSpaceBox = box is SpanBox && box.isSpaceOnly; - if (!isSpaceBox) { - // We traversed all trailing space boxes. - break; - } - box._isTrailingSpace = true; - _trailingSpaceBoxCount++; + for (final LayoutFragment fragment in _fragments) { + fragment.line = line; } - } - LineBreakResult? _cachedNextBreak; - - /// Finds the next line break after the end of this line. - DirectionalPosition findNextBreak() { - LineBreakResult? nextBreak = _cachedNextBreak; - final String text = paragraph.toPlainText(); - // Don't recompute the `nextBreak` until the line has reached the previously - // computed `nextBreak`. - if (nextBreak == null || end.index >= nextBreak.index) { - final int maxEnd = spanometer.currentSpan.end; - nextBreak = nextLineBreak(text, end.index, maxEnd: maxEnd); - _cachedNextBreak = nextBreak; - } - // The current end of the line is the beginning of the next block. - return getDirectionalBlockEnd(text, end, nextBreak); + return line; } /// Creates a new [LineBuilder] to build the next line in the paragraph. @@ -1561,9 +866,9 @@ class LineBuilder { paragraph, spanometer, maxWidth: maxWidth, - start: end, lineNumber: lineNumber + 1, accumulatedHeight: accumulatedHeight + height, + fragments: _fragmentsForNextLine ?? [], ); } } @@ -1604,10 +909,10 @@ class Spanometer { double? get letterSpacing => currentSpan.style.letterSpacing; TextHeightRuler? _currentRuler; - FlatTextSpan? _currentSpan; + ParagraphSpan? _currentSpan; - FlatTextSpan get currentSpan => _currentSpan!; - set currentSpan(FlatTextSpan? span) { + ParagraphSpan get currentSpan => _currentSpan!; + set currentSpan(ParagraphSpan? span) { if (span == _currentSpan) { return; } @@ -1649,22 +954,42 @@ class Spanometer { /// The line height of the current span. double get height => _currentRuler!.height; - /// Measures the width of text between two line breaks. - /// - /// Doesn't include the width of any trailing white space. - double measure(LineBreakResult start, LineBreakResult end) { - return _measure(start.index, end.indexWithoutTrailingSpaces); + double measureText(String text) { + return measureSubstring(context, text, 0, text.length); } - /// Measures the width of text between two line breaks. - /// - /// Includes the width of trailing white space, if any. - double measureIncludingSpace(LineBreakResult start, LineBreakResult end) { - return _measure(start.index, end.indexWithoutTrailingNewlines); + double measureRange(int start, int end) { + assert(_currentSpan != null); + + // Make sure the range is within the current span. + assert(start >= currentSpan.start && start <= currentSpan.end); + assert(end >= currentSpan.start && end <= currentSpan.end); + + return _measure(start, end); } - double measureText(String text) { - return measureSubstring(context, text, 0, text.length); + void measureFragment(LayoutFragment fragment) { + if (fragment.isPlaceholder) { + final PlaceholderSpan placeholder = fragment.span as PlaceholderSpan; + // The ascent/descent values of the placeholder fragment will be finalized + // later when the line is built. + fragment.setMetrics(this, + ascent: placeholder.height, + descent: 0, + widthExcludingTrailingSpaces: placeholder.width, + widthIncludingTrailingSpaces: placeholder.width, + ); + } else { + currentSpan = fragment.span; + final double widthExcludingTrailingSpaces = _measure(fragment.start, fragment.end - fragment.trailingSpaces); + final double widthIncludingTrailingSpaces = _measure(fragment.start, fragment.end - fragment.trailingNewlines); + fragment.setMetrics(this, + ascent: ascent, + descent: descent, + widthExcludingTrailingSpaces: widthExcludingTrailingSpaces, + widthIncludingTrailingSpaces: widthIncludingTrailingSpaces, + ); + } } /// In a continuous, unbreakable block of text from [start] to [end], finds @@ -1687,11 +1012,9 @@ class Spanometer { }) { assert(_currentSpan != null); - final FlatTextSpan span = currentSpan; - // Make sure the range is within the current span. - assert(start >= span.start && start <= span.end); - assert(end >= span.start && end <= span.end); + assert(start >= currentSpan.start && start <= currentSpan.end); + assert(end >= currentSpan.start && end <= currentSpan.end); if (availableWidth <= 0.0) { return allowEmpty ? start : start + 1; @@ -1699,7 +1022,7 @@ class Spanometer { int low = start; int high = end; - do { + while (high - low > 1) { final int mid = (low + high) ~/ 2; final double width = _measure(start, mid); if (width < availableWidth) { @@ -1709,7 +1032,7 @@ class Spanometer { } else { low = high = mid; } - } while (high - low > 1); + } if (low == start && !allowEmpty) { low++; @@ -1719,16 +1042,13 @@ class Spanometer { double _measure(int start, int end) { assert(_currentSpan != null); - final FlatTextSpan span = currentSpan; - // Make sure the range is within the current span. - assert(start >= span.start && start <= span.end); - assert(end >= span.start && end <= span.end); + assert(start >= currentSpan.start && start <= currentSpan.end); + assert(end >= currentSpan.start && end <= currentSpan.end); - final String text = paragraph.toPlainText(); return measureSubstring( context, - text, + paragraph.plainText, start, end, letterSpacing: letterSpacing, diff --git a/lib/web_ui/lib/src/engine/text/line_breaker.dart b/lib/web_ui/lib/src/engine/text/line_breaker.dart index 9068980e958b5..fa2adb8561812 100644 --- a/lib/web_ui/lib/src/engine/text/line_breaker.dart +++ b/lib/web_ui/lib/src/engine/text/line_breaker.dart @@ -2,9 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -import 'dart:math' as math; - -import '../util.dart'; +import 'fragmenter.dart'; import 'line_break_properties.dart'; import 'unicode_range.dart'; @@ -26,96 +24,42 @@ enum LineBreakType { endOfText, } -/// Acts as a tuple that encapsulates information about a line break. -/// -/// It contains multiple indices that are helpful when it comes to measuring the -/// width of a line of text. -/// -/// [indexWithoutTrailingSpaces] <= [indexWithoutTrailingNewlines] <= [index] -/// -/// Example: for the string "foo \nbar " here are the indices: -/// ``` -/// f o o \n b a r -/// ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ -/// 0 1 2 3 4 5 6 7 8 9 -/// ``` -/// It contains two line breaks: -/// ``` -/// // The first line break: -/// LineBreakResult(5, 4, 3, LineBreakType.mandatory) -/// -/// // Second line break: -/// LineBreakResult(9, 9, 8, LineBreakType.mandatory) -/// ``` -class LineBreakResult { - const LineBreakResult( - this.index, - this.indexWithoutTrailingNewlines, - this.indexWithoutTrailingSpaces, - this.type, - ): assert(indexWithoutTrailingSpaces <= indexWithoutTrailingNewlines), - assert(indexWithoutTrailingNewlines <= index); - - /// Creates a [LineBreakResult] where all indices are the same (i.e. there are - /// no trailing spaces or new lines). - const LineBreakResult.sameIndex(this.index, this.type) - : indexWithoutTrailingNewlines = index, - indexWithoutTrailingSpaces = index; - - /// The true index at which the line break should occur, including all spaces - /// and new lines. - final int index; - - /// The index of the line break excluding any trailing new lines. - final int indexWithoutTrailingNewlines; - - /// The index of the line break excluding any trailing spaces. - final int indexWithoutTrailingSpaces; - - /// The type of line break is useful to determine the behavior in text - /// measurement. - /// - /// For example, a mandatory line break always causes a line break regardless - /// of width constraints. But a line break opportunity requires further checks - /// to decide whether to take the line break or not. - final LineBreakType type; +/// Splits [text] into fragments based on line breaks. +class LineBreakFragmenter extends TextFragmenter { + const LineBreakFragmenter(super.text); + + @override + List fragment() { + return _computeLineBreakFragments(text); + } +} + +class LineBreakFragment extends TextFragment { + const LineBreakFragment(super.start, super.end, this.type, { + required this.trailingNewlines, + required this.trailingSpaces, + }); - bool get isHard => - type == LineBreakType.mandatory || type == LineBreakType.endOfText; + final LineBreakType type; + final int trailingNewlines; + final int trailingSpaces; @override - int get hashCode => Object.hash( - index, - indexWithoutTrailingNewlines, - indexWithoutTrailingSpaces, - type, - ); + int get hashCode => Object.hash(start, end, type, trailingNewlines, trailingSpaces); @override bool operator ==(Object other) { - if (identical(this, other)) { - return true; - } - if (other.runtimeType != runtimeType) { - return false; - } - return other is LineBreakResult && - other.index == index && - other.indexWithoutTrailingNewlines == indexWithoutTrailingNewlines && - other.indexWithoutTrailingSpaces == indexWithoutTrailingSpaces && - other.type == type; + return other is LineBreakFragment && + other.start == start && + other.end == end && + other.type == type && + other.trailingNewlines == trailingNewlines && + other.trailingSpaces == trailingSpaces; } @override String toString() { - if (assertionsEnabled) { - return 'LineBreakResult(index: $index, ' - 'without new lines: $indexWithoutTrailingNewlines, ' - 'without spaces: $indexWithoutTrailingSpaces, ' - 'type: $type)'; - } else { - return super.toString(); - } + return 'LineBreakFragment($start, $end, $type)'; } } @@ -151,6 +95,10 @@ bool _hasEastAsianWidthFWH(int charCode) { (charCode >= 0xFE17 && charCode <= 0xFF62); } +bool _isSurrogatePair(int? codePoint) { + return codePoint != null && codePoint > 0xFFFF; +} + /// Finds the next line break in the given [text] starting from [index]. /// /// We think about indices as pointing between characters, and they go all the @@ -163,100 +111,105 @@ bool _hasEastAsianWidthFWH(int charCode) { /// 0 1 2 3 4 5 6 7 /// ``` /// -/// This way the indices work well with [String.substring()]. +/// This way the indices work well with [String.substring]. /// /// Useful resources: /// /// * https://www.unicode.org/reports/tr14/tr14-45.html#Algorithm /// * https://www.unicode.org/Public/11.0.0/ucd/LineBreak.txt -LineBreakResult nextLineBreak(String text, int index, {int? maxEnd}) { - final LineBreakResult unsafeResult = _unsafeNextLineBreak(text, index, maxEnd: maxEnd); - if (maxEnd != null && unsafeResult.index > maxEnd) { - return LineBreakResult( - maxEnd, - math.min(maxEnd, unsafeResult.indexWithoutTrailingNewlines), - math.min(maxEnd, unsafeResult.indexWithoutTrailingSpaces), - LineBreakType.prohibited, - ); - } - return unsafeResult; -} - -LineBreakResult _unsafeNextLineBreak(String text, int index, {int? maxEnd}) { - int? codePoint = getCodePoint(text, index); - LineCharProperty curr = lineLookup.findForChar(codePoint); - - LineCharProperty? prev1; +List _computeLineBreakFragments(String text) { + final List fragments = []; // Keeps track of the character two positions behind. LineCharProperty? prev2; + LineCharProperty? prev1; - // When there's a sequence of spaces or combining marks, this variable - // contains the base property i.e. the property of the character before the - // sequence. - LineCharProperty? baseOfSpaceSequence; - - /// The index of the last character that wasn't a space. - int lastNonSpaceIndex = index; + int? codePoint = getCodePoint(text, 0); + LineCharProperty? curr = lineLookup.findForChar(codePoint); - /// The index of the last character that wasn't a new line. - int lastNonNewlineIndex = index; + // When there's a sequence of spaces, this variable contains the base property + // i.e. the property of the character preceding the sequence. + LineCharProperty baseOfSpaceSequence = LineCharProperty.WJ; - // When the text/line starts with SP, we should treat the beginning of text/line - // as if it were a WJ (word joiner). - if (curr == LineCharProperty.SP) { - baseOfSpaceSequence = LineCharProperty.WJ; - } + // When there's a sequence of combining marks, this variable contains the base + // property i.e. the property of the character preceding the sequence. + LineCharProperty baseOfCombiningMarks = LineCharProperty.AL; - bool isCurrZWJ = curr == LineCharProperty.ZWJ; + int index = 0; + int trailingNewlines = 0; + int trailingSpaces = 0; - // LB10: Treat any remaining combining mark or ZWJ as AL. - // This catches the case where a CM is the first character on the line. - if (curr == LineCharProperty.CM || curr == LineCharProperty.ZWJ) { - curr = LineCharProperty.AL; - } + int fragmentStart = 0; - int regionalIndicatorCount = 0; + void setBreak(LineBreakType type, int debugRuleNumber) { + final int fragmentEnd = + type == LineBreakType.endOfText ? text.length : index; + assert(fragmentEnd >= fragmentStart); - // Always break at the end of text. - // LB3: ! eot - while (index < text.length) { - if (maxEnd != null && index > maxEnd) { - return LineBreakResult( - maxEnd, - math.min(maxEnd, lastNonNewlineIndex), - math.min(maxEnd, lastNonSpaceIndex), - LineBreakType.prohibited, - ); + if (prev1 == LineCharProperty.SP) { + trailingSpaces++; + } else if (_isHardBreak(prev1) || prev1 == LineCharProperty.CR) { + trailingNewlines++; + trailingSpaces++; } - // Keep count of the RI (regional indicator) sequence. - if (curr == LineCharProperty.RI) { - regionalIndicatorCount++; - } else { - regionalIndicatorCount = 0; + if (type == LineBreakType.prohibited) { + // Don't create a fragment. + return; } - if (codePoint != null && codePoint > 0xFFFF) { - // Advance `index` one extra step when handling a surrogate pair in the - // string. - index++; - } - index++; + fragments.add(LineBreakFragment( + fragmentStart, + fragmentEnd, + type, + trailingNewlines: trailingNewlines, + trailingSpaces: trailingSpaces, + )); + + fragmentStart = index; + + // Reset trailing spaces/newlines counter after a new fragment. + trailingNewlines = 0; + trailingSpaces = 0; + + prev1 = prev2 = null; + } + + // Never break at the start of text. + // LB2: sot × + setBreak(LineBreakType.prohibited, 2); + + // Never break at the start of text. + // LB2: sot × + // + // Skip index 0 because a line break can't exist at the start of text. + index++; + + int regionalIndicatorCount = 0; + + // We need to go until `text.length` in order to handle the case where the + // paragraph ends with a hard break. In this case, there will be an empty line + // at the end. + for (; index <= text.length; index++) { prev2 = prev1; prev1 = curr; - final bool isPrevZWJ = isCurrZWJ; - - // Reset the base when we are past the space sequence. - if (prev1 != LineCharProperty.SP) { - baseOfSpaceSequence = null; + if (_isSurrogatePair(codePoint)) { + // Can't break in the middle of a surrogate pair. + setBreak(LineBreakType.prohibited, -1); + // Advance `index` one extra step to skip the tail of the surrogate pair. + index++; } codePoint = getCodePoint(text, index); curr = lineLookup.findForChar(codePoint); - isCurrZWJ = curr == LineCharProperty.ZWJ; + // Keep count of the RI (regional indicator) sequence. + if (prev1 == LineCharProperty.RI) { + regionalIndicatorCount++; + } else { + regionalIndicatorCount = 0; + } // Always break after hard line breaks. // LB4: BK ! @@ -265,69 +218,44 @@ LineBreakResult _unsafeNextLineBreak(String text, int index, {int? maxEnd}) { // LB5: LF ! // NL ! if (_isHardBreak(prev1)) { - return LineBreakResult( - index, - lastNonNewlineIndex, - lastNonSpaceIndex, - LineBreakType.mandatory, - ); + setBreak(LineBreakType.mandatory, 5); + continue; } if (prev1 == LineCharProperty.CR) { if (curr == LineCharProperty.LF) { // LB5: CR × LF - continue; + setBreak(LineBreakType.prohibited, 5); } else { // LB5: CR ! - return LineBreakResult( - index, - lastNonNewlineIndex, - lastNonSpaceIndex, - LineBreakType.mandatory, - ); + setBreak(LineBreakType.mandatory, 5); } - } - - // At this point, we know for sure the prev character wasn't a new line. - lastNonNewlineIndex = index; - if (prev1 != LineCharProperty.SP) { - lastNonSpaceIndex = index; + continue; } // Do not break before hard line breaks. // LB6: × ( BK | CR | LF | NL ) if (_isHardBreak(curr) || curr == LineCharProperty.CR) { + setBreak(LineBreakType.prohibited, 6); continue; } - // Always break at the end of text. - // LB3: ! eot if (index >= text.length) { - return LineBreakResult( - text.length, - lastNonNewlineIndex, - lastNonSpaceIndex, - LineBreakType.endOfText, - ); + break; + } + + // Establish the base for the space sequence. + if (prev1 != LineCharProperty.SP) { + // When the text/line starts with SP, we should treat the beginning of text/line + // as if it were a WJ (word joiner). + baseOfSpaceSequence = prev1 ?? LineCharProperty.WJ; } // Do not break before spaces or zero width space. // LB7: × SP - if (curr == LineCharProperty.SP) { - // When we encounter SP, we preserve the property of the previous - // character so we can later apply the indirect breaking rules. - if (prev1 == LineCharProperty.SP) { - // If we are in the middle of a space sequence, a base should've - // already been set. - assert(baseOfSpaceSequence != null); - } else { - // We are at the beginning of a space sequence, establish the base. - baseOfSpaceSequence = prev1; - } - continue; - } - // LB7: × ZW - if (curr == LineCharProperty.ZW) { + // × ZW + if (curr == LineCharProperty.SP || curr == LineCharProperty.ZW) { + setBreak(LineBreakType.prohibited, 7); continue; } @@ -336,53 +264,61 @@ LineBreakResult _unsafeNextLineBreak(String text, int index, {int? maxEnd}) { // LB8: ZW SP* ÷ if (prev1 == LineCharProperty.ZW || baseOfSpaceSequence == LineCharProperty.ZW) { - return LineBreakResult( - index, - lastNonNewlineIndex, - lastNonSpaceIndex, - LineBreakType.opportunity, - ); + setBreak(LineBreakType.opportunity, 8); + continue; + } + + // Do not break after a zero width joiner. + // LB8a: ZWJ × + if (prev1 == LineCharProperty.ZWJ) { + setBreak(LineBreakType.prohibited, 8); + continue; + } + + // Establish the base for the sequences of combining marks. + if (prev1 != LineCharProperty.CM && prev1 != LineCharProperty.ZWJ) { + baseOfCombiningMarks = prev1 ?? LineCharProperty.AL; } // Do not break a combining character sequence; treat it as if it has the // line breaking class of the base character in all of the following rules. // Treat ZWJ as if it were CM. - // LB9: Treat X (CM | ZWJ)* as if it were X - // where X is any line break class except BK, NL, LF, CR, SP, or ZW. if (curr == LineCharProperty.CM || curr == LineCharProperty.ZWJ) { - // Other properties: BK, NL, LF, CR, ZW would've already generated a line - // break, so we won't find them in `prev`. - if (prev1 == LineCharProperty.SP) { + if (baseOfCombiningMarks == LineCharProperty.SP) { // LB10: Treat any remaining combining mark or ZWJ as AL. curr = LineCharProperty.AL; } else { - if (prev1 == LineCharProperty.RI) { + // LB9: Treat X (CM | ZWJ)* as if it were X + // where X is any line break class except BK, NL, LF, CR, SP, or ZW. + curr = baseOfCombiningMarks; + if (curr == LineCharProperty.RI) { // Prevent the previous RI from being double-counted. regionalIndicatorCount--; } - // Preserve the property of the previous character to treat the sequence - // as if it were X. - curr = prev1; + setBreak(LineBreakType.prohibited, 9); continue; } } - - // Do not break after a zero width joiner. - // LB8a: ZWJ × - if (isPrevZWJ) { - continue; + // In certain situations (e.g. CM immediately following a hard break), we + // need to also check if the previous character was CM/ZWJ. That's because + // hard breaks caused the previous iteration to short-circuit, which leads + // to `baseOfCombiningMarks` not being updated properly. + if (prev1 == LineCharProperty.CM || prev1 == LineCharProperty.ZWJ) { + prev1 = baseOfCombiningMarks; } // Do not break before or after Word joiner and related characters. // LB11: × WJ // WJ × if (curr == LineCharProperty.WJ || prev1 == LineCharProperty.WJ) { + setBreak(LineBreakType.prohibited, 11); continue; } // Do not break after NBSP and related characters. // LB12: GL × if (prev1 == LineCharProperty.GL) { + setBreak(LineBreakType.prohibited, 12); continue; } @@ -393,6 +329,7 @@ LineBreakResult _unsafeNextLineBreak(String text, int index, {int? maxEnd}) { prev1 == LineCharProperty.BA || prev1 == LineCharProperty.HY) && curr == LineCharProperty.GL) { + setBreak(LineBreakType.prohibited, 12); continue; } @@ -412,6 +349,7 @@ LineBreakResult _unsafeNextLineBreak(String text, int index, {int? maxEnd}) { curr == LineCharProperty.EX || curr == LineCharProperty.IS || curr == LineCharProperty.SY)) { + setBreak(LineBreakType.prohibited, 13); continue; } @@ -421,6 +359,7 @@ LineBreakResult _unsafeNextLineBreak(String text, int index, {int? maxEnd}) { // The above is a quote from unicode.org. In our implementation, we did the // following modification: Allow breaks when there are spaces. if (prev1 == LineCharProperty.OP) { + setBreak(LineBreakType.prohibited, 14); continue; } @@ -430,6 +369,7 @@ LineBreakResult _unsafeNextLineBreak(String text, int index, {int? maxEnd}) { // The above is a quote from unicode.org. In our implementation, we did the // following modification: Allow breaks when there are spaces. if (prev1 == LineCharProperty.QU && curr == LineCharProperty.OP) { + setBreak(LineBreakType.prohibited, 15); continue; } @@ -441,6 +381,7 @@ LineBreakResult _unsafeNextLineBreak(String text, int index, {int? maxEnd}) { prev1 == LineCharProperty.CP || baseOfSpaceSequence == LineCharProperty.CP) && curr == LineCharProperty.NS) { + setBreak(LineBreakType.prohibited, 16); continue; } @@ -449,37 +390,34 @@ LineBreakResult _unsafeNextLineBreak(String text, int index, {int? maxEnd}) { if ((prev1 == LineCharProperty.B2 || baseOfSpaceSequence == LineCharProperty.B2) && curr == LineCharProperty.B2) { + setBreak(LineBreakType.prohibited, 17); continue; } // Break after spaces. // LB18: SP ÷ if (prev1 == LineCharProperty.SP) { - return LineBreakResult( - index, - lastNonNewlineIndex, - lastNonSpaceIndex, - LineBreakType.opportunity, - ); + setBreak(LineBreakType.opportunity, 18); + continue; } // Do not break before or after quotation marks, such as ‘”’. // LB19: × QU // QU × if (prev1 == LineCharProperty.QU || curr == LineCharProperty.QU) { + setBreak(LineBreakType.prohibited, 19); continue; } // Break before and after unresolved CB. // LB20: ÷ CB // CB ÷ + // + // In flutter web, we use this as an object-replacement character for + // placeholders. if (prev1 == LineCharProperty.CB || curr == LineCharProperty.CB) { - return LineBreakResult( - index, - lastNonNewlineIndex, - lastNonSpaceIndex, - LineBreakType.opportunity, - ); + setBreak(LineBreakType.opportunity, 20); + continue; } // Do not break before hyphen-minus, other hyphens, fixed-width spaces, @@ -492,6 +430,7 @@ LineBreakResult _unsafeNextLineBreak(String text, int index, {int? maxEnd}) { curr == LineCharProperty.HY || curr == LineCharProperty.NS || prev1 == LineCharProperty.BB) { + setBreak(LineBreakType.prohibited, 21); continue; } @@ -499,18 +438,21 @@ LineBreakResult _unsafeNextLineBreak(String text, int index, {int? maxEnd}) { // LB21a: HL (HY | BA) × if (prev2 == LineCharProperty.HL && (prev1 == LineCharProperty.HY || prev1 == LineCharProperty.BA)) { + setBreak(LineBreakType.prohibited, 21); continue; } // Don’t break between Solidus and Hebrew letters. // LB21b: SY × HL if (prev1 == LineCharProperty.SY && curr == LineCharProperty.HL) { + setBreak(LineBreakType.prohibited, 21); continue; } // Do not break before ellipses. // LB22: × IN if (curr == LineCharProperty.IN) { + setBreak(LineBreakType.prohibited, 22); continue; } @@ -519,6 +461,7 @@ LineBreakResult _unsafeNextLineBreak(String text, int index, {int? maxEnd}) { // NU × (AL | HL) if ((_isALorHL(prev1) && curr == LineCharProperty.NU) || (prev1 == LineCharProperty.NU && _isALorHL(curr))) { + setBreak(LineBreakType.prohibited, 23); continue; } @@ -529,6 +472,7 @@ LineBreakResult _unsafeNextLineBreak(String text, int index, {int? maxEnd}) { (curr == LineCharProperty.ID || curr == LineCharProperty.EB || curr == LineCharProperty.EM)) { + setBreak(LineBreakType.prohibited, 23); continue; } // LB23a: (ID | EB | EM) × PO @@ -536,6 +480,7 @@ LineBreakResult _unsafeNextLineBreak(String text, int index, {int? maxEnd}) { prev1 == LineCharProperty.EB || prev1 == LineCharProperty.EM) && curr == LineCharProperty.PO) { + setBreak(LineBreakType.prohibited, 23); continue; } @@ -544,11 +489,13 @@ LineBreakResult _unsafeNextLineBreak(String text, int index, {int? maxEnd}) { // LB24: (PR | PO) × (AL | HL) if ((prev1 == LineCharProperty.PR || prev1 == LineCharProperty.PO) && _isALorHL(curr)) { + setBreak(LineBreakType.prohibited, 24); continue; } // LB24: (AL | HL) × (PR | PO) if (_isALorHL(prev1) && (curr == LineCharProperty.PR || curr == LineCharProperty.PO)) { + setBreak(LineBreakType.prohibited, 24); continue; } @@ -558,11 +505,13 @@ LineBreakResult _unsafeNextLineBreak(String text, int index, {int? maxEnd}) { prev1 == LineCharProperty.CP || prev1 == LineCharProperty.NU) && (curr == LineCharProperty.PO || curr == LineCharProperty.PR)) { + setBreak(LineBreakType.prohibited, 25); continue; } // LB25: (PO | PR) × OP if ((prev1 == LineCharProperty.PO || prev1 == LineCharProperty.PR) && curr == LineCharProperty.OP) { + setBreak(LineBreakType.prohibited, 25); continue; } // LB25: (PO | PR | HY | IS | NU | SY) × NU @@ -573,6 +522,7 @@ LineBreakResult _unsafeNextLineBreak(String text, int index, {int? maxEnd}) { prev1 == LineCharProperty.NU || prev1 == LineCharProperty.SY) && curr == LineCharProperty.NU) { + setBreak(LineBreakType.prohibited, 25); continue; } @@ -583,38 +533,45 @@ LineBreakResult _unsafeNextLineBreak(String text, int index, {int? maxEnd}) { curr == LineCharProperty.JV || curr == LineCharProperty.H2 || curr == LineCharProperty.H3)) { + setBreak(LineBreakType.prohibited, 26); continue; } // LB26: (JV | H2) × (JV | JT) if ((prev1 == LineCharProperty.JV || prev1 == LineCharProperty.H2) && (curr == LineCharProperty.JV || curr == LineCharProperty.JT)) { + setBreak(LineBreakType.prohibited, 26); continue; } // LB26: (JT | H3) × JT if ((prev1 == LineCharProperty.JT || prev1 == LineCharProperty.H3) && curr == LineCharProperty.JT) { + setBreak(LineBreakType.prohibited, 26); continue; } // Treat a Korean Syllable Block the same as ID. // LB27: (JL | JV | JT | H2 | H3) × PO if (_isKoreanSyllable(prev1) && curr == LineCharProperty.PO) { + setBreak(LineBreakType.prohibited, 27); continue; } // LB27: PR × (JL | JV | JT | H2 | H3) if (prev1 == LineCharProperty.PR && _isKoreanSyllable(curr)) { + setBreak(LineBreakType.prohibited, 27); continue; } // Do not break between alphabetics. // LB28: (AL | HL) × (AL | HL) if (_isALorHL(prev1) && _isALorHL(curr)) { + setBreak(LineBreakType.prohibited, 28); continue; } // Do not break between numeric punctuation and alphabetics (“e.g.”). // LB29: IS × (AL | HL) if (prev1 == LineCharProperty.IS && _isALorHL(curr)) { + setBreak(LineBreakType.prohibited, 29); continue; } @@ -627,12 +584,14 @@ LineBreakResult _unsafeNextLineBreak(String text, int index, {int? maxEnd}) { if ((_isALorHL(prev1) || prev1 == LineCharProperty.NU) && curr == LineCharProperty.OP && !_hasEastAsianWidthFWH(text.codeUnitAt(index))) { + setBreak(LineBreakType.prohibited, 30); continue; } // LB30: CP × (AL | HL | NU) if (prev1 == LineCharProperty.CP && !_hasEastAsianWidthFWH(text.codeUnitAt(index - 1)) && (_isALorHL(curr) || curr == LineCharProperty.NU)) { + setBreak(LineBreakType.prohibited, 30); continue; } @@ -642,37 +601,29 @@ LineBreakResult _unsafeNextLineBreak(String text, int index, {int? maxEnd}) { // [^RI] (RI RI)* RI × RI if (curr == LineCharProperty.RI) { if (regionalIndicatorCount.isOdd) { - continue; + setBreak(LineBreakType.prohibited, 30); } else { - return LineBreakResult( - index, - lastNonNewlineIndex, - lastNonSpaceIndex, - LineBreakType.opportunity, - ); + setBreak(LineBreakType.opportunity, 30); } + continue; } // Do not break between an emoji base and an emoji modifier. // LB30b: EB × EM if (prev1 == LineCharProperty.EB && curr == LineCharProperty.EM) { + setBreak(LineBreakType.prohibited, 30); continue; } // Break everywhere else. // LB31: ALL ÷ // ÷ ALL - return LineBreakResult( - index, - lastNonNewlineIndex, - lastNonSpaceIndex, - LineBreakType.opportunity, - ); + setBreak(LineBreakType.opportunity, 31); } - return LineBreakResult( - text.length, - lastNonNewlineIndex, - lastNonSpaceIndex, - LineBreakType.endOfText, - ); + + // Always break at the end of text. + // LB3: ! eot + setBreak(LineBreakType.endOfText, 3); + + return fragments; } diff --git a/lib/web_ui/lib/src/engine/text/paint_service.dart b/lib/web_ui/lib/src/engine/text/paint_service.dart index 1183a66a6b604..1fb4d688044ff 100644 --- a/lib/web_ui/lib/src/engine/text/paint_service.dart +++ b/lib/web_ui/lib/src/engine/text/paint_service.dart @@ -8,7 +8,7 @@ import '../dom.dart'; import '../html/bitmap_canvas.dart'; import '../html/painting.dart'; import 'canvas_paragraph.dart'; -import 'layout_service.dart'; +import 'layout_fragmenter.dart'; import 'paragraph.dart'; /// Responsible for painting a [CanvasParagraph] on a [BitmapCanvas]. @@ -18,31 +18,15 @@ class TextPaintService { final CanvasParagraph paragraph; void paint(BitmapCanvas canvas, ui.Offset offset) { - // Loop through all the lines, for each line, loop through all the boxes and - // paint them. The boxes have enough information so they can be painted + // Loop through all the lines, for each line, loop through all fragments and + // paint them. The fragment objects have enough information to be painted // individually. final List lines = paragraph.lines; - if (lines.isEmpty) { - return; - } - for (final ParagraphLine line in lines) { - if (line.boxes.isEmpty) { - continue; - } - - final RangeBox lastBox = line.boxes.last; - - for (final RangeBox box in line.boxes) { - final bool isTrailingSpaceBox = - box == lastBox && box is SpanBox && box.isSpaceOnly; - - // Don't paint background for the trailing space in the line. - if (!isTrailingSpaceBox) { - _paintBackground(canvas, offset, line, box); - } - _paintText(canvas, offset, line, box); + for (final LayoutFragment fragment in line.fragments) { + _paintBackground(canvas, offset, fragment); + _paintText(canvas, offset, line, fragment); } } } @@ -50,17 +34,18 @@ class TextPaintService { void _paintBackground( BitmapCanvas canvas, ui.Offset offset, - ParagraphLine line, - RangeBox box, + LayoutFragment fragment, ) { - if (box is SpanBox) { - final FlatTextSpan span = box.span; - - // Paint the background of the box, if the span has a background. - final SurfacePaint? background = span.style.background as SurfacePaint?; - if (background != null) { - final ui.Rect rect = box.toTextBox(line, forPainting: true).toRect().shift(offset); - canvas.drawRect(rect, background.paintData); + if (fragment.isPlaceholder) { + return; + } + + // Paint the background of the box, if the span has a background. + final SurfacePaint? background = fragment.style.background as SurfacePaint?; + if (background != null) { + final ui.Rect rect = fragment.toPaintingTextBox().toRect(); + if (!rect.isEmpty) { + canvas.drawRect(rect.shift(offset), background.paintData); } } } @@ -69,63 +54,63 @@ class TextPaintService { BitmapCanvas canvas, ui.Offset offset, ParagraphLine line, - RangeBox box, + LayoutFragment fragment, ) { // There's no text to paint in placeholder spans. - if (box is SpanBox) { - final FlatTextSpan span = box.span; - - _applySpanStyleToCanvas(span, canvas); - final double x = offset.dx + line.left + box.left; - final double y = offset.dy + line.baseline; - - // Don't paint the text for space-only boxes. This is just an - // optimization, it doesn't have any effect on the output. - if (!box.isSpaceOnly) { - final String text = paragraph.toPlainText().substring( - box.start.index, - box.end.indexWithoutTrailingNewlines, - ); - final double? letterSpacing = span.style.letterSpacing; - if (letterSpacing == null || letterSpacing == 0.0) { - canvas.drawText(text, x, y, - style: span.style.foreground?.style, shadows: span.style.shadows); - } else { - // TODO(mdebbar): Implement letter-spacing on canvas more efficiently: - // https://github.com/flutter/flutter/issues/51234 - double charX = x; - final int len = text.length; - for (int i = 0; i < len; i++) { - final String char = text[i]; - canvas.drawText(char, charX.roundToDouble(), y, - style: span.style.foreground?.style, - shadows: span.style.shadows); - charX += letterSpacing + canvas.measureText(char).width!; - } - } - } + if (fragment.isPlaceholder) { + return; + } - // Paint the ellipsis using the same span styles. - final String? ellipsis = line.ellipsis; - if (ellipsis != null && box == line.boxes.last) { - final double x = offset.dx + line.left + box.right; - canvas.drawText(ellipsis, x, y, style: span.style.foreground?.style); - } + // Don't paint the text for space-only boxes. This is just an + // optimization, it doesn't have any effect on the output. + if (fragment.isSpaceOnly) { + return; + } + + _prepareCanvasForFragment(canvas, fragment); + final double fragmentX = fragment.textDirection! == ui.TextDirection.ltr + ? fragment.left + : fragment.right; - canvas.tearDownPaint(); + final double x = offset.dx + line.left + fragmentX; + final double y = offset.dy + line.baseline; + + final EngineTextStyle style = fragment.style; + + final String text = fragment.getText(paragraph); + final double? letterSpacing = style.letterSpacing; + if (letterSpacing == null || letterSpacing == 0.0) { + canvas.drawText(text, x, y, + style: style.foreground?.style, shadows: style.shadows); + } else { + // TODO(mdebbar): Implement letter-spacing on canvas more efficiently: + // https://github.com/flutter/flutter/issues/51234 + double charX = x; + final int len = text.length; + for (int i = 0; i < len; i++) { + final String char = text[i]; + canvas.drawText(char, charX.roundToDouble(), y, + style: style.foreground?.style, + shadows: style.shadows); + charX += letterSpacing + canvas.measureText(char).width!; + } } + + canvas.tearDownPaint(); } - void _applySpanStyleToCanvas(FlatTextSpan span, BitmapCanvas canvas) { + void _prepareCanvasForFragment(BitmapCanvas canvas, LayoutFragment fragment) { + final EngineTextStyle style = fragment.style; + final SurfacePaint? paint; - final ui.Paint? foreground = span.style.foreground; + final ui.Paint? foreground = style.foreground; if (foreground != null) { paint = foreground as SurfacePaint; } else { - paint = (ui.Paint()..color = span.style.color!) as SurfacePaint; + paint = (ui.Paint()..color = style.color!) as SurfacePaint; } - canvas.setCssFont(span.style.cssFontString); + canvas.setCssFont(style.cssFontString, fragment.textDirection!); canvas.setUpPaint(paint.paintData, null); } } diff --git a/lib/web_ui/lib/src/engine/text/paragraph.dart b/lib/web_ui/lib/src/engine/text/paragraph.dart index 7011038f71054..c24b476290049 100644 --- a/lib/web_ui/lib/src/engine/text/paragraph.dart +++ b/lib/web_ui/lib/src/engine/text/paragraph.dart @@ -10,7 +10,8 @@ import '../browser_detection.dart'; import '../dom.dart'; import '../embedder.dart'; import '../util.dart'; -import 'layout_service.dart'; +import 'canvas_paragraph.dart'; +import 'layout_fragmenter.dart'; import 'ruler.dart'; class EngineLineMetrics implements ui.LineMetrics { @@ -114,16 +115,17 @@ class ParagraphLine { required double left, required double baseline, required int lineNumber, - required this.ellipsis, required this.startIndex, required this.endIndex, - required this.endIndexWithoutNewlines, + required this.trailingNewlines, + required this.trailingSpaces, + required this.spaceCount, required this.widthWithTrailingSpaces, - required this.boxes, - required this.spaceBoxCount, - required this.trailingSpaceBoxCount, + required this.fragments, + required this.textDirection, this.displayText, - }) : lineMetrics = EngineLineMetrics( + }) : assert(trailingNewlines <= endIndex - startIndex), + lineMetrics = EngineLineMetrics( hardBreak: hardBreak, ascent: ascent, descent: descent, @@ -138,12 +140,6 @@ class ParagraphLine { /// Metrics for this line of the paragraph. final EngineLineMetrics lineMetrics; - /// The string to be displayed as an overflow indicator. - /// - /// When the value is non-null, it means this line is overflowing and the - /// [ellipsis] needs to be displayed at the end of it. - final String? ellipsis; - /// The index (inclusive) in the text where this line begins. final int startIndex; @@ -153,9 +149,14 @@ class ParagraphLine { /// the text and doesn't stop at the overflow cutoff. final int endIndex; - /// The index (exclusive) in the text where this line ends, ignoring newline - /// characters. - final int endIndexWithoutNewlines; + /// The number of new line characters at the end of the line. + final int trailingNewlines; + + /// The number of spaces at the end of the line. + final int trailingSpaces; + + /// The number of space characters in the entire line. + final int spaceCount; /// The full width of the line including all trailing space but not new lines. /// @@ -169,21 +170,17 @@ class ParagraphLine { /// spaces so [widthWithTrailingSpaces] is more suitable. final double widthWithTrailingSpaces; - /// The list of boxes representing the entire line, possibly across multiple - /// spans. - final List boxes; - - /// The number of boxes that are space-only. - final int spaceBoxCount; + /// The fragments that make up this line. + final List fragments; - /// The number of trailing boxes that are space-only. - final int trailingSpaceBoxCount; + /// The text direction of this line, which is the same as the paragraph's. + final ui.TextDirection textDirection; /// The text to be rendered on the screen representing this line. final String? displayText; - /// The number of space-only boxes excluding trailing spaces. - int get nonTrailingSpaceBoxCount => spaceBoxCount - trailingSpaceBoxCount; + /// The number of space characters in the line excluding trailing spaces. + int get nonTrailingSpaces => spaceCount - trailingSpaces; // Convenient getters for line metrics properties. @@ -201,17 +198,25 @@ class ParagraphLine { return startIndex < this.endIndex && this.startIndex < endIndex; } + String getText(CanvasParagraph paragraph) { + final StringBuffer buffer = StringBuffer(); + for (final LayoutFragment fragment in fragments) { + buffer.write(fragment.getText(paragraph)); + } + return buffer.toString(); + } + @override int get hashCode => Object.hash( lineMetrics, - ellipsis, startIndex, endIndex, - endIndexWithoutNewlines, + trailingNewlines, + trailingSpaces, + spaceCount, widthWithTrailingSpaces, - boxes, - spaceBoxCount, - trailingSpaceBoxCount, + fragments, + textDirection, displayText, ); @@ -225,16 +230,21 @@ class ParagraphLine { } return other is ParagraphLine && other.lineMetrics == lineMetrics && - other.ellipsis == ellipsis && other.startIndex == startIndex && other.endIndex == endIndex && - other.endIndexWithoutNewlines == endIndexWithoutNewlines && + other.trailingNewlines == trailingNewlines && + other.trailingSpaces == trailingSpaces && + other.spaceCount == spaceCount && other.widthWithTrailingSpaces == widthWithTrailingSpaces && - other.boxes == boxes && - other.spaceBoxCount == spaceBoxCount && - other.trailingSpaceBoxCount == trailingSpaceBoxCount && + other.fragments == fragments && + other.textDirection == textDirection && other.displayText == displayText; } + + @override + String toString() { + return '$ParagraphLine($startIndex, $endIndex, $lineMetrics)'; + } } /// The web implementation of [ui.ParagraphStyle]. @@ -496,6 +506,52 @@ class EngineTextStyle implements ui.TextStyle { ); } + EngineTextStyle copyWith({ + ui.Color? color, + ui.TextDecoration? decoration, + ui.Color? decorationColor, + ui.TextDecorationStyle? decorationStyle, + double? decorationThickness, + ui.FontWeight? fontWeight, + ui.FontStyle? fontStyle, + ui.TextBaseline? textBaseline, + String? fontFamily, + List? fontFamilyFallback, + double? fontSize, + double? letterSpacing, + double? wordSpacing, + double? height, + ui.Locale? locale, + ui.Paint? background, + ui.Paint? foreground, + List? shadows, + List? fontFeatures, + List? fontVariations, + }) { + return EngineTextStyle( + color: color ?? this.color, + decoration: decoration ?? this.decoration, + decorationColor: decorationColor ?? this.decorationColor, + decorationStyle: decorationStyle ?? this.decorationStyle, + decorationThickness: decorationThickness ?? this.decorationThickness, + fontWeight: fontWeight ?? this.fontWeight, + fontStyle: fontStyle ?? this.fontStyle, + textBaseline: textBaseline ?? this.textBaseline, + fontFamily: fontFamily ?? this.fontFamily, + fontFamilyFallback: fontFamilyFallback ?? this.fontFamilyFallback, + fontSize: fontSize ?? this.fontSize, + letterSpacing: letterSpacing ?? this.letterSpacing, + wordSpacing: wordSpacing ?? this.wordSpacing, + height: height ?? this.height, + locale: locale ?? this.locale, + background: background ?? this.background, + foreground: foreground ?? this.foreground, + shadows: shadows ?? this.shadows, + fontFeatures: fontFeatures ?? this.fontFeatures, + fontVariations: fontVariations ?? this.fontVariations, + ); + } + @override bool operator ==(Object other) { if (identical(this, other)) { @@ -718,13 +774,9 @@ String fontWeightIndexToCss({int fontWeightIndex = 3}) { /// Applies a text [style] to an [element], translating the properties to their /// corresponding CSS equivalents. -/// -/// If [isSpan] is true, the text element is a span within richtext and -/// should not assign effectiveFontFamily if fontFamily was not specified. void applyTextStyleToElement({ - required DomHTMLElement element, + required DomElement element, required EngineTextStyle style, - bool isSpan = false, }) { assert(element != null); assert(style != null); @@ -766,10 +818,10 @@ void applyTextStyleToElement({ } // For test environment use effectiveFontFamily since we need to // consistently use Ahem font. - if (isSpan && !ui.debugEmulateFlutterTesterEnvironment) { - cssStyle.fontFamily = canonicalizeFontFamily(style.fontFamily)!; - } else { + if (ui.debugEmulateFlutterTesterEnvironment) { cssStyle.fontFamily = canonicalizeFontFamily(style.effectiveFontFamily)!; + } else { + cssStyle.fontFamily = canonicalizeFontFamily(style.fontFamily)!; } if (style.letterSpacing != null) { cssStyle.letterSpacing = '${style.letterSpacing}px'; diff --git a/lib/web_ui/lib/src/engine/text/text_direction.dart b/lib/web_ui/lib/src/engine/text/text_direction.dart index 782b0b6681c4f..5fe0f3358825c 100644 --- a/lib/web_ui/lib/src/engine/text/text_direction.dart +++ b/lib/web_ui/lib/src/engine/text/text_direction.dart @@ -4,9 +4,63 @@ import 'package:ui/ui.dart' as ui; -import 'line_breaker.dart'; +import 'fragmenter.dart'; import 'unicode_range.dart'; +enum FragmentFlow { + /// The fragment flows from left to right regardless of its surroundings. + ltr, + /// The fragment flows from right to left regardless of its surroundings. + rtl, + /// The fragment flows the same as the previous fragment. + /// + /// If it's the first fragment in a line, then it flows the same as the + /// paragraph direction. + /// + /// E.g. digits. + previous, + /// If the previous and next fragments flow in the same direction, then this + /// fragment flows in that same direction. Otherwise, it flows the same as the + /// paragraph direction. + /// + /// E.g. spaces, symbols. + sandwich, +} + +/// Splits [text] into fragments based on directionality. +class BidiFragmenter extends TextFragmenter { + const BidiFragmenter(super.text); + + @override + List fragment() { + return _computeBidiFragments(text); + } +} + +class BidiFragment extends TextFragment { + const BidiFragment(super.start, super.end, this.textDirection, this.fragmentFlow); + + final ui.TextDirection? textDirection; + final FragmentFlow fragmentFlow; + + @override + int get hashCode => Object.hash(start, end, textDirection, fragmentFlow); + + @override + bool operator ==(Object other) { + return other is BidiFragment && + other.start == start && + other.end == end && + other.textDirection == textDirection && + other.fragmentFlow == fragmentFlow; + } + + @override + String toString() { + return 'BidiFragment($start, $end, $textDirection)'; + } +} + // This data was taken from the source code of the Closure library: // // - https://github.com/google/closure-library/blob/9d24a6c1809a671c2e54c328897ebeae15a6d172/closure/goog/i18n/bidi.js#L203-L234 @@ -50,69 +104,83 @@ final UnicodePropertyLookup _textDirectionLookup = UnicodePro null, ); -/// Represents a block of text with a certain [ui.TextDirection]. -class DirectionalPosition { - const DirectionalPosition(this.lineBreak, this.textDirection, this.isSpaceOnly); +List _computeBidiFragments(String text) { + final List fragments = []; - final LineBreakResult lineBreak; + if (text.isEmpty) { + fragments.add(const BidiFragment(0, 0, null, FragmentFlow.previous)); + return fragments; + } - final ui.TextDirection? textDirection; + int fragmentStart = 0; + ui.TextDirection? textDirection = _getTextDirection(text, 0); + FragmentFlow fragmentFlow = _getFragmentFlow(text, 0); - final bool isSpaceOnly; + for (int i = 1; i < text.length; i++) { + final ui.TextDirection? charTextDirection = _getTextDirection(text, i); - LineBreakType get type => lineBreak.type; + if (charTextDirection != textDirection) { + // We've reached the end of a text direction fragment. + fragments.add(BidiFragment(fragmentStart, i, textDirection, fragmentFlow)); + fragmentStart = i; + textDirection = charTextDirection; - /// Creates a copy of this [DirectionalPosition] with a different [index]. - /// - /// The type of the returned [DirectionalPosition] is set to - /// [LineBreakType.prohibited]. - DirectionalPosition copyWithIndex(int index) { - return DirectionalPosition( - LineBreakResult.sameIndex(index, LineBreakType.prohibited), - textDirection, - isSpaceOnly, - ); + fragmentFlow = _getFragmentFlow(text, i); + } else { + // This code handles the case of a sequence of digits followed by a sequence + // of LTR characters with no space in between. + if (fragmentFlow == FragmentFlow.previous) { + fragmentFlow = _getFragmentFlow(text, i); + } + } } + + fragments.add(BidiFragment(fragmentStart, text.length, textDirection, fragmentFlow)); + return fragments; } -/// Finds the end of the directional block of text that starts at [start] up -/// until [end]. -/// -/// If the block goes beyond [end], the part after [end] is ignored. -DirectionalPosition getDirectionalBlockEnd( - String text, - LineBreakResult start, - LineBreakResult end, -) { - if (start.index == end.index) { - return DirectionalPosition(end, null, false); +ui.TextDirection? _getTextDirection(String text, int i) { + final int codePoint = getCodePoint(text, i)!; + if (_isDigit(codePoint) || _isMashriqiDigit(codePoint)) { + // A sequence of regular digits or Mashriqi digits always goes from left to + // regardless of their fragment flow direction. + return ui.TextDirection.ltr; } - // Check if we are in a space-only block. - if (start.index == end.indexWithoutTrailingSpaces) { - return DirectionalPosition(end, null, true); + final ui.TextDirection? textDirection = _textDirectionLookup.findForChar(codePoint); + if (textDirection != null) { + return textDirection; } - final ui.TextDirection? blockDirection = _textDirectionLookup.find(text, start.index); - int i = start.index + 1; + return null; +} - while (i < end.indexWithoutTrailingSpaces) { - final ui.TextDirection? direction = _textDirectionLookup.find(text, i); - if (direction != blockDirection) { - // Reached the next block. - break; - } - i++; +FragmentFlow _getFragmentFlow(String text, int i) { + final int codePoint = getCodePoint(text, i)!; + if (_isDigit(codePoint)) { + return FragmentFlow.previous; + } + if (_isMashriqiDigit(codePoint)) { + return FragmentFlow.rtl; } - if (i == end.indexWithoutTrailingNewlines) { - // If all that remains before [end] is new lines, let's include them in the - // block. - return DirectionalPosition(end, blockDirection, false); + final ui.TextDirection? textDirection = _textDirectionLookup.findForChar(codePoint); + switch (textDirection) { + case ui.TextDirection.ltr: + return FragmentFlow.ltr; + + case ui.TextDirection.rtl: + return FragmentFlow.rtl; + + case null: + return FragmentFlow.sandwich; } - return DirectionalPosition( - LineBreakResult.sameIndex(i, LineBreakType.prohibited), - blockDirection, - false, - ); +} + +bool _isDigit(int codePoint) { + return codePoint >= kChar_0 && codePoint <= kChar_9; +} + +bool _isMashriqiDigit(int codePoint) { + return codePoint >= kMashriqi_0 && codePoint <= kMashriqi_9; } diff --git a/lib/web_ui/lib/src/engine/text/unicode_range.dart b/lib/web_ui/lib/src/engine/text/unicode_range.dart index 81d14edc402a7..0e280cc6ae8bc 100644 --- a/lib/web_ui/lib/src/engine/text/unicode_range.dart +++ b/lib/web_ui/lib/src/engine/text/unicode_range.dart @@ -3,12 +3,14 @@ // found in the LICENSE file. const int kChar_0 = 48; -const int kChar_9 = 57; +const int kChar_9 = kChar_0 + 9; const int kChar_A = 65; const int kChar_Z = 90; const int kChar_a = 97; const int kChar_z = 122; const int kCharBang = 33; +const int kMashriqi_0 = 0x660; +const int kMashriqi_9 = kMashriqi_0 + 9; enum _ComparisonResult { inside, diff --git a/lib/web_ui/lib/src/engine/text_editing/text_editing.dart b/lib/web_ui/lib/src/engine/text_editing/text_editing.dart index 3d202444c2c12..59e0b19dd1967 100644 --- a/lib/web_ui/lib/src/engine/text_editing/text_editing.dart +++ b/lib/web_ui/lib/src/engine/text_editing/text_editing.dart @@ -59,6 +59,9 @@ void _setStaticStyleAttributes(DomHTMLElement domElement) { final DomCSSStyleDeclaration elementStyle = domElement.style; elementStyle + // Prevent (forced-colors: active) from making our invisible text fields visible. + // For more details, see: https://developer.mozilla.org/en-US/docs/Web/CSS/forced-color-adjust + ..setProperty('forced-color-adjust', 'none') ..whiteSpace = 'pre-wrap' ..alignContent = 'center' ..position = 'absolute' @@ -69,10 +72,12 @@ void _setStaticStyleAttributes(DomHTMLElement domElement) { ..color = 'transparent' ..backgroundColor = 'transparent' ..background = 'transparent' + // This property makes the input's blinking cursor transparent. + ..caretColor = 'transparent' ..outline = 'none' ..border = 'none' ..resize = 'none' - ..textShadow = 'transparent' + ..textShadow = 'none' ..overflow = 'hidden' ..transformOrigin = '0 0 0'; @@ -80,9 +85,6 @@ void _setStaticStyleAttributes(DomHTMLElement domElement) { domElement.classList.add(transparentTextEditingClass); } - // This property makes the input's blinking cursor transparent. - elementStyle.setProperty('caret-color', 'transparent'); - if (_debugVisibleTextEditing) { elementStyle ..color = 'purple' @@ -472,9 +474,12 @@ class TextEditingDeltaState { /// Infers the correct delta values based on information from the new editing state /// and the last editing state. /// - /// For a deletion we calculate the length of the deleted text by comparing the new - /// and last editing states. We subtract this from the [deltaEnd] that we set when beforeinput - /// was fired to determine the [deltaStart]. + /// For a deletion, the length and the direction of the deletion (backward or forward) + /// are calculated by comparing the new and last editing states. + /// If the deletion is backward, the length is susbtracted from the [deltaEnd] + /// that we set when beforeinput was fired to determine the [deltaStart]. + /// If the deletion is forward, [deltaStart] is set to the new editing state baseOffset + /// and [deltaEnd] is set to [deltaStart] incremented by the length of the deletion. /// /// For a replacement at a selection we set the [deltaStart] to be the beginning of the selection /// from the last editing state. @@ -495,9 +500,19 @@ class TextEditingDeltaState { if (isTextBeingRemoved) { // When text is deleted outside of the composing region or is cut using the native toolbar, // we calculate the length of the deleted text by comparing the new and old editing state lengths. - // This value is then subtracted from the end position of the delta to capture the deleted range. + // If the deletion is backward, the length is susbtracted from the [deltaEnd] + // that we set when beforeinput was fired to determine the [deltaStart]. + // If the deletion is forward, [deltaStart] is set to the new editing state baseOffset + // and [deltaEnd] is set to [deltaStart] incremented by the length of the deletion. final int deletedLength = newTextEditingDeltaState.oldText.length - newEditingState.text!.length; - newTextEditingDeltaState.deltaStart = newTextEditingDeltaState.deltaEnd - deletedLength; + final bool backwardDeletion = newEditingState.baseOffset != lastEditingState?.baseOffset; + if (backwardDeletion) { + newTextEditingDeltaState.deltaStart = newTextEditingDeltaState.deltaEnd - deletedLength; + } else { + // Forward deletion + newTextEditingDeltaState.deltaStart = newEditingState.baseOffset!; + newTextEditingDeltaState.deltaEnd = newTextEditingDeltaState.deltaStart + deletedLength; + } } else if (isTextBeingChangedAtActiveSelection) { // When a selection of text is replaced by a copy/paste operation we set the starting range // of the delta to be the beginning of the selection of the previous editing state. @@ -653,13 +668,13 @@ class EditingState { this.text, int? baseOffset, int? extentOffset, - this.composingBaseOffset, - this.composingExtentOffset + this.composingBaseOffset = -1, + this.composingExtentOffset = -1 }) : - // Don't allow negative numbers. Pick the smallest selection index for base. - baseOffset = math.max(0, math.min(baseOffset ?? 0, extentOffset ?? 0)), - // Don't allow negative numbers. Pick the greatest selection index for extent. - extentOffset = math.max(0, math.max(baseOffset ?? 0, extentOffset ?? 0)); + // Don't allow negative numbers. + baseOffset = math.max(0, baseOffset ?? 0), + // Don't allow negative numbers. + extentOffset = math.max(0, extentOffset ?? 0); /// Creates an [EditingState] instance using values from an editing state Map /// coming from Flutter. @@ -694,8 +709,8 @@ class EditingState { text: text, baseOffset: selectionBase, extentOffset: selectionExtent, - composingBaseOffset: composingBase, - composingExtentOffset: composingExtent + composingBaseOffset: composingBase ?? -1, + composingExtentOffset: composingExtent ?? -1 ); } @@ -723,6 +738,11 @@ class EditingState { } } + // Pick the smallest selection index for base. + int get minOffset => math.min(baseOffset ?? 0, extentOffset ?? 0); + // Pick the greatest selection index for extent. + int get maxOffset => math.max(baseOffset ?? 0, extentOffset ?? 0); + EditingState copyWith({ String? text, int? baseOffset, @@ -760,10 +780,10 @@ class EditingState { final int? extentOffset; /// The offset at which [CompositionAwareMixin.composingText] begins, if any. - final int? composingBaseOffset; + final int composingBaseOffset; /// The offset at which [CompositionAwareMixin.composingText] terminates, if any. - final int? composingExtentOffset; + final int composingExtentOffset; /// Whether the current editing state is valid or not. bool get isValid => baseOffset! >= 0 && extentOffset! >= 0; @@ -783,8 +803,8 @@ class EditingState { } return other is EditingState && other.text == text && - other.baseOffset == baseOffset && - other.extentOffset == extentOffset && + other.minOffset == minOffset && + other.maxOffset == maxOffset && other.composingBaseOffset == composingBaseOffset && other.composingExtentOffset == composingExtentOffset; } @@ -812,12 +832,12 @@ class EditingState { if (domInstanceOfString(domElement, 'HTMLInputElement')) { final DomHTMLInputElement element = domElement! as DomHTMLInputElement; element.value = text; - element.setSelectionRange(baseOffset!, extentOffset!); + element.setSelectionRange(minOffset, maxOffset); } else if (domInstanceOfString(domElement, 'HTMLTextAreaElement')) { final DomHTMLTextAreaElement element = domElement! as DomHTMLTextAreaElement; element.value = text; - element.setSelectionRange(baseOffset!, extentOffset!); + element.setSelectionRange(minOffset, maxOffset); } else { throw UnsupportedError('Unsupported DOM element type: <${domElement?.tagName}> (${domElement.runtimeType})'); } diff --git a/lib/web_ui/lib/src/engine/util.dart b/lib/web_ui/lib/src/engine/util.dart index 16c1446e08d23..3f78e859e8286 100644 --- a/lib/web_ui/lib/src/engine/util.dart +++ b/lib/web_ui/lib/src/engine/util.dart @@ -344,6 +344,17 @@ String? colorToCssString(ui.Color? color) { return null; } final int value = color.value; + return colorValueToCssString(value); +} + +// Converts a color value (as an int) into a CSS-compatible value. +String? colorValueToCssString(int? value) { + if (value == null) { + return null; + } + if (value == 0xFF000000) { + return '#000000'; + } if ((0xff000000 & value) == 0xff000000) { final String hexValue = (value & 0xFFFFFF).toRadixString(16); final int hexValueLength = hexValue.length; diff --git a/lib/web_ui/lib/src/engine/window.dart b/lib/web_ui/lib/src/engine/window.dart index 55d0bc26a0423..953235213008e 100644 --- a/lib/web_ui/lib/src/engine/window.dart +++ b/lib/web_ui/lib/src/engine/window.dart @@ -12,7 +12,7 @@ import 'package:js/js.dart'; import 'package:meta/meta.dart'; import 'package:ui/ui.dart' as ui; -import '../engine.dart' show registerHotRestartListener; +import '../engine.dart' show registerHotRestartListener, renderer; import 'browser_detection.dart'; import 'dom.dart'; import 'navigation/history.dart'; @@ -54,6 +54,7 @@ class EngineFlutterWindow extends ui.SingletonFlutterWindow { } registerHotRestartListener(() { _browserHistory?.dispose(); + renderer.clearFragmentProgramCache(); }); } diff --git a/lib/web_ui/lib/window.dart b/lib/web_ui/lib/window.dart index bbb033b42e395..ee4e0e35ec897 100644 --- a/lib/web_ui/lib/window.dart +++ b/lib/web_ui/lib/window.dart @@ -16,6 +16,7 @@ abstract class FlutterView { WindowPadding get padding => viewConfiguration.padding; List get displayFeatures => viewConfiguration.displayFeatures; void render(Scene scene) => platformDispatcher.render(scene, this); + void updateSemantics(SemanticsUpdate update) => platformDispatcher.updateSemantics(update); } abstract class FlutterWindow extends FlutterView { @@ -130,8 +131,6 @@ abstract class SingletonFlutterWindow extends FlutterWindow { platformDispatcher.onAccessibilityFeaturesChanged = callback; } - void updateSemantics(SemanticsUpdate update) => platformDispatcher.updateSemantics(update); - void sendPlatformMessage( String name, ByteData? data, diff --git a/lib/web_ui/pubspec.yaml b/lib/web_ui/pubspec.yaml index 8ccf08592378d..9307f95436de5 100644 --- a/lib/web_ui/pubspec.yaml +++ b/lib/web_ui/pubspec.yaml @@ -7,14 +7,14 @@ environment: dependencies: js: 0.6.4 - meta: 1.3.0 + meta: ^1.7.0 dev_dependencies: archive: 3.1.2 args: any async: any html: 0.15.0 - http: 0.13.0 + http: 0.13.5 http_multi_server: any image: 3.0.1 package_config: any @@ -27,7 +27,7 @@ dev_dependencies: shelf_web_socket: any stack_trace: any stream_channel: any - test: 1.17.7 + test: 1.22.0 test_api: any test_core: any typed_data: any diff --git a/lib/web_ui/test/canvaskit/canvaskit_api_test.dart b/lib/web_ui/test/canvaskit/canvaskit_api_test.dart index 0f5811d83cdf3..2913768658100 100644 --- a/lib/web_ui/test/canvaskit/canvaskit_api_test.dart +++ b/lib/web_ui/test/canvaskit/canvaskit_api_test.dart @@ -695,8 +695,7 @@ void _matrix4x4CompositionTests() { final bool areEqual = await fuzzyCompareImages(incrementalMatrixImage, combinedMatrixImage); expect(areEqual, true); - // TODO(hterkelsen): https://github.com/flutter/flutter/issues/109265 - }, skip: isFirefox); + }); } void _toSkRectTests() { @@ -1402,8 +1401,7 @@ void _canvasTests() { final ByteData pngData = await image.toByteData(format: ui.ImageByteFormat.png); expect(pngData.lengthInBytes, greaterThan(0)); - // TODO(hterkelsen): https://github.com/flutter/flutter/issues/109265 - }, skip: isFirefox); + }); } void _textStyleTests() { @@ -1467,8 +1465,8 @@ void _textStyleTests() { void _paragraphTests() { setUpAll(() async { - CanvasKitRenderer.instance.fontCollection.debugRegisterTestFonts(); - await CanvasKitRenderer.instance.fontCollection.ensureFontsLoaded(); + await CanvasKitRenderer.instance.fontCollection.debugDownloadTestFonts(); + CanvasKitRenderer.instance.fontCollection.registerDownloadedFonts(); }); // This test is just a kitchen sink that blasts CanvasKit with all paragraph @@ -1709,4 +1707,45 @@ void _paragraphTests() { canvasKit.TextHeightBehavior.DisableAll, ); }); + + test('RuntimeEffect', () { + // Is supported.. + expect(isRuntimeEffectAvailable, isTrue); + + const String kSkSlProgram = r''' +half4 main(vec2 fragCoord) { + return vec4(1.0, 0.0, 0.0, 1.0); +} +'''; + + final SkRuntimeEffect? effect = MakeRuntimeEffect(kSkSlProgram); + expect(effect, isNotNull); + + const String kInvalidSkSlProgram = ''; + + // Invalid SkSL returns null. + final SkRuntimeEffect? invalidEffect = MakeRuntimeEffect(kInvalidSkSlProgram); + expect(invalidEffect, isNull); + + final SkShader? shader = effect!.makeShader([]); + expect(shader, isNotNull); + + // mismatched uniforms returns null. + final SkShader? invalidShader = effect.makeShader([1]); + + expect(invalidShader, isNull); + + const String kSkSlProgramWithUniforms = r''' +uniform vec4 u_color; + +half4 main(vec2 fragCoord) { + return u_color; +} +'''; + + final SkShader? shaderWithUniform = MakeRuntimeEffect(kSkSlProgramWithUniforms) + !.makeShader([1.0, 0.0, 0.0, 1.0]); + + expect(shaderWithUniform, isNotNull); + }); } diff --git a/lib/web_ui/test/canvaskit/canvaskit_api_tt_on_test.dart b/lib/web_ui/test/canvaskit/canvaskit_api_tt_on_test.dart new file mode 100644 index 0000000000000..05dee0bfa6962 --- /dev/null +++ b/lib/web_ui/test/canvaskit/canvaskit_api_tt_on_test.dart @@ -0,0 +1,61 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import 'package:test/bootstrap/browser.dart'; +import 'package:test/test.dart'; +import 'package:ui/src/engine.dart'; + +import '../matchers.dart'; +import 'canvaskit_api_test.dart'; + +final bool isBlink = browserEngine == BrowserEngine.blink; + +const String goodUrl = 'https://www.unpkg.com/blah-blah/33.x/canvaskit.js'; +const String badUrl = 'https://www.unpkg.com/soemthing/not-canvaskit.js'; + +// These tests need to happen in a separate file, because a Content Security +// Policy cannot be relaxed once set, only made more strict. +void main() { + internalBootstrapBrowserTest(() => testMainWithTTOn); +} + +// Enables Trusted Types, runs all `canvaskit_api_test.dart`, then tests the +// createTrustedScriptUrl function. +void testMainWithTTOn() { + enableTrustedTypes(); + + // Run all standard canvaskit tests, with TT on... + testMain(); + + group('TrustedTypes API supported', () { + test('createTrustedScriptUrl - returns TrustedScriptURL object', () async { + final Object trusted = createTrustedScriptUrl(goodUrl); + + expect(trusted, isA()); + expect((trusted as DomTrustedScriptURL).url, goodUrl); + }); + + test('createTrustedScriptUrl - rejects bad canvaskit.js URL', () async { + expect(() { + createTrustedScriptUrl(badUrl); + }, throwsAssertionError); + }); + }, skip: !isBlink); + + group('Trusted Types API NOT supported', () { + test('createTrustedScriptUrl - returns unmodified url', () async { + expect(createTrustedScriptUrl(badUrl), badUrl); + }); + }, skip: isBlink); +} + +/// Enables Trusted Types by setting the appropriate meta tag in the DOM: +/// +void enableTrustedTypes() { + print('Enabling TrustedTypes in browser window...'); + final DomHTMLMetaElement enableTTMeta = createDomHTMLMetaElement() + ..setAttribute('http-equiv', 'Content-Security-Policy') + ..content = "require-trusted-types-for 'script'"; + domDocument.head!.append(enableTTMeta); +} diff --git a/lib/web_ui/test/canvaskit/color_filter_golden_test.dart b/lib/web_ui/test/canvaskit/color_filter_golden_test.dart index 965a5e89dfc7f..18633e5df5ac3 100644 --- a/lib/web_ui/test/canvaskit/color_filter_golden_test.dart +++ b/lib/web_ui/test/canvaskit/color_filter_golden_test.dart @@ -126,6 +126,38 @@ void testMain() { await matchSceneGolden('canvaskit_inverse_colormatrix.png', builder.build(), region: region); }); + + test('ColorFilter color with 0 opacity', () async { + final LayerSceneBuilder builder = LayerSceneBuilder(); + builder.pushOffset(0,0); + final CkPictureRecorder recorder = CkPictureRecorder(); + final CkCanvas canvas = recorder.beginRecording(region); + + canvas.drawCircle( + const ui.Offset(75, 125), + 50, + CkPaint()..color = const ui.Color.fromARGB(255, 255, 0, 0), + ); + final CkPicture redCircle1 = recorder.endRecording(); + builder.addPicture(ui.Offset.zero, redCircle1); + + builder.pushColorFilter(ui.ColorFilter.mode(const ui.Color(0x00000000).withOpacity(0), ui.BlendMode.srcOver)); + + // Draw another red circle and apply it to the scene. + // This one should also be red with the color filter doing nothing + final CkPictureRecorder recorder2 = CkPictureRecorder(); + final CkCanvas canvas2 = recorder2.beginRecording(region); + canvas2.drawCircle( + const ui.Offset(425, 125), + 50, + CkPaint()..color = const ui.Color.fromARGB(255, 255, 0, 0), + ); + final CkPicture redCircle2 = recorder2.endRecording(); + + builder.addPicture(ui.Offset.zero, redCircle2); + + await matchSceneGolden('canvaskit_transparent_colorfilter.png', builder.build(), region: region); + }); // TODO(hterkelsen): https://github.com/flutter/flutter/issues/71520 }, skip: isSafari || isFirefox); } diff --git a/lib/web_ui/test/canvaskit/embedded_views_test.dart b/lib/web_ui/test/canvaskit/embedded_views_test.dart index e72bc0df0c6bb..96b558bef61ab 100644 --- a/lib/web_ui/test/canvaskit/embedded_views_test.dart +++ b/lib/web_ui/test/canvaskit/embedded_views_test.dart @@ -10,6 +10,7 @@ import 'package:ui/src/engine.dart'; import 'package:ui/ui.dart' as ui; import 'common.dart'; +import 'test_data.dart'; void main() { internalBootstrapBrowserTest(() => testMain); @@ -336,8 +337,8 @@ void testMain() { _platformView, _overlay, _platformView, - _platformView, _overlay, + _platformView, ]); // Frame 2: @@ -388,6 +389,7 @@ void testMain() { _platformView, _overlay, _platformView, + _overlay, _platformView, _platformView, _platformView, @@ -397,7 +399,6 @@ void testMain() { _platformView, _platformView, _platformView, - _overlay, ]); // Frame 5: @@ -490,10 +491,10 @@ void testMain() { _platformView, _overlay, _platformView, + _overlay, _platformView, _platformView, _platformView, - _overlay, ]); // Frame 2: @@ -517,10 +518,10 @@ void testMain() { _platformView, _overlay, _platformView, + _overlay, _platformView, _platformView, _platformView, - _overlay, ]); // Frame 3: @@ -543,10 +544,10 @@ void testMain() { _platformView, _overlay, _platformView, + _overlay, _platformView, _platformView, _platformView, - _overlay, ]); // Frame 4: @@ -569,10 +570,10 @@ void testMain() { _platformView, _overlay, _platformView, + _overlay, _platformView, _platformView, _platformView, - _overlay, ]); // TODO(yjbanov): skipped due to https://github.com/flutter/flutter/issues/73867 @@ -618,6 +619,52 @@ void testMain() { ); }); + test('does not crash when resizing the window after textures have been registered', () async { + ui.platformViewRegistry.registerViewFactory( + 'test-platform-view', + (int viewId) => createDomHTMLDivElement()..id = 'view-0', + ); + await createPlatformView(0, 'test-platform-view'); + + final CkBrowserImageDecoder image = await CkBrowserImageDecoder.create( + data: kAnimatedGif, + debugSource: 'test', + ); + final ui.FrameInfo frame = await image.getNextFrame(); + final CkImage ckImage = frame.image as CkImage; + + final LayerSceneBuilder sb = LayerSceneBuilder(); + sb.pushOffset(0, 0); + final CkPictureRecorder recorder = CkPictureRecorder(); + final CkCanvas canvas = recorder.beginRecording(ui.Rect.largest); + canvas.drawImage(ckImage, ui.Offset.zero, CkPaint()); + final CkPicture picture = recorder.endRecording(); + sb.addPicture(ui.Offset.zero, picture); + sb.addPlatformView(0, width: 10, height: 10); + + window.webOnlyDebugPhysicalSizeOverride = const ui.Size(100, 100); + window.debugForceResize(); + CanvasKitRenderer.instance.rasterizer.draw(sb.build().layerTree); + _expectSceneMatches(<_EmbeddedViewMarker>[ + _overlay, + _platformView, + _overlay, + ]); + + window.webOnlyDebugPhysicalSizeOverride = const ui.Size(200, 200); + window.debugForceResize(); + CanvasKitRenderer.instance.rasterizer.draw(sb.build().layerTree); + _expectSceneMatches(<_EmbeddedViewMarker>[ + _overlay, + _platformView, + _overlay, + ]); + + window.webOnlyDebugPhysicalSizeOverride = null; + window.debugForceResize(); + // ImageDecoder is not supported in Safari or Firefox. + }, skip: isSafari || isFirefox); + test('removed the DOM node of an unrendered platform view', () async { final Rasterizer rasterizer = CanvasKitRenderer.instance.rasterizer; ui.platformViewRegistry.registerViewFactory( @@ -795,8 +842,8 @@ void testMain() { _expectSceneMatches(<_EmbeddedViewMarker>[ _overlay, _platformView, - _platformView, _overlay, + _platformView, ]); // Reset configuration diff --git a/lib/web_ui/test/canvaskit/filter_test.dart b/lib/web_ui/test/canvaskit/filter_test.dart index 0c3d6b46dcd57..811a292889e51 100644 --- a/lib/web_ui/test/canvaskit/filter_test.dart +++ b/lib/web_ui/test/canvaskit/filter_test.dart @@ -89,6 +89,42 @@ void testMain() { expect((paint.imageFilter! as ManagedSkiaObject).skiaObject, same(skiaFilter)); }); + test('does not throw for both sigmaX and sigmaY set to 0', () async { + final CkImageFilter imageFilter = CkImageFilter.blur(sigmaX: 0, sigmaY: 0, tileMode: ui.TileMode.clamp); + expect(imageFilter, isNotNull); + + const ui.Rect region = ui.Rect.fromLTRB(0, 0, 500, 250); + + final LayerSceneBuilder builder = LayerSceneBuilder(); + builder.pushOffset(0,0); + final CkPictureRecorder recorder = CkPictureRecorder(); + final CkCanvas canvas = recorder.beginRecording(region); + + canvas.drawCircle( + const ui.Offset(75, 125), + 50, + CkPaint()..color = const ui.Color.fromARGB(255, 255, 0, 0), + ); + final CkPicture redCircle1 = recorder.endRecording(); + builder.addPicture(ui.Offset.zero, redCircle1); + + builder.pushImageFilter(imageFilter); + + // Draw another red circle and apply it to the scene. + // This one should also be red with the image filter doing nothing + final CkPictureRecorder recorder2 = CkPictureRecorder(); + final CkCanvas canvas2 = recorder2.beginRecording(region); + canvas2.drawCircle( + const ui.Offset(425, 125), + 50, + CkPaint()..color = const ui.Color.fromARGB(255, 255, 0, 0), + ); + final CkPicture redCircle2 = recorder2.endRecording(); + + builder.addPicture(ui.Offset.zero, redCircle2); + + await matchSceneGolden('canvaskit_zero_sigma_blur.png', builder.build(), region: region); + }); }); group('MaskFilter', () { diff --git a/lib/web_ui/test/canvaskit/fragment_program_test.dart b/lib/web_ui/test/canvaskit/fragment_program_test.dart new file mode 100644 index 0000000000000..b3c19b90426b1 --- /dev/null +++ b/lib/web_ui/test/canvaskit/fragment_program_test.dart @@ -0,0 +1,211 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import 'dart:convert'; +import 'dart:typed_data'; + +import 'package:test/bootstrap/browser.dart'; +import 'package:test/test.dart'; + +import 'package:ui/src/engine.dart'; +import 'package:ui/ui.dart' as ui; + +void main() { + internalBootstrapBrowserTest(() => testMain); +} + +/// This is generated by impellerc, and included here as a source file to +/// simplify the build. +const String kJsonIPLR = r''' +{ + "sksl": "// This SkSL shader is autogenerated by spirv-cross.\n\nfloat4 flutter_FragCoord;\n\nuniform vec4 u_color;\nuniform float u_alpha;\nuniform vec4 u_sparkle_color;\nuniform float u_sparkle_alpha;\nuniform float u_blur;\nuniform vec2 u_center;\nuniform float u_radius_scale;\nuniform float u_max_radius;\nuniform vec2 u_resolution_scale;\nuniform vec2 u_noise_scale;\nuniform float u_noise_phase;\nuniform vec2 u_circle1;\nuniform vec2 u_circle2;\nuniform vec2 u_circle3;\nuniform vec2 u_rotation1;\nuniform vec2 u_rotation2;\nuniform vec2 u_rotation3;\n\nvec4 fragColor;\n\nmat2 FLT_flutter_local_rotate2d(vec2 rad)\n{\n return mat2(vec2(rad.x, -rad.y), vec2(rad.y, rad.x));\n}\n\nfloat FLT_flutter_local_soft_circle(vec2 uv, vec2 xy, float radius, float blur)\n{\n float blur_half = blur * 0.5;\n float d = distance(uv, xy);\n return 1.0 - smoothstep(1.0 - blur_half, 1.0 + blur_half, d / radius);\n}\n\nfloat FLT_flutter_local_circle_grid(vec2 resolution, inout vec2 p, vec2 xy, vec2 rotation, float cell_diameter)\n{\n vec2 param = rotation;\n p = (FLT_flutter_local_rotate2d(param) * (xy - p)) + xy;\n p = mod(p, vec2(cell_diameter)) / resolution;\n float cell_uv = (cell_diameter / resolution.y) * 0.5;\n float r = 0.64999997615814208984375 * cell_uv;\n vec2 param_1 = p;\n vec2 param_2 = vec2(cell_uv);\n float param_3 = r;\n float param_4 = r * 50.0;\n return FLT_flutter_local_soft_circle(param_1, param_2, param_3, param_4);\n}\n\nfloat FLT_flutter_local_turbulence(vec2 uv)\n{\n vec2 uv_scale = uv * vec2(0.800000011920928955078125);\n vec2 param = vec2(0.800000011920928955078125);\n vec2 param_1 = uv_scale;\n vec2 param_2 = u_circle1;\n vec2 param_3 = u_rotation1;\n float param_4 = 0.17000000178813934326171875;\n float _290 = FLT_flutter_local_circle_grid(param, param_1, param_2, param_3, param_4);\n float g1 = _290;\n vec2 param_5 = vec2(0.800000011920928955078125);\n vec2 param_6 = uv_scale;\n vec2 param_7 = u_circle2;\n vec2 param_8 = u_rotation2;\n float param_9 = 0.20000000298023223876953125;\n float _302 = FLT_flutter_local_circle_grid(param_5, param_6, param_7, param_8, param_9);\n float g2 = _302;\n vec2 param_10 = vec2(0.800000011920928955078125);\n vec2 param_11 = uv_scale;\n vec2 param_12 = u_circle3;\n vec2 param_13 = u_rotation3;\n float param_14 = 0.2750000059604644775390625;\n float _315 = FLT_flutter_local_circle_grid(param_10, param_11, param_12, param_13, param_14);\n float g3 = _315;\n float v = (((g1 * g1) + g2) - g3) * 0.5;\n return clamp(0.449999988079071044921875 + (0.800000011920928955078125 * v), 0.0, 1.0);\n}\n\nfloat FLT_flutter_local_soft_ring(vec2 uv, vec2 xy, float radius, float thickness, float blur)\n{\n vec2 param = uv;\n vec2 param_1 = xy;\n float param_2 = radius + thickness;\n float param_3 = blur;\n float circle_outer = FLT_flutter_local_soft_circle(param, param_1, param_2, param_3);\n vec2 param_4 = uv;\n vec2 param_5 = xy;\n float param_6 = max(radius - thickness, 0.0);\n float param_7 = blur;\n float circle_inner = FLT_flutter_local_soft_circle(param_4, param_5, param_6, param_7);\n return clamp(circle_outer - circle_inner, 0.0, 1.0);\n}\n\nfloat FLT_flutter_local_triangle_noise(inout vec2 n)\n{\n n = fract(n * vec2(5.398700237274169921875, 5.442100048065185546875));\n n += vec2(dot(n.yx, n + vec2(21.5351009368896484375, 14.3136997222900390625)));\n float xy = n.x * n.y;\n return (fract(xy * 95.43070220947265625) + fract(xy * 75.0496063232421875)) - 1.0;\n}\n\nfloat FLT_flutter_local_threshold(float v, float l, float h)\n{\n return step(l, v) * (1.0 - step(h, v));\n}\n\nfloat FLT_flutter_local_sparkle(vec2 uv, float t)\n{\n vec2 param = uv;\n float _213 = FLT_flutter_local_triangle_noise(param);\n float n = _213;\n float param_1 = n;\n float param_2 = 0.0;\n float param_3 = 0.0500000007450580596923828125;\n float s = FLT_flutter_local_threshold(param_1, param_2, param_3);\n float param_4 = n + sin(3.1415927410125732421875 * (t + 0.3499999940395355224609375));\n float param_5 = 0.100000001490116119384765625;\n float param_6 = 0.1500000059604644775390625;\n s += FLT_flutter_local_threshold(param_4, param_5, param_6);\n float param_7 = n + sin(3.1415927410125732421875 * (t + 0.699999988079071044921875));\n float param_8 = 0.20000000298023223876953125;\n float param_9 = 0.25;\n s += FLT_flutter_local_threshold(param_7, param_8, param_9);\n float param_10 = n + sin(3.1415927410125732421875 * (t + 1.0499999523162841796875));\n float param_11 = 0.300000011920928955078125;\n float param_12 = 0.3499999940395355224609375;\n s += FLT_flutter_local_threshold(param_10, param_11, param_12);\n return clamp(s, 0.0, 1.0) * 0.550000011920928955078125;\n}\n\nvoid FLT_main()\n{\n vec2 p = flutter_FragCoord.xy;\n vec2 uv_1 = p * u_resolution_scale;\n vec2 density_uv = uv_1 - mod(p, u_noise_scale);\n float radius = u_max_radius * u_radius_scale;\n vec2 param_13 = uv_1;\n float turbulence = FLT_flutter_local_turbulence(param_13);\n vec2 param_14 = p;\n vec2 param_15 = u_center;\n float param_16 = radius;\n float param_17 = 0.0500000007450580596923828125 * u_max_radius;\n float param_18 = u_blur;\n float ring = FLT_flutter_local_soft_ring(param_14, param_15, param_16, param_17, param_18);\n vec2 param_19 = density_uv;\n float param_20 = u_noise_phase;\n float sparkle = ((FLT_flutter_local_sparkle(param_19, param_20) * ring) * turbulence) * u_sparkle_alpha;\n vec2 param_21 = p;\n vec2 param_22 = u_center;\n float param_23 = radius;\n float param_24 = u_blur;\n float wave_alpha = (FLT_flutter_local_soft_circle(param_21, param_22, param_23, param_24) * u_alpha) * u_color.w;\n vec4 wave_color = vec4(u_color.xyz * wave_alpha, wave_alpha);\n vec4 sparkle_color = vec4(u_sparkle_color.xyz * u_sparkle_color.w, u_sparkle_color.w);\n fragColor = mix(wave_color, sparkle_color, vec4(sparkle));\n}\n\nhalf4 main(float2 iFragCoord)\n{\n flutter_FragCoord = float4(iFragCoord, 0, 0);\n FLT_main();\n return fragColor;\n}\n", + "stage": 1, + "target_platform": 0, + "uniforms": [ + { + "array_elements": 0, + "bit_width": 32, + "columns": 1, + "location": 11, + "name": "u_circle1", + "rows": 2, + "type": 10 + }, + { + "array_elements": 0, + "bit_width": 32, + "columns": 1, + "location": 14, + "name": "u_rotation1", + "rows": 2, + "type": 10 + }, + { + "array_elements": 0, + "bit_width": 32, + "columns": 1, + "location": 12, + "name": "u_circle2", + "rows": 2, + "type": 10 + }, + { + "array_elements": 0, + "bit_width": 32, + "columns": 1, + "location": 15, + "name": "u_rotation2", + "rows": 2, + "type": 10 + }, + { + "array_elements": 0, + "bit_width": 32, + "columns": 1, + "location": 13, + "name": "u_circle3", + "rows": 2, + "type": 10 + }, + { + "array_elements": 0, + "bit_width": 32, + "columns": 1, + "location": 16, + "name": "u_rotation3", + "rows": 2, + "type": 10 + }, + { + "array_elements": 0, + "bit_width": 32, + "columns": 1, + "location": 8, + "name": "u_resolution_scale", + "rows": 2, + "type": 10 + }, + { + "array_elements": 0, + "bit_width": 32, + "columns": 1, + "location": 9, + "name": "u_noise_scale", + "rows": 2, + "type": 10 + }, + { + "array_elements": 0, + "bit_width": 32, + "columns": 1, + "location": 7, + "name": "u_max_radius", + "rows": 1, + "type": 10 + }, + { + "array_elements": 0, + "bit_width": 32, + "columns": 1, + "location": 6, + "name": "u_radius_scale", + "rows": 1, + "type": 10 + }, + { + "array_elements": 0, + "bit_width": 32, + "columns": 1, + "location": 5, + "name": "u_center", + "rows": 2, + "type": 10 + }, + { + "array_elements": 0, + "bit_width": 32, + "columns": 1, + "location": 4, + "name": "u_blur", + "rows": 1, + "type": 10 + }, + { + "array_elements": 0, + "bit_width": 32, + "columns": 1, + "location": 10, + "name": "u_noise_phase", + "rows": 1, + "type": 10 + }, + { + "array_elements": 0, + "bit_width": 32, + "columns": 1, + "location": 3, + "name": "u_sparkle_alpha", + "rows": 1, + "type": 10 + }, + { + "array_elements": 0, + "bit_width": 32, + "columns": 1, + "location": 1, + "name": "u_alpha", + "rows": 1, + "type": 10 + }, + { + "array_elements": 0, + "bit_width": 32, + "columns": 1, + "location": 0, + "name": "u_color", + "rows": 4, + "type": 10 + }, + { + "array_elements": 0, + "bit_width": 32, + "columns": 1, + "location": 2, + "name": "u_sparkle_color", + "rows": 4, + "type": 10 + } + ] +} +'''; + +void testMain() { + setUpAll(() async { + await ui.webOnlyInitializePlatform(); + }); + + group('FragmentProgram can be created from JSON IPLR bundle', () async { + final Uint8List data = utf8.encode(kJsonIPLR) as Uint8List; + final CkFragmentProgram program = await CkFragmentProgram.fromBytes('test', data); + + expect(program.effect, isNotNull); + expect(program.floatCount, 17); + expect(program.textureCount, 0); + expect(program.uniforms, hasLength(17)); + expect(program.name, 'test'); + + final ui.FragmentShader shader = program.fragmentShader(); + + shader.setFloat(0, 4); + shader.dispose(); + + expect(shader.debugDisposed, true); + + final ui.FragmentShader shader2 = program.fragmentShader(); + + shader.setFloat(0, 5); + shader2.dispose(); + expect(shader2.debugDisposed, true); + }); +} diff --git a/lib/web_ui/test/canvaskit/h5vcc_test.dart b/lib/web_ui/test/canvaskit/h5vcc_test.dart deleted file mode 100644 index de5d509052778..0000000000000 --- a/lib/web_ui/test/canvaskit/h5vcc_test.dart +++ /dev/null @@ -1,72 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'package:js/js.dart'; -import 'package:js/js_util.dart' as js_util; -import 'package:test/bootstrap/browser.dart'; -import 'package:test/test.dart'; -import 'package:ui/src/engine.dart'; -import 'package:ui/ui.dart' as ui; - -import 'common.dart'; - -void main() { - internalBootstrapBrowserTest(() => testMain); -} - -void testMain() { - group('H5vcc patched CanvasKit', () { - int getH5vccSkSurfaceCalledCount = 0; - - setUpAll(() async { - // Set `window.h5vcc` to PatchedH5vcc which uses a downloaded CanvasKit. - final CanvasKit downloadedCanvasKit = await downloadCanvasKit(); - debugH5vccSetter = PatchedH5vcc(canvasKit: downloadedCanvasKit); - - // Monkey-patch the getH5vccSkSurface function of - // `window.h5vcc.canvasKit`. - js_util.setProperty(h5vcc!.canvasKit!, 'getH5vccSkSurface', allowInterop(() { - getH5vccSkSurfaceCalledCount++; - - // Returns a fake [SkSurface] object with a minimal implementation. - return js_util.jsify({ - 'dispose': allowInterop(() {}) - }); - })); - }); - - setUpCanvasKitTest(); - - setUp(() { - getH5vccSkSurfaceCalledCount = 0; - }); - - test('sets useH5vccCanvasKit', () { - expect(useH5vccCanvasKit, true); - }); - - test('API includes patched getH5vccSkSurface', () { - expect(canvasKit.getH5vccSkSurface, isNotNull); - }); - - test('Surface acquireFrame uses getH5vccSkSurface', () { - final Surface surface = SurfaceFactory.instance.getOverlay()!; - surface.acquireFrame(ui.Size.zero); - expect(getH5vccSkSurfaceCalledCount, 1); - - // No element should be created. - expect( - flutterViewEmbedder.glassPaneElement!.querySelectorAll('canvas'), - isEmpty, - ); - }); - }, testOn: 'chrome'); -} - -@JS() -@anonymous -@staticInterop -class PatchedH5vcc implements H5vcc { - external factory PatchedH5vcc({CanvasKit canvasKit}); -} diff --git a/lib/web_ui/test/canvaskit/image_golden_test.dart b/lib/web_ui/test/canvaskit/image_golden_test.dart index 5cd1669709284..6f0aea5f5a246 100644 --- a/lib/web_ui/test/canvaskit/image_golden_test.dart +++ b/lib/web_ui/test/canvaskit/image_golden_test.dart @@ -541,8 +541,7 @@ void _testForImageCodecs({required bool useBrowserImageDecoder}) { image.dispose(); codec.dispose(); - // TODO(hterkelsen): https://github.com/flutter/flutter/issues/109265 - }, skip: isFirefox || isSafari); + }); // This is a regression test for the issues with transferring textures from // one GL context to another, such as: @@ -634,8 +633,7 @@ void _testForImageCodecs({required bool useBrowserImageDecoder}) { ); mandrill.dispose(); codec.dispose(); - // TODO(hterkelsen): https://github.com/flutter/flutter/issues/109265 - }, skip: isFirefox || isSafari); + }); test('can detect JPEG from just magic number', () async { expect( diff --git a/lib/web_ui/test/canvaskit/image_test.dart b/lib/web_ui/test/canvaskit/image_test.dart index 9f4d620c9fa58..f3b9fd88e07a9 100644 --- a/lib/web_ui/test/canvaskit/image_test.dart +++ b/lib/web_ui/test/canvaskit/image_test.dart @@ -6,7 +6,6 @@ import 'dart:async'; import 'package:test/bootstrap/browser.dart'; import 'package:test/test.dart'; -import 'package:ui/src/engine.dart'; import 'package:ui/ui.dart' as ui; import 'common.dart'; @@ -22,8 +21,7 @@ void testMain() { final ui.Image image = await _createImage(); expect(image.runtimeType.toString(), equals('CkImage')); image.dispose(); - // TODO(hterkelsen): https://github.com/flutter/flutter/issues/109265 - }, skip: isFirefox); + }); test('Image constructor invokes onCreate once', () async { int onCreateInvokedCount = 0; @@ -44,8 +42,7 @@ void testMain() { expect(createdImage, image2); ui.Image.onCreate = null; - // TODO(hterkelsen): https://github.com/flutter/flutter/issues/109265 - }, skip: isFirefox); + }); test('dispose() invokes onDispose once', () async { int onDisposeInvokedCount = 0; @@ -66,8 +63,7 @@ void testMain() { expect(disposedImage, image2); ui.Image.onDispose = null; - // TODO(hterkelsen): https://github.com/flutter/flutter/issues/109265 - }, skip: isFirefox); + }); } Future _createImage() => _createPicture().toImage(10, 10); diff --git a/lib/web_ui/test/canvaskit/initialization_services_vs_ui_test.dart b/lib/web_ui/test/canvaskit/initialization_services_vs_ui_test.dart index 31820129fb49b..8f6d74cc09469 100644 --- a/lib/web_ui/test/canvaskit/initialization_services_vs_ui_test.dart +++ b/lib/web_ui/test/canvaskit/initialization_services_vs_ui_test.dart @@ -16,7 +16,7 @@ void testMain() { expect(windowFlutterCanvasKit, isNull); expect(findGlassPane(), isNull); - expect(Keyboard.instance, isNull); + expect(RawKeyboard.instance, isNull); expect(MouseCursor.instance, isNull); expect(KeyboardBinding.instance, isNull); expect(PointerBinding.instance, isNull); @@ -27,7 +27,7 @@ void testMain() { expect(windowFlutterCanvasKit, isNotNull); expect(findGlassPane(), isNull); - expect(Keyboard.instance, isNull); + expect(RawKeyboard.instance, isNull); expect(MouseCursor.instance, isNull); expect(KeyboardBinding.instance, isNull); expect(PointerBinding.instance, isNull); @@ -35,7 +35,7 @@ void testMain() { // Now UI should be taken over by Flutter. await initializeEngineUi(); expect(findGlassPane(), isNotNull); - expect(Keyboard.instance, isNotNull); + expect(RawKeyboard.instance, isNotNull); expect(MouseCursor.instance, isNotNull); expect(KeyboardBinding.instance, isNotNull); expect(PointerBinding.instance, isNotNull); diff --git a/lib/web_ui/test/canvaskit/layer_test.dart b/lib/web_ui/test/canvaskit/layer_test.dart index d5f942dc0859b..4dae7c63addb9 100644 --- a/lib/web_ui/test/canvaskit/layer_test.dart +++ b/lib/web_ui/test/canvaskit/layer_test.dart @@ -71,7 +71,6 @@ void testMain() { recorder.endRecording(), region: kDefaultRegion, ); - //https://github.com/flutter/flutter/issues/109265 - }, skip: isFirefox || isSafari); + }); }); } diff --git a/lib/web_ui/test/canvaskit/picture_test.dart b/lib/web_ui/test/canvaskit/picture_test.dart index 213d0dc4bad31..922581e08429d 100644 --- a/lib/web_ui/test/canvaskit/picture_test.dart +++ b/lib/web_ui/test/canvaskit/picture_test.dart @@ -101,8 +101,7 @@ void testMain() { expect(data, isNotNull); expect(data!.lengthInBytes, 10 * 15 * 4); expect(data.buffer.asUint32List().first, color.value); - // TODO(hterkelsen): https://github.com/flutter/flutter/issues/109265 - }, skip: isFirefox || isSafari); + }); // TODO(hterkelsen): https://github.com/flutter/flutter/issues/60040 }, skip: isIosSafari); } diff --git a/lib/web_ui/test/canvaskit/scene_test.dart b/lib/web_ui/test/canvaskit/scene_test.dart index 422e9622f9cac..9395c067bb3d7 100644 --- a/lib/web_ui/test/canvaskit/scene_test.dart +++ b/lib/web_ui/test/canvaskit/scene_test.dart @@ -45,8 +45,7 @@ void testMain() { final ui.Image sceneImage = await scene.toImage(100, 100); expect(sceneImage, isA()); - // TODO(hterkelsen): https://github.com/flutter/flutter/issues/109265 - }, skip: isFirefox || isSafari); + }); test('pushColorFilter does not throw', () async { final ui.SceneBuilder builder = ui.SceneBuilder(); diff --git a/lib/web_ui/test/canvaskit/skia_font_collection_test.dart b/lib/web_ui/test/canvaskit/skia_font_collection_test.dart index 9f6aac9a4c926..9dc43898158e5 100644 --- a/lib/web_ui/test/canvaskit/skia_font_collection_test.dart +++ b/lib/web_ui/test/canvaskit/skia_font_collection_test.dart @@ -35,12 +35,13 @@ void testMain() { warnings.clear(); }); - test('logs no warnings with the default mock asset manager', () { + test('logs no warnings with the default mock asset manager', () async { final SkiaFontCollection fontCollection = SkiaFontCollection(); final WebOnlyMockAssetManager mockAssetManager = WebOnlyMockAssetManager(); - expect(fontCollection.registerFonts(mockAssetManager), completes); - expect(fontCollection.ensureFontsLoaded(), completes); + await fontCollection.downloadAssetFonts(mockAssetManager); + fontCollection.registerDownloadedFonts(); + expect(warnings, isEmpty); }); @@ -61,8 +62,8 @@ void testMain() { ] '''; // It should complete without error, but emit a warning about BrokenFont. - await fontCollection.registerFonts(mockAssetManager); - await fontCollection.ensureFontsLoaded(); + await fontCollection.downloadAssetFonts(mockAssetManager); + fontCollection.registerDownloadedFonts(); expect( warnings, containsAllInOrder( @@ -89,13 +90,13 @@ void testMain() { final ByteBuffer robotoData = (await (await httpFetch('/assets/fonts/Roboto-Regular.ttf')).arrayBuffer())! as ByteBuffer; - await fontCollection.registerFonts(mockAssetManager); - fontCollection.debugRegisterTestFonts(); - await fontCollection.ensureFontsLoaded(); + await fontCollection.downloadAssetFonts(mockAssetManager); + await fontCollection.debugDownloadTestFonts(); + fontCollection.registerDownloadedFonts(); expect(warnings, isEmpty); // Use `singleWhere` to make sure only one version of 'Ahem' is loaded. - final RegisteredFont ahem = fontCollection.debugDownloadedFonts! + final RegisteredFont ahem = fontCollection.debugRegisteredFonts! .singleWhere((RegisteredFont font) => font.family == 'Ahem'); // Check that the contents of 'Ahem' is actually Roboto, because that's @@ -111,18 +112,31 @@ void testMain() { final ByteBuffer ahemData = (await (await httpFetch('/assets/fonts/ahem.ttf')).arrayBuffer())! as ByteBuffer; - await fontCollection.registerFonts(mockAssetManager); - fontCollection.debugRegisterTestFonts(); - await fontCollection.ensureFontsLoaded(); + await fontCollection.downloadAssetFonts(mockAssetManager); + await fontCollection.debugDownloadTestFonts(); + fontCollection.registerDownloadedFonts(); expect(warnings, isEmpty); // Use `singleWhere` to make sure only one version of 'Ahem' is loaded. - final RegisteredFont ahem = fontCollection.debugDownloadedFonts! + final RegisteredFont ahem = fontCollection.debugRegisteredFonts! .singleWhere((RegisteredFont font) => font.family == 'Ahem'); // Check that the contents of 'Ahem' is actually Roboto, because that's // what's specified in the manifest, and the manifest takes precedence. expect(ahem.bytes.length, ahemData.lengthInBytes); }); + + test('download fonts separately from registering', () async { + final SkiaFontCollection fontCollection = SkiaFontCollection(); + + await fontCollection.debugDownloadTestFonts(); + /// Fonts should have been downloaded, but not yet registered + expect(fontCollection.debugRegisteredFonts, isEmpty); + + fontCollection.registerDownloadedFonts(); + /// Fonts should now be registered and _registeredFonts should be filled + expect(fontCollection.debugRegisteredFonts, isNotEmpty); + expect(warnings, isEmpty); + }); }); } diff --git a/lib/web_ui/test/canvaskit/surface_factory_test.dart b/lib/web_ui/test/canvaskit/surface_factory_test.dart index 9fa98d64f0ba7..d9da96d693ffe 100644 --- a/lib/web_ui/test/canvaskit/surface_factory_test.dart +++ b/lib/web_ui/test/canvaskit/surface_factory_test.dart @@ -26,20 +26,24 @@ void testMain() { expect(SurfaceFactory(2).maximumSurfaces, 2); }); - test('getOverlay', () { + test('has a Surface dedicated to Picture.toImage', () { + expect(SurfaceFactory(1).pictureToImageSurface, isNotNull); + }); + + test('getSurface', () { final SurfaceFactory factory = SurfaceFactory(3); expect(factory.baseSurface, isNotNull); expect(factory.debugSurfaceCount, equals(1)); // Get a surface from the factory, it should be unique. - final Surface? newSurface = factory.getOverlay(); + final Surface? newSurface = factory.getSurface(); expect(newSurface, isNot(equals(factory.baseSurface))); expect(factory.debugSurfaceCount, equals(2)); // Get another surface from the factory. Now we are at maximum capacity. - final Surface? anotherSurface = factory.getOverlay(); + final Surface? anotherSurface = factory.getSurface(); expect(anotherSurface, isNot(equals(factory.baseSurface))); expect(factory.debugSurfaceCount, equals(3)); @@ -49,12 +53,12 @@ void testMain() { final SurfaceFactory factory = SurfaceFactory(3); // Create a new surface and immediately release it. - final Surface? surface = factory.getOverlay(); + final Surface? surface = factory.getSurface(); factory.releaseSurface(surface!); // If we create a new surface, it should be the same as the one we // just created. - final Surface? newSurface = factory.getOverlay(); + final Surface? newSurface = factory.getSurface(); expect(newSurface, equals(surface)); }); @@ -63,7 +67,7 @@ void testMain() { expect(factory.isLive(factory.baseSurface), isTrue); - final Surface? surface = factory.getOverlay(); + final Surface? surface = factory.getSurface(); expect(factory.isLive(surface!), isTrue); factory.releaseSurface(surface); @@ -86,7 +90,7 @@ void testMain() { // Create a few overlay surfaces final List overlays = []; for (int i = 0; i < 3; i++) { - overlays.add(originalFactory.getOverlay()! + overlays.add(originalFactory.getSurface()! ..acquireFrame(const ui.Size(10, 10)) ..addToScene()); } diff --git a/lib/web_ui/test/canvaskit/surface_test.dart b/lib/web_ui/test/canvaskit/surface_test.dart index 7253381aafa0d..98a3dcaf02b2d 100644 --- a/lib/web_ui/test/canvaskit/surface_test.dart +++ b/lib/web_ui/test/canvaskit/surface_test.dart @@ -21,7 +21,7 @@ void testMain() { }); test('Surface allocates canvases efficiently', () { - final Surface? surface = SurfaceFactory.instance.getOverlay(); + final Surface? surface = SurfaceFactory.instance.getSurface(); final CkSurface originalSurface = surface!.acquireFrame(const ui.Size(9, 19)).skiaSurface; final DomCanvasElement original = surface.htmlCanvas!; @@ -125,7 +125,7 @@ void testMain() { test( 'Surface creates new context when WebGL context is restored', () async { - final Surface? surface = SurfaceFactory.instance.getOverlay(); + final Surface? surface = SurfaceFactory.instance.getSurface(); expect(surface!.debugForceNewContext, isTrue); final CkSurface before = surface.acquireFrame(const ui.Size(9, 19)).skiaSurface; diff --git a/lib/web_ui/test/composition_test.dart b/lib/web_ui/test/composition_test.dart index a2d5919141291..5d4b9fb6a89d6 100644 --- a/lib/web_ui/test/composition_test.dart +++ b/lib/web_ui/test/composition_test.dart @@ -184,7 +184,7 @@ Future testMain() async { expect( editingStrategy.lastEditingState, isA() - .having((EditingState editingState) => editingState.composingBaseOffset!, + .having((EditingState editingState) => editingState.composingBaseOffset, 'composingBaseOffset', beforeComposingText.length - composingText.length) .having((EditingState editingState) => editingState.composingExtentOffset, 'composingExtentOffset', beforeComposingText.length)); diff --git a/lib/web_ui/test/engine/image_to_byte_data_test.dart b/lib/web_ui/test/engine/image_to_byte_data_test.dart index 991c3e80c8853..a9bb8a791f2ea 100644 --- a/lib/web_ui/test/engine/image_to_byte_data_test.dart +++ b/lib/web_ui/test/engine/image_to_byte_data_test.dart @@ -16,8 +16,8 @@ void main() { Future testMain() async { setUpAll(() async { await webOnlyInitializePlatform(); - renderer.fontCollection.debugRegisterTestFonts(); - await renderer.fontCollection.ensureFontsLoaded(); + await renderer.fontCollection.debugDownloadTestFonts(); + renderer.fontCollection.registerDownloadedFonts(); }); Future createTestImageByColor(Color color) async { diff --git a/lib/web_ui/test/engine/pointer_binding_test.dart b/lib/web_ui/test/engine/pointer_binding_test.dart index 130c53f33e740..1d3317316a4ab 100644 --- a/lib/web_ui/test/engine/pointer_binding_test.dart +++ b/lib/web_ui/test/engine/pointer_binding_test.dart @@ -9,6 +9,8 @@ import 'package:test/test.dart'; import 'package:ui/src/engine.dart'; import 'package:ui/ui.dart' as ui; +import '../keyboard_converter_test.dart'; + const int _kNoButtonChange = -1; const PointerSupportDetector _defaultSupportDetector = PointerSupportDetector(); @@ -46,6 +48,13 @@ void testMain() { dpi = window.devicePixelRatio; }); + KeyboardConverter createKeyboardConverter(List keyDataList) { + return KeyboardConverter((ui.KeyData key) { + keyDataList.add(key); + return true; + }); + } + test('ios workaround', () { debugEmulateIosSafari = true; addTearDown(() { @@ -55,7 +64,9 @@ void testMain() { final MockSafariPointerEventWorkaround mockSafariPointer = MockSafariPointerEventWorkaround(); SafariPointerEventWorkaround.instance = mockSafariPointer; - final PointerBinding instance = PointerBinding(createDomHTMLDivElement()); + final List keyDataList = []; + final KeyboardConverter keyboardConverter = createKeyboardConverter(keyDataList); + final PointerBinding instance = PointerBinding(createDomHTMLDivElement(), keyboardConverter); expect(mockSafariPointer.workAroundInvoked, isIosSafari); instance.dispose(); }, skip: !isSafari); @@ -234,6 +245,19 @@ void testMain() { expect(events[1].buttons, equals(0)); expect(events[1].client.x, equals(0)); expect(events[1].client.y, equals(0)); + + context.pressAllModifiers(); + event = expectCorrectType(context.primaryDown(clientX: 100, clientY: 101)); + expect(event.getModifierState('Alt'), true); + expect(event.getModifierState('Control'), true); + expect(event.getModifierState('Meta'), true); + expect(event.getModifierState('Shift'), true); + context.unpressAllModifiers(); + event = expectCorrectType(context.primaryDown(clientX: 100, clientY: 101)); + expect(event.getModifierState('Alt'), false); + expect(event.getModifierState('Control'), false); + expect(event.getModifierState('Meta'), false); + expect(event.getModifierState('Shift'), false); }); test('_TouchEventContext generates expected events', () { @@ -330,6 +354,19 @@ void testMain() { expect(events[0].changedTouches![1].identifier, equals(105)); expect(events[0].changedTouches![1].client.x, equals(322)); expect(events[0].changedTouches![1].client.y, equals(323)); + + context.pressAllModifiers(); + event = expectCorrectType(context.primaryDown(clientX: 100, clientY: 101)); + expect(event.altKey, true); + expect(event.ctrlKey, true); + expect(event.metaKey, true); + expect(event.shiftKey, true); + context.unpressAllModifiers(); + event = expectCorrectType(context.primaryDown(clientX: 100, clientY: 101)); + expect(event.altKey, false); + expect(event.ctrlKey, false); + expect(event.metaKey, false); + expect(event.shiftKey, false); }); test('_MouseEventContext generates expected events', () { @@ -419,6 +456,19 @@ void testMain() { expect(event.buttons, equals(0)); expect(event.client.x, equals(400)); expect(event.client.y, equals(401)); + + context.pressAllModifiers(); + event = expectCorrectType(context.primaryDown(clientX: 100, clientY: 101)); + expect(event.getModifierState('Alt'), true); + expect(event.getModifierState('Control'), true); + expect(event.getModifierState('Meta'), true); + expect(event.getModifierState('Shift'), true); + context.unpressAllModifiers(); + event = expectCorrectType(context.primaryDown(clientX: 100, clientY: 101)); + expect(event.getModifierState('Alt'), false); + expect(event.getModifierState('Control'), false); + expect(event.getModifierState('Meta'), false); + expect(event.getModifierState('Shift'), false); }); // ALL ADAPTERS @@ -468,6 +518,248 @@ void testMain() { }, ); + _testEach<_BasicEventContext>( + <_BasicEventContext>[ + _PointerEventContext(), + _MouseEventContext(), + _TouchEventContext(), + ], + 'synthesize modifier keys left down event if left or right are not pressed', + (_BasicEventContext context) { + PointerBinding.instance!.debugOverrideDetector(context); + + // Should synthesize a modifier left key down event when DOM event indicates + // that the modifier key is pressed and known pressing state doesn't contain + // the modifier left key nor the modifier right key. + void shouldSynthesizeLeftDownIfNotPressed(String key) { + final int physicalLeft = kWebToPhysicalKey['${key}Left']!; + final int physicalRight = kWebToPhysicalKey['${key}Right']!; + final int logicalLeft = kWebLogicalLocationMap[key]![kLocationLeft]!; + + final List keyDataList = []; + final KeyboardConverter keyboardConverter = createKeyboardConverter(keyDataList); + PointerBinding.instance!.debugOverrideKeyboardConverter(keyboardConverter); + + expect(keyboardConverter.debugKeyIsPressed(physicalLeft), false); + expect(keyboardConverter.debugKeyIsPressed(physicalRight), false); + glassPane.dispatchEvent(context.primaryDown()); + expect(keyDataList.length, 1); + expectKeyData(keyDataList.last, + type: ui.KeyEventType.down, + physical: physicalLeft, + logical: logicalLeft, + character: null, + synthesized: true, + ); + } + + context.altPressed = true; + shouldSynthesizeLeftDownIfNotPressed('Alt'); + context.unpressAllModifiers(); + context.ctrlPressed = true; + shouldSynthesizeLeftDownIfNotPressed('Control'); + context.unpressAllModifiers(); + context.metaPressed = true; + shouldSynthesizeLeftDownIfNotPressed('Meta'); + context.unpressAllModifiers(); + context.shiftPressed = true; + shouldSynthesizeLeftDownIfNotPressed('Shift'); + context.unpressAllModifiers(); + }, + ); + + _testEach<_BasicEventContext>( + <_BasicEventContext>[ + _PointerEventContext(), + _MouseEventContext(), + _TouchEventContext(), + ], + 'should not synthesize modifier keys down event if left or right are pressed', + (_BasicEventContext context) { + PointerBinding.instance!.debugOverrideDetector(context); + + // Should not synthesize a modifier down event when DOM event indicates + // that the modifier key is pressed and known pressing state contains + // the modifier left key. + void shouldNotSynthesizeDownIfLeftPressed(String key, int modifiers) { + final int physicalLeft = kWebToPhysicalKey['${key}Left']!; + final int physicalRight = kWebToPhysicalKey['${key}Right']!; + + final List keyDataList = []; + final KeyboardConverter keyboardConverter = createKeyboardConverter(keyDataList); + PointerBinding.instance!.debugOverrideKeyboardConverter(keyboardConverter); + + keyboardConverter.handleEvent(keyDownEvent('${key}Left', key, modifiers, kLocationLeft)); + expect(keyboardConverter.debugKeyIsPressed(physicalLeft), true); + expect(keyboardConverter.debugKeyIsPressed(physicalRight), false); + keyDataList.clear(); // Remove key data generated by handleEvent + + glassPane.dispatchEvent(context.primaryDown()); + expect(keyDataList.length, 0); + } + + // Should not synthesize a modifier down event when DOM event indicates + // that the modifier key is pressed and known pressing state contains + // the modifier right key. + void shouldNotSynthesizeDownIfRightPressed(String key, int modifiers) { + final int physicalLeft = kWebToPhysicalKey['${key}Left']!; + final int physicalRight = kWebToPhysicalKey['${key}Right']!; + + final List keyDataList = []; + final KeyboardConverter keyboardConverter = createKeyboardConverter(keyDataList); + PointerBinding.instance!.debugOverrideKeyboardConverter(keyboardConverter); + + keyboardConverter.handleEvent(keyDownEvent('${key}Right', key, modifiers, kLocationRight)); + expect(keyboardConverter.debugKeyIsPressed(physicalLeft), false); + expect(keyboardConverter.debugKeyIsPressed(physicalRight), true); + keyDataList.clear(); // Remove key data generated by handleEvent + + glassPane.dispatchEvent(context.primaryDown()); + expect(keyDataList.length, 0); + } + + context.altPressed = true; + shouldNotSynthesizeDownIfLeftPressed('Alt', kAlt); + shouldNotSynthesizeDownIfRightPressed('Alt', kAlt); + context.unpressAllModifiers(); + context.ctrlPressed = true; + shouldNotSynthesizeDownIfLeftPressed('Control', kCtrl); + shouldNotSynthesizeDownIfRightPressed('Control', kCtrl); + context.unpressAllModifiers(); + context.metaPressed = true; + shouldNotSynthesizeDownIfLeftPressed('Meta', kMeta); + shouldNotSynthesizeDownIfRightPressed('Meta', kMeta); + context.unpressAllModifiers(); + context.shiftPressed = true; + shouldNotSynthesizeDownIfLeftPressed('Shift', kShift); + shouldNotSynthesizeDownIfRightPressed('Shift', kShift); + context.unpressAllModifiers(); + }, + ); + + _testEach<_BasicEventContext>( + <_BasicEventContext>[ + _PointerEventContext(), + _MouseEventContext(), + _TouchEventContext(), + ], + 'synthesize modifier keys up event if left or right are pressed', + (_BasicEventContext context) { + PointerBinding.instance!.debugOverrideDetector(context); + + // Should synthesize a modifier left key up event when DOM event indicates + // that the modifier key is not pressed and known pressing state contains + // the modifier left key. + void shouldSynthesizeLeftUpIfLeftPressed(String key, int modifiers) { + final int physicalLeft = kWebToPhysicalKey['${key}Left']!; + final int physicalRight = kWebToPhysicalKey['${key}Right']!; + final int logicalLeft = kWebLogicalLocationMap[key]![kLocationLeft]!; + + final List keyDataList = []; + final KeyboardConverter keyboardConverter = createKeyboardConverter(keyDataList); + PointerBinding.instance!.debugOverrideKeyboardConverter(keyboardConverter); + + keyboardConverter.handleEvent(keyDownEvent('${key}Left', key, modifiers, kLocationLeft)); + expect(keyboardConverter.debugKeyIsPressed(physicalLeft), true); + expect(keyboardConverter.debugKeyIsPressed(physicalRight), false); + keyDataList.clear(); // Remove key data generated by handleEvent + + glassPane.dispatchEvent(context.primaryDown()); + expect(keyDataList.length, 1); + expectKeyData(keyDataList.last, + type: ui.KeyEventType.up, + physical: physicalLeft, + logical: logicalLeft, + character: null, + synthesized: true, + ); + expect(keyboardConverter.debugKeyIsPressed(physicalLeft), false); + } + + // Should synthesize a modifier right key up event when DOM event indicates + // that the modifier key is not pressed and known pressing state contains + // the modifier right key. + void shouldSynthesizeRightUpIfRightPressed(String key, int modifiers) { + final int physicalLeft = kWebToPhysicalKey['${key}Left']!; + final int physicalRight = kWebToPhysicalKey['${key}Right']!; + final int logicalRight = kWebLogicalLocationMap[key]![kLocationRight]!; + + final List keyDataList = []; + final KeyboardConverter keyboardConverter = createKeyboardConverter(keyDataList); + PointerBinding.instance!.debugOverrideKeyboardConverter(keyboardConverter); + + keyboardConverter.handleEvent(keyDownEvent('${key}Right', key, modifiers, kLocationRight)); + expect(keyboardConverter.debugKeyIsPressed(physicalLeft), false); + expect(keyboardConverter.debugKeyIsPressed(physicalRight), true); + keyDataList.clear(); // Remove key data generated by handleEvent + + glassPane.dispatchEvent(context.primaryDown()); + expect(keyDataList.length, 1); + expectKeyData(keyDataList.last, + type: ui.KeyEventType.up, + physical: physicalRight, + logical: logicalRight, + character: null, + synthesized: true, + ); + expect(keyboardConverter.debugKeyIsPressed(physicalRight), false); + } + + context.altPressed = false; + shouldSynthesizeLeftUpIfLeftPressed('Alt', kAlt); + shouldSynthesizeRightUpIfRightPressed('Alt', kAlt); + context.ctrlPressed = false; + shouldSynthesizeLeftUpIfLeftPressed('Control', kCtrl); + shouldSynthesizeRightUpIfRightPressed('Control', kCtrl); + context.metaPressed = false; + shouldSynthesizeLeftUpIfLeftPressed('Meta', kMeta); + shouldSynthesizeRightUpIfRightPressed('Meta', kMeta); + context.shiftPressed = false; + shouldSynthesizeLeftUpIfLeftPressed('Shift', kShift); + shouldSynthesizeRightUpIfRightPressed('Shift', kShift); + }, + ); + + _testEach<_BasicEventContext>( + <_BasicEventContext>[ + _PointerEventContext(), + _MouseEventContext(), + _TouchEventContext(), + ], + 'should not synthesize modifier keys up event if left or right are not pressed', + (_BasicEventContext context) { + PointerBinding.instance!.debugOverrideDetector(context); + + // Should not synthesize a modifier up event when DOM event indicates + // that the modifier key is not pressed and known pressing state does + // not contain the modifier left key nor the modifier right key. + void shouldNotSynthesizeUpIfNotPressed(String key) { + final int physicalLeft = kWebToPhysicalKey['${key}Left']!; + final int physicalRight = kWebToPhysicalKey['${key}Right']!; + + final List keyDataList = []; + final KeyboardConverter keyboardConverter = createKeyboardConverter(keyDataList); + PointerBinding.instance!.debugOverrideKeyboardConverter(keyboardConverter); + + expect(keyboardConverter.debugKeyIsPressed(physicalLeft), false); + expect(keyboardConverter.debugKeyIsPressed(physicalRight), false); + keyDataList.clear(); // Remove key data generated by handleEvent + + glassPane.dispatchEvent(context.primaryDown()); + expect(keyDataList.length, 0); + } + + context.altPressed = false; + shouldNotSynthesizeUpIfNotPressed('Alt'); + context.ctrlPressed = false; + shouldNotSynthesizeUpIfNotPressed('Control'); + context.metaPressed = false; + shouldNotSynthesizeUpIfNotPressed('Meta'); + context.shiftPressed = false; + shouldNotSynthesizeUpIfNotPressed('Shift'); + }, + ); + _testEach<_ButtonedEventMixin>( <_ButtonedEventMixin>[ if (!isIosSafari) _PointerEventContext(), @@ -2420,6 +2712,15 @@ abstract class _BasicEventContext implements PointerSupportDetector { bool get isSupported; + // Accepted modifier keys are 'Alt', 'Control', 'Meta' and 'Shift'. + // https://www.w3.org/TR/uievents-key/#keys-modifier defines more modifiers, + // but only the four main modifiers could be set from MouseEvent, PointerEvent + // and TouchEvent constructors. + bool altPressed = false; + bool ctrlPressed = false; + bool metaPressed = false; + bool shiftPressed = false; + // Generate an event that is: // // * For mouse, a left click @@ -2437,6 +2738,20 @@ abstract class _BasicEventContext implements PointerSupportDetector { // * For mouse, release LMB // * For touch, a touch up DomEvent primaryUp({double clientX, double clientY}); + + void pressAllModifiers() { + altPressed = true; + ctrlPressed = true; + metaPressed = true; + shiftPressed = true; + } + + void unpressAllModifiers() { + altPressed = false; + ctrlPressed = false; + metaPressed = false; + shiftPressed = false; + } } mixin _ButtonedEventMixin on _BasicEventContext { @@ -2622,6 +2937,10 @@ class _TouchEventContext extends _BasicEventContext ), ) .toList(), + 'altKey': altPressed, + 'ctrlKey': ctrlPressed, + 'metaKey': metaPressed, + 'shiftKey': shiftPressed, }, ); } @@ -2757,6 +3076,10 @@ class _MouseEventContext extends _BasicEventContext 'button': button, 'clientX': clientX, 'clientY': clientY, + 'altKey': altPressed, + 'ctrlKey': ctrlPressed, + 'metaKey': metaPressed, + 'shiftKey': shiftPressed, } ]; return js_util.callConstructor( @@ -2835,6 +3158,10 @@ class _PointerEventContext extends _BasicEventContext 'clientX': clientX, 'clientY': clientY, 'pointerType': pointerType, + 'altKey': altPressed, + 'ctrlKey': ctrlPressed, + 'metaKey': metaPressed, + 'shiftKey': shiftPressed, }); } diff --git a/lib/web_ui/test/engine/profiler_test.dart b/lib/web_ui/test/engine/profiler_test.dart index ec53fb9399bb3..16299147480e1 100644 --- a/lib/web_ui/test/engine/profiler_test.dart +++ b/lib/web_ui/test/engine/profiler_test.dart @@ -41,9 +41,9 @@ void _profilerTests() { test('can listen to benchmarks', () { final List data = []; - jsOnBenchmark((String name, num value) { + jsOnBenchmark(allowInterop((String name, num value) { data.add(BenchmarkDatapoint(name, value)); - }); + })); Profiler.instance.benchmark('foo', 123); expect(data, [BenchmarkDatapoint('foo', 123)]); @@ -64,9 +64,9 @@ void _profilerTests() { final List data = []; // Wrong callback signature. - jsOnBenchmark((num value) { + jsOnBenchmark(allowInterop((num value) { data.add(BenchmarkDatapoint('bad', value)); - }); + })); expect( () => Profiler.instance.benchmark('foo', 123), throwsA(isA()), @@ -160,8 +160,6 @@ void jsOnBenchmark(dynamic listener) { js_util.setProperty( domWindow, '_flutter_internal_on_benchmark', - listener is Function - ? allowInterop(listener) - : listener, + listener ); } diff --git a/lib/web_ui/test/engine/semantics/semantics_test.dart b/lib/web_ui/test/engine/semantics/semantics_test.dart index e7ce97a688f92..c5683b9afaed0 100644 --- a/lib/web_ui/test/engine/semantics/semantics_test.dart +++ b/lib/web_ui/test/engine/semantics/semantics_test.dart @@ -78,6 +78,9 @@ void runSemanticsTests() { group('accessibility builder', () { _testEngineAccessibilityBuilder(); }); + group('group', () { + _testGroup(); + }); } void _testEngineAccessibilityBuilder() { @@ -310,9 +313,7 @@ void _testEngineSemanticsOwner() { expectSemanticsTree(''' - - Hello - + '''); @@ -322,9 +323,7 @@ void _testEngineSemanticsOwner() { expectSemanticsTree(''' - - World - + '''); @@ -357,9 +356,7 @@ void _testEngineSemanticsOwner() { expectSemanticsTree(''' - - tooltip - + '''); @@ -369,9 +366,7 @@ void _testEngineSemanticsOwner() { expectSemanticsTree(''' - - tooltip\nHello - + '''); @@ -486,9 +481,43 @@ void _testHeader() { semantics().updateSemantics(builder.build()); expectSemanticsTree(''' - - Header of the page - + +'''); + + semantics().semanticsEnabled = false; + }); + + // When a header has child elements, role="heading" prevents AT from reaching + // child elements. To fix that role="group" is used, even though that causes + // the heading to not be announced as a heading. If the app really needs the + // heading to be announced as a heading, the developer can restructure the UI + // such that the heading is not a parent node, but a side-note, e.g. preceding + // the child list. + test('uses group role for headers when children are present', () { + semantics() + ..debugOverrideTimestampFunction(() => _testTime) + ..semanticsEnabled = true; + + final ui.SemanticsUpdateBuilder builder = ui.SemanticsUpdateBuilder(); + updateNode( + builder, + flags: 0 | ui.SemanticsFlag.isHeader.index, + label: 'Header of the page', + transform: Matrix4.identity().toFloat64(), + rect: const ui.Rect.fromLTRB(0, 0, 100, 50), + childrenInHitTestOrder: Int32List.fromList([1]), + childrenInTraversalOrder: Int32List.fromList([1]), + ); + updateNode( + builder, + id: 1, + transform: Matrix4.identity().toFloat64(), + rect: const ui.Rect.fromLTRB(0, 0, 100, 50), + ); + + semantics().updateSemantics(builder.build()); + expectSemanticsTree(''' + '''); semantics().semanticsEnabled = false; @@ -1731,7 +1760,7 @@ void _testLiveRegion() { semantics().updateSemantics(builder.build()); expectSemanticsTree(''' -This is a snackbar + '''); semantics().semanticsEnabled = false; @@ -1938,6 +1967,37 @@ void _testPlatformView() { }); } +void _testGroup() { + test('nodes with children and labels use group role with aria label', () { + semantics() + ..debugOverrideTimestampFunction(() => _testTime) + ..semanticsEnabled = true; + + final ui.SemanticsUpdateBuilder builder = ui.SemanticsUpdateBuilder(); + updateNode( + builder, + label: 'this is a label for a group of elements', + transform: Matrix4.identity().toFloat64(), + rect: const ui.Rect.fromLTRB(0, 0, 100, 50), + childrenInHitTestOrder: Int32List.fromList([1]), + childrenInTraversalOrder: Int32List.fromList([1]), + ); + updateNode( + builder, + id: 1, + transform: Matrix4.identity().toFloat64(), + rect: const ui.Rect.fromLTRB(0, 0, 100, 50), + ); + + semantics().updateSemantics(builder.build()); + expectSemanticsTree(''' + +'''); + + semantics().semanticsEnabled = false; + }); +} + /// A facade in front of [ui.SemanticsUpdateBuilder.updateNode] that /// supplies default values for semantics attributes. // TODO(yjbanov): move this to TestSemanticsBuilder diff --git a/lib/web_ui/test/engine/window_test.dart b/lib/web_ui/test/engine/window_test.dart index e55ed6d9e86d7..a696fd6c33ba8 100644 --- a/lib/web_ui/test/engine/window_test.dart +++ b/lib/web_ui/test/engine/window_test.dart @@ -437,7 +437,7 @@ Future testMain() async { test('dispatches browser event on flutter/service_worker channel', () async { final Completer completer = Completer(); domWindow.addEventListener('flutter-first-frame', - allowInterop(completer.complete)); + allowInterop((DomEvent e) => completer.complete())); final Zone innerZone = Zone.current.fork(); innerZone.runGuarded(() { diff --git a/lib/web_ui/test/html/bitmap_canvas_golden_test.dart b/lib/web_ui/test/html/bitmap_canvas_golden_test.dart index 211bf4487832c..8f3f5db1c31cf 100644 --- a/lib/web_ui/test/html/bitmap_canvas_golden_test.dart +++ b/lib/web_ui/test/html/bitmap_canvas_golden_test.dart @@ -10,6 +10,7 @@ import 'package:ui/src/engine.dart'; import 'package:ui/ui.dart'; import 'package:web_engine_tester/golden_tester.dart'; +import 'paragraph/helper.dart'; import 'screenshot.dart'; void main() { @@ -125,7 +126,7 @@ Future testMain() async { canvas.clipRect(const Rect.fromLTWH(0, 0, 50, 50), ClipOp.intersect); canvas.translate(25, 25); canvas.drawPaint(SurfacePaintData() - ..color = const Color.fromRGBO(0, 255, 0, 1.0) + ..color = const Color.fromRGBO(0, 255, 0, 1.0).value ..style = PaintingStyle.fill); appendToScene(); @@ -208,7 +209,7 @@ Future testMain() async { canvas.debugChildOverdraw = true; final SurfacePaintData pathPaint = SurfacePaintData() - ..color = const Color(0xFF7F7F7F) + ..color = 0xFF7F7F7F ..style = PaintingStyle.fill; const double r = 200.0; @@ -225,8 +226,13 @@ Future testMain() async { ..lineTo(-r, 0) ..close()).shift(const Offset(250, 250)); + final SurfacePaintData borderPaint = SurfacePaintData() + ..color = black.value + ..style = PaintingStyle.stroke; + canvas.drawPath(path, pathPaint); canvas.drawParagraph(paragraph, const Offset(180, 50)); + canvas.drawRect(Rect.fromLTWH(180, 50, paragraph.width, paragraph.height), borderPaint); expect( canvas.rootElement.querySelectorAll('flt-paragraph').map((DomElement e) => e.text).toList(), diff --git a/lib/web_ui/test/html/canvas_clip_path_golden_test.dart b/lib/web_ui/test/html/canvas_clip_path_golden_test.dart index 6e359a59bdfee..a4643c3a97359 100644 --- a/lib/web_ui/test/html/canvas_clip_path_golden_test.dart +++ b/lib/web_ui/test/html/canvas_clip_path_golden_test.dart @@ -19,8 +19,8 @@ Future testMain() async { setUpAll(() async { debugEmulateFlutterTesterEnvironment = true; await webOnlyInitializePlatform(); - engine.renderer.fontCollection.debugRegisterTestFonts(); - await engine.renderer.fontCollection.ensureFontsLoaded(); + await engine.renderer.fontCollection.debugDownloadTestFonts(); + engine.renderer.fontCollection.registerDownloadedFonts(); }); // Regression test for https://github.com/flutter/flutter/issues/48683 diff --git a/lib/web_ui/test/html/canvas_context_golden_test.dart b/lib/web_ui/test/html/canvas_context_golden_test.dart index eb78daf3e7e50..53a9d30a2e201 100644 --- a/lib/web_ui/test/html/canvas_context_golden_test.dart +++ b/lib/web_ui/test/html/canvas_context_golden_test.dart @@ -22,8 +22,8 @@ Future testMain() async { setUpAll(() async { debugEmulateFlutterTesterEnvironment = true; await webOnlyInitializePlatform(); - engine.renderer.fontCollection.debugRegisterTestFonts(); - await engine.renderer.fontCollection.ensureFontsLoaded(); + await engine.renderer.fontCollection.debugDownloadTestFonts(); + engine.renderer.fontCollection.registerDownloadedFonts(); }); // Regression test for https://github.com/flutter/flutter/issues/49429 diff --git a/lib/web_ui/test/html/canvas_reuse_golden_test.dart b/lib/web_ui/test/html/canvas_reuse_golden_test.dart index b0b3b6606d81b..0757f0851e879 100644 --- a/lib/web_ui/test/html/canvas_reuse_golden_test.dart +++ b/lib/web_ui/test/html/canvas_reuse_golden_test.dart @@ -25,8 +25,8 @@ Future testMain() async { setUp(() async { debugEmulateFlutterTesterEnvironment = true; await webOnlyInitializePlatform(); - renderer.fontCollection.debugRegisterTestFonts(); - await renderer.fontCollection.ensureFontsLoaded(); + await renderer.fontCollection.debugDownloadTestFonts(); + renderer.fontCollection.registerDownloadedFonts(); }); // Regression test for https://github.com/flutter/flutter/issues/51514 diff --git a/lib/web_ui/test/html/canvas_winding_rule_golden_test.dart b/lib/web_ui/test/html/canvas_winding_rule_golden_test.dart index 342032e43c797..ec3c23129dfea 100644 --- a/lib/web_ui/test/html/canvas_winding_rule_golden_test.dart +++ b/lib/web_ui/test/html/canvas_winding_rule_golden_test.dart @@ -37,7 +37,7 @@ Future testMain() async { void paintPaths(BitmapCanvas canvas) { canvas.drawRect(const Rect.fromLTRB(0, 0, 500, 500), SurfacePaintData() - ..color = const Color(0xFFFFFFFF) + ..color = 0xFFFFFFFF ..style = PaintingStyle.fill); // white final SurfacePaint paintFill = SurfacePaint() diff --git a/lib/web_ui/test/html/compositing/backdrop_filter_golden_test.dart b/lib/web_ui/test/html/compositing/backdrop_filter_golden_test.dart index 734f26f308221..402441b9bb1f6 100644 --- a/lib/web_ui/test/html/compositing/backdrop_filter_golden_test.dart +++ b/lib/web_ui/test/html/compositing/backdrop_filter_golden_test.dart @@ -16,8 +16,8 @@ void main() { Future testMain() async { setUpAll(() async { await webOnlyInitializePlatform(); - renderer.fontCollection.debugRegisterTestFonts(); - await renderer.fontCollection.ensureFontsLoaded(); + await renderer.fontCollection.debugDownloadTestFonts(); + renderer.fontCollection.registerDownloadedFonts(); }); setUp(() async { diff --git a/lib/web_ui/test/html/compositing/canvas_blend_golden_test.dart b/lib/web_ui/test/html/compositing/canvas_blend_golden_test.dart index 537e476059c6a..b1851aa4e51b6 100644 --- a/lib/web_ui/test/html/compositing/canvas_blend_golden_test.dart +++ b/lib/web_ui/test/html/compositing/canvas_blend_golden_test.dart @@ -20,8 +20,8 @@ Future testMain() async { setUpAll(() async { debugEmulateFlutterTesterEnvironment = true; await webOnlyInitializePlatform(); - renderer.fontCollection.debugRegisterTestFonts(); - await renderer.fontCollection.ensureFontsLoaded(); + await renderer.fontCollection.debugDownloadTestFonts(); + renderer.fontCollection.registerDownloadedFonts(); }); test('Blend circles with difference and color', () async { diff --git a/lib/web_ui/test/html/compositing/canvas_image_blend_mode_golden_test.dart b/lib/web_ui/test/html/compositing/canvas_image_blend_mode_golden_test.dart index 6883fff2d34cf..a4ad2e240ecb3 100644 --- a/lib/web_ui/test/html/compositing/canvas_image_blend_mode_golden_test.dart +++ b/lib/web_ui/test/html/compositing/canvas_image_blend_mode_golden_test.dart @@ -20,8 +20,8 @@ Future testMain() async { setUpAll(() async { debugEmulateFlutterTesterEnvironment = true; await webOnlyInitializePlatform(); - renderer.fontCollection.debugRegisterTestFonts(); - await renderer.fontCollection.ensureFontsLoaded(); + await renderer.fontCollection.debugDownloadTestFonts(); + renderer.fontCollection.registerDownloadedFonts(); }); const Color red = Color(0xFFFF0000); diff --git a/lib/web_ui/test/html/compositing/canvas_mask_filter_golden_test.dart b/lib/web_ui/test/html/compositing/canvas_mask_filter_golden_test.dart index 24ab2bf8156c6..03e8b8d2ccf5b 100644 --- a/lib/web_ui/test/html/compositing/canvas_mask_filter_golden_test.dart +++ b/lib/web_ui/test/html/compositing/canvas_mask_filter_golden_test.dart @@ -20,8 +20,8 @@ Future testMain() async { setUpAll(() async { ui.debugEmulateFlutterTesterEnvironment = true; await ui.webOnlyInitializePlatform(); - renderer.fontCollection.debugRegisterTestFonts(); - await renderer.fontCollection.ensureFontsLoaded(); + await renderer.fontCollection.debugDownloadTestFonts(); + renderer.fontCollection.registerDownloadedFonts(); }); tearDown(() { diff --git a/lib/web_ui/test/html/compositing/color_filter_golden_test.dart b/lib/web_ui/test/html/compositing/color_filter_golden_test.dart index 9d57be6d665b6..3da07d2fc5ccc 100644 --- a/lib/web_ui/test/html/compositing/color_filter_golden_test.dart +++ b/lib/web_ui/test/html/compositing/color_filter_golden_test.dart @@ -20,8 +20,8 @@ void main() { Future testMain() async { setUpAll(() async { await webOnlyInitializePlatform(); - renderer.fontCollection.debugRegisterTestFonts(); - await renderer.fontCollection.ensureFontsLoaded(); + await renderer.fontCollection.debugDownloadTestFonts(); + renderer.fontCollection.registerDownloadedFonts(); }); setUp(() async { diff --git a/lib/web_ui/test/html/compositing/compositing_golden_test.dart b/lib/web_ui/test/html/compositing/compositing_golden_test.dart index 7856d063b84b1..5d237cd09b6f5 100644 --- a/lib/web_ui/test/html/compositing/compositing_golden_test.dart +++ b/lib/web_ui/test/html/compositing/compositing_golden_test.dart @@ -21,8 +21,8 @@ void main() { Future testMain() async { setUpAll(() async { await ui.webOnlyInitializePlatform(); - renderer.fontCollection.debugRegisterTestFonts(); - await renderer.fontCollection.ensureFontsLoaded(); + await renderer.fontCollection.debugDownloadTestFonts(); + renderer.fontCollection.registerDownloadedFonts(); }); setUp(() async { diff --git a/lib/web_ui/test/html/compositing/dom_mask_filter_golden_test.dart b/lib/web_ui/test/html/compositing/dom_mask_filter_golden_test.dart index 17ada251ff4eb..bf7e63d20fb0e 100644 --- a/lib/web_ui/test/html/compositing/dom_mask_filter_golden_test.dart +++ b/lib/web_ui/test/html/compositing/dom_mask_filter_golden_test.dart @@ -16,8 +16,8 @@ Future testMain() async { setUp(() async { debugEmulateFlutterTesterEnvironment = true; await webOnlyInitializePlatform(); - renderer.fontCollection.debugRegisterTestFonts(); - await renderer.fontCollection.ensureFontsLoaded(); + await renderer.fontCollection.debugDownloadTestFonts(); + renderer.fontCollection.registerDownloadedFonts(); }); test('Should blur rectangles based on sigma.', () async { diff --git a/lib/web_ui/test/html/dom_canvas_test.dart b/lib/web_ui/test/html/dom_canvas_test.dart new file mode 100644 index 0000000000000..a81c36031dcdf --- /dev/null +++ b/lib/web_ui/test/html/dom_canvas_test.dart @@ -0,0 +1,77 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import 'package:test/bootstrap/browser.dart'; +import 'package:test/test.dart'; +import 'package:ui/src/engine.dart'; +import 'package:ui/ui.dart'; + +void main() { + internalBootstrapBrowserTest(() => testMain); +} + +Future testMain() async { + group('$adjustRectForDom', () { + + test('does not change rect when not necessary', () async { + const Rect rect = Rect.fromLTWH(10, 20, 140, 160); + expect( + adjustRectForDom(rect, SurfacePaintData()..style=PaintingStyle.fill), + rect, + ); + expect( + adjustRectForDom(rect, SurfacePaintData()..style=PaintingStyle.stroke..strokeWidth=0), + rect, + ); + }); + + test('takes stroke width into consideration', () async { + const Rect rect = Rect.fromLTWH(10, 20, 140, 160); + expect( + adjustRectForDom(rect, SurfacePaintData()..style=PaintingStyle.stroke..strokeWidth=1), + const Rect.fromLTWH(9.5, 19.5, 139, 159), + ); + expect( + adjustRectForDom(rect, SurfacePaintData()..style=PaintingStyle.stroke..strokeWidth=10), + const Rect.fromLTWH(5, 15, 130, 150), + ); + expect( + adjustRectForDom(rect, SurfacePaintData()..style=PaintingStyle.stroke..strokeWidth=15), + const Rect.fromLTWH(2.5, 12.5, 125, 145), + ); + }); + + test('flips rect when necessary', () { + Rect rect = const Rect.fromLTWH(100, 200, -40, -60); + expect( + adjustRectForDom(rect, SurfacePaintData()..style=PaintingStyle.fill), + const Rect.fromLTWH(60, 140, 40, 60), + ); + + rect = const Rect.fromLTWH(100, 200, 40, -60); + expect( + adjustRectForDom(rect, SurfacePaintData()..style=PaintingStyle.fill), + const Rect.fromLTWH(100, 140, 40, 60), + ); + + rect = const Rect.fromLTWH(100, 200, -40, 60); + expect( + adjustRectForDom(rect, SurfacePaintData()..style=PaintingStyle.fill), + const Rect.fromLTWH(60, 200, 40, 60), + ); + }); + + test('handles stroke width greater than width or height', () { + const Rect rect = Rect.fromLTWH(100, 200, 20, 70); + expect( + adjustRectForDom(rect, SurfacePaintData()..style=PaintingStyle.stroke..strokeWidth=50), + const Rect.fromLTWH(75, 175, 0, 20), + ); + expect( + adjustRectForDom(rect, SurfacePaintData()..style=PaintingStyle.stroke..strokeWidth=80), + const Rect.fromLTWH(60, 160, 0, 0), + ); + }); + }); +} diff --git a/lib/web_ui/test/html/drawing/canvas_arc_golden_test.dart b/lib/web_ui/test/html/drawing/canvas_arc_golden_test.dart index 879bb2b641391..e9bc105852915 100644 --- a/lib/web_ui/test/html/drawing/canvas_arc_golden_test.dart +++ b/lib/web_ui/test/html/drawing/canvas_arc_golden_test.dart @@ -54,7 +54,7 @@ Future testMain() async { ..addArc(Rect.fromCircle(center: rect.center, radius: rect.size.shortestSide / 2), 0.25 * math.pi, 1.5 * math.pi); canvas.drawPath(p, SurfacePaintData() - ..color = const Color(0xFFFF9800) // orange + ..color = 0xFFFF9800 // orange ..style = PaintingStyle.fill); domDocument.body!.append(canvas.rootElement); @@ -72,7 +72,7 @@ Future testMain() async { 4.71238898038469 - 5.759586531581287, true); path.lineTo(149.999999999999997, 20); canvas.drawPath(path, SurfacePaintData() - ..color = const Color(0xFFFF9800) // orange + ..color = 0xFFFF9800 // orange ..style = PaintingStyle.fill); domDocument.body!.append(canvas.rootElement); @@ -91,7 +91,7 @@ void paintArc(BitmapCanvas canvas, Offset offset, Rect.fromLTRB(startP.dx, startP.dy, endP.dx, endP.dy), SurfacePaintData() ..strokeWidth = 1 - ..color = const Color(0xFFFF9800) // orange + ..color = 0xFFFF9800 // orange ..style = PaintingStyle.stroke); final Path path = Path(); path.moveTo(startP.dx, startP.dy); @@ -104,6 +104,6 @@ void paintArc(BitmapCanvas canvas, Offset offset, path, SurfacePaintData() ..strokeWidth = 2 - ..color = const Color(0x61000000) // black38 + ..color = 0x61000000 // black38 ..style = PaintingStyle.stroke); } diff --git a/lib/web_ui/test/html/drawing/canvas_draw_color_golden_test.dart b/lib/web_ui/test/html/drawing/canvas_draw_color_golden_test.dart index 8201c2e808a6f..8b26b7342f6c1 100644 --- a/lib/web_ui/test/html/drawing/canvas_draw_color_golden_test.dart +++ b/lib/web_ui/test/html/drawing/canvas_draw_color_golden_test.dart @@ -18,8 +18,8 @@ Future testMain() async { debugShowClipLayers = true; SurfaceSceneBuilder.debugForgetFrameScene(); await webOnlyInitializePlatform(); - renderer.fontCollection.debugRegisterTestFonts(); - await renderer.fontCollection.ensureFontsLoaded(); + await renderer.fontCollection.debugDownloadTestFonts(); + renderer.fontCollection.registerDownloadedFonts(); }); tearDown(() { diff --git a/lib/web_ui/test/html/drawing/canvas_draw_picture_golden_test.dart b/lib/web_ui/test/html/drawing/canvas_draw_picture_golden_test.dart index c304c21c4033f..a2cfffb29e7b2 100644 --- a/lib/web_ui/test/html/drawing/canvas_draw_picture_golden_test.dart +++ b/lib/web_ui/test/html/drawing/canvas_draw_picture_golden_test.dart @@ -21,8 +21,8 @@ Future testMain() async { setUpAll(() async { debugShowClipLayers = true; await webOnlyInitializePlatform(); - renderer.fontCollection.debugRegisterTestFonts(); - await renderer.fontCollection.ensureFontsLoaded(); + await renderer.fontCollection.debugDownloadTestFonts(); + renderer.fontCollection.registerDownloadedFonts(); }); setUp(() async { diff --git a/lib/web_ui/test/html/drawing/canvas_draw_points_golden_test.dart b/lib/web_ui/test/html/drawing/canvas_draw_points_golden_test.dart index b22b296ff1f63..97e19fd0e713e 100644 --- a/lib/web_ui/test/html/drawing/canvas_draw_points_golden_test.dart +++ b/lib/web_ui/test/html/drawing/canvas_draw_points_golden_test.dart @@ -31,7 +31,7 @@ Future testMain() async { test('draws points in all 3 modes', () async { final SurfacePaintData paint = SurfacePaintData(); paint.strokeWidth = 2.0; - paint.color = const Color(0xFF0000FF); + paint.color = 0xFF0000FF; final Float32List points = offsetListToFloat32List(const [ Offset(10, 10), Offset(50, 10), @@ -60,17 +60,17 @@ Future testMain() async { test('Should draw points with strokeWidth', () async { final SurfacePaintData nullStrokePaint = - SurfacePaintData()..color = const Color(0xffff0000); + SurfacePaintData()..color = 0xffff0000; canvas.drawPoints(PointMode.lines, Float32List.fromList([ 30.0, 20.0, 200.0, 20.0]), nullStrokePaint); final SurfacePaintData strokePaint1 = SurfacePaintData() ..strokeWidth = 1.0 - ..color = const Color(0xff0000ff); + ..color = 0xff0000ff; canvas.drawPoints(PointMode.lines, Float32List.fromList([ 30.0, 30.0, 200.0, 30.0]), strokePaint1); final SurfacePaintData strokePaint3 = SurfacePaintData() ..strokeWidth = 3.0 - ..color = const Color(0xff00a000); + ..color = 0xff00a000; canvas.drawPoints(PointMode.lines, Float32List.fromList([ 30.0, 40.0, 200.0, 40.0]), strokePaint3); canvas.drawPoints(PointMode.points, Float32List.fromList([ diff --git a/lib/web_ui/test/html/drawing/canvas_lines_golden_test.dart b/lib/web_ui/test/html/drawing/canvas_lines_golden_test.dart index ec4870dfaa206..166df80c58277 100644 --- a/lib/web_ui/test/html/drawing/canvas_lines_golden_test.dart +++ b/lib/web_ui/test/html/drawing/canvas_lines_golden_test.dart @@ -40,15 +40,15 @@ void paintLines(BitmapCanvas canvas) { ..strokeWidth = 1.0 ..style = PaintingStyle.stroke; final SurfacePaintData paint1 = SurfacePaintData() - ..color = const Color(0xFF9E9E9E) // Colors.grey + ..color = 0xFF9E9E9E // Colors.grey ..strokeWidth = 1.0 ..style = PaintingStyle.stroke; final SurfacePaintData paint2 = SurfacePaintData() - ..color = const Color(0x7fff0000) + ..color = 0x7fff0000 ..strokeWidth = 1.0 ..style = PaintingStyle.stroke; final SurfacePaintData paint3 = SurfacePaintData() - ..color = const Color(0xFF4CAF50) //Colors.green + ..color = 0xFF4CAF50 //Colors.green ..strokeWidth = 1.0 ..style = PaintingStyle.stroke; // Draw markers around 100x100 box @@ -61,12 +61,12 @@ void paintLines(BitmapCanvas canvas) { canvas.drawLine(const Offset(50, 50), const Offset(150, 150), paint2); // Draw horizontal paint3.strokeWidth = 1.0; - paint3.color = const Color(0xFFFF0000); + paint3.color = 0xFFFF0000; canvas.drawLine(const Offset(50, 55), const Offset(150, 55), paint3); paint3.strokeWidth = 2.0; - paint3.color = const Color(0xFF2196F3); // Colors.blue; + paint3.color = 0xFF2196F3; // Colors.blue; canvas.drawLine(const Offset(50, 60), const Offset(150, 60), paint3); paint3.strokeWidth = 4.0; - paint3.color = const Color(0xFFFF9800); // Colors.orange; + paint3.color = 0xFFFF9800; // Colors.orange; canvas.drawLine(const Offset(50, 70), const Offset(150, 70), paint3); } diff --git a/lib/web_ui/test/html/drawing/canvas_rect_golden_test.dart b/lib/web_ui/test/html/drawing/canvas_rect_golden_test.dart index 05bdbe9803c3c..42a6705e89f5b 100644 --- a/lib/web_ui/test/html/drawing/canvas_rect_golden_test.dart +++ b/lib/web_ui/test/html/drawing/canvas_rect_golden_test.dart @@ -39,26 +39,26 @@ void paintRects(BitmapCanvas canvas) { canvas.drawRect(const Rect.fromLTRB(30, 40, 100, 50), SurfacePaintData() - ..color = const Color(0xFF4CAF50) //Colors.green + ..color = 0xFF4CAF50 //Colors.green ..strokeWidth = 1.0 ..style = PaintingStyle.stroke); // swap left and right. canvas.drawRect(const Rect.fromLTRB(100, 150, 30, 140), SurfacePaintData() - ..color = const Color(0xFFF44336) //Colors.red + ..color = 0xFFF44336 //Colors.red ..strokeWidth = 1.0 ..style = PaintingStyle.stroke); // Repeat above for fill canvas.drawRect(const Rect.fromLTRB(30, 240, 100, 250), SurfacePaintData() - ..color = const Color(0xFF4CAF50) //Colors.green + ..color = 0xFF4CAF50 //Colors.green ..style = PaintingStyle.fill); // swap left and right. canvas.drawRect(const Rect.fromLTRB(100, 350, 30, 340), SurfacePaintData() - ..color = const Color(0xFFF44336) //Colors.red + ..color = 0xFFF44336 //Colors.red ..style = PaintingStyle.fill); } diff --git a/lib/web_ui/test/html/drawing/canvas_stroke_joins_golden_test.dart b/lib/web_ui/test/html/drawing/canvas_stroke_joins_golden_test.dart index 7382cfeb0e98e..b0080f1afebfa 100644 --- a/lib/web_ui/test/html/drawing/canvas_stroke_joins_golden_test.dart +++ b/lib/web_ui/test/html/drawing/canvas_stroke_joins_golden_test.dart @@ -39,7 +39,7 @@ Future testMain() async { void paintStrokeJoins(BitmapCanvas canvas) { canvas.drawRect(const Rect.fromLTRB(0, 0, 300, 300), SurfacePaintData() - ..color = const Color(0xFFFFFFFF) + ..color = 0xFFFFFFFF ..style = PaintingStyle.fill); // white Offset start = const Offset(20, 10); @@ -62,7 +62,7 @@ void paintStrokeJoins(BitmapCanvas canvas) { canvas.drawPath(path, SurfacePaintData() ..style = PaintingStyle.stroke ..strokeWidth = 4 - ..color = color + ..color = color.value ..strokeJoin = join ..strokeCap = cap); diff --git a/lib/web_ui/test/html/drawing/canvas_stroke_rects_golden_test.dart b/lib/web_ui/test/html/drawing/canvas_stroke_rects_golden_test.dart index dcea2645c0505..a02c509371ad9 100644 --- a/lib/web_ui/test/html/drawing/canvas_stroke_rects_golden_test.dart +++ b/lib/web_ui/test/html/drawing/canvas_stroke_rects_golden_test.dart @@ -41,18 +41,18 @@ Future testMain() async { void paintSideBySideRects(BitmapCanvas canvas) { canvas.drawRect(const Rect.fromLTRB(0, 0, 300, 300), SurfacePaintData() - ..color = const Color(0xFFFFFFFF) + ..color = 0xFFFFFFFF ..style = PaintingStyle.fill); // white canvas.drawRect(const Rect.fromLTRB(0, 20, 40, 60), SurfacePaintData() ..style = PaintingStyle.fill - ..color = const Color(0x7f0000ff)); + ..color = 0x7f0000ff); canvas.drawRect(const Rect.fromLTRB(40, 20, 80, 60), SurfacePaintData() ..style = PaintingStyle.stroke ..strokeWidth = 4 - ..color = const Color(0x7fff0000)); + ..color = 0x7fff0000); // Rotate 30 degrees (in rad: deg*pi/180) canvas.transform(Matrix4.rotationZ(30.0 * math.pi / 180.0).storage); @@ -60,10 +60,10 @@ void paintSideBySideRects(BitmapCanvas canvas) { canvas.drawRect(const Rect.fromLTRB(100, 60, 140, 100), SurfacePaintData() ..style = PaintingStyle.fill - ..color = const Color(0x7fff00ff)); + ..color = 0x7fff00ff); canvas.drawRect(const Rect.fromLTRB(140, 60, 180, 100), SurfacePaintData() ..style = PaintingStyle.stroke ..strokeWidth = 4 - ..color = const Color(0x7fffff00)); + ..color = 0x7fffff00); } diff --git a/lib/web_ui/test/html/drawing/dom_clip_stroke_golden_test.dart b/lib/web_ui/test/html/drawing/dom_clip_stroke_golden_test.dart new file mode 100644 index 0000000000000..d44c6cfa8dc0e --- /dev/null +++ b/lib/web_ui/test/html/drawing/dom_clip_stroke_golden_test.dart @@ -0,0 +1,142 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import 'package:test/bootstrap/browser.dart'; +import 'package:test/test.dart'; +import 'package:ui/src/engine.dart'; +import 'package:ui/ui.dart'; + +import 'package:web_engine_tester/golden_tester.dart'; + +void main() { + internalBootstrapBrowserTest(() => testMain); +} + +Future testMain() async { + test('rect stroke with clip', () async { + const Rect region = Rect.fromLTWH(0, 0, 250, 250); + // Set `hasParagraphs` to true to force DOM rendering. + final BitmapCanvas canvas = + BitmapCanvas(region, RenderStrategy()..hasParagraphs = true); + + const Rect rect = Rect.fromLTWH(0, 0, 150, 150); + + canvas.clipRect(rect.inflate(10.0), ClipOp.intersect); + + canvas.drawRect( + rect, + SurfacePaintData() + ..color = 0x6fff0000 + ..strokeWidth = 20.0 + ..style = PaintingStyle.stroke, + ); + + canvas.drawRect( + rect, + SurfacePaintData() + ..color = 0x6f0000ff + ..strokeWidth = 10.0 + ..style = PaintingStyle.stroke, + ); + + canvas.drawRect( + rect, + SurfacePaintData() + ..color = 0xff000000 + ..strokeWidth = 1.0 + ..style = PaintingStyle.stroke, + ); + + domDocument.body!.style.margin = '0px'; + domDocument.body!.append(canvas.rootElement); + await matchGoldenFile('rect_clip_strokes_dom.png', region: region); + canvas.rootElement.remove(); + }); + + test('rrect stroke with clip', () async { + const Rect region = Rect.fromLTWH(0, 0, 250, 250); + // Set `hasParagraphs` to true to force DOM rendering. + final BitmapCanvas canvas = + BitmapCanvas(region, RenderStrategy()..hasParagraphs = true); + + final RRect rrect = RRect.fromRectAndRadius( + const Rect.fromLTWH(0, 0, 150, 150), + const Radius.circular(20), + ); + + canvas.clipRect(rrect.outerRect.inflate(10.0), ClipOp.intersect); + + canvas.drawRRect( + rrect, + SurfacePaintData() + ..color = 0x6fff0000 + ..strokeWidth = 20.0 + ..style = PaintingStyle.stroke, + ); + + canvas.drawRRect( + rrect, + SurfacePaintData() + ..color = 0x6f0000ff + ..strokeWidth = 10.0 + ..style = PaintingStyle.stroke, + ); + + canvas.drawRRect( + rrect, + SurfacePaintData() + ..color = 0xff000000 + ..strokeWidth = 1.0 + ..style = PaintingStyle.stroke, + ); + + domDocument.body!.style.margin = '0px'; + domDocument.body!.append(canvas.rootElement); + await matchGoldenFile('rrect_clip_strokes_dom.png', region: region); + canvas.rootElement.remove(); + }); + + test('circle stroke with clip', () async { + const Rect region = Rect.fromLTWH(0, 0, 250, 250); + // Set `hasParagraphs` to true to force DOM rendering. + final BitmapCanvas canvas = + BitmapCanvas(region, RenderStrategy()..hasParagraphs = true); + + const Rect rect = Rect.fromLTWH(0, 0, 150, 150); + + canvas.clipRect(rect.inflate(10.0), ClipOp.intersect); + + canvas.drawCircle( + rect.center, + rect.width / 2, + SurfacePaintData() + ..color = 0x6fff0000 + ..strokeWidth = 20.0 + ..style = PaintingStyle.stroke, + ); + + canvas.drawCircle( + rect.center, + rect.width / 2, + SurfacePaintData() + ..color = 0x6f0000ff + ..strokeWidth = 10.0 + ..style = PaintingStyle.stroke, + ); + + canvas.drawCircle( + rect.center, + rect.width / 2, + SurfacePaintData() + ..color = 0xff000000 + ..strokeWidth = 1.0 + ..style = PaintingStyle.stroke, + ); + + domDocument.body!.style.margin = '0px'; + domDocument.body!.append(canvas.rootElement); + await matchGoldenFile('circle_clip_strokes_dom.png', region: region); + canvas.rootElement.remove(); + }); +} diff --git a/lib/web_ui/test/html/drawing/draw_vertices_golden_test.dart b/lib/web_ui/test/html/drawing/draw_vertices_golden_test.dart index cae9a0d2f5846..8a1a10ccb568d 100644 --- a/lib/web_ui/test/html/drawing/draw_vertices_golden_test.dart +++ b/lib/web_ui/test/html/drawing/draw_vertices_golden_test.dart @@ -25,8 +25,8 @@ Future testMain() async { setUpAll(() async { debugEmulateFlutterTesterEnvironment = true; await webOnlyInitializePlatform(); - renderer.fontCollection.debugRegisterTestFonts(); - await renderer.fontCollection.ensureFontsLoaded(); + await renderer.fontCollection.debugDownloadTestFonts(); + renderer.fontCollection.registerDownloadedFonts(); }); setUp(() { diff --git a/lib/web_ui/test/html/paragraph/bidi_golden_test.dart b/lib/web_ui/test/html/paragraph/bidi_golden_test.dart index fb25b1adf6202..8f1c6f2060568 100644 --- a/lib/web_ui/test/html/paragraph/bidi_golden_test.dart +++ b/lib/web_ui/test/html/paragraph/bidi_golden_test.dart @@ -2,8 +2,6 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -import 'dart:async'; - import 'package:test/bootstrap/browser.dart'; import 'package:test/test.dart'; import 'package:ui/src/engine.dart'; @@ -12,8 +10,6 @@ import 'package:ui/ui.dart' hide window; import '../screenshot.dart'; import 'helper.dart'; -typedef CanvasTest = FutureOr Function(EngineCanvas canvas); - const String _rtlWord1 = 'واحد'; const String _rtlWord2 = 'اثنان'; @@ -61,7 +57,7 @@ Future testMain() async { canvas.drawRect( ltrBox, SurfacePaintData() - ..color = black + ..color = black.value ..style = PaintingStyle.stroke, ); // LTR with different text align values: @@ -76,7 +72,7 @@ Future testMain() async { canvas.drawRect( rtlBox, SurfacePaintData() - ..color = black + ..color = black.value ..style = PaintingStyle.stroke, ); // RTL with different text align values: @@ -100,7 +96,7 @@ Future testMain() async { canvas.drawRect( ltrBox, SurfacePaintData() - ..color = black + ..color = black.value ..style = PaintingStyle.stroke, ); // LTR with different text align values: @@ -115,7 +111,7 @@ Future testMain() async { canvas.drawRect( rtlBox, SurfacePaintData() - ..color = black + ..color = black.value ..style = PaintingStyle.stroke, ); // RTL with different text align values: @@ -165,7 +161,7 @@ Future testMain() async { canvas.drawRect( ltrBox, SurfacePaintData() - ..color = black + ..color = black.value ..style = PaintingStyle.stroke, ); // LTR with different text align values: @@ -180,7 +176,7 @@ Future testMain() async { canvas.drawRect( rtlBox, SurfacePaintData() - ..color = black + ..color = black.value ..style = PaintingStyle.stroke, ); // RTL with different text align values: @@ -204,7 +200,7 @@ Future testMain() async { canvas.drawRect( ltrBox, SurfacePaintData() - ..color = black + ..color = black.value ..style = PaintingStyle.stroke, ); // LTR with different text align values: @@ -219,7 +215,7 @@ Future testMain() async { canvas.drawRect( rtlBox, SurfacePaintData() - ..color = black + ..color = black.value ..style = PaintingStyle.stroke, ); // RTL with different text align values: @@ -273,7 +269,7 @@ Future testMain() async { canvas.drawRect( ltrBox, SurfacePaintData() - ..color = black + ..color = black.value ..style = PaintingStyle.stroke, ); // LTR with different text align values: @@ -288,7 +284,7 @@ Future testMain() async { canvas.drawRect( rtlBox, SurfacePaintData() - ..color = black + ..color = black.value ..style = PaintingStyle.stroke, ); // RTL with different text align values: @@ -311,7 +307,7 @@ Future testMain() async { canvas.drawRect( ltrBox, SurfacePaintData() - ..color = black + ..color = black.value ..style = PaintingStyle.stroke, ); // LTR with different text align values: @@ -326,7 +322,7 @@ Future testMain() async { canvas.drawRect( rtlBox, SurfacePaintData() - ..color = black + ..color = black.value ..style = PaintingStyle.stroke, ); // RTL with different text align values: @@ -387,7 +383,7 @@ Future testMain() async { canvas.drawRect( ltrBox, SurfacePaintData() - ..color = black + ..color = black.value ..style = PaintingStyle.stroke, ); // LTR with different text align values: @@ -402,7 +398,7 @@ Future testMain() async { canvas.drawRect( rtlBox, SurfacePaintData() - ..color = black + ..color = black.value ..style = PaintingStyle.stroke, ); // RTL with different text align values: @@ -426,7 +422,7 @@ Future testMain() async { canvas.drawRect( ltrBox, SurfacePaintData() - ..color = black + ..color = black.value ..style = PaintingStyle.stroke, ); // LTR with different text align values: @@ -441,7 +437,7 @@ Future testMain() async { canvas.drawRect( rtlBox, SurfacePaintData() - ..color = black + ..color = black.value ..style = PaintingStyle.stroke, ); // RTL with different text align values: @@ -506,7 +502,7 @@ Future testMain() async { canvas.drawRect( ltrBox, SurfacePaintData() - ..color = black + ..color = black.value ..style = PaintingStyle.stroke, ); // LTR with different text align values: @@ -521,7 +517,7 @@ Future testMain() async { canvas.drawRect( rtlBox, SurfacePaintData() - ..color = black + ..color = black.value ..style = PaintingStyle.stroke, ); // RTL with different text align values: @@ -545,7 +541,7 @@ Future testMain() async { canvas.drawRect( ltrBox, SurfacePaintData() - ..color = black + ..color = black.value ..style = PaintingStyle.stroke, ); // LTR with different text align values: @@ -560,7 +556,7 @@ Future testMain() async { canvas.drawRect( rtlBox, SurfacePaintData() - ..color = black + ..color = black.value ..style = PaintingStyle.stroke, ); // RTL with different text align values: diff --git a/lib/web_ui/test/html/paragraph/general_golden_test.dart b/lib/web_ui/test/html/paragraph/general_golden_test.dart index 4ad87aea5c0d2..82d2e4da230f0 100644 --- a/lib/web_ui/test/html/paragraph/general_golden_test.dart +++ b/lib/web_ui/test/html/paragraph/general_golden_test.dart @@ -13,8 +13,6 @@ import 'package:ui/ui.dart' hide window; import '../screenshot.dart'; import 'helper.dart'; -typedef CanvasTest = FutureOr Function(EngineCanvas canvas); - const Rect bounds = Rect.fromLTWH(0, 0, 800, 600); void main() { @@ -174,7 +172,7 @@ Future testMain() async { canvas.translate(offset.dx, offset.dy); canvas.rotate(math.pi / 4); final Rect rect = Rect.fromLTRB(0.0, 0.0, 150.0, paragraph.height); - canvas.drawRect(rect, SurfacePaintData()..color = black); + canvas.drawRect(rect, SurfacePaintData()..color = black.value); canvas.drawParagraph(paragraph, Offset.zero); canvas.restore(); } @@ -207,7 +205,7 @@ Future testMain() async { }, )..layout(constrain(double.infinity)); final Rect rect = Rect.fromLTRB(0.0, 0.0, paragraph.maxIntrinsicWidth, paragraph.height); - canvas.drawRect(rect, SurfacePaintData()..color = black); + canvas.drawRect(rect, SurfacePaintData()..color = black.value); canvas.drawParagraph(paragraph, Offset.zero); } @@ -245,7 +243,7 @@ Future testMain() async { }, )..layout(constrain(double.infinity)); final Rect rect = Rect.fromLTWH(offset.dx, offset.dy, paragraph.maxIntrinsicWidth, paragraph.height); - canvas.drawRect(rect, SurfacePaintData()..color = black); + canvas.drawRect(rect, SurfacePaintData()..color = black.value); canvas.drawParagraph(paragraph, offset); offset = offset.translate(paragraph.maxIntrinsicWidth, 0.0); @@ -264,7 +262,7 @@ Future testMain() async { }, )..layout(constrain(double.infinity)); final Rect rect2 = Rect.fromLTWH(offset.dx, offset.dy, paragraph2.maxIntrinsicWidth, paragraph2.height); - canvas.drawRect(rect2, SurfacePaintData()..color = black); + canvas.drawRect(rect2, SurfacePaintData()..color = black.value); canvas.drawParagraph(paragraph2, offset); // Draw a rect in the placeholder. // Leave some padding around the placeholder to make the black paragraph @@ -273,7 +271,7 @@ Future testMain() async { final TextBox placeholderBox = paragraph2.getBoxesForPlaceholders().single; canvas.drawRect( placeholderBox.toRect().shift(offset).deflate(padding), - SurfacePaintData()..color = red, + SurfacePaintData()..color = red.value, ); await takeScreenshot(canvas, bounds, 'canvas_paragraph_giant_body_font_size_dom'); @@ -632,7 +630,7 @@ Future testMain() async { canvas.drawRect( paragraph.paintBounds, SurfacePaintData() - ..color = const Color(0xFF00FF00) + ..color = 0xFF00FF00 ..style = PaintingStyle.stroke ..strokeWidth = 1, ); diff --git a/lib/web_ui/test/html/paragraph/helper.dart b/lib/web_ui/test/html/paragraph/helper.dart index 05f85e63ea423..1497f7b4ab2ff 100644 --- a/lib/web_ui/test/html/paragraph/helper.dart +++ b/lib/web_ui/test/html/paragraph/helper.dart @@ -2,10 +2,30 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +import 'dart:async'; + import 'package:ui/src/engine.dart'; import 'package:ui/ui.dart'; import 'package:web_engine_tester/golden_tester.dart'; +typedef CanvasTest = FutureOr Function(EngineCanvas canvas); + +const LineBreakType prohibited = LineBreakType.prohibited; +const LineBreakType opportunity = LineBreakType.opportunity; +const LineBreakType mandatory = LineBreakType.mandatory; +const LineBreakType endOfText = LineBreakType.endOfText; + +const TextDirection ltr = TextDirection.ltr; +const TextDirection rtl = TextDirection.rtl; + +const FragmentFlow ffLtr = FragmentFlow.ltr; +const FragmentFlow ffRtl = FragmentFlow.rtl; +const FragmentFlow ffPrevious = FragmentFlow.previous; +const FragmentFlow ffSandwich = FragmentFlow.sandwich; + +const String rtlWord1 = 'واحدة'; +const String rtlWord2 = 'ثنتان'; + const Color white = Color(0xFFFFFFFF); const Color black = Color(0xFF000000); const Color red = Color(0xFFFF0000); @@ -16,6 +36,11 @@ const Color blue = Color(0xFF0000FF); const Color yellow = Color(0xFFFFEB3B); const Color lightPurple = Color(0xFFE1BEE7); +final EngineParagraphStyle ahemStyle = EngineParagraphStyle( + fontFamily: 'ahem', + fontSize: 10, +); + ParagraphConstraints constrain(double width) { return ParagraphConstraints(width: width); } @@ -57,10 +82,7 @@ Future takeScreenshot( try { sceneElement.append(canvas.rootElement); domDocument.body!.append(sceneElement); - await matchGoldenFile( - '$fileName.png', - region: region, - ); + await matchGoldenFile('$fileName.png', region: region); } finally { // The page is reused across tests, so remove the element after taking the // Scuba screenshot. @@ -90,6 +112,10 @@ void fillPlaceholder( void fillBoxes(EngineCanvas canvas, Offset offset, List boxes, Color color) { for (final TextBox box in boxes) { final Rect rect = box.toRect().shift(offset); - canvas.drawRect(rect, SurfacePaintData()..color = color); + canvas.drawRect(rect, SurfacePaintData()..color = color.value); } } + +String getSpanText(CanvasParagraph paragraph, ParagraphSpan span) { + return paragraph.plainText.substring(span.start, span.end); +} diff --git a/lib/web_ui/test/html/paragraph/overflow_golden_test.dart b/lib/web_ui/test/html/paragraph/overflow_golden_test.dart index ff39d66e3f75d..eebfde0c1489e 100644 --- a/lib/web_ui/test/html/paragraph/overflow_golden_test.dart +++ b/lib/web_ui/test/html/paragraph/overflow_golden_test.dart @@ -12,8 +12,6 @@ import 'package:ui/ui.dart' hide window; import '../screenshot.dart'; import 'helper.dart'; -typedef CanvasTest = FutureOr Function(EngineCanvas canvas); - void main() { internalBootstrapBrowserTest(() => testMain); } @@ -28,6 +26,9 @@ Future testMain() async { const double fontSize = 22.0; const double width = 126.0; const double padding = 20.0; + final SurfacePaintData borderPaint = SurfacePaintData() + ..color = black.value + ..style = PaintingStyle.stroke; paragraph = rich( EngineParagraphStyle(fontFamily: 'Roboto', fontSize: fontSize, ellipsis: '...'), @@ -39,6 +40,7 @@ Future testMain() async { }, )..layout(constrain(width)); canvas.drawParagraph(paragraph, offset); + canvas.drawRect(Rect.fromLTWH(offset.dx, offset.dy, width, paragraph.height), borderPaint); offset = offset.translate(0, paragraph.height + padding); paragraph = rich( @@ -53,6 +55,7 @@ Future testMain() async { }, )..layout(constrain(width)); canvas.drawParagraph(paragraph, offset); + canvas.drawRect(Rect.fromLTWH(offset.dx, offset.dy, width, paragraph.height), borderPaint); offset = offset.translate(0, paragraph.height + padding); paragraph = rich( @@ -83,6 +86,7 @@ Future testMain() async { }, )..layout(constrain(width)); canvas.drawParagraph(paragraph, offset); + canvas.drawRect(Rect.fromLTWH(offset.dx, offset.dy, width, paragraph.height), borderPaint); offset = offset.translate(0, paragraph.height + padding); paragraph = rich( @@ -91,9 +95,9 @@ Future testMain() async { builder.pushStyle(EngineTextStyle.only(color: blue)); builder.addText('Lorem'); builder.pushStyle(EngineTextStyle.only(color: green)); - builder.addText('ipsum'); + builder.addText('ipsu'); builder.pushStyle(EngineTextStyle.only(color: red)); - builder.addText('dolor'); + builder.addText('mdolor'); builder.pushStyle(EngineTextStyle.only(color: black)); builder.addText('sit'); builder.pushStyle(EngineTextStyle.only(color: blue)); @@ -103,6 +107,7 @@ Future testMain() async { }, )..layout(constrain(width)); canvas.drawParagraph(paragraph, offset); + canvas.drawRect(Rect.fromLTWH(offset.dx, offset.dy, width, paragraph.height), borderPaint); offset = offset.translate(0, paragraph.height + padding); } diff --git a/lib/web_ui/test/html/paragraph/placeholders_golden_test.dart b/lib/web_ui/test/html/paragraph/placeholders_golden_test.dart index 073ce409b0b94..7f90cde8a3243 100644 --- a/lib/web_ui/test/html/paragraph/placeholders_golden_test.dart +++ b/lib/web_ui/test/html/paragraph/placeholders_golden_test.dart @@ -12,8 +12,6 @@ import 'package:ui/ui.dart' hide window; import '../screenshot.dart'; import 'helper.dart'; -typedef CanvasTest = FutureOr Function(EngineCanvas canvas); - const Rect bounds = Rect.fromLTWH(0, 0, 800, 600); void main() { diff --git a/lib/web_ui/test/html/paragraph/text_overflow_golden_test.dart b/lib/web_ui/test/html/paragraph/text_overflow_golden_test.dart index 46f5538387c84..a97bce79940f6 100644 --- a/lib/web_ui/test/html/paragraph/text_overflow_golden_test.dart +++ b/lib/web_ui/test/html/paragraph/text_overflow_golden_test.dart @@ -11,8 +11,6 @@ import 'package:ui/ui.dart' hide window; import '../screenshot.dart'; import 'text_scuba.dart'; -typedef CanvasTest = FutureOr Function(EngineCanvas canvas); - const String threeLines = 'First\nSecond\nThird'; const String veryLong = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.'; diff --git a/lib/web_ui/test/html/paragraph/text_placeholders_golden_test.dart b/lib/web_ui/test/html/paragraph/text_placeholders_golden_test.dart index 37e456f4406f9..4474bba0b9f33 100644 --- a/lib/web_ui/test/html/paragraph/text_placeholders_golden_test.dart +++ b/lib/web_ui/test/html/paragraph/text_placeholders_golden_test.dart @@ -7,19 +7,13 @@ import 'package:ui/src/engine.dart'; import 'package:ui/ui.dart'; import '../screenshot.dart'; +import 'helper.dart'; import 'text_scuba.dart'; -typedef PaintTest = void Function(RecordingCanvas recordingCanvas); - void main() { internalBootstrapBrowserTest(() => testMain); } -/// Whether we are running on iOS Safari. -// TODO(mdebbar): https://github.com/flutter/flutter/issues/66656 -bool get isIosSafari => browserEngine == BrowserEngine.webkit && - operatingSystem == OperatingSystem.iOs; - Future testMain() async { final EngineScubaTester scuba = await EngineScubaTester.initialize( viewportSize: const Size(600, 600), @@ -46,9 +40,7 @@ Future testMain() async { } recordingCanvas.endRecording(); recordingCanvas.apply(canvas, screenRect); - if (!isIosSafari) { - return scuba.diffCanvasScreenshot(canvas, 'text_with_placeholders'); - } + return scuba.diffCanvasScreenshot(canvas, 'text_with_placeholders'); }); testEachCanvas('text alignment and placeholders', (EngineCanvas canvas) { @@ -85,10 +77,6 @@ Future testMain() async { }); } -const Color black = Color(0xFF000000); -const Color blue = Color(0xFF0000FF); -const Color red = Color(0xFFFF0000); - const Size placeholderSize = Size(80.0, 50.0); void _paintTextWithPlaceholder( diff --git a/lib/web_ui/test/html/paragraph/text_scuba.dart b/lib/web_ui/test/html/paragraph/text_scuba.dart index 9bd21d7cc394e..1f2c5cbb352c6 100644 --- a/lib/web_ui/test/html/paragraph/text_scuba.dart +++ b/lib/web_ui/test/html/paragraph/text_scuba.dart @@ -10,6 +10,8 @@ import 'package:ui/ui.dart' as ui; import 'package:web_engine_tester/golden_tester.dart'; +import 'helper.dart'; + /// Class that controls some details of how screenshotting is made. /// /// (For Googlers: Not really related with internal Scuba anymore) @@ -85,8 +87,6 @@ class EngineScubaTester { } } -typedef CanvasTest = FutureOr Function(EngineCanvas canvas); - /// Runs the given test [body] with each type of canvas. void testEachCanvas(String description, CanvasTest body) { const ui.Rect bounds = ui.Rect.fromLTWH(0, 0, 600, 800); diff --git a/lib/web_ui/test/html/path_metrics_golden_test.dart b/lib/web_ui/test/html/path_metrics_golden_test.dart index 998e8ae7d2eea..49410f5f9c70b 100644 --- a/lib/web_ui/test/html/path_metrics_golden_test.dart +++ b/lib/web_ui/test/html/path_metrics_golden_test.dart @@ -25,8 +25,8 @@ Future testMain() async { setUpAll(() async { debugEmulateFlutterTesterEnvironment = true; await webOnlyInitializePlatform(); - renderer.fontCollection.debugRegisterTestFonts(); - await renderer.fontCollection.ensureFontsLoaded(); + await renderer.fontCollection.debugDownloadTestFonts(); + renderer.fontCollection.registerDownloadedFonts(); }); test('Should calculate tangent on line', () async { diff --git a/lib/web_ui/test/html/path_transform_golden_test.dart b/lib/web_ui/test/html/path_transform_golden_test.dart index 6792cc159c422..cb5b398169540 100644 --- a/lib/web_ui/test/html/path_transform_golden_test.dart +++ b/lib/web_ui/test/html/path_transform_golden_test.dart @@ -23,8 +23,8 @@ Future testMain() async { setUpAll(() async { debugEmulateFlutterTesterEnvironment = true; await webOnlyInitializePlatform(); - renderer.fontCollection.debugRegisterTestFonts(); - await renderer.fontCollection.ensureFontsLoaded(); + await renderer.fontCollection.debugDownloadTestFonts(); + renderer.fontCollection.registerDownloadedFonts(); }); test('Should draw transformed line.', () async { diff --git a/lib/web_ui/test/html/recording_canvas_golden_test.dart b/lib/web_ui/test/html/recording_canvas_golden_test.dart index f77e990518311..eaad748b4b8de 100644 --- a/lib/web_ui/test/html/recording_canvas_golden_test.dart +++ b/lib/web_ui/test/html/recording_canvas_golden_test.dart @@ -43,7 +43,7 @@ Future testMain() async { ..drawRect( rc.pictureBounds!, SurfacePaintData() - ..color = const Color.fromRGBO(0, 0, 255, 1.0) + ..color = const Color.fromRGBO(0, 0, 255, 1.0).value ..style = PaintingStyle.stroke ..strokeWidth = 1.0, ) diff --git a/lib/web_ui/test/html/screenshot.dart b/lib/web_ui/test/html/screenshot.dart index cbeb620635767..3e2226ae68803 100644 --- a/lib/web_ui/test/html/screenshot.dart +++ b/lib/web_ui/test/html/screenshot.dart @@ -77,7 +77,7 @@ Future sceneScreenshot(SurfaceSceneBuilder sceneBuilder, String fileName, void setUpStableTestFonts() { setUpAll(() async { await ui.webOnlyInitializePlatform(); - renderer.fontCollection.debugRegisterTestFonts(); - await renderer.fontCollection.ensureFontsLoaded(); + await renderer.fontCollection.debugDownloadTestFonts(); + renderer.fontCollection.registerDownloadedFonts(); }); } diff --git a/lib/web_ui/test/html/shaders/gradient_golden_test.dart b/lib/web_ui/test/html/shaders/gradient_golden_test.dart index 125b517df0c6b..5aebc78ef0070 100644 --- a/lib/web_ui/test/html/shaders/gradient_golden_test.dart +++ b/lib/web_ui/test/html/shaders/gradient_golden_test.dart @@ -4,7 +4,6 @@ import 'dart:math' as math; import 'dart:typed_data'; -import 'dart:web_gl'; import 'package:test/bootstrap/browser.dart'; import 'package:test/test.dart'; @@ -362,8 +361,8 @@ Future testMain() async { () async { final DomCanvasElement sideCanvas = createDomCanvasElement(width: 5, height: 5); - final RenderingContext? context = - sideCanvas.getContext('webgl') as RenderingContext?; + final DomCanvasRenderingContextWebGl? context = + sideCanvas.getContext('webgl') as DomCanvasRenderingContextWebGl?; expect(context, isNotNull); final EngineCanvas engineCanvas = diff --git a/lib/web_ui/test/html/shaders/image_shader_golden_test.dart b/lib/web_ui/test/html/shaders/image_shader_golden_test.dart index 959f17c74241a..405250062d462 100644 --- a/lib/web_ui/test/html/shaders/image_shader_golden_test.dart +++ b/lib/web_ui/test/html/shaders/image_shader_golden_test.dart @@ -27,8 +27,8 @@ Future testMain() async { setUpAll(() async { debugEmulateFlutterTesterEnvironment = true; await webOnlyInitializePlatform(); - renderer.fontCollection.debugRegisterTestFonts(); - await renderer.fontCollection.ensureFontsLoaded(); + await renderer.fontCollection.debugDownloadTestFonts(); + renderer.fontCollection.registerDownloadedFonts(); }); void drawShapes(RecordingCanvas rc, SurfacePaint paint, Rect shaderRect) { diff --git a/lib/web_ui/test/html/shaders/linear_gradient_golden_test.dart b/lib/web_ui/test/html/shaders/linear_gradient_golden_test.dart index 8b0a8534ebfb1..742067e4914e0 100644 --- a/lib/web_ui/test/html/shaders/linear_gradient_golden_test.dart +++ b/lib/web_ui/test/html/shaders/linear_gradient_golden_test.dart @@ -21,8 +21,8 @@ Future testMain() async { setUpAll(() async { debugEmulateFlutterTesterEnvironment = true; await webOnlyInitializePlatform(); - renderer.fontCollection.debugRegisterTestFonts(); - await renderer.fontCollection.ensureFontsLoaded(); + await renderer.fontCollection.debugDownloadTestFonts(); + renderer.fontCollection.registerDownloadedFonts(); }); test('Should draw linear gradient using rectangle.', () async { diff --git a/lib/web_ui/test/html/shaders/radial_gradient_golden_test.dart b/lib/web_ui/test/html/shaders/radial_gradient_golden_test.dart index bedc35f59e391..51bfab70965a1 100644 --- a/lib/web_ui/test/html/shaders/radial_gradient_golden_test.dart +++ b/lib/web_ui/test/html/shaders/radial_gradient_golden_test.dart @@ -17,8 +17,8 @@ Future testMain() async { setUpAll(() async { debugEmulateFlutterTesterEnvironment = true; await webOnlyInitializePlatform(); - renderer.fontCollection.debugRegisterTestFonts(); - await renderer.fontCollection.ensureFontsLoaded(); + await renderer.fontCollection.debugDownloadTestFonts(); + renderer.fontCollection.registerDownloadedFonts(); }); Future testGradient(String fileName, Shader shader, diff --git a/lib/web_ui/test/html/shaders/shader_mask_golden_test.dart b/lib/web_ui/test/html/shaders/shader_mask_golden_test.dart index 20065ddef27ea..6c11494b9f8f0 100644 --- a/lib/web_ui/test/html/shaders/shader_mask_golden_test.dart +++ b/lib/web_ui/test/html/shaders/shader_mask_golden_test.dart @@ -41,8 +41,8 @@ Future testMain() async { scene.remove(); } initWebGl(); - renderer.fontCollection.debugRegisterTestFonts(); - await renderer.fontCollection.ensureFontsLoaded(); + await renderer.fontCollection.debugDownloadTestFonts(); + renderer.fontCollection.registerDownloadedFonts(); }); /// Should render the picture unmodified. diff --git a/lib/web_ui/test/keyboard_converter_test.dart b/lib/web_ui/test/keyboard_converter_test.dart index 0af85815dcf37..53dba7f2e8d7a 100644 --- a/lib/web_ui/test/keyboard_converter_test.dart +++ b/lib/web_ui/test/keyboard_converter_test.dart @@ -9,6 +9,8 @@ import 'package:test/test.dart'; import 'package:ui/src/engine.dart'; import 'package:ui/ui.dart' as ui; +import 'keyboard_test_common.dart'; + const int kLocationStandard = 0; const int kLocationLeft = 1; const int kLocationRight = 2; @@ -84,13 +86,8 @@ void testMain() { // Only handle down events return key.type == ui.KeyEventType.down; }); - bool preventedDefault = false; - void onPreventDefault() { preventedDefault = true; } - converter.handleEvent(keyDownEvent('KeyA', 'a') - ..timeStamp = 1 - ..onPreventDefault = onPreventDefault - ); + converter.handleEvent(keyDownEvent('KeyA', 'a')..timeStamp = 1); expectKeyData(keyDataList.last, timeStamp: const Duration(milliseconds: 1), type: ui.KeyEventType.down, @@ -98,13 +95,9 @@ void testMain() { logical: kLogicalKeyA, character: 'a', ); - expect(preventedDefault, isTrue); - preventedDefault = false; + expect(MockKeyboardEvent.lastDefaultPrevented, isTrue); - converter.handleEvent(keyRepeatedDownEvent('KeyA', 'a') - ..timeStamp = 1.5 - ..onPreventDefault = onPreventDefault - ); + converter.handleEvent(keyRepeatedDownEvent('KeyA', 'a')..timeStamp = 1.5); expectKeyData(keyDataList.last, timeStamp: const Duration(milliseconds: 1, microseconds: 500), type: ui.KeyEventType.repeat, @@ -112,12 +105,9 @@ void testMain() { logical: kLogicalKeyA, character: 'a', ); - expect(preventedDefault, isFalse); + expect(MockKeyboardEvent.lastDefaultPrevented, isFalse); - converter.handleEvent(keyRepeatedDownEvent('KeyA', 'a') - ..timeStamp = 1500 - ..onPreventDefault = onPreventDefault - ); + converter.handleEvent(keyRepeatedDownEvent('KeyA', 'a')..timeStamp = 1500); expectKeyData(keyDataList.last, timeStamp: const Duration(seconds: 1, milliseconds: 500), type: ui.KeyEventType.repeat, @@ -125,12 +115,9 @@ void testMain() { logical: kLogicalKeyA, character: 'a', ); - expect(preventedDefault, isFalse); + expect(MockKeyboardEvent.lastDefaultPrevented, isFalse); - converter.handleEvent(keyUpEvent('KeyA', 'a') - ..timeStamp = 2000.5 - ..onPreventDefault = onPreventDefault - ); + converter.handleEvent(keyUpEvent('KeyA', 'a')..timeStamp = 2000.5); expectKeyData(keyDataList.last, timeStamp: const Duration(seconds: 2, microseconds: 500), type: ui.KeyEventType.up, @@ -138,7 +125,7 @@ void testMain() { logical: kLogicalKeyA, character: null, ); - expect(preventedDefault, isFalse); + expect(MockKeyboardEvent.lastDefaultPrevented, isFalse); }); test('Release modifier during a repeated sequence', () { @@ -148,76 +135,60 @@ void testMain() { // Only handle down events return key.type == ui.KeyEventType.down; }); - bool preventedDefault = false; - void onPreventDefault() { preventedDefault = true; } - converter.handleEvent(keyDownEvent('ShiftLeft', 'Shift', kShift, kLocationLeft) - ..onPreventDefault = onPreventDefault - ); + converter.handleEvent(keyDownEvent('ShiftLeft', 'Shift', kShift, kLocationLeft)); expectKeyData(keyDataList.last, type: ui.KeyEventType.down, physical: kPhysicalShiftLeft, logical: kLogicalShiftLeft, character: null, ); - expect(preventedDefault, isTrue); - preventedDefault = false; + expect(MockKeyboardEvent.lastDefaultPrevented, isTrue); - converter.handleEvent(keyDownEvent('KeyA', 'A', kShift) - ..onPreventDefault = onPreventDefault - ); + converter.handleEvent(keyDownEvent('KeyA', 'A', kShift)); expectKeyData(keyDataList.last, type: ui.KeyEventType.down, physical: kPhysicalKeyA, logical: kLogicalKeyA, character: 'A', ); - expect(preventedDefault, isTrue); - preventedDefault = false; + expect(MockKeyboardEvent.lastDefaultPrevented, isTrue); - converter.handleEvent(keyRepeatedDownEvent('KeyA', 'A', kShift) - ..onPreventDefault = onPreventDefault - ); + converter.handleEvent(keyRepeatedDownEvent('KeyA', 'A', kShift)); expectKeyData(keyDataList.last, type: ui.KeyEventType.repeat, physical: kPhysicalKeyA, logical: kLogicalKeyA, character: 'A', ); - expect(preventedDefault, isFalse); + expect(MockKeyboardEvent.lastDefaultPrevented, isFalse); - converter.handleEvent(keyUpEvent('ShiftLeft', 'Shift', 0, kLocationLeft) - ..onPreventDefault = onPreventDefault - ); + converter.handleEvent(keyUpEvent('ShiftLeft', 'Shift', 0, kLocationLeft)); expectKeyData(keyDataList.last, type: ui.KeyEventType.up, physical: kPhysicalShiftLeft, logical: kLogicalShiftLeft, character: null, ); - expect(preventedDefault, isFalse); + expect(MockKeyboardEvent.lastDefaultPrevented, isFalse); - converter.handleEvent(keyRepeatedDownEvent('KeyA', 'a') - ..onPreventDefault = onPreventDefault - ); + converter.handleEvent(keyRepeatedDownEvent('KeyA', 'a')); expectKeyData(keyDataList.last, type: ui.KeyEventType.repeat, physical: kPhysicalKeyA, logical: kLogicalKeyA, character: 'a', ); - expect(preventedDefault, isFalse); + expect(MockKeyboardEvent.lastDefaultPrevented, isFalse); - converter.handleEvent(keyRepeatedDownEvent('KeyA', 'a') - ..onPreventDefault = onPreventDefault - ); + converter.handleEvent(keyRepeatedDownEvent('KeyA', 'a')); expectKeyData(keyDataList.last, type: ui.KeyEventType.repeat, physical: kPhysicalKeyA, logical: kLogicalKeyA, character: 'a', ); - expect(preventedDefault, isFalse); + expect(MockKeyboardEvent.lastDefaultPrevented, isFalse); converter.handleEvent(keyUpEvent('KeyA', 'a')); expectKeyData(keyDataList.last, @@ -226,7 +197,7 @@ void testMain() { logical: kLogicalKeyA, character: null, ); - expect(preventedDefault, isFalse); + expect(MockKeyboardEvent.lastDefaultPrevented, isFalse); }); test('Distinguish between left and right modifiers', () { @@ -461,20 +432,13 @@ void testMain() { keyDataList.add(key); return true; }); - bool preventedDefault = false; - void onPreventDefault() { preventedDefault = true; } - converter.handleEvent(keyDownEvent('ShiftLeft', 'Shift', kShift, kLocationLeft) - ..onPreventDefault = onPreventDefault - ); - expect(preventedDefault, isTrue); - preventedDefault = false; + converter.handleEvent(keyDownEvent('ShiftLeft', 'Shift', kShift, kLocationLeft)); + expect(MockKeyboardEvent.lastDefaultPrevented, isTrue); // A KeyUp of ShiftLeft is missed. keyDataList.clear(); - converter.handleEvent(keyDownEvent('ShiftLeft', 'Shift', kShift, kLocationLeft) - ..onPreventDefault = onPreventDefault - ); + converter.handleEvent(keyDownEvent('ShiftLeft', 'Shift', kShift, kLocationLeft)); expect(keyDataList, hasLength(2)); expectKeyData(keyDataList.first, type: ui.KeyEventType.up, @@ -489,12 +453,10 @@ void testMain() { logical: kLogicalShiftLeft, character: null, ); - expect(preventedDefault, isTrue); + expect(MockKeyboardEvent.lastDefaultPrevented, isTrue); keyDataList.clear(); - converter.handleEvent(keyUpEvent('ShiftLeft', 'Shift', 0, kLocationLeft) - ..onPreventDefault = onPreventDefault - ); + converter.handleEvent(keyUpEvent('ShiftLeft', 'Shift', 0, kLocationLeft)); expect(keyDataList, hasLength(1)); expectKeyData(keyDataList.last, type: ui.KeyEventType.up, @@ -502,7 +464,7 @@ void testMain() { logical: kLogicalShiftLeft, character: null, ); - expect(preventedDefault, isTrue); + expect(MockKeyboardEvent.lastDefaultPrevented, isTrue); }); test('Duplicate ups are skipped', () { @@ -511,17 +473,13 @@ void testMain() { keyDataList.add(key); return true; }); - bool preventedDefault = false; - void onPreventDefault() { preventedDefault = true; } // A KeyDown of ShiftRight is missed due to loss of focus. - converter.handleEvent(keyUpEvent('ShiftRight', 'Shift', 0, kLocationRight) - ..onPreventDefault = onPreventDefault - ); + converter.handleEvent(keyUpEvent('ShiftRight', 'Shift', 0, kLocationRight)); expect(keyDataList, hasLength(1)); expect(keyDataList[0].physical, 0); expect(keyDataList[0].logical, 0); - expect(preventedDefault, isTrue); + expect(MockKeyboardEvent.lastDefaultPrevented, isTrue); }); test('Conflict from multiple keyboards do not crash', () { @@ -568,13 +526,9 @@ void testMain() { keyDataList.add(key); return true; }, onMacOs: true); - bool preventedDefault = false; - void onPreventDefault() { preventedDefault = true; } // A KeyDown of ShiftRight is missed due to loss of focus. - converter.handleEvent(keyDownEvent('CapsLock', 'CapsLock') - ..onPreventDefault = onPreventDefault - ); + converter.handleEvent(keyDownEvent('CapsLock', 'CapsLock')); expect(keyDataList, hasLength(1)); expectKeyData(keyDataList.last, type: ui.KeyEventType.down, @@ -582,9 +536,8 @@ void testMain() { logical: kLogicalCapsLock, character: null, ); - expect(preventedDefault, isTrue); + expect(MockKeyboardEvent.lastDefaultPrevented, isTrue); keyDataList.clear(); - preventedDefault = false; async.elapse(const Duration(microseconds: 1)); expect(keyDataList, hasLength(1)); @@ -595,12 +548,10 @@ void testMain() { character: null, synthesized: true, ); - expect(preventedDefault, isFalse); + expect(MockKeyboardEvent.lastDefaultPrevented, isTrue); keyDataList.clear(); - converter.handleEvent(keyUpEvent('CapsLock', 'CapsLock') - ..onPreventDefault = onPreventDefault - ); + converter.handleEvent(keyUpEvent('CapsLock', 'CapsLock')); expect(keyDataList, hasLength(1)); expectKeyData(keyDataList.last, type: ui.KeyEventType.down, @@ -608,9 +559,8 @@ void testMain() { logical: kLogicalCapsLock, character: null, ); - expect(preventedDefault, isTrue); + expect(MockKeyboardEvent.lastDefaultPrevented, isTrue); keyDataList.clear(); - preventedDefault = false; async.elapse(const Duration(microseconds: 1)); expect(keyDataList, hasLength(1)); @@ -621,7 +571,7 @@ void testMain() { character: null, synthesized: true, ); - expect(preventedDefault, isFalse); + expect(MockKeyboardEvent.lastDefaultPrevented, isTrue); keyDataList.clear(); // Another key down works @@ -647,7 +597,7 @@ void testMain() { final KeyboardConverter converter = KeyboardConverter((ui.KeyData key) { keyDataList.add(key); return true; - }); + }); // onMacOs: false converter.handleEvent(keyDownEvent('CapsLock', 'CapsLock')); expect(keyDataList, hasLength(1)); @@ -881,7 +831,7 @@ void testMain() { final KeyboardConverter converter = KeyboardConverter((ui.KeyData key) { keyDataList.add(key); return true; - }); + }); // onMacOs: false converter.handleEvent(keyDownEvent('MetaLeft', 'Meta', kMeta, kLocationLeft)..timeStamp = 100); async.elapse(const Duration(milliseconds: 100)); @@ -905,7 +855,7 @@ void testMain() { final KeyboardConverter converter = KeyboardConverter((ui.KeyData key) { keyDataList.add(key); return true; - }); + }); // onMacOs: false converter.handleEvent(keyDownEvent('ScrollLock', 'ScrollLock')); expect(keyDataList, hasLength(1)); @@ -952,7 +902,7 @@ void testMain() { final KeyboardConverter converter = KeyboardConverter((ui.KeyData key) { keyDataList.add(key); return true; - }); + }); // onMacOs: false converter.handleEvent(keyDownEvent('ShiftRight', 'Shift', kShift, kLocationRight)); expectKeyData(keyDataList.last, @@ -1008,7 +958,7 @@ void testMain() { final KeyboardConverter converter = KeyboardConverter((ui.KeyData key) { keyDataList.add(key); return true; - }); + }); // onMacOs: false converter.handleEvent(keyDownEvent('ShiftLeft', 'Shift', kShift, kLocationLeft)); expectKeyData(keyDataList.last, @@ -1052,60 +1002,6 @@ void testMain() { }); } -class MockKeyboardEvent implements FlutterHtmlKeyboardEvent { - MockKeyboardEvent({ - required this.type, - required this.code, - required this.key, - this.timeStamp = 0, - this.repeat = false, - this.altKey = false, - this.ctrlKey = false, - this.shiftKey = false, - this.metaKey = false, - this.location = 0, - this.onPreventDefault, - }); - - @override - String type; - - @override - String? code; - - @override - String? key; - - @override - bool? repeat; - - @override - num? timeStamp; - - @override - bool altKey; - - @override - bool ctrlKey; - - @override - bool shiftKey; - - @override - bool metaKey; - - @override - int? location; - - @override - bool getModifierState(String key) => modifierState.contains(key); - final Set modifierState = {}; - - @override - void preventDefault() { onPreventDefault?.call(); } - VoidCallback? onPreventDefault; -} - // Flags used for the `modifiers` argument of `key***Event` functions. const int kAlt = 0x1; const int kCtrl = 0x2; @@ -1114,7 +1010,7 @@ const int kMeta = 0x8; // Utility functions to make code more concise. // -// To add timeStamp or onPreventDefault, use syntax like `..timeStamp = `. +// To add timeStamp , use syntax `..timeStamp = `. MockKeyboardEvent keyDownEvent(String code, String key, [int modifiers = 0, int location = 0]) { return MockKeyboardEvent( type: 'keydown', diff --git a/lib/web_ui/test/keyboard_test_common.dart b/lib/web_ui/test/keyboard_test_common.dart new file mode 100644 index 0000000000000..b4b2113731ea8 --- /dev/null +++ b/lib/web_ui/test/keyboard_test_common.dart @@ -0,0 +1,85 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import 'package:ui/src/engine.dart'; + +typedef VoidCallback = void Function(); + +class MockKeyboardEvent implements FlutterHtmlKeyboardEvent { + MockKeyboardEvent({ + required this.type, + required this.code, + required this.key, + this.timeStamp = 0, + this.repeat = false, + this.keyCode = 0, + bool altKey = false, + bool ctrlKey = false, + bool shiftKey = false, + bool metaKey = false, + bool altGrKey = false, + this.location = 0, + this.onPreventDefault, + }) : modifierState = + { + if (altKey) 'Alt', + if (ctrlKey) 'Control', + if (shiftKey) 'Shift', + if (metaKey) 'Meta', + if (altGrKey) 'AltGraph', + } { + _lastEvent = this; + } + + @override + String type; + + @override + String? code; + + @override + String? key; + + @override + bool? repeat; + + @override + int keyCode; + + @override + num? timeStamp; + + @override + bool get altKey => modifierState.contains('Alt'); + + @override + bool get ctrlKey => modifierState.contains('Control'); + + @override + bool get shiftKey => modifierState.contains('Shift'); + + @override + bool get metaKey => modifierState.contains('Meta'); + + @override + int? location; + + @override + bool getModifierState(String key) => modifierState.contains(key); + final Set modifierState; + + @override + void preventDefault() { + onPreventDefault?.call(); + _defaultPrevented = true; + } + VoidCallback? onPreventDefault; + + @override + bool get defaultPrevented => _defaultPrevented; + bool _defaultPrevented = false; + + static bool get lastDefaultPrevented => _lastEvent?.defaultPrevented ?? false; + static MockKeyboardEvent? _lastEvent; +} diff --git a/lib/web_ui/test/matchers.dart b/lib/web_ui/test/matchers.dart index a307d556d0433..b754d4b2387e0 100644 --- a/lib/web_ui/test/matchers.dart +++ b/lib/web_ui/test/matchers.dart @@ -289,9 +289,6 @@ String canonicalizeHtml( case 'flt-semantics-container': replacementTag = 'sem-c'; break; - case 'flt-semantics-value': - replacementTag = 'sem-v'; - break; case 'flt-semantics-img': replacementTag = 'sem-img'; break; diff --git a/lib/web_ui/test/keyboard_test.dart b/lib/web_ui/test/raw_keyboard_test.dart similarity index 93% rename from lib/web_ui/test/keyboard_test.dart rename to lib/web_ui/test/raw_keyboard_test.dart index a560281824099..bb490b60fb8f7 100644 --- a/lib/web_ui/test/keyboard_test.dart +++ b/lib/web_ui/test/raw_keyboard_test.dart @@ -9,7 +9,7 @@ import 'package:quiver/testing/async.dart'; import 'package:test/bootstrap/browser.dart'; import 'package:test/test.dart'; import 'package:ui/src/engine/dom.dart'; -import 'package:ui/src/engine/keyboard.dart'; +import 'package:ui/src/engine/raw_keyboard.dart'; import 'package:ui/src/engine/services.dart'; import 'package:ui/src/engine/text_editing/text_editing.dart'; import 'package:ui/ui.dart' as ui; @@ -19,7 +19,7 @@ void main() { } void testMain() { - group('Keyboard', () { + group('RawKeyboard', () { /// Used to save and restore [ui.window.onPlatformMessage] after each test. ui.PlatformMessageCallback? savedCallback; @@ -32,15 +32,15 @@ void testMain() { }); test('initializes and disposes', () { - expect(Keyboard.instance, isNull); - Keyboard.initialize(); - expect(Keyboard.instance, isA()); - Keyboard.instance!.dispose(); - expect(Keyboard.instance, isNull); + expect(RawKeyboard.instance, isNull); + RawKeyboard.initialize(); + expect(RawKeyboard.instance, isA()); + RawKeyboard.instance!.dispose(); + expect(RawKeyboard.instance, isNull); }); test('dispatches keyup to flutter/keyevent channel', () { - Keyboard.initialize(); + RawKeyboard.initialize(); String? channelReceived; Map? dataReceived; @@ -66,11 +66,11 @@ void testMain() { 'keyCode': 1, }); - Keyboard.instance!.dispose(); + RawKeyboard.instance!.dispose(); }); test('dispatches keydown to flutter/keyevent channel', () { - Keyboard.initialize(); + RawKeyboard.initialize(); String? channelReceived; Map? dataReceived; @@ -97,11 +97,11 @@ void testMain() { }); expect(event.defaultPrevented, isFalse); - Keyboard.instance!.dispose(); + RawKeyboard.instance!.dispose(); }); test('dispatches correct meta state', () { - Keyboard.initialize(); + RawKeyboard.initialize(); Map? dataReceived; ui.window.onPlatformMessage = (String channel, ByteData? data, @@ -149,11 +149,11 @@ void testMain() { 'keyCode': 0, }); - Keyboard.instance!.dispose(); + RawKeyboard.instance!.dispose(); }); test('dispatches repeat events', () { - Keyboard.initialize(); + RawKeyboard.initialize(); final List> messages = >[]; ui.window.onPlatformMessage = (String channel, ByteData? data, @@ -202,11 +202,11 @@ void testMain() { expectedMessage, ]); - Keyboard.instance!.dispose(); + RawKeyboard.instance!.dispose(); }); test('stops dispatching events after dispose', () { - Keyboard.initialize(); + RawKeyboard.initialize(); int count = 0; ui.window.onPlatformMessage = (String channel, ByteData? data, @@ -219,8 +219,8 @@ void testMain() { dispatchKeyboardEvent('keyup'); expect(count, 2); - Keyboard.instance!.dispose(); - expect(Keyboard.instance, isNull); + RawKeyboard.instance!.dispose(); + expect(RawKeyboard.instance, isNull); // No more event dispatching. dispatchKeyboardEvent('keydown'); @@ -230,7 +230,7 @@ void testMain() { }); test('prevents default when key is handled by the framework', () { - Keyboard.initialize(); + RawKeyboard.initialize(); int count = 0; ui.window.onPlatformMessage = (String channel, ByteData? data, @@ -249,11 +249,11 @@ void testMain() { expect(event.defaultPrevented, isTrue); expect(count, 1); - Keyboard.instance!.dispose(); + RawKeyboard.instance!.dispose(); }); test("Doesn't prevent default when key is not handled by the framework", () { - Keyboard.initialize(); + RawKeyboard.initialize(); int count = 0; ui.window.onPlatformMessage = (String channel, ByteData? data, @@ -272,11 +272,11 @@ void testMain() { expect(event.defaultPrevented, isFalse); expect(count, 1); - Keyboard.instance!.dispose(); + RawKeyboard.instance!.dispose(); }); test('keyboard events should be triggered on text fields', () { - Keyboard.initialize(); + RawKeyboard.initialize(); int count = 0; ui.window.onPlatformMessage = (String channel, ByteData? data, @@ -296,11 +296,11 @@ void testMain() { expect(count, 1); }); - Keyboard.instance!.dispose(); + RawKeyboard.instance!.dispose(); }); test('the "Tab" key should never be ignored', () { - Keyboard.initialize(); + RawKeyboard.initialize(); int count = 0; ui.window.onPlatformMessage = (String channel, ByteData? data, @@ -322,7 +322,7 @@ void testMain() { expect(count, 1); }); - Keyboard.instance!.dispose(); + RawKeyboard.instance!.dispose(); }); testFakeAsync( @@ -335,7 +335,7 @@ void testMain() { // // There's no `keyup(i)`. The web engine is expected to synthesize a // `keyup(i)` event. - Keyboard.initialize(onMacOs: true); + RawKeyboard.initialize(onMacOs: true); final List> messages = >[]; ui.window.onPlatformMessage = (String channel, ByteData? data, @@ -451,14 +451,14 @@ void testMain() { } ]); - Keyboard.instance!.dispose(); + RawKeyboard.instance!.dispose(); }, ); testFakeAsync( 'On macOS, do not synthesize keyup when we receive repeat events', (FakeAsync async) { - Keyboard.initialize(onMacOs: true); + RawKeyboard.initialize(onMacOs: true); final List> messages = >[]; ui.window.onPlatformMessage = (String channel, ByteData? data, @@ -533,14 +533,14 @@ void testMain() { } messages.clear(); - Keyboard.instance!.dispose(); + RawKeyboard.instance!.dispose(); }, ); testFakeAsync( 'On macOS, do not synthesize keyup when keys are not affected by meta modifiers', (FakeAsync async) { - Keyboard.initialize(); + RawKeyboard.initialize(); final List> messages = >[]; ui.window.onPlatformMessage = (String channel, ByteData? data, @@ -565,12 +565,12 @@ void testMain() { async.elapse(const Duration(seconds: 3)); expect(messages, hasLength(0)); - Keyboard.instance!.dispose(); + RawKeyboard.instance!.dispose(); }, ); testFakeAsync('On macOS, do not synthesize keyup for meta keys', (FakeAsync async) { - Keyboard.initialize(onMacOs: true); + RawKeyboard.initialize(onMacOs: true); final List> messages = >[]; ui.window.onPlatformMessage = (String channel, ByteData? data, @@ -628,13 +628,13 @@ void testMain() { } ]); - Keyboard.instance!.dispose(); + RawKeyboard.instance!.dispose(); }); testFakeAsync( 'On non-macOS, do not synthesize keyup for shortcuts', (FakeAsync async) { - Keyboard.initialize(); + RawKeyboard.initialize(); // onMacOs: false final List> messages = >[]; ui.window.onPlatformMessage = (String channel, ByteData? data, @@ -687,7 +687,7 @@ void testMain() { async.elapse(const Duration(seconds: 3)); expect(messages, isEmpty); - Keyboard.instance!.dispose(); + RawKeyboard.instance!.dispose(); }, ); diff --git a/lib/web_ui/test/text/canvas_paragraph_builder_test.dart b/lib/web_ui/test/text/canvas_paragraph_builder_test.dart index b898f5a9562e2..b8d92315da7d2 100644 --- a/lib/web_ui/test/text/canvas_paragraph_builder_test.dart +++ b/lib/web_ui/test/text/canvas_paragraph_builder_test.dart @@ -7,9 +7,7 @@ import 'package:test/test.dart'; import 'package:ui/src/engine.dart'; import 'package:ui/ui.dart'; -bool get isIosSafari => - browserEngine == BrowserEngine.webkit && - operatingSystem == OperatingSystem.iOs; +import '../html/paragraph/helper.dart'; /// Some text measurements are sensitive to browser implementations. Position /// info in the following tests only pass in Chrome, they are slightly different @@ -35,6 +33,28 @@ void main() { Future testMain() async { await initializeTestFlutterViewEmbedder(); + test('empty paragraph', () { + final CanvasParagraph paragraph1 = rich( + EngineParagraphStyle(), + (CanvasParagraphBuilder builder) {}, + ); + expect(paragraph1.plainText, ''); + expect(paragraph1.spans, hasLength(1)); + expect(paragraph1.spans.single.start, 0); + expect(paragraph1.spans.single.end, 0); + + final CanvasParagraph paragraph2 = rich( + EngineParagraphStyle(), + (CanvasParagraphBuilder builder) { + builder.addText(''); + }, + ); + expect(paragraph2.plainText, ''); + expect(paragraph2.spans, hasLength(1)); + expect(paragraph2.spans.single.start, 0); + expect(paragraph2.spans.single.end, 0); + }); + test('Builds a text-only canvas paragraph', () { final EngineParagraphStyle style = EngineParagraphStyle(fontSize: 13.0); final CanvasParagraphBuilder builder = CanvasParagraphBuilder(style); @@ -43,7 +63,7 @@ Future testMain() async { final CanvasParagraph paragraph = builder.build(); expect(paragraph.paragraphStyle, style); - expect(paragraph.toPlainText(), 'Hello'); + expect(paragraph.plainText, 'Hello'); expect(paragraph.spans, hasLength(1)); paragraph.layout(const ParagraphConstraints(width: double.infinity)); @@ -73,10 +93,8 @@ Future testMain() async { ); final ParagraphSpan span = paragraph.spans.single; - expect(span, isA()); - final FlatTextSpan textSpan = span as FlatTextSpan; - expect(textSpan.textOf(paragraph), 'Hello'); - expect(textSpan.style, styleWithDefaults(fontSize: 13.0)); + expect(getSpanText(paragraph, span), 'Hello'); + expect(span.style, styleWithDefaults(fontSize: 13.0)); }); test('Correct defaults', () { @@ -87,7 +105,7 @@ Future testMain() async { final CanvasParagraph paragraph = builder.build(); expect(paragraph.paragraphStyle, style); - expect(paragraph.toPlainText(), 'Hello'); + expect(paragraph.plainText, 'Hello'); expect(paragraph.spans, hasLength(1)); paragraph.layout(const ParagraphConstraints(width: double.infinity)); @@ -101,8 +119,8 @@ Future testMain() async { ignorePositions: !isBlink, ); - final FlatTextSpan textSpan = paragraph.spans.single as FlatTextSpan; - expect(textSpan.style, styleWithDefaults()); + final ParagraphSpan span = paragraph.spans.single; + expect(span.style, styleWithDefaults()); }); test('Sets correct styles for max-lines', () { @@ -113,7 +131,7 @@ Future testMain() async { final CanvasParagraph paragraph = builder.build(); expect(paragraph.paragraphStyle, style); - expect(paragraph.toPlainText(), 'Hello'); + expect(paragraph.plainText, 'Hello'); paragraph.layout(const ParagraphConstraints(width: double.infinity)); expectOuterHtml( @@ -135,14 +153,17 @@ Future testMain() async { final CanvasParagraph paragraph = builder.build(); expect(paragraph.paragraphStyle, style); - expect(paragraph.toPlainText(), 'HelloWorld'); + expect(paragraph.plainText, 'HelloWorld'); paragraph.layout(const ParagraphConstraints(width: 100.0)); expectOuterHtml( paragraph, '' '' - 'Hell...' + 'Hell' + '' + '' + '...' '' '', ignorePositions: !isBlink, @@ -163,7 +184,7 @@ Future testMain() async { builder.addText('Hello'); final CanvasParagraph paragraph = builder.build(); - expect(paragraph.toPlainText(), 'Hello'); + expect(paragraph.plainText, 'Hello'); expect(paragraph.spans, hasLength(1)); paragraph.layout(const ParagraphConstraints(width: double.infinity)); @@ -177,8 +198,8 @@ Future testMain() async { ignorePositions: !isBlink, ); - final FlatTextSpan span = paragraph.spans.single as FlatTextSpan; - expect(span.textOf(paragraph), 'Hello'); + final ParagraphSpan span = paragraph.spans.single; + expect(getSpanText(paragraph, span), 'Hello'); expect( span.style, styleWithDefaults( @@ -202,7 +223,7 @@ Future testMain() async { builder.addText(' world'); final CanvasParagraph paragraph = builder.build(); - expect(paragraph.toPlainText(), 'Hello world'); + expect(paragraph.plainText, 'Hello world'); expect(paragraph.spans, hasLength(2)); paragraph.layout(const ParagraphConstraints(width: double.infinity)); @@ -240,8 +261,8 @@ Future testMain() async { ignorePositions: !isBlink, ); - final FlatTextSpan hello = paragraph.spans.first as FlatTextSpan; - expect(hello.textOf(paragraph), 'Hello'); + final ParagraphSpan hello = paragraph.spans.first; + expect(getSpanText(paragraph, hello), 'Hello'); expect( hello.style, styleWithDefaults( @@ -250,8 +271,8 @@ Future testMain() async { ), ); - final FlatTextSpan world = paragraph.spans.last as FlatTextSpan; - expect(world.textOf(paragraph), ' world'); + final ParagraphSpan world = paragraph.spans.last; + expect(getSpanText(paragraph, world), ' world'); expect( world.style, styleWithDefaults( @@ -275,7 +296,7 @@ Future testMain() async { builder.addText('!'); final CanvasParagraph paragraph = builder.build(); - expect(paragraph.toPlainText(), 'Hello world!'); + expect(paragraph.plainText, 'Hello world!'); expect(paragraph.spans, hasLength(3)); paragraph.layout(const ParagraphConstraints(width: double.infinity)); @@ -298,8 +319,8 @@ Future testMain() async { ignorePositions: !isBlink, ); - final FlatTextSpan hello = paragraph.spans[0] as FlatTextSpan; - expect(hello.textOf(paragraph), 'Hello'); + final ParagraphSpan hello = paragraph.spans[0]; + expect(getSpanText(paragraph, hello), 'Hello'); expect( hello.style, styleWithDefaults( @@ -309,8 +330,8 @@ Future testMain() async { ), ); - final FlatTextSpan world = paragraph.spans[1] as FlatTextSpan; - expect(world.textOf(paragraph), ' world'); + final ParagraphSpan world = paragraph.spans[1]; + expect(getSpanText(paragraph, world), ' world'); expect( world.style, styleWithDefaults( @@ -320,8 +341,8 @@ Future testMain() async { ), ); - final FlatTextSpan bang = paragraph.spans[2] as FlatTextSpan; - expect(bang.textOf(paragraph), '!'); + final ParagraphSpan bang = paragraph.spans[2]; + expect(getSpanText(paragraph, bang), '!'); expect( bang.style, styleWithDefaults( @@ -341,7 +362,7 @@ Future testMain() async { builder.addText('ThirdLongLine'); final CanvasParagraph paragraph = builder.build(); - expect(paragraph.toPlainText(), 'First\nSecond ThirdLongLine'); + expect(paragraph.plainText, 'First\nSecond ThirdLongLine'); expect(paragraph.spans, hasLength(2)); // There's a new line between "First" and "Second", but "Second" and @@ -356,10 +377,10 @@ Future testMain() async { '' 'Second' '' - '' + '' ' ' '' - '' + '' 'ThirdLongLine' '' '', @@ -377,8 +398,7 @@ Future testMain() async { '' 'Second' '' - // Trailing space. - '' + '' ' ' '' '' @@ -404,7 +424,7 @@ Future testMain() async { builder.addText('Third'); final CanvasParagraph paragraph = builder.build(); - expect(paragraph.toPlainText(), 'First Second Third'); + expect(paragraph.plainText, 'First Second Third'); expect(paragraph.spans, hasLength(3)); // The paragraph should take the font size and family from the span with the diff --git a/lib/web_ui/test/text/canvas_paragraph_test.dart b/lib/web_ui/test/text/canvas_paragraph_test.dart index 9262f0b2d7764..c97ad8fb2b953 100644 --- a/lib/web_ui/test/text/canvas_paragraph_test.dart +++ b/lib/web_ui/test/text/canvas_paragraph_test.dart @@ -9,21 +9,6 @@ import 'package:ui/ui.dart' as ui; import '../html/paragraph/helper.dart'; -const ui.Color white = ui.Color(0xFFFFFFFF); -const ui.Color black = ui.Color(0xFF000000); -const ui.Color red = ui.Color(0xFFFF0000); -const ui.Color green = ui.Color(0xFF00FF00); -const ui.Color blue = ui.Color(0xFF0000FF); - -final EngineParagraphStyle ahemStyle = EngineParagraphStyle( - fontFamily: 'ahem', - fontSize: 10, -); - -ui.ParagraphConstraints constrain(double width) { - return ui.ParagraphConstraints(width: width); -} - void main() { internalBootstrapBrowserTest(() => testMain); } @@ -370,7 +355,7 @@ Future testMain() async { ); }); - test('pops boxes when segments are popped', () { + test('reverts to last line break opportunity', () { final CanvasParagraph paragraph = rich(ahemStyle, (ui.ParagraphBuilder builder) { // Lines: // "AAA " @@ -383,6 +368,10 @@ Future testMain() async { builder.addText('DD'); }); + String getTextForFragment(LayoutFragment fragment) { + return paragraph.plainText.substring(fragment.start, fragment.end); + } + // The layout algorithm will keep appending segments to the line builder // until it reaches: "AAA B_". At that point, it'll try to add the "C" but // realizes there isn't enough width in the line. Since the line already @@ -398,29 +387,32 @@ Future testMain() async { final ParagraphLine firstLine = paragraph.lines[0]; final ParagraphLine secondLine = paragraph.lines[1]; - // There should be no "B" in the first line's boxes. - expect(firstLine.boxes, hasLength(2)); + // There should be no "B" in the first line's fragments. + expect(firstLine.fragments, hasLength(2)); + + expect(getTextForFragment(firstLine.fragments[0]), 'AAA'); + expect(firstLine.fragments[0].left, 0.0); - expect((firstLine.boxes[0] as SpanBox).toText(), 'AAA'); - expect((firstLine.boxes[0] as SpanBox).left, 0.0); + expect(getTextForFragment(firstLine.fragments[1]), ' '); + expect(firstLine.fragments[1].left, 30.0); - expect((firstLine.boxes[1] as SpanBox).toText(), ' '); - expect((firstLine.boxes[1] as SpanBox).left, 30.0); + // Make sure the second line isn't missing any fragments. + expect(secondLine.fragments, hasLength(5)); - // Make sure the second line isn't missing any boxes. - expect(secondLine.boxes, hasLength(4)); + expect(getTextForFragment(secondLine.fragments[0]), 'B'); + expect(secondLine.fragments[0].left, 0.0); - expect((secondLine.boxes[0] as SpanBox).toText(), 'B'); - expect((secondLine.boxes[0] as SpanBox).left, 0.0); + expect(getTextForFragment(secondLine.fragments[1]), '_'); + expect(secondLine.fragments[1].left, 10.0); - expect((secondLine.boxes[1] as SpanBox).toText(), '_C'); - expect((secondLine.boxes[1] as SpanBox).left, 10.0); + expect(getTextForFragment(secondLine.fragments[2]), 'C'); + expect(secondLine.fragments[2].left, 20.0); - expect((secondLine.boxes[2] as SpanBox).toText(), ' '); - expect((secondLine.boxes[2] as SpanBox).left, 30.0); + expect(getTextForFragment(secondLine.fragments[3]), ' '); + expect(secondLine.fragments[3].left, 30.0); - expect((secondLine.boxes[3] as SpanBox).toText(), 'DD'); - expect((secondLine.boxes[3] as SpanBox).left, 40.0); + expect(getTextForFragment(secondLine.fragments[4]), 'DD'); + expect(secondLine.fragments[4].left, 40.0); }); }); @@ -767,6 +759,14 @@ Future testMain() async { expect(paragraph.getWordBoundary(const ui.TextPosition(offset: 17)), endRange); }); + test('$CanvasParagraph.getWordBoundary can handle text affinity', () { + final ui.Paragraph paragraph = plain(ahemStyle, 'Lorem ipsum dolor'); + + const ui.TextRange loremRange = ui.TextRange(start: 0, end: 5); + expect(paragraph.getWordBoundary(const ui.TextPosition(offset: 4)), loremRange); + expect(paragraph.getWordBoundary(const ui.TextPosition(offset: 5, affinity: ui.TextAffinity.upstream)), loremRange); + }); + test('$CanvasParagraph.longestLine', () { final ui.Paragraph paragraph = plain(ahemStyle, 'abcd\nabcde abc'); paragraph.layout(const ui.ParagraphConstraints(width: 80.0)); diff --git a/lib/web_ui/test/text/font_collection_test.dart b/lib/web_ui/test/text/font_collection_test.dart index 3e2e0b183752d..8c074a2c38c70 100644 --- a/lib/web_ui/test/text/font_collection_test.dart +++ b/lib/web_ui/test/text/font_collection_test.dart @@ -29,9 +29,10 @@ void testMain() { const String testFontFamily = 'Ahem'; final List fontFamilyList = []; - fontManager.registerAsset( + fontManager.downloadAsset( testFontFamily, 'url($testFontUrl)', const {}); - await fontManager.ensureFontsLoaded(); + await fontManager.downloadAllFonts(); + fontManager.registerDownloadedFonts(); domDocument.fonts! .forEach(allowInterop((DomFontFace f, DomFontFace f2, DomFontFaceSet s) { fontFamilyList.add(f.family!); @@ -45,9 +46,10 @@ void testMain() { const String testFontFamily = 'Ahem ahem ahem'; final List fontFamilyList = []; - fontManager.registerAsset( + fontManager.downloadAsset( testFontFamily, 'url($testFontUrl)', const {}); - await fontManager.ensureFontsLoaded(); + await fontManager.downloadAllFonts(); + fontManager.registerDownloadedFonts(); domDocument.fonts! .forEach(allowInterop((DomFontFace f, DomFontFace f2, DomFontFaceSet s) { fontFamilyList.add(f.family!); @@ -63,9 +65,10 @@ void testMain() { const String testFontFamily = 'AhEm'; final List fontFamilyList = []; - fontManager.registerAsset( + fontManager.downloadAsset( testFontFamily, 'url($testFontUrl)', const {}); - await fontManager.ensureFontsLoaded(); + await fontManager.downloadAllFonts(); + fontManager.registerDownloadedFonts(); domDocument.fonts! .forEach(allowInterop((DomFontFace f, DomFontFace f2, DomFontFaceSet s) { fontFamilyList.add(f.family!); @@ -81,9 +84,10 @@ void testMain() { const String testFontFamily = '/Ahem'; final List fontFamilyList = []; - fontManager.registerAsset( + fontManager.downloadAsset( testFontFamily, 'url($testFontUrl)', const {}); - await fontManager.ensureFontsLoaded(); + await fontManager.downloadAllFonts(); + fontManager.registerDownloadedFonts(); domDocument.fonts! .forEach(allowInterop((DomFontFace f, DomFontFace f2, DomFontFaceSet s) { fontFamilyList.add(f.family!); @@ -105,9 +109,10 @@ void testMain() { const String testFontFamily = 'Ahem!!ahem'; final List fontFamilyList = []; - fontManager.registerAsset( + fontManager.downloadAsset( testFontFamily, 'url($testFontUrl)', const {}); - await fontManager.ensureFontsLoaded(); + await fontManager.downloadAllFonts(); + fontManager.registerDownloadedFonts(); domDocument.fonts! .forEach(allowInterop((DomFontFace f, DomFontFace f2, DomFontFaceSet s) { fontFamilyList.add(f.family!); @@ -129,9 +134,10 @@ void testMain() { const String testFontFamily = 'Ahem ,ahem'; final List fontFamilyList = []; - fontManager.registerAsset( + fontManager.downloadAsset( testFontFamily, 'url($testFontUrl)', const {}); - await fontManager.ensureFontsLoaded(); + await fontManager.downloadAllFonts(); + fontManager.registerDownloadedFonts(); domDocument.fonts! .forEach(allowInterop((DomFontFace f, DomFontFace f2, DomFontFaceSet s) { fontFamilyList.add(f.family!); @@ -154,9 +160,10 @@ void testMain() { const String testFontFamily = 'Ahem 1998'; final List fontFamilyList = []; - fontManager.registerAsset( + fontManager.downloadAsset( testFontFamily, 'url($testFontUrl)', const {}); - await fontManager.ensureFontsLoaded(); + await fontManager.downloadAllFonts(); + fontManager.registerDownloadedFonts(); domDocument.fonts! .forEach(allowInterop((DomFontFace f, DomFontFace f2, DomFontFaceSet s) { fontFamilyList.add(f.family!); diff --git a/lib/web_ui/test/text/layout_fragmenter_test.dart b/lib/web_ui/test/text/layout_fragmenter_test.dart new file mode 100644 index 0000000000000..a36dc89433db7 --- /dev/null +++ b/lib/web_ui/test/text/layout_fragmenter_test.dart @@ -0,0 +1,290 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import 'package:test/bootstrap/browser.dart'; +import 'package:test/test.dart'; +import 'package:ui/src/engine.dart'; +import 'package:ui/ui.dart'; + +import '../html/paragraph/helper.dart'; + +final EngineTextStyle defaultStyle = EngineTextStyle.only( + color: const Color(0xFFFF0000), + fontFamily: FlutterViewEmbedder.defaultFontFamily, + fontSize: FlutterViewEmbedder.defaultFontSize, +); +final EngineTextStyle style1 = defaultStyle.copyWith(fontSize: 20); +final EngineTextStyle style2 = defaultStyle.copyWith(color: blue); +final EngineTextStyle style3 = defaultStyle.copyWith(fontFamily: 'Roboto'); + +void main() { + internalBootstrapBrowserTest(() => testMain); +} + +Future testMain() async { + group('$LayoutFragmenter', () { + test('empty paragraph', () { + final CanvasParagraph paragraph1 = rich( + EngineParagraphStyle(), + (CanvasParagraphBuilder builder) {}, + ); + expect(split(paragraph1), <_Fragment>[ + _Fragment('', endOfText, null, ffPrevious, defaultStyle), + ]); + + final CanvasParagraph paragraph2 = rich( + EngineParagraphStyle(), + (CanvasParagraphBuilder builder) { + builder.addText(''); + }, + ); + expect(split(paragraph2), <_Fragment>[ + _Fragment('', endOfText, null, ffPrevious, defaultStyle), + ]); + + final CanvasParagraph paragraph3 = rich( + EngineParagraphStyle(), + (CanvasParagraphBuilder builder) { + builder.pushStyle(style1); + builder.addText(''); + }, + ); + expect(split(paragraph3), <_Fragment>[ + _Fragment('', endOfText, null, ffPrevious, style1), + ]); + }); + + test('single span', () { + final CanvasParagraph paragraph = + plain(EngineParagraphStyle(), 'Lorem 12 $rtlWord1 ipsum34'); + expect(split(paragraph), <_Fragment>[ + _Fragment('Lorem', prohibited, ltr, ffLtr, defaultStyle), + _Fragment(' ', opportunity, null, ffSandwich, defaultStyle, sp: 1), + _Fragment('12', prohibited, ltr, ffPrevious, defaultStyle), + _Fragment(' ', opportunity, null, ffSandwich, defaultStyle, sp: 1), + _Fragment(rtlWord1, prohibited, rtl, ffRtl, defaultStyle), + _Fragment(' ', opportunity, null, ffSandwich, defaultStyle, sp: 3), + _Fragment('ipsum34', endOfText, ltr, ffLtr, defaultStyle), + ]); + }); + + test('multi span', () { + final CanvasParagraph paragraph = rich( + EngineParagraphStyle(), + (CanvasParagraphBuilder builder) { + builder.pushStyle(style1); + builder.addText('Lorem'); + builder.pop(); + builder.pushStyle(style2); + builder.addText(' ipsum 12 '); + builder.pop(); + builder.pushStyle(style3); + builder.addText(' $rtlWord1 foo.'); + builder.pop(); + }, + ); + + expect(split(paragraph), <_Fragment>[ + _Fragment('Lorem', prohibited, ltr, ffLtr, style1), + _Fragment(' ', opportunity, null, ffSandwich, style2, sp: 1), + _Fragment('ipsum', prohibited, ltr, ffLtr, style2), + _Fragment(' ', opportunity, null, ffSandwich, style2, sp: 1), + _Fragment('12', prohibited, ltr, ffPrevious, style2), + _Fragment(' ', prohibited, null, ffSandwich, style2, sp: 1), + _Fragment(' ', opportunity, null, ffSandwich, style3, sp: 1), + _Fragment(rtlWord1, prohibited, rtl, ffRtl, style3), + _Fragment(' ', opportunity, null, ffSandwich, style3, sp: 1), + _Fragment('foo', prohibited, ltr, ffLtr, style3), + _Fragment('.', endOfText, null, ffSandwich, style3), + ]); + }); + + test('new lines', () { + final CanvasParagraph paragraph = rich( + EngineParagraphStyle(), + (CanvasParagraphBuilder builder) { + builder.pushStyle(style1); + builder.addText('Lor\nem \n'); + builder.pop(); + builder.pushStyle(style2); + builder.addText(' \n ipsum 12 '); + builder.pop(); + builder.pushStyle(style3); + builder.addText(' $rtlWord1 fo'); + builder.pop(); + builder.pushStyle(style1); + builder.addText('o.'); + builder.pop(); + }, + ); + + expect(split(paragraph), <_Fragment>[ + _Fragment('Lor', prohibited, ltr, ffLtr, style1), + _Fragment('\n', mandatory, null, ffSandwich, style1, nl: 1, sp: 1), + _Fragment('em', prohibited, ltr, ffLtr, style1), + _Fragment(' \n', mandatory, null, ffSandwich, style1, nl: 1, sp: 2), + _Fragment(' \n', mandatory, null, ffSandwich, style2, nl: 1, sp: 2), + _Fragment(' ', opportunity, null, ffSandwich, style2, sp: 2), + _Fragment('ipsum', prohibited, ltr, ffLtr, style2), + _Fragment(' ', opportunity, null, ffSandwich, style2, sp: 1), + _Fragment('12', prohibited, ltr, ffPrevious, style2), + _Fragment(' ', prohibited, null, ffSandwich, style2, sp: 1), + _Fragment(' ', opportunity, null, ffSandwich, style3, sp: 1), + _Fragment(rtlWord1, prohibited, rtl, ffRtl, style3), + _Fragment(' ', opportunity, null, ffSandwich, style3, sp: 1), + _Fragment('fo', prohibited, ltr, ffLtr, style3), + _Fragment('o', prohibited, ltr, ffLtr, style1), + _Fragment('.', endOfText, null, ffSandwich, style1), + ]); + }); + + test('last line is empty', () { + final CanvasParagraph paragraph = rich( + EngineParagraphStyle(), + (CanvasParagraphBuilder builder) { + builder.pushStyle(style1); + builder.addText('Lorem \n'); + builder.pop(); + builder.pushStyle(style2); + builder.addText(' \n ipsum \n'); + builder.pop(); + }, + ); + + expect(split(paragraph), <_Fragment>[ + _Fragment('Lorem', prohibited, ltr, ffLtr, style1), + _Fragment(' \n', mandatory, null, ffSandwich, style1, nl: 1, sp: 2), + _Fragment(' \n', mandatory, null, ffSandwich, style2, nl: 1, sp: 2), + _Fragment(' ', opportunity, null, ffSandwich, style2, sp: 2), + _Fragment('ipsum', prohibited, ltr, ffLtr, style2), + _Fragment(' \n', mandatory, null, ffSandwich, style2, nl: 1, sp: 2), + _Fragment('', endOfText, null, ffSandwich, style2), + ]); + }); + + test('space-only spans', () { + final CanvasParagraph paragraph = rich( + EngineParagraphStyle(), + (CanvasParagraphBuilder builder) { + builder.addText('Lorem '); + builder.pushStyle(style1); + builder.addText(' '); + builder.pop(); + builder.pushStyle(style2); + builder.addText(' '); + builder.pop(); + builder.addText('ipsum'); + }, + ); + + expect(split(paragraph), <_Fragment>[ + _Fragment('Lorem', prohibited, ltr, ffLtr, defaultStyle), + _Fragment(' ', prohibited, null, ffSandwich, defaultStyle, sp: 1), + _Fragment(' ', prohibited, null, ffSandwich, style1, sp: 3), + _Fragment(' ', opportunity, null, ffSandwich, style2, sp: 2), + _Fragment('ipsum', endOfText, ltr, ffLtr, defaultStyle), + ]); + }); + + test('placeholders', () { + final CanvasParagraph paragraph = rich( + EngineParagraphStyle(), + (CanvasParagraphBuilder builder) { + builder.pushStyle(style1); + builder.addPlaceholder(100, 100, PlaceholderAlignment.top); + builder.addText('Lorem'); + builder.addPlaceholder(100, 100, PlaceholderAlignment.top); + builder.addText('ipsum\n'); + builder.addPlaceholder(100, 100, PlaceholderAlignment.top); + builder.pop(); + builder.pushStyle(style2); + builder.addText('$rtlWord1 '); + builder.addPlaceholder(100, 100, PlaceholderAlignment.top); + builder.addText('\nsit'); + builder.pop(); + builder.addPlaceholder(100, 100, PlaceholderAlignment.top); + }, + ); + + expect(split(paragraph), <_Fragment>[ + _Fragment(placeholderChar, opportunity, ltr, ffLtr, style1), + _Fragment('Lorem', opportunity, ltr, ffLtr, style1), + _Fragment(placeholderChar, opportunity, ltr, ffLtr, style1), + _Fragment('ipsum', prohibited, ltr, ffLtr, style1), + _Fragment('\n', mandatory, null, ffSandwich, style1, nl: 1, sp: 1), + _Fragment(placeholderChar, opportunity, ltr, ffLtr, style1), + _Fragment(rtlWord1, prohibited, rtl, ffRtl, style2), + _Fragment(' ', opportunity, null, ffSandwich, style2, sp: 1), + _Fragment(placeholderChar, prohibited, ltr, ffLtr, style2), + _Fragment('\n', mandatory, null, ffSandwich, style2, nl: 1, sp: 1), + _Fragment('sit', opportunity, ltr, ffLtr, style2), + _Fragment(placeholderChar, endOfText, ltr, ffLtr, defaultStyle), + ]); + }); + }); +} + +/// Holds information about how a fragment. +class _Fragment { + _Fragment(this.text, this.type, this.textDirection, this.fragmentFlow, this.style, { + this.nl = 0, + this.sp = 0, + }); + + factory _Fragment._fromLayoutFragment(String text, LayoutFragment layoutFragment) { + return _Fragment( + text.substring(layoutFragment.start, layoutFragment.end), + layoutFragment.type, + layoutFragment.textDirection, + layoutFragment.fragmentFlow, + layoutFragment.style, + nl: layoutFragment.trailingNewlines, + sp: layoutFragment.trailingSpaces, + ); + } + + final String text; + final LineBreakType type; + final TextDirection? textDirection; + final FragmentFlow fragmentFlow; + final EngineTextStyle style; + + /// The number of trailing new line characters. + final int nl; + + /// The number of trailing spaces. + final int sp; + + @override + int get hashCode => Object.hash(text, type, textDirection, fragmentFlow, style, nl, sp); + + @override + bool operator ==(Object other) { + return other is _Fragment && + other.text == text && + other.type == type && + other.textDirection == textDirection && + other.fragmentFlow == fragmentFlow && + other.style == style && + other.nl == nl && + other.sp == sp; + } + + @override + String toString() { + return '"$text" ($type, $textDirection, $fragmentFlow, nl: $nl, sp: $sp)'; + } +} + +List<_Fragment> split(CanvasParagraph paragraph) { + return <_Fragment>[ + for (final LayoutFragment layoutFragment + in computeLayoutFragments(paragraph)) + _Fragment._fromLayoutFragment(paragraph.plainText, layoutFragment) + ]; +} + +List computeLayoutFragments(CanvasParagraph paragraph) { + return LayoutFragmenter(paragraph.plainText, paragraph.spans).fragment(); +} diff --git a/lib/web_ui/test/text/layout_service_helper.dart b/lib/web_ui/test/text/layout_service_helper.dart index 9fef792b03413..e516d199ec790 100644 --- a/lib/web_ui/test/text/layout_service_helper.dart +++ b/lib/web_ui/test/text/layout_service_helper.dart @@ -10,7 +10,6 @@ TestLine l( String? displayText, int? startIndex, int? endIndex, { - int? endIndexWithoutNewlines, bool? hardBreak, double? height, double? width, @@ -22,7 +21,6 @@ TestLine l( displayText: displayText, startIndex: startIndex, endIndex: endIndex, - endIndexWithoutNewlines: endIndexWithoutNewlines, hardBreak: hardBreak, height: height, width: width, @@ -33,7 +31,6 @@ TestLine l( } void expectLines(CanvasParagraph paragraph, List expectedLines) { - final String text = paragraph.toPlainText(); final List lines = paragraph.lines; expect(lines, hasLength(expectedLines.length)); for (int i = 0; i < lines.length; i++) { @@ -46,11 +43,7 @@ void expectLines(CanvasParagraph paragraph, List expectedLines) { reason: 'line #$i had the wrong `lineNumber`. Expected: $i. Actual: ${line.lineNumber}', ); if (expectedLine.displayText != null) { - String displayText = - text.substring(line.startIndex, line.endIndexWithoutNewlines); - if (line.ellipsis != null) { - displayText += line.ellipsis!; - } + final String displayText = line.getText(paragraph); expect( displayText, expectedLine.displayText, @@ -74,14 +67,6 @@ void expectLines(CanvasParagraph paragraph, List expectedLines) { 'line #$i had a different `endIndex` value: "${line.endIndex}" vs. "${expectedLine.endIndex}"', ); } - if (expectedLine.endIndexWithoutNewlines != null) { - expect( - line.endIndexWithoutNewlines, - expectedLine.endIndexWithoutNewlines, - reason: - 'line #$i had a different `endIndexWithoutNewlines` value: "${line.endIndexWithoutNewlines}" vs. "${expectedLine.endIndexWithoutNewlines}"', - ); - } if (expectedLine.hardBreak != null) { expect( line.hardBreak, @@ -130,7 +115,6 @@ class TestLine { this.displayText, this.startIndex, this.endIndex, - this.endIndexWithoutNewlines, this.hardBreak, this.height, this.width, @@ -142,7 +126,6 @@ class TestLine { final String? displayText; final int? startIndex; final int? endIndex; - final int? endIndexWithoutNewlines; final bool? hardBreak; final double? height; final double? width; diff --git a/lib/web_ui/test/text/layout_service_plain_test.dart b/lib/web_ui/test/text/layout_service_plain_test.dart index 9cdb9a5b67650..e67291e6ad958 100644 --- a/lib/web_ui/test/text/layout_service_plain_test.dart +++ b/lib/web_ui/test/text/layout_service_plain_test.dart @@ -7,32 +7,11 @@ import 'package:test/test.dart'; import 'package:ui/src/engine.dart'; import 'package:ui/ui.dart' as ui; +import '../html/paragraph/helper.dart'; import 'layout_service_helper.dart'; const bool skipWordSpacing = true; -final EngineParagraphStyle ahemStyle = EngineParagraphStyle( - fontFamily: 'ahem', - fontSize: 10, -); - -ui.ParagraphConstraints constrain(double width) { - return ui.ParagraphConstraints(width: width); -} - -CanvasParagraph plain( - EngineParagraphStyle style, - String text, { - EngineTextStyle? textStyle, -}) { - final CanvasParagraphBuilder builder = CanvasParagraphBuilder(style); - if (textStyle != null) { - builder.pushStyle(textStyle); - } - builder.addText(text); - return builder.build(); -} - void main() { internalBootstrapBrowserTest(() => testMain); } @@ -46,8 +25,10 @@ Future testMain() async { expect(paragraph.maxIntrinsicWidth, 0); expect(paragraph.minIntrinsicWidth, 0); - expect(paragraph.height, 0); - expect(paragraph.computeLineMetrics(), isEmpty); + expect(paragraph.height, 10); + expectLines(paragraph, [ + l('', 0, 0, width: 0.0, height: 10.0, baseline: 8.0), + ]); }); test('preserves whitespace when measuring', () { @@ -422,7 +403,7 @@ Future testMain() async { expect(longText.maxIntrinsicWidth, 480); expect(longText.height, 10); expectLines(longText, [ - l('AA...', 0, 2, hardBreak: false, width: 50.0, left: 0.0), + l('AA...', 0, 2, hardBreak: true, width: 50.0, left: 0.0), ]); // The short prefix should make the text break into two lines, but the @@ -436,7 +417,7 @@ Future testMain() async { expect(longTextShortPrefix.height, 20); expectLines(longTextShortPrefix, [ l('AAA', 0, 4, hardBreak: true, width: 30.0, left: 0.0), - l('AA...', 4, 6, hardBreak: false, width: 50.0, left: 0.0), + l('AA...', 4, 6, hardBreak: true, width: 50.0, left: 0.0), ]); // Constraints only enough to fit "AA" with the ellipsis, but not the @@ -447,7 +428,7 @@ Future testMain() async { expect(trailingSpace.maxIntrinsicWidth, 60); expect(trailingSpace.height, 10); expectLines(trailingSpace, [ - l('AA...', 0, 2, hardBreak: false, width: 50.0, left: 0.0), + l('AA...', 0, 2, hardBreak: true, width: 50.0, left: 0.0), ]); // Tiny constraints. @@ -457,7 +438,7 @@ Future testMain() async { expect(paragraph.maxIntrinsicWidth, 40); expect(paragraph.height, 10); expectLines(paragraph, [ - l('...', 0, 0, hardBreak: false, width: 30.0, left: 0.0), + l('...', 0, 0, hardBreak: true, width: 30.0, left: 0.0), ]); // Tinier constraints (not enough for the ellipsis). @@ -471,7 +452,7 @@ Future testMain() async { // l('.', 0, 0, hardBreak: false, width: 10.0, left: 0.0), // ]); expectLines(paragraph, [ - l('...', 0, 0, hardBreak: false, width: 30.0, left: 0.0), + l('...', 0, 0, hardBreak: true, width: 30.0, left: 0.0), ]); }); @@ -550,14 +531,14 @@ Future testMain() async { paragraph = plain(onelineStyle, 'abcd efg')..layout(constrain(60.0)); expect(paragraph.height, 10); expectLines(paragraph, [ - l('abc...', 0, 3, hardBreak: false, width: 60.0, left: 0.0), + l('abc...', 0, 3, hardBreak: true, width: 60.0, left: 0.0), ]); // Another simple overflow case. paragraph = plain(onelineStyle, 'a bcde fgh')..layout(constrain(60.0)); expect(paragraph.height, 10); expectLines(paragraph, [ - l('a b...', 0, 3, hardBreak: false, width: 60.0, left: 0.0), + l('a b...', 0, 3, hardBreak: true, width: 60.0, left: 0.0), ]); // The ellipsis is supposed to go on the second line, but because the @@ -574,7 +555,7 @@ Future testMain() async { expect(paragraph.height, 20); expectLines(paragraph, [ l('abcd ', 0, 5, hardBreak: false, width: 40.0, left: 0.0), - l('efg...', 5, 8, hardBreak: false, width: 60.0, left: 0.0), + l('efg...', 5, 8, hardBreak: true, width: 60.0, left: 0.0), ]); // Even if the second line can be broken, we don't break it, we just @@ -584,7 +565,7 @@ Future testMain() async { expect(paragraph.height, 20); expectLines(paragraph, [ l('abcde ', 0, 6, hardBreak: false, width: 50.0, left: 0.0), - l('f g...', 6, 9, hardBreak: false, width: 60.0, left: 0.0), + l('f g...', 6, 9, hardBreak: true, width: 60.0, left: 0.0), ]); // First line overflows but second line doesn't. @@ -601,7 +582,7 @@ Future testMain() async { expect(paragraph.height, 20); expectLines(paragraph, [ l('abcdef', 0, 6, hardBreak: false, width: 60.0, left: 0.0), - l('g h...', 6, 9, hardBreak: false, width: 60.0, left: 0.0), + l('g h...', 6, 9, hardBreak: true, width: 60.0, left: 0.0), ]); }); diff --git a/lib/web_ui/test/text/layout_service_rich_test.dart b/lib/web_ui/test/text/layout_service_rich_test.dart index 28d50bc784de8..9843d154bf8a2 100644 --- a/lib/web_ui/test/text/layout_service_rich_test.dart +++ b/lib/web_ui/test/text/layout_service_rich_test.dart @@ -11,17 +11,6 @@ import 'package:ui/ui.dart' as ui; import '../html/paragraph/helper.dart'; import 'layout_service_helper.dart'; -const ui.Color white = ui.Color(0xFFFFFFFF); -const ui.Color black = ui.Color(0xFF000000); -const ui.Color red = ui.Color(0xFFFF0000); -const ui.Color green = ui.Color(0xFF00FF00); -const ui.Color blue = ui.Color(0xFF0000FF); - -final EngineParagraphStyle ahemStyle = EngineParagraphStyle( - fontFamily: 'ahem', - fontSize: 10, -); - void main() { internalBootstrapBrowserTest(() => testMain); } @@ -166,7 +155,7 @@ Future testMain() async { expect(paragraph.minIntrinsicWidth, 300.0); expect(paragraph.height, 50.0); expectLines(paragraph, [ - l('', 0, 0, hardBreak: true, width: 300.0, left: 100.0), + l(placeholderChar, 0, 1, hardBreak: true, width: 300.0, left: 100.0), ]); }); @@ -185,7 +174,7 @@ Future testMain() async { expect(paragraph.minIntrinsicWidth, 300.0); expect(paragraph.height, 50.0); expectLines(paragraph, [ - l('abcd', 0, 4, hardBreak: true, width: 340.0, left: 30.0), + l('abcd$placeholderChar', 0, 5, hardBreak: true, width: 340.0, left: 30.0), ]); }); @@ -207,8 +196,8 @@ Future testMain() async { expect(paragraph.height, 10.0 + 40.0 + 10.0); expectLines(paragraph, [ l('Lorem', 0, 6, hardBreak: true, width: 50.0, height: 10.0, left: 125.0), - l('', 6, 6, hardBreak: false, width: 300.0, height: 40.0, left: 0.0), - l('ipsum', 6, 11, hardBreak: true, width: 50.0, height: 10.0, left: 125.0), + l(placeholderChar, 6, 7, hardBreak: false, width: 300.0, height: 40.0, left: 0.0), + l('ipsum', 7, 12, hardBreak: true, width: 50.0, height: 10.0, left: 125.0), ]); }); diff --git a/lib/web_ui/test/text/line_breaker_test.dart b/lib/web_ui/test/text/line_breaker_test.dart index 3b218552b829e..9f2a684c6210f 100644 --- a/lib/web_ui/test/text/line_breaker_test.dart +++ b/lib/web_ui/test/text/line_breaker_test.dart @@ -6,7 +6,9 @@ import 'package:test/bootstrap/browser.dart'; import 'package:test/test.dart'; import 'package:ui/src/engine.dart'; +import 'package:ui/ui.dart'; +import '../html/paragraph/helper.dart'; import 'line_breaker_test_helper.dart'; import 'line_breaker_test_raw_data.dart'; @@ -15,44 +17,40 @@ void main() { } void testMain() { - group('nextLineBreak', () { - test('Does not go beyond the ends of a string', () { - expect(split('foo'), [ - Line('foo', LineBreakType.endOfText), + group('$LineBreakFragmenter', () { + test('empty string', () { + expect(split(''), [ + Line('', endOfText), ]); - - final LineBreakResult result = nextLineBreak('foo', 'foo'.length); - expect(result.index, 'foo'.length); - expect(result.type, LineBreakType.endOfText); }); test('whitespace', () { expect(split('foo bar'), [ - Line('foo ', LineBreakType.opportunity), - Line('bar', LineBreakType.endOfText), + Line('foo ', opportunity, sp: 1), + Line('bar', endOfText), ]); expect(split(' foo bar '), [ - Line(' ', LineBreakType.opportunity), - Line('foo ', LineBreakType.opportunity), - Line('bar ', LineBreakType.endOfText), + Line(' ', opportunity, sp: 2), + Line('foo ', opportunity, sp: 4), + Line('bar ', endOfText, sp: 2), ]); }); test('single-letter lines', () { expect(split('foo a bar'), [ - Line('foo ', LineBreakType.opportunity), - Line('a ', LineBreakType.opportunity), - Line('bar', LineBreakType.endOfText), + Line('foo ', opportunity, sp: 1), + Line('a ', opportunity, sp: 1), + Line('bar', endOfText), ]); expect(split('a b c'), [ - Line('a ', LineBreakType.opportunity), - Line('b ', LineBreakType.opportunity), - Line('c', LineBreakType.endOfText), + Line('a ', opportunity, sp: 1), + Line('b ', opportunity, sp: 1), + Line('c', endOfText), ]); expect(split(' a b '), [ - Line(' ', LineBreakType.opportunity), - Line('a ', LineBreakType.opportunity), - Line('b ', LineBreakType.endOfText), + Line(' ', opportunity, sp: 1), + Line('a ', opportunity, sp: 1), + Line('b ', endOfText, sp: 1), ]); }); @@ -60,242 +58,344 @@ void testMain() { final String bk = String.fromCharCode(0x000B); // Can't have a line break between CR×LF. expect(split('foo\r\nbar'), [ - Line('foo\r\n', LineBreakType.mandatory), - Line('bar', LineBreakType.endOfText), + Line('foo\r\n', mandatory, nl: 2, sp: 2), + Line('bar', endOfText), ]); // Any other new line is considered a line break on its own. expect(split('foo\n\nbar'), [ - Line('foo\n', LineBreakType.mandatory), - Line('\n', LineBreakType.mandatory), - Line('bar', LineBreakType.endOfText), + Line('foo\n', mandatory, nl: 1, sp: 1), + Line('\n', mandatory, nl: 1, sp: 1), + Line('bar', endOfText), ]); expect(split('foo\r\rbar'), [ - Line('foo\r', LineBreakType.mandatory), - Line('\r', LineBreakType.mandatory), - Line('bar', LineBreakType.endOfText), + Line('foo\r', mandatory, nl: 1, sp: 1), + Line('\r', mandatory, nl: 1, sp: 1), + Line('bar', endOfText), ]); expect(split('foo$bk${bk}bar'), [ - Line('foo$bk', LineBreakType.mandatory), - Line(bk, LineBreakType.mandatory), - Line('bar', LineBreakType.endOfText), + Line('foo$bk', mandatory, nl: 1, sp: 1), + Line(bk, mandatory, nl: 1, sp: 1), + Line('bar', endOfText), ]); expect(split('foo\n\rbar'), [ - Line('foo\n', LineBreakType.mandatory), - Line('\r', LineBreakType.mandatory), - Line('bar', LineBreakType.endOfText), + Line('foo\n', mandatory, nl: 1, sp: 1), + Line('\r', mandatory, nl: 1, sp: 1), + Line('bar', endOfText), ]); expect(split('foo$bk\rbar'), [ - Line('foo$bk', LineBreakType.mandatory), - Line('\r', LineBreakType.mandatory), - Line('bar', LineBreakType.endOfText), + Line('foo$bk', mandatory, nl: 1, sp: 1), + Line('\r', mandatory, nl: 1, sp: 1), + Line('bar', endOfText), ]); expect(split('foo\r${bk}bar'), [ - Line('foo\r', LineBreakType.mandatory), - Line(bk, LineBreakType.mandatory), - Line('bar', LineBreakType.endOfText), + Line('foo\r', mandatory, nl: 1, sp: 1), + Line(bk, mandatory, nl: 1, sp: 1), + Line('bar', endOfText), ]); expect(split('foo$bk\nbar'), [ - Line('foo$bk', LineBreakType.mandatory), - Line('\n', LineBreakType.mandatory), - Line('bar', LineBreakType.endOfText), + Line('foo$bk', mandatory, nl: 1, sp: 1), + Line('\n', mandatory, nl: 1, sp: 1), + Line('bar', endOfText), ]); expect(split('foo\n${bk}bar'), [ - Line('foo\n', LineBreakType.mandatory), - Line(bk, LineBreakType.mandatory), - Line('bar', LineBreakType.endOfText), + Line('foo\n', mandatory, nl: 1, sp: 1), + Line(bk, mandatory, nl: 1, sp: 1), + Line('bar', endOfText), ]); // New lines at the beginning and end. expect(split('foo\n'), [ - Line('foo\n', LineBreakType.mandatory), - Line('', LineBreakType.endOfText), + Line('foo\n', mandatory, nl: 1, sp: 1), + Line('', endOfText), ]); expect(split('foo\r'), [ - Line('foo\r', LineBreakType.mandatory), - Line('', LineBreakType.endOfText), + Line('foo\r', mandatory, nl: 1, sp: 1), + Line('', endOfText), ]); expect(split('foo$bk'), [ - Line('foo$bk', LineBreakType.mandatory), - Line('', LineBreakType.endOfText), + Line('foo$bk', mandatory, nl: 1, sp: 1), + Line('', endOfText), ]); expect(split('\nfoo'), [ - Line('\n', LineBreakType.mandatory), - Line('foo', LineBreakType.endOfText), + Line('\n', mandatory, nl: 1, sp: 1), + Line('foo', endOfText), ]); expect(split('\rfoo'), [ - Line('\r', LineBreakType.mandatory), - Line('foo', LineBreakType.endOfText), + Line('\r', mandatory, nl: 1, sp: 1), + Line('foo', endOfText), ]); expect(split('${bk}foo'), [ - Line(bk, LineBreakType.mandatory), - Line('foo', LineBreakType.endOfText), + Line(bk, mandatory, nl: 1, sp: 1), + Line('foo', endOfText), ]); // Whitespace with new lines. expect(split('foo \n'), [ - Line('foo \n', LineBreakType.mandatory), - Line('', LineBreakType.endOfText), + Line('foo \n', mandatory, nl: 1, sp: 3), + Line('', endOfText), ]); expect(split('foo \n '), [ - Line('foo \n', LineBreakType.mandatory), - Line(' ', LineBreakType.endOfText), + Line('foo \n', mandatory, nl: 1, sp: 3), + Line(' ', endOfText, sp: 3), ]); expect(split('foo \n bar'), [ - Line('foo \n', LineBreakType.mandatory), - Line(' ', LineBreakType.opportunity), - Line('bar', LineBreakType.endOfText), + Line('foo \n', mandatory, nl: 1, sp: 3), + Line(' ', opportunity, sp: 3), + Line('bar', endOfText), ]); expect(split('\n foo'), [ - Line('\n', LineBreakType.mandatory), - Line(' ', LineBreakType.opportunity), - Line('foo', LineBreakType.endOfText), + Line('\n', mandatory, nl: 1, sp: 1), + Line(' ', opportunity, sp: 2), + Line('foo', endOfText), ]); expect(split(' \n foo'), [ - Line(' \n', LineBreakType.mandatory), - Line(' ', LineBreakType.opportunity), - Line('foo', LineBreakType.endOfText), + Line(' \n', mandatory, nl: 1, sp: 4), + Line(' ', opportunity, sp: 2), + Line('foo', endOfText), ]); }); test('trailing spaces and new lines', () { - expect( - findBreaks('foo bar '), - const [ - LineBreakResult(4, 4, 3, LineBreakType.opportunity), - LineBreakResult(9, 9, 7, LineBreakType.endOfText), + expect(split('foo bar '), [ + Line('foo ', opportunity, sp: 1), + Line('bar ', endOfText, sp: 2), ], ); - expect( - findBreaks('foo \nbar\nbaz \n'), - const [ - LineBreakResult(6, 5, 3, LineBreakType.mandatory), - LineBreakResult(10, 9, 9, LineBreakType.mandatory), - LineBreakResult(17, 16, 13, LineBreakType.mandatory), - LineBreakResult(17, 17, 17, LineBreakType.endOfText), + expect(split('foo \nbar\nbaz \n'), [ + Line('foo \n', mandatory, nl: 1, sp: 3), + Line('bar\n', mandatory, nl: 1, sp: 1), + Line('baz \n', mandatory, nl: 1, sp: 4), + Line('', endOfText), ], ); }); test('leading spaces', () { - expect( - findBreaks(' foo'), - const [ - LineBreakResult(1, 1, 0, LineBreakType.opportunity), - LineBreakResult(4, 4, 4, LineBreakType.endOfText), + expect(split(' foo'), [ + Line(' ', opportunity, sp: 1), + Line('foo', endOfText), ], ); - expect( - findBreaks(' foo'), - const [ - LineBreakResult(3, 3, 0, LineBreakType.opportunity), - LineBreakResult(6, 6, 6, LineBreakType.endOfText), + expect(split(' foo'), [ + Line(' ', opportunity, sp: 3), + Line('foo', endOfText), ], ); - expect( - findBreaks(' foo bar'), - const [ - LineBreakResult(2, 2, 0, LineBreakType.opportunity), - LineBreakResult(8, 8, 5, LineBreakType.opportunity), - LineBreakResult(11, 11, 11, LineBreakType.endOfText), + expect(split(' foo bar'), [ + Line(' ', opportunity, sp: 2), + Line('foo ', opportunity, sp: 3), + Line('bar', endOfText), ], ); - expect( - findBreaks(' \n foo'), - const [ - LineBreakResult(3, 2, 0, LineBreakType.mandatory), - LineBreakResult(6, 6, 3, LineBreakType.opportunity), - LineBreakResult(9, 9, 9, LineBreakType.endOfText), + expect(split(' \n foo'), [ + Line(' \n', mandatory, nl: 1, sp: 3), + Line(' ', opportunity, sp: 3), + Line('foo', endOfText), ], ); }); test('whitespace before the last character', () { - const String text = 'Lorem sit .'; - const LineBreakResult expectedResult = - LineBreakResult(10, 10, 9, LineBreakType.opportunity); + expect(split('Lorem sit .'), [ + Line('Lorem ', opportunity, sp: 1), + Line('sit ', opportunity, sp: 1), + Line('.', endOfText), + ], + ); + }); - LineBreakResult result; + test('placeholders', () { + final CanvasParagraph paragraph = rich( + EngineParagraphStyle(), + (CanvasParagraphBuilder builder) { + builder.addPlaceholder(100, 100, PlaceholderAlignment.top); + builder.addText('Lorem'); + builder.addPlaceholder(100, 100, PlaceholderAlignment.top); + builder.addText('ipsum\n'); + builder.addPlaceholder(100, 100, PlaceholderAlignment.top); + builder.addText('dolor'); + builder.addPlaceholder(100, 100, PlaceholderAlignment.top); + builder.addText('\nsit'); + builder.addPlaceholder(100, 100, PlaceholderAlignment.top); + }, + ); - result = nextLineBreak(text, 6); - expect(result, expectedResult); + final String placeholderChar = String.fromCharCode(0xFFFC); + + expect(split(paragraph.plainText), [ + Line(placeholderChar, opportunity), + Line('Lorem', opportunity), + Line(placeholderChar, opportunity), + Line('ipsum\n', mandatory, nl: 1, sp: 1), + Line(placeholderChar, opportunity), + Line('dolor', opportunity), + Line('$placeholderChar\n', mandatory, nl: 1, sp: 1), + Line('sit', opportunity), + Line(placeholderChar, endOfText), + ]); + }); + + test('single placeholder', () { + final CanvasParagraph paragraph = rich( + EngineParagraphStyle(), + (CanvasParagraphBuilder builder) { + builder.addPlaceholder(100, 100, PlaceholderAlignment.top); + }, + ); + + final String placeholderChar = String.fromCharCode(0xFFFC); + + expect(split(paragraph.plainText), [ + Line(placeholderChar, endOfText), + ]); + }); - result = nextLineBreak(text, 9); - expect(result, expectedResult); + test('placeholders surrounded by spaces and new lines', () { + final CanvasParagraph paragraph = rich( + EngineParagraphStyle(), + (CanvasParagraphBuilder builder) { + builder.addPlaceholder(100, 100, PlaceholderAlignment.top); + builder.addText(' Lorem '); + builder.addPlaceholder(100, 100, PlaceholderAlignment.top); + builder.addText(' \nipsum \n'); + builder.addPlaceholder(100, 100, PlaceholderAlignment.top); + builder.addText('\n'); + builder.addPlaceholder(100, 100, PlaceholderAlignment.top); + }, + ); - result = nextLineBreak(text, 9, maxEnd: 10); - expect(result, expectedResult); + expect(split(paragraph.plainText), [ + Line('$placeholderChar ', opportunity, sp: 2), + Line('Lorem ', opportunity, sp: 2), + Line('$placeholderChar \n', mandatory, nl: 1, sp: 3), + Line('ipsum \n', mandatory, nl: 1, sp: 2), + Line('$placeholderChar\n', mandatory, nl: 1, sp: 1), + Line(placeholderChar, endOfText), + ], + ); + }); + + test('surrogates', () { + expect(split('A\u{1F600}'), [ + Line('A', opportunity), + Line('\u{1F600}', endOfText), + ], + ); + + expect(split('\u{1F600}A'), [ + Line('\u{1F600}', opportunity), + Line('A', endOfText), + ], + ); + + expect(split('\u{1F600}\u{1F600}'), [ + Line('\u{1F600}', opportunity), + Line('\u{1F600}', endOfText), + ], + ); + + expect(split('A \u{1F600} \u{1F600}'), [ + Line('A ', opportunity, sp: 1), + Line('\u{1F600} ', opportunity, sp: 1), + Line('\u{1F600}', endOfText), + ], + ); }); test('comprehensive test', () { - final List testCollection = parseRawTestData(rawLineBreakTestData); + final List testCollection = + parseRawTestData(rawLineBreakTestData); for (int t = 0; t < testCollection.length; t++) { final TestCase testCase = testCollection[t]; + final String text = testCase.toText(); + final List fragments = LineBreakFragmenter(text).fragment(); + + // `f` is the index in the `fragments` list. + int f = 0; + LineBreakFragment currentFragment = fragments[f]; - int lastLineBreak = 0; int surrogateCount = 0; // `s` is the index in the `testCase.signs` list. - for (int s = 0; s < testCase.signs.length; s++) { + for (int s = 0; s < testCase.signs.length - 1; s++) { // `i` is the index in the `text`. final int i = s + surrogateCount; - if (s < testCase.chars.length && testCase.chars[s].isSurrogatePair) { - surrogateCount++; - } - final Sign sign = testCase.signs[s]; - final LineBreakResult result = nextLineBreak(text, lastLineBreak); + if (sign.isBreakOpportunity) { - // The line break should've been found at index `i`. expect( - result.index, + currentFragment.end, i, reason: 'Failed at test case number $t:\n' '$testCase\n' '"$text"\n' - '\nExpected line break at {$lastLineBreak - $i} but found line break at {$lastLineBreak - ${result.index}}.', + '\nExpected fragment to end at {$i} but ended at {${currentFragment.end}}.', ); - - // Since this is a line break, passing a `maxEnd` that's greater - // should return the same line break. - final LineBreakResult maxEndResult = - nextLineBreak(text, lastLineBreak, maxEnd: i + 1); - expect(maxEndResult.index, i); - expect(maxEndResult.type, isNot(LineBreakType.prohibited)); - - lastLineBreak = i; + currentFragment = fragments[++f]; } else { - // This isn't a line break opportunity so the line break should be - // somewhere after index `i`. expect( - result.index, + currentFragment.end, greaterThan(i), reason: 'Failed at test case number $t:\n' '$testCase\n' '"$text"\n' - '\nUnexpected line break found at {$lastLineBreak - ${result.index}}.', + '\nFragment ended in early at {${currentFragment.end}}.', ); + } - // Since this isn't a line break, passing it as a `maxEnd` should - // return `maxEnd` as a prohibited line break type. - final LineBreakResult maxEndResult = - nextLineBreak(text, lastLineBreak, maxEnd: i); - expect(maxEndResult.index, i); - expect(maxEndResult.type, LineBreakType.prohibited); + if (s < testCase.chars.length && testCase.chars[s].isSurrogatePair) { + surrogateCount++; } } + + // Now let's look at the last sign, which requires different handling. + + // The last line break is an endOfText (or a hard break followed by + // endOfText if the last character is a hard line break). + if (currentFragment.type == mandatory) { + // When last character is a hard line break, there should be an + // extra fragment to represent the empty line at the end. + expect( + fragments, + hasLength(f + 2), + reason: 'Failed at test case number $t:\n' + '$testCase\n' + '"$text"\n' + "\nExpected an extra fragment for endOfText but there wasn't one.", + ); + + currentFragment = fragments[++f]; + } + + expect( + currentFragment.type, + endOfText, + reason: 'Failed at test case number $t:\n' + '$testCase\n' + '"$text"\n\n' + 'Expected an endOfText fragment but found: $currentFragment', + ); + expect( + currentFragment.end, + text.length, + reason: 'Failed at test case number $t:\n' + '$testCase\n' + '"$text"\n\n' + 'Expected an endOfText fragment ending at {${text.length}} but found: $currentFragment', + ); } }); }); @@ -303,17 +403,32 @@ void testMain() { /// Holds information about how a line was split from a string. class Line { - Line(this.text, this.breakType); + Line(this.text, this.breakType, {this.nl = 0, this.sp = 0}); + + factory Line.fromLineBreakFragment(String text, LineBreakFragment fragment) { + return Line( + text.substring(fragment.start, fragment.end), + fragment.type, + nl: fragment.trailingNewlines, + sp: fragment.trailingSpaces, + ); + } final String text; final LineBreakType breakType; + final int nl; + final int sp; @override - int get hashCode => Object.hash(text, breakType); + int get hashCode => Object.hash(text, breakType, nl, sp); @override bool operator ==(Object other) { - return other is Line && other.text == text && other.breakType == breakType; + return other is Line && + other.text == text && + other.breakType == breakType && + other.nl == nl && + other.sp == sp; } String get escapedText { @@ -329,29 +444,13 @@ class Line { @override String toString() { - return '"$escapedText" ($breakType)'; + return '"$escapedText" ($breakType, nl: $nl, sp: $sp)'; } } List split(String text) { - final List lines = []; - - int lastIndex = 0; - for (final LineBreakResult brk in findBreaks(text)) { - lines.add(Line(text.substring(lastIndex, brk.index), brk.type)); - lastIndex = brk.index; - } - return lines; -} - -List findBreaks(String text) { - final List breaks = []; - - LineBreakResult brk = nextLineBreak(text, 0); - breaks.add(brk); - while (brk.type != LineBreakType.endOfText) { - brk = nextLineBreak(text, brk.index); - breaks.add(brk); - } - return breaks; + return [ + for (final LineBreakFragment fragment in LineBreakFragmenter(text).fragment()) + Line.fromLineBreakFragment(text, fragment) + ]; } diff --git a/lib/web_ui/test/text/text_direction_test.dart b/lib/web_ui/test/text/text_direction_test.dart index 61b7b44e4df00..3c39220c0159e 100644 --- a/lib/web_ui/test/text/text_direction_test.dart +++ b/lib/web_ui/test/text/text_direction_test.dart @@ -2,125 +2,197 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. - import 'package:test/bootstrap/browser.dart'; import 'package:test/test.dart'; import 'package:ui/src/engine.dart'; import 'package:ui/ui.dart'; -// Two RTL strings, 5 characters each, to match the length of "$rtl1" and "$rtl2". -const String rtl1 = 'واحدة'; -const String rtl2 = 'ثنتان'; +import '../html/paragraph/helper.dart'; void main() { internalBootstrapBrowserTest(() => testMain); } Future testMain() async { - group('$getDirectionalBlockEnd', () { + group('$BidiFragmenter', () { + test('empty string', () { + expect(split(''), <_Bidi>[ + _Bidi('', null, ffPrevious), + ]); + }); test('basic cases', () { - const String text = 'Lorem 12 $rtl1 ipsum34'; - const LineBreakResult start = LineBreakResult.sameIndex(0, LineBreakType.prohibited); - const LineBreakResult end = LineBreakResult.sameIndex(text.length, LineBreakType.endOfText); - const LineBreakResult loremMiddle = LineBreakResult.sameIndex(3, LineBreakType.prohibited); - const LineBreakResult loremEnd = LineBreakResult.sameIndex(5, LineBreakType.prohibited); - const LineBreakResult twelveStart = LineBreakResult(6, 6, 5, LineBreakType.opportunity); - const LineBreakResult twelveEnd = LineBreakResult.sameIndex(8, LineBreakType.prohibited); - const LineBreakResult rtl1Start = LineBreakResult(9, 9, 8, LineBreakType.opportunity); - const LineBreakResult rtl1End = LineBreakResult.sameIndex(14, LineBreakType.prohibited); - const LineBreakResult ipsumStart = LineBreakResult(17, 17, 15, LineBreakType.opportunity); - const LineBreakResult ipsumEnd = LineBreakResult.sameIndex(22, LineBreakType.prohibited); - - DirectionalPosition blockEnd; - - blockEnd = getDirectionalBlockEnd(text, start, end); - expect(blockEnd.isSpaceOnly, isFalse); - expect(blockEnd.textDirection, TextDirection.ltr); - expect(blockEnd.lineBreak, loremEnd); - - blockEnd = getDirectionalBlockEnd(text, start, loremMiddle); - expect(blockEnd.isSpaceOnly, isFalse); - expect(blockEnd.textDirection, TextDirection.ltr); - expect(blockEnd.lineBreak, loremMiddle); - - blockEnd = getDirectionalBlockEnd(text, loremMiddle, loremEnd); - expect(blockEnd.isSpaceOnly, isFalse); - expect(blockEnd.textDirection, TextDirection.ltr); - expect(blockEnd.lineBreak, loremEnd); - - blockEnd = getDirectionalBlockEnd(text, loremEnd, twelveStart); - expect(blockEnd.isSpaceOnly, isTrue); - expect(blockEnd.textDirection, isNull); - expect(blockEnd.lineBreak, twelveStart); - - blockEnd = getDirectionalBlockEnd(text, twelveStart, rtl1Start); - expect(blockEnd.isSpaceOnly, isFalse); - expect(blockEnd.textDirection, isNull); - expect(blockEnd.lineBreak, twelveEnd); - - blockEnd = getDirectionalBlockEnd(text, rtl1Start, end); - expect(blockEnd.isSpaceOnly, isFalse); - expect(blockEnd.textDirection, TextDirection.rtl); - expect(blockEnd.lineBreak, rtl1End); - - blockEnd = getDirectionalBlockEnd(text, ipsumStart, end); - expect(blockEnd.isSpaceOnly, isFalse); - expect(blockEnd.textDirection, TextDirection.ltr); - expect(blockEnd.lineBreak, ipsumEnd); - - blockEnd = getDirectionalBlockEnd(text, ipsumEnd, end); - expect(blockEnd.isSpaceOnly, isFalse); - expect(blockEnd.textDirection, isNull); - expect(blockEnd.lineBreak, end); + expect(split('Lorem 11 $rtlWord1 22 ipsum'), <_Bidi>[ + _Bidi('Lorem', ltr, ffLtr), + _Bidi(' ', null, ffSandwich), + _Bidi('11', ltr, ffPrevious), + _Bidi(' ', null, ffSandwich), + _Bidi(rtlWord1, rtl, ffRtl), + _Bidi(' ', null, ffSandwich), + _Bidi('22', ltr, ffPrevious), + _Bidi(' ', null, ffSandwich), + _Bidi('ipsum', ltr, ffLtr), + ]); + }); + + test('text and digits', () { + expect(split('Lorem11 ${rtlWord1}22 33ipsum44dolor ${rtlWord2}55$rtlWord1'), <_Bidi>[ + _Bidi('Lorem11', ltr, ffLtr), + _Bidi(' ', null, ffSandwich), + _Bidi(rtlWord1, rtl, ffRtl), + _Bidi('22', ltr, ffPrevious), + _Bidi(' ', null, ffSandwich), + _Bidi('33ipsum44dolor', ltr, ffLtr), + _Bidi(' ', null, ffSandwich), + _Bidi(rtlWord2, rtl, ffRtl), + _Bidi('55', ltr, ffPrevious), + _Bidi(rtlWord1, rtl, ffRtl), + ]); + }); + + test('Mashriqi digits', () { + expect(split('foo ١١ ٢٢ bar'), <_Bidi>[ + _Bidi('foo', ltr, ffLtr), + _Bidi(' ', null, ffSandwich), + _Bidi('١١', ltr, ffRtl), + _Bidi(' ', null, ffSandwich), + _Bidi('٢٢', ltr, ffRtl), + _Bidi(' ', null, ffSandwich), + _Bidi('bar', ltr, ffLtr), + ]); + + expect(split('$rtlWord1 ١١ ٢٢ $rtlWord2'), <_Bidi>[ + _Bidi(rtlWord1, rtl, ffRtl), + _Bidi(' ', null, ffSandwich), + _Bidi('١١', ltr, ffRtl), + _Bidi(' ', null, ffSandwich), + _Bidi('٢٢', ltr, ffRtl), + _Bidi(' ', null, ffSandwich), + _Bidi(rtlWord2, rtl, ffRtl), + ]); + }); + + test('spaces', () { + expect(split(' '), <_Bidi>[ + _Bidi(' ', null, ffSandwich), + ]); + }); + + test('symbols', () { + expect(split('Calculate 2.2 + 4.5 and write the result'), <_Bidi>[ + _Bidi('Calculate', ltr, ffLtr), + _Bidi(' ', null, ffSandwich), + _Bidi('2', ltr, ffPrevious), + _Bidi('.', null, ffSandwich), + _Bidi('2', ltr, ffPrevious), + _Bidi(' + ', null, ffSandwich), + _Bidi('4', ltr, ffPrevious), + _Bidi('.', null, ffSandwich), + _Bidi('5', ltr, ffPrevious), + _Bidi(' ', null, ffSandwich), + _Bidi('and', ltr, ffLtr), + _Bidi(' ', null, ffSandwich), + _Bidi('write', ltr, ffLtr), + _Bidi(' ', null, ffSandwich), + _Bidi('the', ltr, ffLtr), + _Bidi(' ', null, ffSandwich), + _Bidi('result', ltr, ffLtr), + ]); + + expect(split('Calculate $rtlWord1 2.2 + 4.5 and write the result'), <_Bidi>[ + _Bidi('Calculate', ltr, ffLtr), + _Bidi(' ', null, ffSandwich), + _Bidi(rtlWord1, rtl, ffRtl), + _Bidi(' ', null, ffSandwich), + _Bidi('2', ltr, ffPrevious), + _Bidi('.', null, ffSandwich), + _Bidi('2', ltr, ffPrevious), + _Bidi(' + ', null, ffSandwich), + _Bidi('4', ltr, ffPrevious), + _Bidi('.', null, ffSandwich), + _Bidi('5', ltr, ffPrevious), + _Bidi(' ', null, ffSandwich), + _Bidi('and', ltr, ffLtr), + _Bidi(' ', null, ffSandwich), + _Bidi('write', ltr, ffLtr), + _Bidi(' ', null, ffSandwich), + _Bidi('the', ltr, ffLtr), + _Bidi(' ', null, ffSandwich), + _Bidi('result', ltr, ffLtr), + ]); + + expect(split('12 + 24 = 36'), <_Bidi>[ + _Bidi('12', ltr, ffPrevious), + _Bidi(' + ', null, ffSandwich), + _Bidi('24', ltr, ffPrevious), + _Bidi(' = ', null, ffSandwich), + _Bidi('36', ltr, ffPrevious), + ]); }); test('handles new lines', () { - const String text = 'Lorem\n12\nipsum \n'; - const LineBreakResult start = LineBreakResult.sameIndex(0, LineBreakType.prohibited); - const LineBreakResult end = LineBreakResult( - text.length, - text.length - 1, - text.length - 3, - LineBreakType.mandatory, - ); - const LineBreakResult loremEnd = LineBreakResult.sameIndex(5, LineBreakType.prohibited); - const LineBreakResult twelveStart = LineBreakResult(6, 5, 5, LineBreakType.mandatory); - const LineBreakResult twelveEnd = LineBreakResult.sameIndex(8, LineBreakType.prohibited); - const LineBreakResult ipsumStart = LineBreakResult(9, 8, 8, LineBreakType.mandatory); - const LineBreakResult ipsumEnd = LineBreakResult.sameIndex(14, LineBreakType.prohibited); - - DirectionalPosition blockEnd; - - blockEnd = getDirectionalBlockEnd(text, start, twelveStart); - expect(blockEnd.isSpaceOnly, isFalse); - expect(blockEnd.textDirection, TextDirection.ltr); - expect(blockEnd.lineBreak, twelveStart); - - blockEnd = getDirectionalBlockEnd(text, loremEnd, twelveStart); - expect(blockEnd.isSpaceOnly, isTrue); - expect(blockEnd.textDirection, isNull); - expect(blockEnd.lineBreak, twelveStart); - - blockEnd = getDirectionalBlockEnd(text, twelveStart, ipsumStart); - expect(blockEnd.isSpaceOnly, isFalse); - expect(blockEnd.textDirection, isNull); - expect(blockEnd.lineBreak, ipsumStart); - - blockEnd = getDirectionalBlockEnd(text, twelveEnd, ipsumStart); - expect(blockEnd.isSpaceOnly, isTrue); - expect(blockEnd.textDirection, isNull); - expect(blockEnd.lineBreak, ipsumStart); - - blockEnd = getDirectionalBlockEnd(text, ipsumStart, end); - expect(blockEnd.isSpaceOnly, isFalse); - expect(blockEnd.textDirection, TextDirection.ltr); - expect(blockEnd.lineBreak, ipsumEnd); - - blockEnd = getDirectionalBlockEnd(text, ipsumEnd, end); - expect(blockEnd.isSpaceOnly, isTrue); - expect(blockEnd.textDirection, isNull); - expect(blockEnd.lineBreak, end); + expect(split('Lorem\n12\nipsum \n'), <_Bidi>[ + _Bidi('Lorem', ltr, ffLtr), + _Bidi('\n', null, ffSandwich), + _Bidi('12', ltr, ffPrevious), + _Bidi('\n', null, ffSandwich), + _Bidi('ipsum', ltr, ffLtr), + _Bidi(' \n', null, ffSandwich), + ]); + + expect(split('$rtlWord1\n $rtlWord2 \n'), <_Bidi>[ + _Bidi(rtlWord1, rtl, ffRtl), + _Bidi('\n ', null, ffSandwich), + _Bidi(rtlWord2, rtl, ffRtl), + _Bidi(' \n', null, ffSandwich), + ]); + }); + + test('surrogates', () { + expect(split('A\u{1F600}'), <_Bidi>[ + _Bidi('A', ltr, ffLtr), + _Bidi('\u{1F600}', null, ffSandwich), + ]); }); }); } + +/// Holds information about how a bidi region was split from a string. +class _Bidi { + _Bidi(this.text, this.textDirection, this.fragmentFlow); + + factory _Bidi.fromBidiFragment(String text, BidiFragment bidiFragment) { + return _Bidi( + text.substring(bidiFragment.start, bidiFragment.end), + bidiFragment.textDirection, + bidiFragment.fragmentFlow, + ); + } + + final String text; + final TextDirection? textDirection; + final FragmentFlow fragmentFlow; + + @override + int get hashCode => Object.hash(text, textDirection); + + @override + bool operator ==(Object other) { + return other is _Bidi && + other.text == text && + other.textDirection == textDirection && + other.fragmentFlow == fragmentFlow; + } + + @override + String toString() { + return '"$text" ($textDirection | $fragmentFlow)'; + } +} + +List<_Bidi> split(String text) { + return <_Bidi>[ + for (final BidiFragment bidiFragment in BidiFragmenter(text).fragment()) + _Bidi.fromBidiFragment(text, bidiFragment) + ]; +} diff --git a/lib/web_ui/test/text_editing_test.dart b/lib/web_ui/test/text_editing_test.dart index bc9b9ae4edca7..bec9f34108ec6 100644 --- a/lib/web_ui/test/text_editing_test.dart +++ b/lib/web_ui/test/text_editing_test.dart @@ -1557,8 +1557,8 @@ Future testMain() async { 'text': 'something', 'selectionBase': 9, 'selectionExtent': 9, - 'composingBase': null, - 'composingExtent': null + 'composingBase': -1, + 'composingExtent': -1 } ], ); @@ -1583,8 +1583,8 @@ Future testMain() async { 'text': 'something', 'selectionBase': 2, 'selectionExtent': 5, - 'composingBase': null, - 'composingExtent': null + 'composingBase': -1, + 'composingExtent': -1 } ], ); @@ -1641,8 +1641,8 @@ Future testMain() async { 'deltaEnd': -1, 'selectionBase': 2, 'selectionExtent': 5, - 'composingBase': null, - 'composingExtent': null + 'composingBase': -1, + 'composingExtent': -1 } ], } @@ -1724,8 +1724,8 @@ Future testMain() async { 'text': 'something', 'selectionBase': 9, 'selectionExtent': 9, - 'composingBase': null, - 'composingExtent': null + 'composingBase': -1, + 'composingExtent': -1 } }, ], @@ -1796,8 +1796,8 @@ Future testMain() async { 'text': 'something\nelse', 'selectionBase': 14, 'selectionExtent': 14, - 'composingBase': null, - 'composingExtent': null + 'composingBase': -1, + 'composingExtent': -1 } ], ); @@ -1812,8 +1812,8 @@ Future testMain() async { 'text': 'something\nelse', 'selectionBase': 2, 'selectionExtent': 5, - 'composingBase': null, - 'composingExtent': null + 'composingBase': -1, + 'composingExtent': -1 } ], ); @@ -2231,6 +2231,34 @@ Future testMain() async { ); }); + test('Sets default composing offsets if none given', () { + final EditingState editingState = + EditingState(text: 'Test', baseOffset: 2, extentOffset: 4); + final EditingState editingStateFromFrameworkMsg = + EditingState.fromFrameworkMessage({ + 'selectionBase': 10, + 'selectionExtent': 4, + }); + + expect(editingState.composingBaseOffset, -1); + expect(editingState.composingExtentOffset, -1); + + expect(editingStateFromFrameworkMsg.composingBaseOffset, -1); + expect(editingStateFromFrameworkMsg.composingExtentOffset, -1); + }); + + test('Correctly identifies min and max offsets', () { + final EditingState flippedEditingState = + EditingState(baseOffset: 10, extentOffset: 4); + final EditingState normalEditingState = + EditingState(baseOffset: 2, extentOffset: 6); + + expect(flippedEditingState.minOffset, 4); + expect(flippedEditingState.maxOffset, 10); + expect(normalEditingState.minOffset, 2); + expect(normalEditingState.maxOffset, 6); + }); + test('Configure input element from the editing state', () { final DomHTMLInputElement input = defaultTextEditingRoot.querySelector('input')! as DomHTMLInputElement; @@ -2264,6 +2292,20 @@ Future testMain() async { expect(textArea.selectionEnd, 2); }); + test('Configure input element editing state for a flipped base and extent', + () { + final DomHTMLInputElement input = + defaultTextEditingRoot.querySelector('input')! as DomHTMLInputElement; + editingState = + EditingState(text: 'Hello World', baseOffset: 10, extentOffset: 2); + + editingState.applyToDomElement(input); + + expect(input.value, 'Hello World'); + expect(input.selectionStart, 2); + expect(input.selectionEnd, 10); + }); + test('Get Editing State from input element', () { final DomHTMLInputElement input = defaultTextEditingRoot.querySelector('input')! as DomHTMLInputElement; @@ -2318,6 +2360,17 @@ Future testMain() async { expect(editingState1 != editingState3, isTrue); }); + test('Takes flipped base and extent offsets into account', () { + final EditingState flippedEditingState = + EditingState(baseOffset: 10, extentOffset: 4); + final EditingState normalEditingState = + EditingState(baseOffset: 4, extentOffset: 10); + + expect(normalEditingState, flippedEditingState); + + expect(normalEditingState == flippedEditingState, isTrue); + }); + test('takes composition range into account', () { final EditingState editingState1 = EditingState(composingBaseOffset: 1, composingExtentOffset: 2); final EditingState editingState2 = EditingState(composingBaseOffset: 1, composingExtentOffset: 2); @@ -2349,10 +2402,18 @@ Future testMain() async { expect(textEditingDeltaState.composingExtent, -1); }); - test('Verify correct delta is inferred - deletion', () { + test('Verify correct delta is inferred - Backward deletion - Empty selection', () { final EditingState newEditState = EditingState(text: 'worl', baseOffset: 4, extentOffset: 4); final EditingState lastEditState = EditingState(text: 'world', baseOffset: 5, extentOffset: 5); - final TextEditingDeltaState deltaState = TextEditingDeltaState(oldText: 'world', deltaStart: 4, deltaEnd: 5, baseOffset: -1, extentOffset: -1, composingOffset: -1, composingExtent: -1); + // `deltaState.deltaEnd` is initialized accordingly to what is done in `DefaultTextEditingStrategy.handleBeforeInput` + final TextEditingDeltaState deltaState = TextEditingDeltaState( + oldText: 'world', + deltaEnd: 5, + baseOffset: -1, + extentOffset: -1, + composingOffset: -1, + composingExtent: -1, + ); final TextEditingDeltaState textEditingDeltaState = TextEditingDeltaState.inferDeltaState(newEditState, lastEditState, deltaState); @@ -2366,6 +2427,56 @@ Future testMain() async { expect(textEditingDeltaState.composingExtent, -1); }); + test('Verify correct delta is inferred - Forward deletion - Empty selection', () { + final EditingState newEditState = EditingState(text: 'worl', baseOffset: 4, extentOffset: 4); + final EditingState lastEditState = EditingState(text: 'world', baseOffset: 4, extentOffset: 4); + // `deltaState.deltaEnd` is initialized accordingly to what is done in `DefaultTextEditingStrategy.handleBeforeInput` + final TextEditingDeltaState deltaState = TextEditingDeltaState( + oldText: 'world', + deltaEnd: 4, + baseOffset: -1, + extentOffset: -1, + composingOffset: -1, + composingExtent: -1, + ); + + final TextEditingDeltaState textEditingDeltaState = TextEditingDeltaState.inferDeltaState(newEditState, lastEditState, deltaState); + + expect(textEditingDeltaState.oldText, 'world'); + expect(textEditingDeltaState.deltaText, ''); + expect(textEditingDeltaState.deltaStart, 4); + expect(textEditingDeltaState.deltaEnd, 5); + expect(textEditingDeltaState.baseOffset, 4); + expect(textEditingDeltaState.extentOffset, 4); + expect(textEditingDeltaState.composingOffset, -1); + expect(textEditingDeltaState.composingExtent, -1); + }); + + test('Verify correct delta is inferred - Deletion - Non-empty selection', () { + final EditingState newEditState = EditingState(text: 'w', baseOffset: 1, extentOffset: 1); + final EditingState lastEditState = EditingState(text: 'world', baseOffset: 1, extentOffset: 5); + // `deltaState.deltaEnd` is initialized accordingly to what is done in `DefaultTextEditingStrategy.handleBeforeInput` + final TextEditingDeltaState deltaState = TextEditingDeltaState( + oldText: 'world', + deltaEnd: 5, + baseOffset: -1, + extentOffset: -1, + composingOffset: -1, + composingExtent: -1, + ); + + final TextEditingDeltaState textEditingDeltaState = TextEditingDeltaState.inferDeltaState(newEditState, lastEditState, deltaState); + + expect(textEditingDeltaState.oldText, 'world'); + expect(textEditingDeltaState.deltaText, ''); + expect(textEditingDeltaState.deltaStart, 1); + expect(textEditingDeltaState.deltaEnd, 5); + expect(textEditingDeltaState.baseOffset, 1); + expect(textEditingDeltaState.extentOffset, 1); + expect(textEditingDeltaState.composingOffset, -1); + expect(textEditingDeltaState.composingExtent, -1); + }); + test('Verify correct delta is inferred - composing region replacement', () { final EditingState newEditState = EditingState(text: '你好吗', baseOffset: 3, extentOffset: 3); final EditingState lastEditState = EditingState(text: 'ni hao ma', baseOffset: 9, extentOffset: 9); @@ -2417,6 +2528,36 @@ Future testMain() async { expect(textEditingDeltaState.composingExtent, -1); }); }); + + group('text editing styles', () { + test('invisible element', () { + editingStrategy!.enable( + singlelineConfig, + onChange: trackEditingState, + onAction: trackInputAction, + ); + + final DomHTMLElement input = editingStrategy!.activeDomElement; + expect(input.style.color, 'transparent'); + expect(input.style.background, 'transparent'); + expect(input.style.backgroundColor, 'transparent'); + expect(input.style.caretColor, 'transparent'); + expect(input.style.outline, 'none'); + expect(input.style.border, 'none'); + expect(input.style.textShadow, 'none'); + }); + + test('prevents effect of (forced-colors: active)', () { + editingStrategy!.enable( + singlelineConfig, + onChange: trackEditingState, + onAction: trackInputAction, + ); + + final DomHTMLElement input = editingStrategy!.activeDomElement; + expect(input.style.getPropertyValue('forced-color-adjust'), 'none'); + }); + }); } DomKeyboardEvent dispatchKeyboardEvent( diff --git a/lib/web_ui/test/ui/README.md b/lib/web_ui/test/ui/README.md new file mode 100644 index 0000000000000..acd49655295e0 --- /dev/null +++ b/lib/web_ui/test/ui/README.md @@ -0,0 +1,12 @@ +# UI Tests + +These tests are intended to be renderer-agnostic. These tests should not use +APIs which only exist in either the HTML or CanvasKit renderers. + +In practice, this means these tests should only use `dart:ui` APIs or +`dart:_engine` APIs which are not renderer-specific. + +## Notes + +These tests should call `setUpUiTest()` at the top level to initialize the +renderer they are expected to run. diff --git a/lib/web_ui/test/color_test.dart b/lib/web_ui/test/ui/color_test.dart similarity index 99% rename from lib/web_ui/test/color_test.dart rename to lib/web_ui/test/ui/color_test.dart index 96f5cc5395b45..83190e5c3d6ce 100644 --- a/lib/web_ui/test/color_test.dart +++ b/lib/web_ui/test/ui/color_test.dart @@ -6,6 +6,8 @@ import 'package:test/bootstrap/browser.dart'; import 'package:test/test.dart'; import 'package:ui/ui.dart'; +import 'utils.dart'; + void main() { internalBootstrapBrowserTest(() => testMain); } @@ -15,6 +17,8 @@ class NotAColor extends Color { } void testMain() { + setUpUiTest(); + test('color accessors should work', () { const Color foo = Color(0x12345678); expect(foo.alpha, equals(0x12)); diff --git a/lib/web_ui/test/ui/path_test.dart b/lib/web_ui/test/ui/path_test.dart new file mode 100644 index 0000000000000..444e591612154 --- /dev/null +++ b/lib/web_ui/test/ui/path_test.dart @@ -0,0 +1,241 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import 'dart:typed_data' show Float64List; + +import 'package:test/bootstrap/browser.dart'; +import 'package:test/test.dart'; +import 'package:ui/ui.dart'; + +import 'utils.dart'; + +void main() { + internalBootstrapBrowserTest(() => testMain); +} + +void testMain() { + setUpUiTest(); + test('path getBounds', () { + const Rect r = Rect.fromLTRB(1.0, 3.0, 5.0, 7.0); + final Path p = Path()..addRect(r); + expect(p.getBounds(), equals(r)); + p.lineTo(20.0, 15.0); + expect(p.getBounds(), equals(const Rect.fromLTRB(1.0, 3.0, 20.0, 15.0))); + }); + + test('path combine rect', () { + final Rect c1 = Rect.fromCircle(center: const Offset(10.0, 10.0), radius: 10.0); + final Rect c2 = Rect.fromCircle(center: const Offset(5.0, 5.0), radius: 10.0); + final Rect c1UnionC2 = c1.expandToInclude(c2); + final Rect c1IntersectC2 = c1.intersect(c2); + final Path pathCircle1 = Path()..addRect(c1); + final Path pathCircle2 = Path()..addRect(c2); + + final Path difference = Path.combine(PathOperation.difference, pathCircle1, pathCircle2); + expect(difference.getBounds(), equals(c1)); + + final Path reverseDifference = Path.combine(PathOperation.reverseDifference, pathCircle1, pathCircle2); + expect(reverseDifference.getBounds(), equals(c2)); + + final Path union = Path.combine(PathOperation.union, pathCircle1, pathCircle2); + expect(union.getBounds(), equals(c1UnionC2)); + + final Path intersect = Path.combine(PathOperation.intersect, pathCircle1, pathCircle2); + expect(intersect.getBounds(), equals(c1IntersectC2)); + + // the bounds on this will be the same as union - but would draw a missing inside piece. + final Path xor = Path.combine(PathOperation.xor, pathCircle1, pathCircle2); + expect(xor.getBounds(), equals(c1UnionC2)); + // TODO(hterkelsen): Implement Path.combine in the HTML renderer, https://github.com/flutter/flutter/issues/44572 + }, skip: isHtml); + + test('path combine oval', () { + final Rect c1 = Rect.fromCircle(center: const Offset(10.0, 10.0), radius: 10.0); + final Rect c2 = Rect.fromCircle(center: const Offset(5.0, 5.0), radius: 10.0); + final Rect c1UnionC2 = c1.expandToInclude(c2); + final Rect c1IntersectC2 = c1.intersect(c2); + final Path pathCircle1 = Path()..addOval(c1); + final Path pathCircle2 = Path()..addOval(c2); + + final Path difference = Path.combine(PathOperation.difference, pathCircle1, pathCircle2); + + expect(difference.getBounds().top, closeTo(0.88, 0.01)); + + final Path reverseDifference = Path.combine(PathOperation.reverseDifference, pathCircle1, pathCircle2); + expect(reverseDifference.getBounds().right, closeTo(14.11, 0.01)); + + final Path union = Path.combine(PathOperation.union, pathCircle1, pathCircle2); + expect(union.getBounds(), equals(c1UnionC2)); + + final Path intersect = Path.combine(PathOperation.intersect, pathCircle1, pathCircle2); + expect(intersect.getBounds(), equals(c1IntersectC2)); + + // the bounds on this will be the same as union - but would draw a missing inside piece. + final Path xor = Path.combine(PathOperation.xor, pathCircle1, pathCircle2); + expect(xor.getBounds(), equals(c1UnionC2)); + // TODO(hterkelsen): Implement Path.combine in the HTML renderer, https://github.com/flutter/flutter/issues/44572 + }, skip: isHtml); + + test('path clone', () { + final Path p1 = Path()..lineTo(20.0, 20.0); + final Path p2 = Path.from(p1); + + expect(p1.getBounds(), equals(p2.getBounds())); + + p1.lineTo(10.0, 30.0); + expect(p1.getBounds().bottom, equals(p2.getBounds().bottom + 10)); + }); + + test('shift tests', () { + const Rect bounds = Rect.fromLTRB(0.0, 0.0, 10.0, 10.0); + final Path p = Path()..addRect(bounds); + expect(p.getBounds(), equals(bounds)); + final Path shifted = p.shift(const Offset(10, 10)); + expect(shifted.getBounds(), equals(const Rect.fromLTRB(10, 10, 20, 20))); + }); + + test('transformation tests', () { + const Rect bounds = Rect.fromLTRB(0.0, 0.0, 10.0, 10.0); + final Path p = Path()..addRect(bounds); + final Float64List scaleMatrix = Float64List.fromList([ + 2.5, 0.0, 0.0, 0.0, // first col + 0.0, 0.5, 0.0, 0.0, // second col + 0.0, 0.0, 1.0, 0.0, // third col + 0.0, 0.0, 0.0, 1.0, // fourth col + ]); + + expect(p.getBounds(), equals(bounds)); + final Path pTransformed = p.transform(scaleMatrix); + + expect(pTransformed.getBounds(), + equals(const Rect.fromLTRB(0.0, 0.0, 10 * 2.5, 10 * 0.5))); + + final Path p2 = Path()..lineTo(10.0, 10.0); + + p.addPath(p2, const Offset(10.0, 10.0)); + expect(p.getBounds(), equals(const Rect.fromLTRB(0.0, 0.0, 20.0, 20.0))); + + p.addPath(p2, const Offset(20.0, 20.0), matrix4: scaleMatrix); + expect(p.getBounds(), + equals(const Rect.fromLTRB(0.0, 0.0, 20 + (10 * 2.5), 20 + (10 * .5)))); + + p.extendWithPath(p2, Offset.zero); + expect(p.getBounds(), equals(const Rect.fromLTRB(0.0, 0.0, 45.0, 25.0))); + + p.extendWithPath(p2, const Offset(45.0, 25.0), matrix4: scaleMatrix); + expect(p.getBounds(), equals(const Rect.fromLTRB(0.0, 0.0, 70.0, 30.0))); + }); + + test('path metrics tests', () { + final Path simpleHorizontalLine = Path()..lineTo(10.0, 0.0); + + // basic tests on horizontal line + final PathMetrics simpleHorizontalMetrics = simpleHorizontalLine.computeMetrics(); + expect(() => simpleHorizontalMetrics.iterator.current, throwsRangeError); + expect(simpleHorizontalMetrics.iterator.moveNext(), isTrue); + expect(simpleHorizontalMetrics.iterator.current, isNotNull); + expect(simpleHorizontalMetrics.iterator.current.length, equals(10.0)); + expect(simpleHorizontalMetrics.iterator.current.isClosed, isFalse); + final Path simpleExtract = simpleHorizontalMetrics.iterator.current.extractPath(1.0, 9.0); + expect(simpleExtract.getBounds(), equals(const Rect.fromLTRB(1.0, 0.0, 9.0, 0.0))); + final Tangent posTan = simpleHorizontalMetrics.iterator.current.getTangentForOffset(1.0)!; + expect(posTan.position, equals(const Offset(1.0, 0.0))); + expect(posTan.angle, equals(0.0)); + + expect(simpleHorizontalMetrics.iterator.moveNext(), isFalse); + expect(() => simpleHorizontalMetrics.iterator.current, throwsRangeError); + + // test with forceClosed + final PathMetrics simpleMetricsClosed = simpleHorizontalLine.computeMetrics(forceClosed: true); + expect(() => simpleHorizontalMetrics.iterator.current, throwsRangeError); + expect(simpleMetricsClosed.iterator.moveNext(), isTrue); + expect(simpleMetricsClosed.iterator.current, isNotNull); + expect(simpleMetricsClosed.iterator.current.length, equals(20.0)); // because we forced close + expect(simpleMetricsClosed.iterator.current.isClosed, isTrue); + final Path simpleExtract2 = simpleMetricsClosed.iterator.current.extractPath(1.0, 9.0); + expect(simpleExtract2.getBounds(), equals(const Rect.fromLTRB(1.0, 0.0, 9.0, 0.0))); + expect(simpleMetricsClosed.iterator.moveNext(), isFalse); + + // test getTangentForOffset with vertical line + final Path simpleVerticalLine = Path()..lineTo(0.0, 10.0); + final PathMetrics simpleMetricsVertical = simpleVerticalLine.computeMetrics()..iterator.moveNext(); + final Tangent posTanVertical = simpleMetricsVertical.iterator.current.getTangentForOffset(5.0)!; + expect(posTanVertical.position, equals(const Offset(0.0, 5.0))); + expect(posTanVertical.angle, closeTo(-1.5708, .0001)); // 90 degrees + + // test getTangentForOffset with diagonal line + final Path simpleDiagonalLine = Path()..lineTo(10.0, 10.0); + final PathMetrics simpleMetricsDiagonal = simpleDiagonalLine.computeMetrics()..iterator.moveNext(); + final double midPoint = simpleMetricsDiagonal.iterator.current.length / 2; + final Tangent posTanDiagonal = simpleMetricsDiagonal.iterator.current.getTangentForOffset(midPoint)!; + expect(posTanDiagonal.position, equals(const Offset(5.0, 5.0))); + expect(posTanDiagonal.angle, closeTo(-0.7853981633974483, .00001)); // ~45 degrees + + // test a multi-contour path + final Path multiContour = Path() + ..lineTo(0.0, 10.0) + ..moveTo(10.0, 10.0) + ..lineTo(10.0, 15.0); + + final PathMetrics multiContourMetric = multiContour.computeMetrics(); + expect(() => multiContourMetric.iterator.current, throwsRangeError); + expect(multiContourMetric.iterator.moveNext(), isTrue); + expect(multiContourMetric.iterator.current, isNotNull); + expect(multiContourMetric.iterator.current.length, equals(10.0)); + expect(multiContourMetric.iterator.moveNext(), isTrue); + expect(multiContourMetric.iterator.current, isNotNull); + expect(multiContourMetric.iterator.current.length, equals(5.0)); + expect(multiContourMetric.iterator.moveNext(), isFalse); + expect(() => multiContourMetric.iterator.current, throwsRangeError); + // TODO(hterkelsen): forceClosed in computeMetrics is ignored in the HTML renderer, https://github.com/flutter/flutter/issues/114446 + }, skip: isHtml); + + test('PathMetrics can remember lengths and isClosed', () { + final Path path = Path()..lineTo(0, 10) + ..close() + ..moveTo(0, 15) + ..lineTo(10, 15); + final List metrics = path.computeMetrics().toList(); + expect(metrics.length, 2); + expect(metrics[0].length, 20); + expect(metrics[0].isClosed, true); + expect(metrics[0].getTangentForOffset(4.0)!.vector, const Offset(0.0, 1.0)); + expect(metrics[0].extractPath(4.0, 10.0).computeMetrics().first.length, 6.0); + expect(metrics[1].length, 10); + expect(metrics[1].isClosed, false); + expect(metrics[1].getTangentForOffset(4.0)!.vector, const Offset(1.0, 0.0)); + expect(metrics[1].extractPath(4.0, 6.0).computeMetrics().first.length, 2.0); + // TODO(hterkelsen): isClosed always returns false in the HTML renderer, https://github.com/flutter/flutter/issues/114446 + }, skip: isHtml); + + test('PathMetrics on a mutated path', () { + final Path path = Path()..lineTo(0, 10); + final PathMetrics metrics = path.computeMetrics(); + final PathMetric firstMetric = metrics.first; + // We've consumed the iterator. + expect(metrics, isEmpty); + expect(firstMetric.length, 10); + expect(firstMetric.isClosed, false); + expect(firstMetric.getTangentForOffset(4.0)!.vector, const Offset(0.0, 1.0)); + expect(firstMetric.extractPath(4.0, 10.0).computeMetrics().first.length, 6.0); + + path..lineTo(10, 10)..lineTo(10, 0)..close(); + // mutating the path shouldn't have added anything to the iterator. + expect(metrics, isEmpty); + expect(firstMetric.length, 10); + expect(firstMetric.isClosed, false); + expect(firstMetric.getTangentForOffset(4.0)!.vector, const Offset(0.0, 1.0)); + expect(firstMetric.extractPath(4.0, 10.0).computeMetrics().first.length, 6.0); + + // getting a new iterator should update us. + final PathMetrics newMetrics = path.computeMetrics(); + final PathMetric newFirstMetric = newMetrics.first; + expect(newMetrics, isEmpty); + expect(newFirstMetric.length, 40); + expect(newFirstMetric.isClosed, true); + expect(newFirstMetric.getTangentForOffset(4.0)!.vector, const Offset(0.0, 1.0)); + expect(newFirstMetric.extractPath(4.0, 10.0).computeMetrics().first.length, 6.0); + // TODO(hterkelsen): isClosed always returns false in the HTML renderer, https://github.com/flutter/flutter/issues/114446 + }, skip: isHtml); +} diff --git a/lib/web_ui/test/rect_test.dart b/lib/web_ui/test/ui/rect_test.dart similarity index 98% rename from lib/web_ui/test/rect_test.dart rename to lib/web_ui/test/ui/rect_test.dart index 3899e4ffe4390..156b6fc84363b 100644 --- a/lib/web_ui/test/rect_test.dart +++ b/lib/web_ui/test/ui/rect_test.dart @@ -6,11 +6,14 @@ import 'package:test/bootstrap/browser.dart'; import 'package:test/test.dart'; import 'package:ui/ui.dart'; +import 'utils.dart'; + void main() { internalBootstrapBrowserTest(() => testMain); } void testMain() { + setUpUiTest(); test('rect accessors', () { const Rect r = Rect.fromLTRB(1.0, 3.0, 5.0, 7.0); expect(r.left, equals(1.0)); diff --git a/lib/web_ui/test/rrect_test.dart b/lib/web_ui/test/ui/rrect_test.dart similarity index 99% rename from lib/web_ui/test/rrect_test.dart rename to lib/web_ui/test/ui/rrect_test.dart index 08a1a35842886..bdf84f1cc17a6 100644 --- a/lib/web_ui/test/rrect_test.dart +++ b/lib/web_ui/test/ui/rrect_test.dart @@ -6,11 +6,14 @@ import 'package:test/bootstrap/browser.dart'; import 'package:test/test.dart' hide TypeMatcher, isInstanceOf; import 'package:ui/ui.dart'; +import 'utils.dart'; + void main() { internalBootstrapBrowserTest(() => testMain); } void testMain() { + setUpUiTest(); test('RRect.contains()', () { final RRect rrect = RRect.fromRectAndCorners( const Rect.fromLTRB(1.0, 1.0, 2.0, 2.0), diff --git a/lib/web_ui/test/title_test.dart b/lib/web_ui/test/ui/title_test.dart similarity index 98% rename from lib/web_ui/test/title_test.dart rename to lib/web_ui/test/ui/title_test.dart index f80556598f5cb..c7caa806f5363 100644 --- a/lib/web_ui/test/title_test.dart +++ b/lib/web_ui/test/ui/title_test.dart @@ -7,11 +7,15 @@ import 'package:test/test.dart'; import 'package:ui/src/engine.dart'; import 'package:ui/ui.dart' as ui; +import 'utils.dart'; + void main() { internalBootstrapBrowserTest(() => testMain); } void testMain() { + setUpUiTest(); + const MethodCodec codec = JSONMethodCodec(); group('Title', () { diff --git a/lib/web_ui/test/ui/utils.dart b/lib/web_ui/test/ui/utils.dart new file mode 100644 index 0000000000000..da6c5ffb720d7 --- /dev/null +++ b/lib/web_ui/test/ui/utils.dart @@ -0,0 +1,20 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import 'package:ui/src/engine.dart'; + +import '../canvaskit/common.dart'; + +/// Initializes the renderer for this test. +void setUpUiTest() { + if (renderer is CanvasKitRenderer) { + setUpCanvasKitTest(); + } +} + +/// Returns [true] if this test is running in the CanvasKit renderer. +bool get isCanvasKit => renderer is CanvasKitRenderer; + +/// Returns [true] if this test is running in the HTML renderer. +bool get isHtml => renderer is HtmlRenderer; diff --git a/runtime/fixtures/dart_tool/flutter_build/dart_plugin_registrant.dart b/runtime/fixtures/dart_tool/flutter_build/dart_plugin_registrant.dart index 1622a892b5a4d..11beca884b1ee 100644 --- a/runtime/fixtures/dart_tool/flutter_build/dart_plugin_registrant.dart +++ b/runtime/fixtures/dart_tool/flutter_build/dart_plugin_registrant.dart @@ -6,7 +6,8 @@ import 'dart:isolate'; import 'dart:ui'; import 'dart:io' show Platform; -void passMessage(String message) native 'PassMessage'; +@pragma('vm:external-name', 'PassMessage') +external void passMessage(String message); bool didCallRegistrantBeforeEntrypoint = false; diff --git a/runtime/fixtures/no_dart_plugin_registrant_test.dart b/runtime/fixtures/no_dart_plugin_registrant_test.dart index b4fb5c59eb0fc..b5dff395d1f6a 100644 --- a/runtime/fixtures/no_dart_plugin_registrant_test.dart +++ b/runtime/fixtures/no_dart_plugin_registrant_test.dart @@ -2,7 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -void passMessage(String message) native 'PassMessage'; +@pragma('vm:external-name', 'PassMessage') +external void passMessage(String message); void main() { passMessage('main() was called'); diff --git a/runtime/fixtures/runtime_test.dart b/runtime/fixtures/runtime_test.dart index 7dd46823f53eb..013083fb2e32e 100644 --- a/runtime/fixtures/runtime_test.dart +++ b/runtime/fixtures/runtime_test.dart @@ -44,13 +44,16 @@ void canCallDeferredLibrary() { notifyNative(); } -void notifyNative() native 'NotifyNative'; +@pragma('vm:external-name', 'NotifyNative') +external void notifyNative(); @pragma('vm:entry-point') void testIsolateShutdown() { } -void notifyResult(bool success) native 'NotifyNative'; -void passMessage(String message) native 'PassMessage'; +@pragma('vm:external-name', 'NotifyNative') +external void notifyResult(bool success); +@pragma('vm:external-name', 'PassMessage') +external void passMessage(String message); void secondaryIsolateMain(String message) { print('Secondary isolate got message: ' + message); @@ -112,7 +115,8 @@ void testIsolateStartupFailure() async { // test in an isolate. Isolate.spawn(mainTest, null); } -void makeNextIsolateSpawnFail() native 'MakeNextIsolateSpawnFail'; +@pragma('vm:external-name', 'MakeNextIsolateSpawnFail') +external void makeNextIsolateSpawnFail(); @pragma('vm:entry-point') void testCanReceiveArguments(List args) { @@ -124,7 +128,8 @@ void trampoline() { notifyNative(); } -void notifySuccess(bool success) native 'NotifySuccess'; +@pragma('vm:external-name', 'NotifySuccess') +external void notifySuccess(bool success); @pragma('vm:entry-point') void testCanConvertEmptyList(List args){ diff --git a/runtime/runtime_controller.cc b/runtime/runtime_controller.cc index 9c95a586f7a6b..933b5abe84671 100644 --- a/runtime/runtime_controller.cc +++ b/runtime/runtime_controller.cc @@ -55,13 +55,14 @@ std::unique_ptr RuntimeController::Spawn( fml::WeakPtr io_manager, fml::WeakPtr image_decoder, fml::WeakPtr image_generator_registry, - fml::WeakPtr snapshot_delegate) const { + fml::TaskRunnerAffineWeakPtr snapshot_delegate) const { UIDartState::Context spawned_context{ context_.task_runners, std::move(snapshot_delegate), std::move(io_manager), context_.unref_queue, std::move(image_decoder), std::move(image_generator_registry), std::move(advisory_script_uri), std::move(advisory_script_entrypoint), - context_.volatile_path_tracker, context_.enable_impeller}; + context_.volatile_path_tracker, context_.concurrent_task_runner, + context_.enable_impeller}; auto result = std::make_unique(p_client, // vm_, // @@ -454,7 +455,8 @@ void RuntimeController::LoadDartDeferredLibrary( void RuntimeController::LoadDartDeferredLibraryError( intptr_t loading_unit_id, - const std::string error_message, + const std::string + error_message, // NOLINT(performance-unnecessary-value-param) bool transient) { root_isolate_.lock()->LoadLoadingUnitError(loading_unit_id, error_message, transient); diff --git a/runtime/runtime_controller.h b/runtime/runtime_controller.h index 590635c30f84a..20b0d17c4c649 100644 --- a/runtime/runtime_controller.h +++ b/runtime/runtime_controller.h @@ -107,7 +107,7 @@ class RuntimeController : public PlatformConfigurationClient { fml::WeakPtr io_manager, fml::WeakPtr image_decoder, fml::WeakPtr image_generator_registry, - fml::WeakPtr snapshot_delegate) const; + fml::TaskRunnerAffineWeakPtr snapshot_delegate) const; // |PlatformConfigurationClient| ~RuntimeController() override; @@ -554,7 +554,8 @@ class RuntimeController : public PlatformConfigurationClient { return context_.unref_queue; } - const fml::WeakPtr& GetSnapshotDelegate() const { + const fml::TaskRunnerAffineWeakPtr& GetSnapshotDelegate() + const { return context_.snapshot_delegate; } diff --git a/shell/common/BUILD.gn b/shell/common/BUILD.gn index 3d6b73ec587e2..7fa0c1b23ae70 100644 --- a/shell/common/BUILD.gn +++ b/shell/common/BUILD.gn @@ -264,7 +264,10 @@ if (enable_unittests) { "shell_test_platform_view_vulkan.h", ] - public_deps += [ "//flutter/vulkan" ] + public_deps += [ + "//flutter/flutter_vma:flutter_skia_vma", + "//flutter/vulkan", + ] } if (test_enable_metal) { @@ -293,6 +296,7 @@ if (enable_unittests) { "shell_unittests.cc", "switches_unittests.cc", "variable_refresh_rate_display_unittests.cc", + "vsync_waiter_unittests.cc", ] deps = [ diff --git a/shell/common/animator.cc b/shell/common/animator.cc index dacf8fad50d6b..6468f0f45f627 100644 --- a/shell/common/animator.cc +++ b/shell/common/animator.cc @@ -104,10 +104,6 @@ void Animator::BeginFrame( // We have acquired a valid continuation from the pipeline and are ready // to service potential frame. FML_DCHECK(producer_continuation_); - fml::tracing::TraceEventAsyncComplete( - "flutter", "VsyncSchedulingOverhead", - frame_timings_recorder_->GetVsyncStartTime(), - frame_timings_recorder_->GetBuildStartTime()); const fml::TimePoint frame_target_time = frame_timings_recorder_->GetVsyncTargetTime(); dart_frame_deadline_ = FxlToDartOrEarlier(frame_target_time); @@ -195,6 +191,10 @@ bool Animator::CanReuseLastLayerTree() { void Animator::DrawLastLayerTree( std::unique_ptr frame_timings_recorder) { + // This method is very cheap, but this makes it explicitly clear in trace + // files. + TRACE_EVENT0("flutter", "Animator::DrawLastLayerTree"); + pending_frame_semaphore_.Signal(); // In this case BeginFrame doesn't get called, we need to // adjust frame timings to update build start and end times, @@ -208,6 +208,12 @@ void Animator::DrawLastLayerTree( void Animator::RequestFrame(bool regenerate_layer_tree) { if (regenerate_layer_tree) { + // This event will be closed by BeginFrame. BeginFrame will only be called + // if regenerating the layer tree. If a frame has been requested to update + // an external texture, this will be false and no BeginFrame call will + // happen. + TRACE_EVENT_ASYNC_BEGIN0("flutter", "Frame Request Pending", + frame_request_number_); regenerate_layer_tree_ = true; } @@ -225,13 +231,10 @@ void Animator::RequestFrame(bool regenerate_layer_tree) { // To support that, we need edge triggered wakes on VSync. task_runners_.GetUITaskRunner()->PostTask( - [self = weak_factory_.GetWeakPtr(), - frame_request_number = frame_request_number_]() { + [self = weak_factory_.GetWeakPtr()]() { if (!self) { return; } - TRACE_EVENT_ASYNC_BEGIN0("flutter", "Frame Request Pending", - frame_request_number); self->AwaitVSync(); }); frame_scheduled_ = true; diff --git a/shell/common/engine.cc b/shell/common/engine.cc index b80d866dbf21e..8f19bdc9e0402 100644 --- a/shell/common/engine.cc +++ b/shell/common/engine.cc @@ -70,7 +70,7 @@ Engine::Engine(Delegate& delegate, std::unique_ptr animator, fml::WeakPtr io_manager, fml::RefPtr unref_queue, - fml::WeakPtr snapshot_delegate, + fml::TaskRunnerAffineWeakPtr snapshot_delegate, std::shared_ptr volatile_path_tracker) : Engine(delegate, dispatcher_maker, @@ -100,6 +100,7 @@ Engine::Engine(Delegate& delegate, settings_.advisory_script_uri, // advisory script uri settings_.advisory_script_entrypoint, // advisory script entrypoint std::move(volatile_path_tracker), // volatile path tracker + vm.GetConcurrentWorkerTaskRunner(), // concurrent task runner settings_.enable_impeller, // enable impeller }); } @@ -111,7 +112,7 @@ std::unique_ptr Engine::Spawn( std::unique_ptr animator, const std::string& initial_route, const fml::WeakPtr& io_manager, - fml::WeakPtr snapshot_delegate) const { + fml::TaskRunnerAffineWeakPtr snapshot_delegate) const { auto result = std::make_unique( /*delegate=*/delegate, /*dispatcher_maker=*/dispatcher_maker, diff --git a/shell/common/engine.h b/shell/common/engine.h index 5d05048c8d2e3..62f09fd79fbde 100644 --- a/shell/common/engine.h +++ b/shell/common/engine.h @@ -363,7 +363,7 @@ class Engine final : public RuntimeDelegate, PointerDataDispatcher::Delegate { std::unique_ptr animator, fml::WeakPtr io_manager, fml::RefPtr unref_queue, - fml::WeakPtr snapshot_delegate, + fml::TaskRunnerAffineWeakPtr snapshot_delegate, std::shared_ptr volatile_path_tracker); //---------------------------------------------------------------------------- @@ -382,7 +382,7 @@ class Engine final : public RuntimeDelegate, PointerDataDispatcher::Delegate { std::unique_ptr animator, const std::string& initial_route, const fml::WeakPtr& io_manager, - fml::WeakPtr snapshot_delegate) const; + fml::TaskRunnerAffineWeakPtr snapshot_delegate) const; //---------------------------------------------------------------------------- /// @brief Destroys the engine engine. Called by the shell on the UI task diff --git a/shell/common/engine_unittests.cc b/shell/common/engine_unittests.cc index 046775e8ef46f..a5f8e4f4c6353 100644 --- a/shell/common/engine_unittests.cc +++ b/shell/common/engine_unittests.cc @@ -146,7 +146,7 @@ class EngineTest : public testing::FixtureTest { fml::WeakPtr io_manager_; std::unique_ptr runtime_controller_; std::shared_ptr image_decoder_task_runner_; - fml::WeakPtr snapshot_delegate_; + fml::TaskRunnerAffineWeakPtr snapshot_delegate_; }; } // namespace diff --git a/shell/common/fixtures/shell_test.dart b/shell/common/fixtures/shell_test.dart index cd56b95362010..d722eefb8d12b 100644 --- a/shell/common/fixtures/shell_test.dart +++ b/shell/common/fixtures/shell_test.dart @@ -9,9 +9,12 @@ import 'dart:ui'; void main() {} -void nativeReportTimingsCallback(List timings) native 'NativeReportTimingsCallback'; -void nativeOnBeginFrame(int microseconds) native 'NativeOnBeginFrame'; -void nativeOnPointerDataPacket(List sequences) native 'NativeOnPointerDataPacket'; +@pragma('vm:external-name', 'NativeReportTimingsCallback') +external void nativeReportTimingsCallback(List timings); +@pragma('vm:external-name', 'NativeOnBeginFrame') +external void nativeOnBeginFrame(int microseconds); +@pragma('vm:external-name', 'NativeOnPointerDataPacket') +external void nativeOnPointerDataPacket(List sequences); @pragma('vm:entry-point') void onErrorA() { @@ -33,8 +36,10 @@ void onErrorB() { throw Exception('I should be coming from B'); } -void notifyErrorA(String message) native 'NotifyErrorA'; -void notifyErrorB(String message) native 'NotifyErrorB'; +@pragma('vm:external-name', 'NotifyErrorA') +external void notifyErrorA(String message); +@pragma('vm:external-name', 'NotifyErrorB') +external void notifyErrorB(String message); @pragma('vm:entry-point') void drawFrames() { @@ -105,7 +110,8 @@ void reportMetrics() { }; } -void _reportMetrics(double devicePixelRatio, double width, double height) native 'ReportMetrics'; +@pragma('vm:external-name', 'ReportMetrics') +external void _reportMetrics(double devicePixelRatio, double width, double height); @pragma('vm:entry-point') void dummyReportTimingsMain() { @@ -117,10 +123,12 @@ void fixturesAreFunctionalMain() { sayHiFromFixturesAreFunctionalMain(); } -void sayHiFromFixturesAreFunctionalMain() native 'SayHiFromFixturesAreFunctionalMain'; +@pragma('vm:external-name', 'SayHiFromFixturesAreFunctionalMain') +external void sayHiFromFixturesAreFunctionalMain(); @pragma('vm:entry-point') -void notifyNative() native 'NotifyNative'; +@pragma('vm:external-name', 'NotifyNative') +external void notifyNative(); @pragma('vm:entry-point') void thousandCallsToNative() { @@ -164,7 +172,8 @@ void testSkiaResourceCacheSendsResponse() { ); } -void notifyWidthHeight(int width, int height) native 'NotifyWidthHeight'; +@pragma('vm:external-name', 'NotifyWidthHeight') +external void notifyWidthHeight(int width, int height); @pragma('vm:entry-point') void canCreateImageFromDecompressedData() { @@ -195,15 +204,18 @@ void canAccessIsolateLaunchData() { ); } -void notifyMessage(String string) native 'NotifyMessage'; +@pragma('vm:external-name', 'NotifyMessage') +external void notifyMessage(String string); @pragma('vm:entry-point') void canConvertMappings() { sendFixtureMapping(getFixtureMapping()); } -List getFixtureMapping() native 'GetFixtureMapping'; -void sendFixtureMapping(List list) native 'SendFixtureMapping'; +@pragma('vm:external-name', 'GetFixtureMapping') +external List getFixtureMapping(); +@pragma('vm:external-name', 'SendFixtureMapping') +external void sendFixtureMapping(List list); @pragma('vm:entry-point') void canDecompressImageFromAsset() { @@ -215,7 +227,8 @@ void canDecompressImageFromAsset() { ); } -List getFixtureImage() native 'GetFixtureImage'; +@pragma('vm:external-name', 'GetFixtureImage') +external List getFixtureImage(); @pragma('vm:entry-point') void canRegisterImageDecoders() { @@ -228,9 +241,11 @@ void canRegisterImageDecoders() { ); } -void notifyLocalTime(String string) native 'NotifyLocalTime'; +@pragma('vm:external-name', 'NotifyLocalTime') +external void notifyLocalTime(String string); -bool waitFixture() native 'WaitFixture'; +@pragma('vm:external-name', 'WaitFixture') +external bool waitFixture(); // Return local date-time as a string, to an hour resolution. So, "2020-07-23 // 14:03:22" will become "2020-07-23 14". @@ -255,9 +270,11 @@ void timezonesChange() { } while (waitFixture()); } -void notifyCanAccessResource(bool success) native 'NotifyCanAccessResource'; +@pragma('vm:external-name', 'NotifyCanAccessResource') +external void notifyCanAccessResource(bool success); -void notifySetAssetBundlePath() native 'NotifySetAssetBundlePath'; +@pragma('vm:external-name', 'NotifySetAssetBundlePath') +external void notifySetAssetBundlePath(); @pragma('vm:entry-point') void canAccessResourceFromAssetDir() async { @@ -271,9 +288,11 @@ void canAccessResourceFromAssetDir() async { ); } -void notifyNativeWhenEngineRun(bool success) native 'NotifyNativeWhenEngineRun'; +@pragma('vm:external-name', 'NotifyNativeWhenEngineRun') +external void notifyNativeWhenEngineRun(bool success); -void notifyNativeWhenEngineSpawn(bool success) native 'NotifyNativeWhenEngineSpawn'; +@pragma('vm:external-name', 'NotifyNativeWhenEngineSpawn') +external void notifyNativeWhenEngineSpawn(bool success); @pragma('vm:entry-point') void canReceiveArgumentsWhenEngineRun(List args) { @@ -395,7 +414,8 @@ Future runCallback(IsolateParam param) async { } @pragma('vm:entry-point') -void notifyNativeBool(bool value) native 'NotifyNativeBool'; +@pragma('vm:external-name', 'NotifyNativeBool') +external void notifyNativeBool(bool value); @pragma('vm:entry-point') Future testPluginUtilitiesCallbackHandle() async { diff --git a/shell/common/pipeline.h b/shell/common/pipeline.h index f9546d0816125..e8b17768cba2f 100644 --- a/shell/common/pipeline.h +++ b/shell/common/pipeline.h @@ -102,7 +102,7 @@ class Pipeline { }; explicit Pipeline(uint32_t depth) - : depth_(depth), empty_(depth), available_(0), inflight_(0) {} + : empty_(depth), available_(0), inflight_(0) {} ~Pipeline() = default; @@ -180,7 +180,6 @@ class Pipeline { } private: - const uint32_t depth_; fml::Semaphore empty_; fml::Semaphore available_; std::atomic inflight_; diff --git a/shell/common/platform_view.cc b/shell/common/platform_view.cc index 51c98dc3af809..ce2b22009f821 100644 --- a/shell/common/platform_view.cc +++ b/shell/common/platform_view.cc @@ -107,8 +107,10 @@ fml::WeakPtr PlatformView::GetWeakPtr() const { return weak_factory_.GetWeakPtr(); } -void PlatformView::UpdateSemantics(SemanticsNodeUpdates update, - CustomAccessibilityActionUpdates actions) {} +void PlatformView::UpdateSemantics( + SemanticsNodeUpdates update, // NOLINT(performance-unnecessary-value-param) + // NOLINTNEXTLINE(performance-unnecessary-value-param) + CustomAccessibilityActionUpdates actions) {} void PlatformView::HandlePlatformMessage( std::unique_ptr message) { @@ -169,9 +171,11 @@ void PlatformView::LoadDartDeferredLibrary( std::unique_ptr snapshot_data, std::unique_ptr snapshot_instructions) {} -void PlatformView::LoadDartDeferredLibraryError(intptr_t loading_unit_id, - const std::string error_message, - bool transient) {} +void PlatformView::LoadDartDeferredLibraryError( + intptr_t loading_unit_id, + const std::string + error_message, // NOLINT(performance-unnecessary-value-param) + bool transient) {} void PlatformView::UpdateAssetResolverByType( std::unique_ptr updated_asset_resolver, diff --git a/shell/common/rasterizer.cc b/shell/common/rasterizer.cc index 7f66f93ff8830..8cd610c9edb18 100644 --- a/shell/common/rasterizer.cc +++ b/shell/common/rasterizer.cc @@ -488,6 +488,9 @@ RasterStatus Rasterizer::DrawToSurface( RasterStatus Rasterizer::DrawToSurfaceUnsafe( FrameTimingsRecorder& frame_timings_recorder, flutter::LayerTree& layer_tree) { + // Always gets the first surface, #0. After Flutter supports multi-view, it + // should get the surface ID from layer_tree. + uint64_t surface_id = 0; FML_DCHECK(surface_); compositor_context_->ui_time().SetLapTime( @@ -528,9 +531,10 @@ RasterStatus Rasterizer::DrawToSurfaceUnsafe( root_surface_transformation, // root surface transformation true, // instrumentation enabled frame->framebuffer_info() - .supports_readback, // surface supports pixel reads - raster_thread_merger_, // thread merger - frame->GetDisplayListBuilder().get() // display list builder + .supports_readback, // surface supports pixel reads + raster_thread_merger_, // thread merger + frame->GetDisplayListBuilder().get(), // display list builder + surface_->GetAiksContext() // aiks context ); if (compositor_frame) { compositor_context_->raster_cache().BeginFrame(); @@ -594,7 +598,7 @@ RasterStatus Rasterizer::DrawToSurfaceUnsafe( if (external_view_embedder_ && (!raster_thread_merger_ || raster_thread_merger_->IsMerged())) { FML_DCHECK(!frame->IsSubmitted()); - external_view_embedder_->SubmitFrame(surface_->GetContext(), + external_view_embedder_->SubmitFrame(surface_->GetContext(), surface_id, std::move(frame)); } else { frame->Submit(); @@ -630,7 +634,7 @@ static sk_sp ScreenshotLayerTreeAsPicture( // https://github.com/flutter/flutter/issues/23435 auto frame = compositor_context.AcquireFrame( nullptr, recorder.getRecordingCanvas(), nullptr, - root_surface_transformation, false, true, nullptr, nullptr); + root_surface_transformation, false, true, nullptr, nullptr, nullptr); frame->Raster(*tree, true, nullptr); #if defined(OS_FUCHSIA) @@ -686,7 +690,8 @@ sk_sp Rasterizer::ScreenshotLayerTreeAsImage( false, // instrumentation enabled true, // render buffer readback supported nullptr, // thread merger - nullptr // display list builder + nullptr, // display list builder + nullptr // aiks context ); canvas->clear(SK_ColorTRANSPARENT); frame->Raster(*tree, true, nullptr); diff --git a/shell/common/rasterizer_unittests.cc b/shell/common/rasterizer_unittests.cc index a6f7ab7159e5d..1daa29a2cfe9f 100644 --- a/shell/common/rasterizer_unittests.cc +++ b/shell/common/rasterizer_unittests.cc @@ -69,8 +69,9 @@ class MockExternalViewEmbedder : public ExternalViewEmbedder { MOCK_METHOD0(GetCurrentCanvases, std::vector()); MOCK_METHOD0(GetCurrentBuilders, std::vector()); MOCK_METHOD1(CompositeEmbeddedView, EmbedderPaintContext(int view_id)); - MOCK_METHOD2(SubmitFrame, + MOCK_METHOD3(SubmitFrame, void(GrDirectContext* context, + uint64_t frame_view_id, std::unique_ptr frame)); MOCK_METHOD2(EndFrame, void(bool should_resubmit_frame, diff --git a/shell/common/shell.cc b/shell/common/shell.cc index fd4cc9003fa0c..20ca64b8578e9 100644 --- a/shell/common/shell.cc +++ b/shell/common/shell.cc @@ -53,7 +53,7 @@ std::unique_ptr CreateEngine( std::unique_ptr animator, const fml::WeakPtr& io_manager, const fml::RefPtr& unref_queue, - const fml::WeakPtr& snapshot_delegate, + const fml::TaskRunnerAffineWeakPtr& snapshot_delegate, const std::shared_ptr& volatile_path_tracker) { return std::make_unique(delegate, // dispatcher_maker, // @@ -189,7 +189,8 @@ std::unique_ptr Shell::CreateShellOnPlatformThread( // Create the rasterizer on the raster thread. std::promise> rasterizer_promise; auto rasterizer_future = rasterizer_promise.get_future(); - std::promise> snapshot_delegate_promise; + std::promise> + snapshot_delegate_promise; auto snapshot_delegate_future = snapshot_delegate_promise.get_future(); fml::TaskRunner::RunNowOrPostTask( task_runners.GetRasterTaskRunner(), [&rasterizer_promise, // @@ -533,7 +534,7 @@ std::unique_ptr Shell::Spawn( const Settings& settings, std::unique_ptr animator, const fml::WeakPtr& io_manager, const fml::RefPtr& unref_queue, - fml::WeakPtr snapshot_delegate, + fml::TaskRunnerAffineWeakPtr snapshot_delegate, const std::shared_ptr& volatile_path_tracker) { return engine->Spawn( /*delegate=*/delegate, diff --git a/shell/common/shell.h b/shell/common/shell.h index c92df4cd32388..79581ce480762 100644 --- a/shell/common/shell.h +++ b/shell/common/shell.h @@ -125,7 +125,7 @@ class Shell final : public PlatformView::Delegate, std::unique_ptr animator, fml::WeakPtr io_manager, fml::RefPtr unref_queue, - fml::WeakPtr snapshot_delegate, + fml::TaskRunnerAffineWeakPtr snapshot_delegate, std::shared_ptr volatile_path_tracker)> EngineCreateCallback; diff --git a/shell/common/shell_test_external_view_embedder.cc b/shell/common/shell_test_external_view_embedder.cc index 789ebc22d72b8..1a876657b2683 100644 --- a/shell/common/shell_test_external_view_embedder.cc +++ b/shell/common/shell_test_external_view_embedder.cc @@ -89,10 +89,11 @@ void ShellTestExternalViewEmbedder::PushVisitedPlatformView(int64_t view_id) { // |ExternalViewEmbedder| void ShellTestExternalViewEmbedder::PushFilterToVisitedPlatformViews( - std::shared_ptr filter) { + std::shared_ptr filter, + const SkRect& filter_rect) { for (int64_t id : visited_platform_views_) { EmbeddedViewParams params = current_composition_params_[id]; - params.PushImageFilter(filter); + params.PushImageFilter(filter, filter_rect); current_composition_params_[id] = params; mutators_stacks_[id] = params.mutatorsStack(); } @@ -106,6 +107,7 @@ EmbedderPaintContext ShellTestExternalViewEmbedder::CompositeEmbeddedView( // |ExternalViewEmbedder| void ShellTestExternalViewEmbedder::SubmitFrame( GrDirectContext* context, + uint64_t frame_view_id, std::unique_ptr frame) { if (!frame) { return; diff --git a/shell/common/shell_test_external_view_embedder.h b/shell/common/shell_test_external_view_embedder.h index 583a09182e5fc..b5020dc8e89b0 100644 --- a/shell/common/shell_test_external_view_embedder.h +++ b/shell/common/shell_test_external_view_embedder.h @@ -76,10 +76,12 @@ class ShellTestExternalViewEmbedder final : public ExternalViewEmbedder { // |ExternalViewEmbedder| void PushFilterToVisitedPlatformViews( - std::shared_ptr filter) override; + std::shared_ptr filter, + const SkRect& filter_rect) override; // |ExternalViewEmbedder| void SubmitFrame(GrDirectContext* context, + uint64_t frame_view_id, std::unique_ptr frame) override; // |ExternalViewEmbedder| diff --git a/shell/common/shell_test_platform_view_metal.mm b/shell/common/shell_test_platform_view_metal.mm index 42794260749d1..814e67e6f3933 100644 --- a/shell/common/shell_test_platform_view_metal.mm +++ b/shell/common/shell_test_platform_view_metal.mm @@ -10,7 +10,7 @@ #include "flutter/fml/platform/darwin/scoped_nsobject.h" #include "flutter/shell/gpu/gpu_surface_metal_skia.h" -#include "flutter/shell/platform/darwin/graphics/FlutterDarwinContextMetal.h" +#include "flutter/shell/platform/darwin/graphics/FlutterDarwinContextMetalSkia.h" namespace flutter { namespace testing { @@ -30,12 +30,12 @@ class DarwinContextMetal { public: DarwinContextMetal() - : context_([[FlutterDarwinContextMetal alloc] initWithDefaultMTLDevice]), + : context_([[FlutterDarwinContextMetalSkia alloc] initWithDefaultMTLDevice]), offscreen_texture_(CreateOffscreenTexture([context_.get() device])) {} ~DarwinContextMetal() = default; - fml::scoped_nsobject context() const { return context_; } + fml::scoped_nsobject context() const { return context_; } fml::scoped_nsprotocol> offscreen_texture() const { return offscreen_texture_; } @@ -47,7 +47,7 @@ GPUMTLTextureInfo offscreen_texture_info() const { } private: - const fml::scoped_nsobject context_; + const fml::scoped_nsobject context_; const fml::scoped_nsprotocol> offscreen_texture_; FML_DISALLOW_COPY_AND_ASSIGN(DarwinContextMetal); diff --git a/shell/common/shell_test_platform_view_vulkan.cc b/shell/common/shell_test_platform_view_vulkan.cc index eb70a26bcc6eb..fa3267ef731da 100644 --- a/shell/common/shell_test_platform_view_vulkan.cc +++ b/shell/common/shell_test_platform_view_vulkan.cc @@ -7,7 +7,9 @@ #include #include "flutter/common/graphics/persistent_cache.h" +#include "flutter/flutter_vma/flutter_skia_vma.h" #include "flutter/shell/common/context_options.h" +#include "flutter/vulkan/vulkan_skia_proc_table.h" #include "flutter/vulkan/vulkan_utilities.h" #if OS_FUCHSIA @@ -111,6 +113,11 @@ ShellTestPlatformViewVulkan::OffScreenSurface::OffScreenSurface( return; } + memory_allocator_ = FlutterSkiaVulkanMemoryAllocator::Make( + application_->GetAPIVersion(), application_->GetInstance(), + logical_device_->GetPhysicalDeviceHandle(), logical_device_->GetHandle(), + vk_, true); + // Create the Skia GrContext. if (!CreateSkiaGrContext()) { FML_DLOG(ERROR) << "Could not create Skia context."; @@ -148,7 +155,7 @@ bool ShellTestPlatformViewVulkan::OffScreenSurface::CreateSkiaGrContext() { bool ShellTestPlatformViewVulkan::OffScreenSurface::CreateSkiaBackendContext( GrVkBackendContext* context) { - auto getProc = vk_->CreateSkiaGetProc(); + auto getProc = CreateSkiaGetProc(vk_); if (getProc == nullptr) { FML_DLOG(ERROR) << "GetProcAddress is null"; @@ -171,6 +178,8 @@ bool ShellTestPlatformViewVulkan::OffScreenSurface::CreateSkiaBackendContext( context->fFeatures = skia_features; context->fGetProc = std::move(getProc); context->fOwnsInstanceAndDevice = false; + context->fMemoryAllocator = memory_allocator_; + return true; } diff --git a/shell/common/shell_test_platform_view_vulkan.h b/shell/common/shell_test_platform_view_vulkan.h index 724fe455639fc..718f7fe6dec06 100644 --- a/shell/common/shell_test_platform_view_vulkan.h +++ b/shell/common/shell_test_platform_view_vulkan.h @@ -10,6 +10,7 @@ #include "flutter/shell/gpu/gpu_surface_vulkan_delegate.h" #include "flutter/vulkan/vulkan_application.h" #include "flutter/vulkan/vulkan_device.h" +#include "flutter/vulkan/vulkan_skia_proc_table.h" namespace flutter { namespace testing { @@ -54,6 +55,7 @@ class ShellTestPlatformViewVulkan : public ShellTestPlatformView { shell_test_external_view_embedder_; std::unique_ptr application_; std::unique_ptr logical_device_; + sk_sp memory_allocator_; sk_sp context_; bool CreateSkiaGrContext(); diff --git a/shell/common/shell_unittests.cc b/shell/common/shell_unittests.cc index 1780a9b7d53e0..fe89e63ae5678 100644 --- a/shell/common/shell_unittests.cc +++ b/shell/common/shell_unittests.cc @@ -37,6 +37,7 @@ #include "flutter/testing/testing.h" #include "gmock/gmock.h" #include "third_party/rapidjson/include/rapidjson/writer.h" +#include "third_party/skia/include/codec/SkCodecAnimation.h" #include "third_party/skia/include/core/SkPictureRecorder.h" #include "third_party/tonic/converter/dart_converter.h" @@ -844,7 +845,7 @@ TEST_F(ShellTest, PushBackdropFilterToVisitedPlatformViews) { auto filter = DlBlurImageFilter(5, 5, DlTileMode::kClamp); auto mutator = *external_view_embedder->GetStack(50).Begin(); ASSERT_EQ(mutator->GetType(), MutatorType::kBackdropFilter); - ASSERT_EQ(mutator->GetFilter(), filter); + ASSERT_EQ(mutator->GetFilterMutation().GetFilter(), filter); DestroyShell(std::move(shell)); } @@ -1850,12 +1851,10 @@ class MockTexture : public Texture { ~MockTexture() override = default; // Called from raster thread. - void Paint(SkCanvas& canvas, + void Paint(PaintContext& context, const SkRect& bounds, bool freeze, - GrDirectContext* context, - const SkSamplingOptions&, - const SkPaint* paint) override {} + const SkSamplingOptions&) override {} void OnGrContextCreated() override {} diff --git a/shell/common/snapshot_controller_impeller.cc b/shell/common/snapshot_controller_impeller.cc index c25875ab78e87..6e5d65b74769c 100644 --- a/shell/common/snapshot_controller_impeller.cc +++ b/shell/common/snapshot_controller_impeller.cc @@ -31,7 +31,7 @@ sk_sp SnapshotControllerImpeller::MakeRasterSnapshot( } sk_sp SnapshotControllerImpeller::DoMakeRasterSnapshot( - sk_sp display_list, + const sk_sp& display_list, SkISize size) { impeller::DisplayListDispatcher dispatcher; display_list->Dispatch(dispatcher); diff --git a/shell/common/snapshot_controller_impeller.h b/shell/common/snapshot_controller_impeller.h index 0f85a961e57cc..d9f1d632e3553 100644 --- a/shell/common/snapshot_controller_impeller.h +++ b/shell/common/snapshot_controller_impeller.h @@ -21,7 +21,7 @@ class SnapshotControllerImpeller : public SnapshotController { sk_sp ConvertToRasterImage(sk_sp image) override; private: - sk_sp DoMakeRasterSnapshot(sk_sp display_list, + sk_sp DoMakeRasterSnapshot(const sk_sp& display_list, SkISize size); FML_DISALLOW_COPY_AND_ASSIGN(SnapshotControllerImpeller); diff --git a/shell/common/snapshot_controller_skia.cc b/shell/common/snapshot_controller_skia.cc index f770e96999cd7..62b665cfb1a82 100644 --- a/shell/common/snapshot_controller_skia.cc +++ b/shell/common/snapshot_controller_skia.cc @@ -14,7 +14,7 @@ namespace flutter { namespace { sk_sp DrawSnapshot( - sk_sp surface, + const sk_sp& surface, const std::function& draw_callback) { if (surface == nullptr || surface->getCanvas() == nullptr) { return nullptr; diff --git a/shell/common/vsync_waiter.cc b/shell/common/vsync_waiter.cc index db9d5389f2758..cb6f377dfae7b 100644 --- a/shell/common/vsync_waiter.cc +++ b/shell/common/vsync_waiter.cc @@ -62,6 +62,7 @@ void VsyncWaiter::ScheduleSecondaryCallback(uintptr_t id, { std::scoped_lock lock(callback_mutex_); + bool secondary_callbacks_originally_empty = secondary_callbacks_.empty(); auto [_, inserted] = secondary_callbacks_.emplace(id, callback); if (!inserted) { // Multiple schedules must result in a single callback per frame interval. @@ -74,6 +75,11 @@ void VsyncWaiter::ScheduleSecondaryCallback(uintptr_t id, // `AsyncWaitForVsync`. return; } + if (!secondary_callbacks_originally_empty) { + // Return directly as `AwaitVSync` is already called by + // `ScheduleSecondaryCallback`. + return; + } } AwaitVSyncForSecondaryCallback(); } @@ -83,6 +89,17 @@ void VsyncWaiter::FireCallback(fml::TimePoint frame_start_time, bool pause_secondary_tasks) { FML_DCHECK(fml::TimePoint::Now() >= frame_start_time); + // The event named "VSYNC" is special in `chrome://tracing` tool - it will + // have a zebra visualization. + fml::tracing::TraceTimelineEvent( + "flutter", "VSYNC", frame_start_time.ToEpochDelta().ToMicroseconds(), 0, + Dart_Timeline_Event_Begin, {"frame_start_time", "frame_target_time"}, + {std::to_string(frame_start_time.ToEpochDelta().ToMicroseconds()), + std::to_string(frame_target_time.ToEpochDelta().ToMicroseconds())}); + fml::tracing::TraceTimelineEvent( + "flutter", "VSYNC", frame_target_time.ToEpochDelta().ToMicroseconds(), 0, + Dart_Timeline_Event_End, {}, {}); + Callback callback; std::vector secondary_callbacks; diff --git a/shell/common/vsync_waiter_fallback.cc b/shell/common/vsync_waiter_fallback.cc index 89c3fb0c805fc..467807c2ec4c2 100644 --- a/shell/common/vsync_waiter_fallback.cc +++ b/shell/common/vsync_waiter_fallback.cc @@ -35,7 +35,7 @@ VsyncWaiterFallback::~VsyncWaiterFallback() = default; // |VsyncWaiter| void VsyncWaiterFallback::AwaitVSync() { - TRACE_EVENT0("flutter", "VSYNC"); + TRACE_EVENT0("flutter", "VsyncCallback"); constexpr fml::TimeDelta kSingleFrameInterval = fml::TimeDelta::FromSecondsF(1.0 / 60.0); diff --git a/shell/common/vsync_waiter_unittests.cc b/shell/common/vsync_waiter_unittests.cc new file mode 100644 index 0000000000000..997f4a1f5756f --- /dev/null +++ b/shell/common/vsync_waiter_unittests.cc @@ -0,0 +1,47 @@ +#define FML_USED_ON_EMBEDDER + +#include + +#include "flutter/common/settings.h" +#include "flutter/common/task_runners.h" +#include "flutter/shell/common/switches.h" + +#include "gtest/gtest.h" +#include "thread_host.h" +#include "vsync_waiter.h" + +namespace flutter { +namespace testing { + +class TestVsyncWaiter : public VsyncWaiter { + public: + explicit TestVsyncWaiter(const TaskRunners& task_runners) + : VsyncWaiter(task_runners) {} + + int await_vsync_call_count_ = 0; + + protected: + void AwaitVSync() override { await_vsync_call_count_++; } +}; + +TEST(VsyncWaiterTest, NoUnneededAwaitVsync) { + using flutter::ThreadHost; + std::string prefix = "vsync_waiter_test"; + + fml::MessageLoop::EnsureInitializedForCurrentThread(); + auto task_runner = fml::MessageLoop::GetCurrent().GetTaskRunner(); + + const flutter::TaskRunners task_runners(prefix, task_runner, task_runner, + task_runner, task_runner); + + TestVsyncWaiter vsync_waiter(task_runners); + + vsync_waiter.ScheduleSecondaryCallback(1, [] {}); + EXPECT_EQ(vsync_waiter.await_vsync_call_count_, 1); + + vsync_waiter.ScheduleSecondaryCallback(2, [] {}); + EXPECT_EQ(vsync_waiter.await_vsync_call_count_, 1); +} + +} // namespace testing +} // namespace flutter diff --git a/shell/gpu/BUILD.gn b/shell/gpu/BUILD.gn index 7bbcbfbafa455..5e5c1cce53a6c 100644 --- a/shell/gpu/BUILD.gn +++ b/shell/gpu/BUILD.gn @@ -56,7 +56,17 @@ source_set("gpu_surface_vulkan") { public_deps = gpu_common_deps + [ "//flutter/shell/platform/embedder:embedder_headers", "//flutter/vulkan", + "//flutter/vulkan/procs", ] + + if (impeller_enable_vulkan) { + sources += [ + "gpu_surface_vulkan_impeller.cc", + "gpu_surface_vulkan_impeller.h", + ] + + public_deps += [ "//flutter/impeller" ] + } } source_set("gpu_surface_metal") { diff --git a/shell/gpu/gpu_surface_metal_impeller.h b/shell/gpu/gpu_surface_metal_impeller.h index 0363267ccec12..3fda202a63152 100644 --- a/shell/gpu/gpu_surface_metal_impeller.h +++ b/shell/gpu/gpu_surface_metal_impeller.h @@ -16,7 +16,7 @@ namespace flutter { class SK_API_AVAILABLE_CA_METAL_LAYER GPUSurfaceMetalImpeller : public Surface { public: GPUSurfaceMetalImpeller(GPUSurfaceMetalDelegate* delegate, - std::shared_ptr context); + const std::shared_ptr& context); // |Surface| ~GPUSurfaceMetalImpeller(); diff --git a/shell/gpu/gpu_surface_metal_impeller.mm b/shell/gpu/gpu_surface_metal_impeller.mm index 307a94a93e162..4f6da625d9521 100644 --- a/shell/gpu/gpu_surface_metal_impeller.mm +++ b/shell/gpu/gpu_surface_metal_impeller.mm @@ -27,7 +27,7 @@ } GPUSurfaceMetalImpeller::GPUSurfaceMetalImpeller(GPUSurfaceMetalDelegate* delegate, - std::shared_ptr context) + const std::shared_ptr& context) : delegate_(delegate), impeller_renderer_(CreateImpellerRenderer(context)), aiks_context_( diff --git a/shell/gpu/gpu_surface_vulkan_delegate.h b/shell/gpu/gpu_surface_vulkan_delegate.h index 023fe9261900b..2a95f0a613b51 100644 --- a/shell/gpu/gpu_surface_vulkan_delegate.h +++ b/shell/gpu/gpu_surface_vulkan_delegate.h @@ -7,9 +7,9 @@ #include "flutter/fml/memory/ref_ptr.h" #include "flutter/shell/platform/embedder/embedder.h" +#include "flutter/vulkan/procs/vulkan_proc_table.h" #include "flutter/vulkan/vulkan_device.h" #include "flutter/vulkan/vulkan_image.h" -#include "flutter/vulkan/vulkan_proc_table.h" #include "third_party/skia/include/core/SkSize.h" namespace flutter { diff --git a/shell/gpu/gpu_surface_vulkan_impeller.cc b/shell/gpu/gpu_surface_vulkan_impeller.cc new file mode 100644 index 0000000000000..6717c3f8b1c3f --- /dev/null +++ b/shell/gpu/gpu_surface_vulkan_impeller.cc @@ -0,0 +1,138 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "flutter/shell/gpu/gpu_surface_vulkan_impeller.h" + +#include "flutter/fml/make_copyable.h" +#include "flutter/impeller/display_list/display_list_dispatcher.h" +#include "flutter/impeller/renderer/renderer.h" +#include "impeller/renderer/backend/vulkan/context_vk.h" + +namespace flutter { + +GPUSurfaceVulkanImpeller::GPUSurfaceVulkanImpeller( + std::shared_ptr context) + : weak_factory_(this) { + if (!context || !context->IsValid()) { + return; + } + + auto renderer = std::make_shared(context); + if (!renderer->IsValid()) { + return; + } + + auto aiks_context = std::make_shared(context); + if (!aiks_context->IsValid()) { + return; + } + + impeller_context_ = std::move(context); + impeller_renderer_ = std::move(renderer); + aiks_context_ = std::move(aiks_context); + is_valid_ = true; +} + +// |Surface| +GPUSurfaceVulkanImpeller::~GPUSurfaceVulkanImpeller() = default; + +// |Surface| +bool GPUSurfaceVulkanImpeller::IsValid() { + return is_valid_; +} + +// |Surface| +std::unique_ptr GPUSurfaceVulkanImpeller::AcquireFrame( + const SkISize& size) { + if (!IsValid()) { + FML_LOG(ERROR) << "Vulkan surface was invalid."; + return nullptr; + } + + if (size.isEmpty()) { + FML_LOG(ERROR) << "Vulkan surface was asked for an empty frame."; + return nullptr; + } + + auto& context_vk = impeller::ContextVK::Cast(*impeller_context_); + std::unique_ptr surface = + context_vk.AcquireSurface(frame_num_++); + + auto swap_callback = [weak = weak_factory_.GetWeakPtr()]() -> bool { + if (weak) { + // TODO (kaushikiska@): Invoke the clean-up callback. + // Blocked by - https://github.com/flutter/flutter/issues/112387 + } + return true; + }; + + SurfaceFrame::SubmitCallback submit_callback = + fml::MakeCopyable([renderer = impeller_renderer_, // + aiks_context = aiks_context_, // + surface = std::move(surface) // + ](SurfaceFrame& surface_frame, SkCanvas* canvas) mutable -> bool { + if (!aiks_context) { + return false; + } + + auto display_list = surface_frame.BuildDisplayList(); + if (!display_list) { + FML_LOG(ERROR) << "Could not build display list for surface frame."; + return false; + } + + impeller::DisplayListDispatcher impeller_dispatcher; + display_list->Dispatch(impeller_dispatcher); + auto picture = impeller_dispatcher.EndRecordingAsPicture(); + + return renderer->Render( + std::move(surface), + fml::MakeCopyable( + [aiks_context, picture = std::move(picture)]( + impeller::RenderTarget& render_target) -> bool { + return aiks_context->Render(picture, render_target); + })); + }); + + return std::make_unique( + nullptr, // surface + SurfaceFrame::FramebufferInfo{}, // framebuffer info + submit_callback, // submit callback + size, // frame size + nullptr, // context result + true // display list fallback + ); +} + +// |Surface| +SkMatrix GPUSurfaceVulkanImpeller::GetRootTransformation() const { + // This backend does not currently support root surface transformations. Just + // return identity. + return {}; +} + +// |Surface| +GrDirectContext* GPUSurfaceVulkanImpeller::GetContext() { + // Impeller != Skia. + return nullptr; +} + +// |Surface| +std::unique_ptr +GPUSurfaceVulkanImpeller::MakeRenderContextCurrent() { + // This backend has no such concept. + return std::make_unique(true); +} + +// |Surface| +bool GPUSurfaceVulkanImpeller::EnableRasterCache() const { + return false; +} + +// |Surface| +impeller::AiksContext* GPUSurfaceVulkanImpeller::GetAiksContext() const { + return aiks_context_.get(); +} + +} // namespace flutter diff --git a/shell/gpu/gpu_surface_vulkan_impeller.h b/shell/gpu/gpu_surface_vulkan_impeller.h new file mode 100644 index 0000000000000..def6198620a06 --- /dev/null +++ b/shell/gpu/gpu_surface_vulkan_impeller.h @@ -0,0 +1,56 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#pragma once + +#include "flutter/common/graphics/gl_context_switch.h" +#include "flutter/flow/surface.h" +#include "flutter/fml/macros.h" +#include "flutter/fml/memory/weak_ptr.h" +#include "flutter/impeller/aiks/aiks_context.h" +#include "flutter/impeller/renderer/context.h" +#include "flutter/shell/gpu/gpu_surface_vulkan_delegate.h" + +namespace flutter { + +class GPUSurfaceVulkanImpeller final : public Surface { + public: + explicit GPUSurfaceVulkanImpeller(std::shared_ptr context); + + // |Surface| + ~GPUSurfaceVulkanImpeller() override; + + // |Surface| + bool IsValid() override; + + private: + std::shared_ptr impeller_context_; + std::shared_ptr impeller_renderer_; + std::shared_ptr aiks_context_; + bool is_valid_ = false; + uint64_t frame_num_ = 0; + fml::WeakPtrFactory weak_factory_; + + // |Surface| + std::unique_ptr AcquireFrame(const SkISize& size) override; + + // |Surface| + SkMatrix GetRootTransformation() const override; + + // |Surface| + GrDirectContext* GetContext() override; + + // |Surface| + std::unique_ptr MakeRenderContextCurrent() override; + + // |Surface| + bool EnableRasterCache() const override; + + // |Surface| + impeller::AiksContext* GetAiksContext() const override; + + FML_DISALLOW_COPY_AND_ASSIGN(GPUSurfaceVulkanImpeller); +}; + +} // namespace flutter diff --git a/shell/platform/android/BUILD.gn b/shell/platform/android/BUILD.gn index 3a91161dc23ee..d59de0d939715 100644 --- a/shell/platform/android/BUILD.gn +++ b/shell/platform/android/BUILD.gn @@ -13,7 +13,7 @@ import("//flutter/shell/version/version.gni") shell_gpu_configuration("android_gpu_configuration") { enable_software = true enable_gl = true - enable_vulkan = false + enable_vulkan = true enable_metal = false } @@ -85,6 +85,8 @@ source_set("flutter_shell_native_src") { "android_surface_gl_skia.h", "android_surface_software.cc", "android_surface_software.h", + "android_surface_vulkan_impeller.cc", + "android_surface_vulkan_impeller.h", "apk_asset_provider.cc", "apk_asset_provider.h", "flutter_main.cc", @@ -123,6 +125,7 @@ source_set("flutter_shell_native_src") { "//flutter/shell/platform/android/platform_view_android_delegate", "//flutter/shell/platform/android/surface", "//flutter/shell/platform/android/surface:native_window", + "//flutter/vulkan", "//third_party/skia", ] @@ -279,6 +282,7 @@ android_java_sources = [ "io/flutter/plugin/localization/LocalizationPlugin.java", "io/flutter/plugin/mouse/MouseCursorPlugin.java", "io/flutter/plugin/platform/AccessibilityEventsDelegate.java", + "io/flutter/plugin/platform/PlatformOverlayView.java", "io/flutter/plugin/platform/PlatformPlugin.java", "io/flutter/plugin/platform/PlatformView.java", "io/flutter/plugin/platform/PlatformViewFactory.java", diff --git a/shell/platform/android/android_external_texture_gl.cc b/shell/platform/android/android_external_texture_gl.cc index 599d6190b3306..2a58de3a96171 100644 --- a/shell/platform/android/android_external_texture_gl.cc +++ b/shell/platform/android/android_external_texture_gl.cc @@ -38,12 +38,10 @@ void AndroidExternalTextureGL::MarkNewFrameAvailable() { new_frame_ready_ = true; } -void AndroidExternalTextureGL::Paint(SkCanvas& canvas, +void AndroidExternalTextureGL::Paint(PaintContext& context, const SkRect& bounds, bool freeze, - GrDirectContext* context, - const SkSamplingOptions& sampling, - const SkPaint* paint) { + const SkSamplingOptions& sampling) { if (state_ == AttachmentState::detached) { return; } @@ -60,29 +58,29 @@ void AndroidExternalTextureGL::Paint(SkCanvas& canvas, GL_RGBA8_OES}; GrBackendTexture backendTexture(1, 1, GrMipMapped::kNo, textureInfo); sk_sp image = SkImage::MakeFromTexture( - context, backendTexture, kTopLeft_GrSurfaceOrigin, kRGBA_8888_SkColorType, - kPremul_SkAlphaType, nullptr); + context.gr_context, backendTexture, kTopLeft_GrSurfaceOrigin, + kRGBA_8888_SkColorType, kPremul_SkAlphaType, nullptr); if (image) { - SkAutoCanvasRestore autoRestore(&canvas, true); + SkAutoCanvasRestore autoRestore(context.canvas, true); // The incoming texture is vertically flipped, so we flip it // back. OpenGL's coordinate system has Positive Y equivalent to up, while // Skia's coordinate system has Negative Y equvalent to up. - canvas.translate(bounds.x(), bounds.y() + bounds.height()); - canvas.scale(bounds.width(), -bounds.height()); + context.canvas->translate(bounds.x(), bounds.y() + bounds.height()); + context.canvas->scale(bounds.width(), -bounds.height()); if (!transform.isIdentity()) { sk_sp shader = image->makeShader( SkTileMode::kRepeat, SkTileMode::kRepeat, sampling, transform); SkPaint paintWithShader; - if (paint) { - paintWithShader = *paint; + if (context.sk_paint) { + paintWithShader = *context.sk_paint; } paintWithShader.setShader(shader); - canvas.drawRect(SkRect::MakeWH(1, 1), paintWithShader); + context.canvas->drawRect(SkRect::MakeWH(1, 1), paintWithShader); } else { - canvas.drawImage(image, 0, 0, sampling, paint); + context.canvas->drawImage(image, 0, 0, sampling, context.sk_paint); } } } diff --git a/shell/platform/android/android_external_texture_gl.h b/shell/platform/android/android_external_texture_gl.h index c9fc07fe6908f..b2cc8d75f85f8 100644 --- a/shell/platform/android/android_external_texture_gl.h +++ b/shell/platform/android/android_external_texture_gl.h @@ -21,12 +21,10 @@ class AndroidExternalTextureGL : public flutter::Texture { ~AndroidExternalTextureGL() override; - void Paint(SkCanvas& canvas, + void Paint(PaintContext& context, const SkRect& bounds, bool freeze, - GrDirectContext* context, - const SkSamplingOptions& sampling, - const SkPaint* paint) override; + const SkSamplingOptions& sampling) override; void OnGrContextCreated() override; diff --git a/shell/platform/android/android_image_generator.cc b/shell/platform/android/android_image_generator.cc index d3bb70f60d67c..924d2fa5d6b6b 100644 --- a/shell/platform/android/android_image_generator.cc +++ b/shell/platform/android/android_image_generator.cc @@ -11,6 +11,8 @@ #include "flutter/fml/platform/android/jni_util.h" +#include "third_party/skia/include/codec/SkCodecAnimation.h" + namespace flutter { static fml::jni::ScopedJavaGlobalRef* g_flutter_jni_class = nullptr; @@ -106,7 +108,7 @@ void AndroidImageGenerator::DoDecodeImage() { auto bitmap = std::make_unique>( env, env->CallStaticObjectMethod(g_flutter_jni_class->obj(), g_decode_image_method, direct_buffer, - reinterpret_cast(this))); + reinterpret_cast(this))); FML_CHECK(fml::jni::CheckException(env)); if (bitmap->is_null()) { diff --git a/shell/platform/android/android_surface_vulkan_impeller.cc b/shell/platform/android/android_surface_vulkan_impeller.cc new file mode 100644 index 0000000000000..e4f5637d1eef4 --- /dev/null +++ b/shell/platform/android/android_surface_vulkan_impeller.cc @@ -0,0 +1,119 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "flutter/shell/platform/android/android_surface_vulkan_impeller.h" + +#include +#include + +#include "flutter/fml/concurrent_message_loop.h" +#include "flutter/fml/logging.h" +#include "flutter/fml/memory/ref_ptr.h" +#include "flutter/impeller/renderer/backend/vulkan/context_vk.h" +#include "flutter/shell/gpu/gpu_surface_vulkan_impeller.h" +#include "flutter/vulkan/vulkan_native_surface_android.h" +#include "impeller/entity/vk/entity_shaders_vk.h" + +namespace flutter { + +std::shared_ptr CreateImpellerContext( + const fml::RefPtr& proc_table, + const std::shared_ptr& concurrent_loop) { + std::vector> shader_mappings = { + std::make_shared(impeller_entity_shaders_vk_data, + impeller_entity_shaders_vk_length), + }; + + PFN_vkGetInstanceProcAddr instance_proc_addr = + proc_table->NativeGetInstanceProcAddr(); + + auto context = + impeller::ContextVK::Create(instance_proc_addr, // + shader_mappings, // + nullptr, // + concurrent_loop->GetTaskRunner(), // + "Android Impeller Vulkan Lib" // + ); + + return context; +} + +AndroidSurfaceVulkanImpeller::AndroidSurfaceVulkanImpeller( + const std::shared_ptr& android_context, + const std::shared_ptr& jni_facade) + : AndroidSurface(android_context), + proc_table_(fml::MakeRefCounted()), + workers_(fml::ConcurrentMessageLoop::Create()) { + impeller_context_ = CreateImpellerContext(proc_table_, workers_); + is_valid_ = + proc_table_->HasAcquiredMandatoryProcAddresses() && impeller_context_; +} + +AndroidSurfaceVulkanImpeller::~AndroidSurfaceVulkanImpeller() = default; + +bool AndroidSurfaceVulkanImpeller::IsValid() const { + return is_valid_; +} + +void AndroidSurfaceVulkanImpeller::TeardownOnScreenContext() { + // Nothing to do. +} + +std::unique_ptr AndroidSurfaceVulkanImpeller::CreateGPUSurface( + GrDirectContext* gr_context) { + if (!IsValid()) { + return nullptr; + } + + if (!native_window_ || !native_window_->IsValid()) { + return nullptr; + } + + std::unique_ptr gpu_surface = + std::make_unique(impeller_context_); + + if (!gpu_surface->IsValid()) { + return nullptr; + } + + return gpu_surface; +} + +bool AndroidSurfaceVulkanImpeller::OnScreenSurfaceResize(const SkISize& size) { + return true; +} + +bool AndroidSurfaceVulkanImpeller::ResourceContextMakeCurrent() { + FML_DLOG(ERROR) << "The vulkan backend does not support resource contexts."; + return false; +} + +bool AndroidSurfaceVulkanImpeller::ResourceContextClearCurrent() { + FML_DLOG(ERROR) << "The vulkan backend does not support resource contexts."; + return false; +} + +bool AndroidSurfaceVulkanImpeller::SetNativeWindow( + fml::RefPtr window) { + native_window_ = std::move(window); + bool success = native_window_ && native_window_->IsValid(); + + if (success) { + auto& context_vk = impeller::ContextVK::Cast(*impeller_context_); + auto surface = context_vk.CreateAndroidSurface(native_window_->handle()); + + if (!surface) { + FML_LOG(ERROR) << "Could not create a vulkan surface."; + return false; + } + + context_vk.SetupSwapchain(std::move(surface)); + return true; + } + + native_window_ = nullptr; + return false; +} + +} // namespace flutter diff --git a/shell/platform/android/android_surface_vulkan_impeller.h b/shell/platform/android/android_surface_vulkan_impeller.h new file mode 100644 index 0000000000000..f5012dbf61e1d --- /dev/null +++ b/shell/platform/android/android_surface_vulkan_impeller.h @@ -0,0 +1,56 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#pragma once + +#include "flutter/fml/concurrent_message_loop.h" +#include "flutter/fml/macros.h" +#include "flutter/impeller/renderer/context.h" +#include "flutter/shell/platform/android/surface/android_native_window.h" +#include "flutter/shell/platform/android/surface/android_surface.h" +#include "flutter/vulkan/procs/vulkan_proc_table.h" + +namespace flutter { + +class AndroidSurfaceVulkanImpeller : public AndroidSurface { + public: + AndroidSurfaceVulkanImpeller( + const std::shared_ptr& android_context, + const std::shared_ptr& jni_facade); + + ~AndroidSurfaceVulkanImpeller() override; + + // |AndroidSurface| + bool IsValid() const override; + + // |AndroidSurface| + std::unique_ptr CreateGPUSurface( + GrDirectContext* gr_context) override; + + // |AndroidSurface| + void TeardownOnScreenContext() override; + + // |AndroidSurface| + bool OnScreenSurfaceResize(const SkISize& size) override; + + // |AndroidSurface| + bool ResourceContextMakeCurrent() override; + + // |AndroidSurface| + bool ResourceContextClearCurrent() override; + + // |AndroidSurface| + bool SetNativeWindow(fml::RefPtr window) override; + + private: + fml::RefPtr proc_table_; + fml::RefPtr native_window_; + std::shared_ptr workers_; + std::shared_ptr impeller_context_; + bool is_valid_ = false; + + FML_DISALLOW_COPY_AND_ASSIGN(AndroidSurfaceVulkanImpeller); +}; + +} // namespace flutter diff --git a/shell/platform/android/external_view_embedder/external_view_embedder.cc b/shell/platform/android/external_view_embedder/external_view_embedder.cc index c1054c78b9ee6..be7d6c6f05ed3 100644 --- a/shell/platform/android/external_view_embedder/external_view_embedder.cc +++ b/shell/platform/android/external_view_embedder/external_view_embedder.cc @@ -99,6 +99,7 @@ SkRect AndroidExternalViewEmbedder::GetViewRect(int view_id) const { // |ExternalViewEmbedder| void AndroidExternalViewEmbedder::SubmitFrame( GrDirectContext* context, + uint64_t frame_view_id, std::unique_ptr frame) { TRACE_EVENT0("flutter", "AndroidExternalViewEmbedder::SubmitFrame"); diff --git a/shell/platform/android/external_view_embedder/external_view_embedder.h b/shell/platform/android/external_view_embedder/external_view_embedder.h index 0b258854408d6..d3655b98091ba 100644 --- a/shell/platform/android/external_view_embedder/external_view_embedder.h +++ b/shell/platform/android/external_view_embedder/external_view_embedder.h @@ -55,6 +55,7 @@ class AndroidExternalViewEmbedder final : public ExternalViewEmbedder { // |ExternalViewEmbedder| void SubmitFrame(GrDirectContext* context, + uint64_t frame_view_id, std::unique_ptr frame) override; // |ExternalViewEmbedder| diff --git a/shell/platform/android/external_view_embedder/external_view_embedder_unittests.cc b/shell/platform/android/external_view_embedder/external_view_embedder_unittests.cc index b174cd92703f9..c71425451ee74 100644 --- a/shell/platform/android/external_view_embedder/external_view_embedder_unittests.cc +++ b/shell/platform/android/external_view_embedder/external_view_embedder_unittests.cc @@ -371,7 +371,7 @@ TEST(AndroidExternalViewEmbedder, SubmitFrame) { }, /*frame_size=*/SkISize::Make(800, 600)); - embedder->SubmitFrame(gr_context.get(), std::move(surface_frame)); + embedder->SubmitFrame(gr_context.get(), 0, std::move(surface_frame)); // Submits frame if no Android view in the current frame. EXPECT_TRUE(did_submit_frame); // Doesn't resubmit frame. @@ -439,7 +439,7 @@ TEST(AndroidExternalViewEmbedder, SubmitFrame) { }, /*frame_size=*/SkISize::Make(800, 600)); - embedder->SubmitFrame(gr_context.get(), std::move(surface_frame)); + embedder->SubmitFrame(gr_context.get(), 0, std::move(surface_frame)); // Doesn't submit frame if there aren't Android views in the previous frame. EXPECT_FALSE(did_submit_frame); // Resubmits frame. @@ -504,7 +504,7 @@ TEST(AndroidExternalViewEmbedder, SubmitFrame) { return true; }, /*frame_size=*/SkISize::Make(800, 600)); - embedder->SubmitFrame(gr_context.get(), std::move(surface_frame)); + embedder->SubmitFrame(gr_context.get(), 0, std::move(surface_frame)); // Submits frame if there are Android views in the previous frame. EXPECT_TRUE(did_submit_frame); // Doesn't resubmit frame. @@ -614,7 +614,7 @@ TEST(AndroidExternalViewEmbedder, SubmitFrameOverlayComposition) { }, /*frame_size=*/SkISize::Make(800, 600)); - embedder->SubmitFrame(gr_context.get(), std::move(surface_frame)); + embedder->SubmitFrame(gr_context.get(), 0, std::move(surface_frame)); EXPECT_CALL(*jni_mock, FlutterViewEndFrame()); embedder->EndFrame(/*should_resubmit_frame=*/false, raster_thread_merger); @@ -683,7 +683,7 @@ TEST(AndroidExternalViewEmbedder, SubmitFramePlatformViewWithoutAnyOverlay) { }, /*frame_size=*/SkISize::Make(800, 600)); - embedder->SubmitFrame(gr_context.get(), std::move(surface_frame)); + embedder->SubmitFrame(gr_context.get(), 0, std::move(surface_frame)); EXPECT_CALL(*jni_mock, FlutterViewEndFrame()); embedder->EndFrame(/*should_resubmit_frame=*/false, raster_thread_merger); @@ -785,7 +785,7 @@ TEST(AndroidExternalViewEmbedder, DestroyOverlayLayersOnSizeChange) { return true; }, /*frame_size=*/SkISize::Make(800, 600)); - embedder->SubmitFrame(gr_context.get(), std::move(surface_frame)); + embedder->SubmitFrame(gr_context.get(), 0, std::move(surface_frame)); EXPECT_CALL(*jni_mock, FlutterViewEndFrame()); embedder->EndFrame(/*should_resubmit_frame=*/false, raster_thread_merger); @@ -873,7 +873,7 @@ TEST(AndroidExternalViewEmbedder, DoesNotDestroyOverlayLayersOnSizeChange) { return true; }, /*frame_size=*/SkISize::Make(800, 600)); - embedder->SubmitFrame(gr_context.get(), std::move(surface_frame)); + embedder->SubmitFrame(gr_context.get(), 0, std::move(surface_frame)); EXPECT_CALL(*jni_mock, FlutterViewEndFrame()); embedder->EndFrame(/*should_resubmit_frame=*/false, raster_thread_merger); @@ -985,7 +985,7 @@ TEST(AndroidExternalViewEmbedder, Teardown) { SkSurface::MakeNull(1000, 1000), framebuffer_info, [](const SurfaceFrame& surface_frame, SkCanvas* canvas) { return true; }, /*frame_size=*/SkISize::Make(800, 600)); - embedder->SubmitFrame(gr_context.get(), std::move(surface_frame)); + embedder->SubmitFrame(gr_context.get(), 0, std::move(surface_frame)); embedder->EndFrame(/*should_resubmit_frame=*/false, raster_thread_merger); diff --git a/shell/platform/android/io/flutter/embedding/engine/systemchannels/TextInputChannel.java b/shell/platform/android/io/flutter/embedding/engine/systemchannels/TextInputChannel.java index 094786f6d825e..e0f95681f3b9c 100644 --- a/shell/platform/android/io/flutter/embedding/engine/systemchannels/TextInputChannel.java +++ b/shell/platform/android/io/flutter/embedding/engine/systemchannels/TextInputChannel.java @@ -16,6 +16,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; +import java.util.List; import java.util.Map; import java.util.Set; import org.json.JSONArray; @@ -325,6 +326,14 @@ public void unspecifiedAction(int inputClientId) { Arrays.asList(inputClientId, "TextInputAction.unspecified")); } + /** Instructs Flutter to commit inserted content back to the text channel. */ + public void commitContent(int inputClientId, Map content) { + Log.v(TAG, "Sending 'commitContent' message."); + channel.invokeMethod( + "TextInputClient.performAction", + Arrays.asList(inputClientId, "TextInputAction.commitContent", content)); + } + public void performPrivateCommand( int inputClientId, @NonNull String action, @NonNull Bundle data) { HashMap json = new HashMap<>(); @@ -454,6 +463,19 @@ public static Configuration fromJson(@NonNull JSONObject json) } } final Integer inputAction = inputActionFromTextInputAction(inputActionName); + + // Build list of content commit mime types from the data in the JSON list. + List contentList = new ArrayList(); + JSONArray contentCommitMimeTypes = + json.isNull("contentCommitMimeTypes") + ? null + : json.getJSONArray("contentCommitMimeTypes"); + if (contentCommitMimeTypes != null) { + for (int i = 0; i < contentCommitMimeTypes.length(); i++) { + contentList.add(contentCommitMimeTypes.optString(i)); + } + } + return new Configuration( json.optBoolean("obscureText"), json.optBoolean("autocorrect", true), @@ -465,6 +487,7 @@ public static Configuration fromJson(@NonNull JSONObject json) inputAction, json.isNull("actionLabel") ? null : json.getString("actionLabel"), json.isNull("autofill") ? null : Autofill.fromJson(json.getJSONObject("autofill")), + contentList.toArray(new String[contentList.size()]), fields); } @@ -622,6 +645,7 @@ public Autofill( @Nullable public final Integer inputAction; @Nullable public final String actionLabel; @Nullable public final Autofill autofill; + @Nullable public final String[] contentCommitMimeTypes; @Nullable public final Configuration[] fields; public Configuration( @@ -635,6 +659,7 @@ public Configuration( @Nullable Integer inputAction, @Nullable String actionLabel, @Nullable Autofill autofill, + @Nullable String[] contentCommitMimeTypes, @Nullable Configuration[] fields) { this.obscureText = obscureText; this.autocorrect = autocorrect; @@ -646,6 +671,7 @@ public Configuration( this.inputAction = inputAction; this.actionLabel = actionLabel; this.autofill = autofill; + this.contentCommitMimeTypes = contentCommitMimeTypes; this.fields = fields; } } diff --git a/shell/platform/android/io/flutter/plugin/editing/InputConnectionAdaptor.java b/shell/platform/android/io/flutter/plugin/editing/InputConnectionAdaptor.java index c5a3d5483651a..1a56a11201baf 100644 --- a/shell/platform/android/io/flutter/plugin/editing/InputConnectionAdaptor.java +++ b/shell/platform/android/io/flutter/plugin/editing/InputConnectionAdaptor.java @@ -4,9 +4,11 @@ package io.flutter.plugin.editing; +import android.annotation.TargetApi; import android.content.ClipData; import android.content.ClipboardManager; import android.content.Context; +import android.net.Uri; import android.os.Build; import android.os.Bundle; import android.text.DynamicLayout; @@ -22,11 +24,20 @@ import android.view.inputmethod.EditorInfo; import android.view.inputmethod.ExtractedText; import android.view.inputmethod.ExtractedTextRequest; +import android.view.inputmethod.InputContentInfo; import android.view.inputmethod.InputMethodManager; import androidx.annotation.NonNull; +import androidx.annotation.RequiresApi; +import androidx.core.view.inputmethod.InputConnectionCompat; import io.flutter.Log; import io.flutter.embedding.engine.FlutterJNI; import io.flutter.embedding.engine.systemchannels.TextInputChannel; +import java.io.ByteArrayOutputStream; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.InputStream; +import java.util.HashMap; +import java.util.Map; public class InputConnectionAdaptor extends BaseInputConnection implements ListenableEditingState.EditingStateWatcher { @@ -477,6 +488,75 @@ public boolean performEditorAction(int actionCode) { return true; } + @Override + @TargetApi(25) + @RequiresApi(25) + public boolean commitContent(InputContentInfo inputContentInfo, int flags, Bundle opts) { + // Ensure permission is granted. + if (Build.VERSION.SDK_INT >= 25 + && (flags & InputConnectionCompat.INPUT_CONTENT_GRANT_READ_URI_PERMISSION) != 0) { + try { + inputContentInfo.requestPermission(); + } catch (Exception e) { + return false; + } + } else { + return false; + } + + if (inputContentInfo.getDescription().getMimeTypeCount() > 0) { + inputContentInfo.requestPermission(); + + final Uri uri = inputContentInfo.getContentUri(); + final String mimeType = inputContentInfo.getDescription().getMimeType(0); + Context context = mFlutterView.getContext(); + + if (uri != null) { + InputStream is; + try { + // Extract byte data from the given URI. + is = context.getContentResolver().openInputStream(uri); + } catch (FileNotFoundException ex) { + inputContentInfo.releasePermission(); + return false; + } + + if (is != null) { + final byte[] data = this.readStreamFully(is, 64 * 1024); + + final Map obj = new HashMap<>(); + obj.put("mimeType", mimeType); + obj.put("data", data); + obj.put("uri", uri.toString()); + + // Commit the content to the text input channel and release the permission. + textInputChannel.commitContent(mClient, obj); + inputContentInfo.releasePermission(); + return true; + } + } + + inputContentInfo.releasePermission(); + } + return false; + } + + private byte[] readStreamFully(InputStream is, int blocksize) { + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + + byte[] buffer = new byte[blocksize]; + while (true) { + int len = -1; + try { + len = is.read(buffer); + } catch (IOException ex) { + } + if (len == -1) break; + baos.write(buffer, 0, len); + } + return baos.toByteArray(); + } + // -------- Start: ListenableEditingState watcher implementation ------- @Override public void didChangeEditingState( diff --git a/shell/platform/android/io/flutter/plugin/editing/TextInputPlugin.java b/shell/platform/android/io/flutter/plugin/editing/TextInputPlugin.java index 7b1ca47ffa0e8..10cbc1b65cb61 100644 --- a/shell/platform/android/io/flutter/plugin/editing/TextInputPlugin.java +++ b/shell/platform/android/io/flutter/plugin/editing/TextInputPlugin.java @@ -25,6 +25,7 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; +import androidx.core.view.inputmethod.EditorInfoCompat; import io.flutter.Log; import io.flutter.embedding.android.KeyboardManager; import io.flutter.embedding.engine.systemchannels.TextInputChannel; @@ -342,6 +343,11 @@ public InputConnection createInputConnection( } outAttrs.imeOptions |= enterAction; + if (configuration.contentCommitMimeTypes != null) { + String[] imgTypeString = configuration.contentCommitMimeTypes; + EditorInfoCompat.setContentMimeTypes(outAttrs, imgTypeString); + } + InputConnectionAdaptor connection = new InputConnectionAdaptor( view, inputTarget.id, textInputChannel, keyboardManager, mEditable, outAttrs); diff --git a/shell/platform/android/io/flutter/plugin/platform/AccessibilityEventsDelegate.java b/shell/platform/android/io/flutter/plugin/platform/AccessibilityEventsDelegate.java index ec6a4e9667234..808274efc94c9 100644 --- a/shell/platform/android/io/flutter/plugin/platform/AccessibilityEventsDelegate.java +++ b/shell/platform/android/io/flutter/plugin/platform/AccessibilityEventsDelegate.java @@ -4,6 +4,7 @@ package io.flutter.plugin.platform; +import android.view.MotionEvent; import android.view.View; import android.view.accessibility.AccessibilityEvent; import androidx.annotation.NonNull; @@ -43,6 +44,13 @@ public boolean requestSendAccessibilityEvent( embeddedView, eventOrigin, event); } + public boolean onAccessibilityHoverEvent(MotionEvent event, boolean ignorePlatformViews) { + if (accessibilityBridge == null) { + return false; + } + return accessibilityBridge.onAccessibilityHoverEvent(event, ignorePlatformViews); + } + /* * This setter should only be used directly in PlatformViewsController when attached/detached to an accessibility * bridge. diff --git a/shell/platform/android/io/flutter/plugin/platform/PlatformOverlayView.java b/shell/platform/android/io/flutter/plugin/platform/PlatformOverlayView.java new file mode 100644 index 0000000000000..228f081e843bb --- /dev/null +++ b/shell/platform/android/io/flutter/plugin/platform/PlatformOverlayView.java @@ -0,0 +1,49 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugin.platform; + +import android.content.Context; +import android.util.AttributeSet; +import android.view.MotionEvent; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import io.flutter.embedding.android.FlutterImageView; + +/** A host view for Flutter content displayed over a platform view. */ +public class PlatformOverlayView extends FlutterImageView { + @Nullable private AccessibilityEventsDelegate accessibilityDelegate; + + public PlatformOverlayView( + @NonNull Context context, + int width, + int height, + @NonNull AccessibilityEventsDelegate accessibilityDelegate) { + super(context, width, height, FlutterImageView.SurfaceKind.overlay); + this.accessibilityDelegate = accessibilityDelegate; + } + + public PlatformOverlayView(@NonNull Context context) { + this(context, 1, 1, null); + } + + public PlatformOverlayView(@NonNull Context context, @NonNull AttributeSet attrs) { + this(context, 1, 1, null); + } + + @Override + public boolean onHoverEvent(@NonNull MotionEvent event) { + // This view doesn't have any accessibility information of its own, but anything drawn in + // this view is visible above the platform view it is overlaying, so should respond to + // accessibility exploration events. Forward those events to the accessibility delegate in + // a special mode that will stop as soon as it reaches a platform view, so that it will not + // find widgets that behind the platform view. If no such widget is found, treat the event + // as unhandled so that it can fall through to the platform view. + if (accessibilityDelegate != null + && accessibilityDelegate.onAccessibilityHoverEvent(event, true)) { + return true; + } + return super.onHoverEvent(event); + } +} diff --git a/shell/platform/android/io/flutter/plugin/platform/PlatformViewsController.java b/shell/platform/android/io/flutter/plugin/platform/PlatformViewsController.java index 1e62501a4f042..87a04f567127e 100644 --- a/shell/platform/android/io/flutter/plugin/platform/PlatformViewsController.java +++ b/shell/platform/android/io/flutter/plugin/platform/PlatformViewsController.java @@ -23,7 +23,6 @@ import androidx.annotation.VisibleForTesting; import io.flutter.Log; import io.flutter.embedding.android.AndroidTouchProcessor; -import io.flutter.embedding.android.FlutterImageView; import io.flutter.embedding.android.FlutterView; import io.flutter.embedding.android.MotionEventTracker; import io.flutter.embedding.engine.FlutterOverlaySurface; @@ -115,7 +114,7 @@ public class PlatformViewsController implements PlatformViewsAccessibilityDelega private final SparseArray platformViewParent; // Map of unique IDs to views that render overlay layers. - private final SparseArray overlayLayerViews; + private final SparseArray overlayLayerViews; // The platform view wrappers that are appended to FlutterView. // @@ -161,7 +160,7 @@ public void createForPlatformViewLayer( ensureValidAndroidVersion(19); ensureValidRequest(request); - final PlatformView platformView = createPlatformView(request); + final PlatformView platformView = createPlatformView(request, false); configureForHybridComposition(platformView, request); // New code should be added to configureForHybridComposition, not here, unless it is @@ -189,7 +188,7 @@ public long createForTextureLayer( + viewId); } - final PlatformView platformView = createPlatformView(request); + final PlatformView platformView = createPlatformView(request, true); final View embeddedView = platformView.getView(); if (embeddedView.getParent() != null) { @@ -477,7 +476,8 @@ private void ensureValidRequest( // all display modes, and adds it to `platformViews`. @TargetApi(19) private PlatformView createPlatformView( - @NonNull PlatformViewsChannel.PlatformViewCreationRequest request) { + @NonNull PlatformViewsChannel.PlatformViewCreationRequest request, + boolean wrapContext) { final PlatformViewFactory viewFactory = registry.getFactory(request.viewType); if (viewFactory == null) { throw new IllegalStateException( @@ -490,7 +490,9 @@ private PlatformView createPlatformView( } // In some display modes, the context needs to be modified during display. - final Context mutableContext = new MutableContextWrapper(context); + // TODO(stuartmorgan): Make this wrapping unconditional if possible; for context see + // https://github.com/flutter/flutter/issues/113449 + final Context mutableContext = wrapContext ? new MutableContextWrapper(context) : context; final PlatformView platformView = viewFactory.create(mutableContext, request.viewId, createParams); @@ -1133,7 +1135,7 @@ public void onDisplayOverlaySurface(int id, int x, int y, int width, int height) } initializeRootImageViewIfNeeded(); - final FlutterImageView overlayView = overlayLayerViews.get(id); + final PlatformOverlayView overlayView = overlayLayerViews.get(id); if (overlayView.getParent() == null) { flutterView.addView(overlayView); } @@ -1188,7 +1190,7 @@ public void onEndFrame() { private void finishFrame(boolean isFrameRenderedUsingImageReaders) { for (int i = 0; i < overlayLayerViews.size(); i++) { final int overlayId = overlayLayerViews.keyAt(i); - final FlutterImageView overlayView = overlayLayerViews.valueAt(i); + final PlatformOverlayView overlayView = overlayLayerViews.valueAt(i); if (currentFrameUsedOverlayLayerIds.contains(overlayId)) { flutterView.attachOverlaySurfaceToRender(overlayView); @@ -1238,14 +1240,14 @@ private void finishFrame(boolean isFrameRenderedUsingImageReaders) { @VisibleForTesting @TargetApi(19) @NonNull - public FlutterOverlaySurface createOverlaySurface(@NonNull FlutterImageView imageView) { + public FlutterOverlaySurface createOverlaySurface(@NonNull PlatformOverlayView imageView) { final int id = nextOverlayLayerId++; overlayLayerViews.put(id, imageView); return new FlutterOverlaySurface(id, imageView.getSurface()); } /** - * Creates an overlay surface while the Flutter view is rendered by {@code FlutterImageView}. + * Creates an overlay surface while the Flutter view is rendered by {@code PlatformOverlayView}. * *

This method is invoked by {@code FlutterJNI} only. * @@ -1261,11 +1263,11 @@ public FlutterOverlaySurface createOverlaySurface() { // // The final view size is determined when its frame is set. return createOverlaySurface( - new FlutterImageView( + new PlatformOverlayView( flutterView.getContext(), flutterView.getWidth(), flutterView.getHeight(), - FlutterImageView.SurfaceKind.overlay)); + accessibilityEventsDelegate)); } /** @@ -1275,7 +1277,7 @@ public FlutterOverlaySurface createOverlaySurface() { */ public void destroyOverlaySurfaces() { for (int viewId = 0; viewId < overlayLayerViews.size(); viewId++) { - final FlutterImageView overlayView = overlayLayerViews.valueAt(viewId); + final PlatformOverlayView overlayView = overlayLayerViews.valueAt(viewId); overlayView.detachFromRenderer(); overlayView.closeImageReader(); // Don't remove overlayView from the view hierarchy since this method can diff --git a/shell/platform/android/io/flutter/view/AccessibilityBridge.java b/shell/platform/android/io/flutter/view/AccessibilityBridge.java index 8bc72471a2169..9b4bacee86799 100644 --- a/shell/platform/android/io/flutter/view/AccessibilityBridge.java +++ b/shell/platform/android/io/flutter/view/AccessibilityBridge.java @@ -885,7 +885,10 @@ && shouldSetCollectionInfo(semanticsNode)) { // Scopes routes are not focusable, only need to set the content // for non-scopes-routes semantics nodes. if (semanticsNode.hasFlag(Flag.IS_TEXT_FIELD)) { - result.setText(semanticsNode.getValueLabelHint()); + result.setText(semanticsNode.getValue()); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { + result.setHintText(semanticsNode.getTextFieldHint()); + } } else if (!semanticsNode.hasFlag(Flag.SCOPES_ROUTE)) { CharSequence content = semanticsNode.getValueLabelHint(); if (Build.VERSION.SDK_INT < Build.VERSION_CODES.P) { @@ -1485,6 +1488,24 @@ private CustomAccessibilityAction getOrCreateAccessibilityAction(int id) { * View#onHoverEvent(MotionEvent)}. */ public boolean onAccessibilityHoverEvent(MotionEvent event) { + return onAccessibilityHoverEvent(event, false); + } + + /** + * A hover {@link MotionEvent} has occurred in the {@code View} that corresponds to this {@code + * AccessibilityBridge}. + * + *

If {@code ignorePlatformViews} is true, if hit testing for the event finds a platform view, + * the event will not be handled. This is useful when handling accessibility events for views + * overlaying platform views. See {@code PlatformOverlayView} for details. + * + *

This method returns true if Flutter's accessibility system handled the hover event, false + * otherwise. + * + *

This method should be invoked from the corresponding {@code View}'s {@link + * View#onHoverEvent(MotionEvent)}. + */ + public boolean onAccessibilityHoverEvent(MotionEvent event, boolean ignorePlatformViews) { if (!accessibilityManager.isTouchExplorationEnabled()) { return false; } @@ -1493,17 +1514,21 @@ public boolean onAccessibilityHoverEvent(MotionEvent event) { } SemanticsNode semanticsNodeUnderCursor = - getRootSemanticsNode().hitTest(new float[] {event.getX(), event.getY(), 0, 1}); + getRootSemanticsNode() + .hitTest(new float[] {event.getX(), event.getY(), 0, 1}, ignorePlatformViews); // semanticsNodeUnderCursor can be null when hovering over non-flutter UI such as // the Android navigation bar due to hitTest() bounds checking. if (semanticsNodeUnderCursor != null && semanticsNodeUnderCursor.platformViewId != -1) { + if (ignorePlatformViews) { + return false; + } return accessibilityViewEmbedder.onAccessibilityHoverEvent( semanticsNodeUnderCursor.id, event); } if (event.getAction() == MotionEvent.ACTION_HOVER_ENTER || event.getAction() == MotionEvent.ACTION_HOVER_MOVE) { - handleTouchExploration(event.getX(), event.getY()); + handleTouchExploration(event.getX(), event.getY(), ignorePlatformViews); } else if (event.getAction() == MotionEvent.ACTION_HOVER_EXIT) { onTouchExplorationExit(); } else { @@ -1536,12 +1561,12 @@ private void onTouchExplorationExit() { * a {@link AccessibilityEvent#TYPE_VIEW_HOVER_ENTER} event for the new hover node, followed by a * {@link AccessibilityEvent#TYPE_VIEW_HOVER_EXIT} event for the old hover node. */ - private void handleTouchExploration(float x, float y) { + private void handleTouchExploration(float x, float y, boolean ignorePlatformViews) { if (flutterSemanticsTree.isEmpty()) { return; } SemanticsNode semanticsNodeUnderCursor = - getRootSemanticsNode().hitTest(new float[] {x, y, 0, 1}); + getRootSemanticsNode().hitTest(new float[] {x, y, 0, 1}, ignorePlatformViews); if (semanticsNodeUnderCursor != hoveredObject) { // sending ENTER before EXIT is how Android wants it if (semanticsNodeUnderCursor != null) { @@ -2616,7 +2641,15 @@ private Rect getGlobalRect() { return globalRect; } - private SemanticsNode hitTest(float[] point) { + /** + * Hit tests {@code point} to find the deepest focusable node in the node tree at that point. + * + * @param point The point to hit test against this node. + * @param stopAtPlatformView Whether to return a platform view if found, regardless of whether + * or not it is focusable. + * @return The found node, or null if no relevant node was found at the given point. + */ + private SemanticsNode hitTest(float[] point, boolean stopAtPlatformView) { final float w = point[3]; final float x = point[0] / w; final float y = point[1] / w; @@ -2628,12 +2661,13 @@ private SemanticsNode hitTest(float[] point) { } child.ensureInverseTransform(); Matrix.multiplyMV(transformedPoint, 0, child.inverseTransform, 0, point, 0); - final SemanticsNode result = child.hitTest(transformedPoint); + final SemanticsNode result = child.hitTest(transformedPoint, stopAtPlatformView); if (result != null) { return result; } } - return isFocusable() ? this : null; + final boolean foundPlatformView = stopAtPlatformView && platformViewId != -1; + return isFocusable() || foundPlatformView ? this : null; } // TODO(goderbauer): This should be decided by the framework once we have more information @@ -2695,6 +2729,12 @@ private void updateRecursively( if (globalTransform == null) { globalTransform = new float[16]; } + if (transform == null) { + if (BuildConfig.DEBUG) { + throw new AssertionError("transform has not been initialized"); + } + transform = new float[16]; + } Matrix.multiplyMM(globalTransform, 0, ancestorTransform, 0, transform, 0); final float[] sample = new float[4]; @@ -2767,18 +2807,47 @@ private float max(float a, float b, float c, float d) { return Math.max(a, Math.max(b, Math.max(c, d))); } - private CharSequence getValueLabelHint() { - CharSequence[] array; + private CharSequence getValue() { if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) { - array = new CharSequence[] {value, label, hint}; + return value; } else { - array = - new CharSequence[] { - createSpannableString(value, valueAttributes), - createSpannableString(label, labelAttributes), - createSpannableString(hint, hintAttributes), - }; + return createSpannableString(value, valueAttributes); } + } + + private CharSequence getLabel() { + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) { + return label; + } else { + return createSpannableString(label, labelAttributes); + } + } + + private CharSequence getHint() { + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) { + return hint; + } else { + return createSpannableString(hint, hintAttributes); + } + } + + private CharSequence getValueLabelHint() { + CharSequence[] array = new CharSequence[] {getValue(), getLabel(), getHint()}; + CharSequence result = null; + for (CharSequence word : array) { + if (word != null && word.length() > 0) { + if (result == null || result.length() == 0) { + result = word; + } else { + result = TextUtils.concat(result, ", ", word); + } + } + } + return result; + } + + private CharSequence getTextFieldHint() { + CharSequence[] array = new CharSequence[] {getLabel(), getHint()}; CharSequence result = null; for (CharSequence word : array) { if (word != null && word.length() > 0) { diff --git a/shell/platform/android/platform_view_android.cc b/shell/platform/android/platform_view_android.cc index 5e0ab4be7f2e7..eec2de08dbf80 100644 --- a/shell/platform/android/platform_view_android.cc +++ b/shell/platform/android/platform_view_android.cc @@ -16,6 +16,7 @@ #include "flutter/shell/platform/android/android_surface_gl_impeller.h" #include "flutter/shell/platform/android/android_surface_gl_skia.h" #include "flutter/shell/platform/android/android_surface_software.h" +#include "flutter/shell/platform/android/android_surface_vulkan_impeller.h" #include "flutter/shell/platform/android/context/android_context.h" #include "flutter/shell/platform/android/external_view_embedder/external_view_embedder.h" #include "flutter/shell/platform/android/jni/platform_view_android_jni.h" @@ -43,8 +44,15 @@ std::unique_ptr AndroidSurfaceFactoryImpl::CreateSurface() { jni_facade_); case AndroidRenderingAPI::kOpenGLES: if (enable_impeller_) { +// TODO(kaushikiska@): Enable this after wiring a preference for Vulkan backend. +#if false + return std::make_unique(android_context_, + jni_facade_); + +#else return std::make_unique(android_context_, jni_facade_); +#endif } else { return std::make_unique(android_context_, jni_facade_); diff --git a/shell/platform/android/test/io/flutter/embedding/android/FlutterFragmentActivityTest.java b/shell/platform/android/test/io/flutter/embedding/android/FlutterFragmentActivityTest.java index adebb53dfb223..1325e068a90b6 100644 --- a/shell/platform/android/test/io/flutter/embedding/android/FlutterFragmentActivityTest.java +++ b/shell/platform/android/test/io/flutter/embedding/android/FlutterFragmentActivityTest.java @@ -65,13 +65,13 @@ public void tearDown() { } @Test - public void createFlutterFragment__defaultRenderModeSurface() { + public void createFlutterFragment_defaultRenderModeSurface() { final FlutterFragmentActivity activity = new FakeFlutterFragmentActivity(); assertEquals(activity.createFlutterFragment().getRenderMode(), RenderMode.surface); } @Test - public void createFlutterFragment__defaultRenderModeTexture() { + public void createFlutterFragment_defaultRenderModeTexture() { final FlutterFragmentActivity activity = new FakeFlutterFragmentActivity() { @Override @@ -83,7 +83,7 @@ protected BackgroundMode getBackgroundMode() { } @Test - public void createFlutterFragment__customRenderMode() { + public void createFlutterFragment_customRenderMode() { final FlutterFragmentActivity activity = new FakeFlutterFragmentActivity() { @Override @@ -95,7 +95,7 @@ protected RenderMode getRenderMode() { } @Test - public void createFlutterFragment__customDartEntrypointLibraryUri() { + public void createFlutterFragment_customDartEntrypointLibraryUri() { final FlutterFragmentActivity activity = new FakeFlutterFragmentActivity() { @Override diff --git a/shell/platform/android/test/io/flutter/embedding/engine/FlutterJNITest.java b/shell/platform/android/test/io/flutter/embedding/engine/FlutterJNITest.java index cf6dca23f8deb..e40096e7b01c6 100644 --- a/shell/platform/android/test/io/flutter/embedding/engine/FlutterJNITest.java +++ b/shell/platform/android/test/io/flutter/embedding/engine/FlutterJNITest.java @@ -150,7 +150,7 @@ public void computePlatformResolvedLocaleCallsLocalizationPluginProperly() { assertEquals(result[2], ""); } - public void onDisplayPlatformView__callsPlatformViewsController() { + public void onDisplayPlatformView_callsPlatformViewsController() { PlatformViewsController platformViewsController = mock(PlatformViewsController.class); FlutterJNI flutterJNI = new FlutterJNI(); @@ -181,7 +181,7 @@ public void onDisplayPlatformView__callsPlatformViewsController() { } @Test - public void onDisplayOverlaySurface__callsPlatformViewsController() { + public void onDisplayOverlaySurface_callsPlatformViewsController() { PlatformViewsController platformViewsController = mock(PlatformViewsController.class); FlutterJNI flutterJNI = new FlutterJNI(); @@ -197,7 +197,7 @@ public void onDisplayOverlaySurface__callsPlatformViewsController() { } @Test - public void onBeginFrame__callsPlatformViewsController() { + public void onBeginFrame_callsPlatformViewsController() { PlatformViewsController platformViewsController = mock(PlatformViewsController.class); // --- Test Setup --- @@ -212,7 +212,7 @@ public void onBeginFrame__callsPlatformViewsController() { } @Test - public void onEndFrame__callsPlatformViewsController() { + public void onEndFrame_callsPlatformViewsController() { PlatformViewsController platformViewsController = mock(PlatformViewsController.class); // --- Test Setup --- @@ -227,7 +227,7 @@ public void onEndFrame__callsPlatformViewsController() { } @Test - public void createOverlaySurface__callsPlatformViewsController() { + public void createOverlaySurface_callsPlatformViewsController() { PlatformViewsController platformViewsController = mock(PlatformViewsController.class); FlutterJNI flutterJNI = new FlutterJNI(); @@ -241,14 +241,14 @@ public void createOverlaySurface__callsPlatformViewsController() { } @Test(expected = IllegalArgumentException.class) - public void invokePlatformMessageResponseCallback__wantsDirectBuffer() { + public void invokePlatformMessageResponseCallback_wantsDirectBuffer() { FlutterJNI flutterJNI = new FlutterJNI(); ByteBuffer buffer = ByteBuffer.allocate(4); flutterJNI.invokePlatformMessageResponseCallback(0, buffer, buffer.position()); } @Test - public void setRefreshRateFPS__callsUpdateRefreshRate() { + public void setRefreshRateFPS_callsUpdateRefreshRate() { FlutterJNI flutterJNI = spy(new FlutterJNI()); // --- Execute Test --- flutterJNI.setRefreshRateFPS(120.0f); diff --git a/shell/platform/android/test/io/flutter/embedding/engine/mutatorsstack/FlutterMutatorViewTest.java b/shell/platform/android/test/io/flutter/embedding/engine/mutatorsstack/FlutterMutatorViewTest.java index 2f3091f9baa4c..47204fee28960 100644 --- a/shell/platform/android/test/io/flutter/embedding/engine/mutatorsstack/FlutterMutatorViewTest.java +++ b/shell/platform/android/test/io/flutter/embedding/engine/mutatorsstack/FlutterMutatorViewTest.java @@ -230,30 +230,6 @@ public void ignoreAccessibilityEvents() { assertFalse(eventSent); } - @Test - @Config( - shadows = { - ShadowViewGroup.class, - }) - public void sendAccessibilityEvents() { - final FlutterMutatorView wrapperView = new FlutterMutatorView(ctx); - - final View embeddedView = mock(View.class); - wrapperView.addView(embeddedView); - - when(embeddedView.getImportantForAccessibility()) - .thenReturn(View.IMPORTANT_FOR_ACCESSIBILITY_YES); - boolean eventSent = - wrapperView.requestSendAccessibilityEvent(embeddedView, mock(AccessibilityEvent.class)); - assertTrue(eventSent); - - when(embeddedView.getImportantForAccessibility()) - .thenReturn(View.IMPORTANT_FOR_ACCESSIBILITY_AUTO); - eventSent = - wrapperView.requestSendAccessibilityEvent(embeddedView, mock(AccessibilityEvent.class)); - assertTrue(eventSent); - } - @Implements(ViewGroup.class) public static class ShadowViewGroup extends org.robolectric.shadows.ShadowView { @Implementation diff --git a/shell/platform/android/test/io/flutter/plugin/editing/InputConnectionAdaptorTest.java b/shell/platform/android/test/io/flutter/plugin/editing/InputConnectionAdaptorTest.java index 7032c742f2cfe..fbb44da41bcb7 100644 --- a/shell/platform/android/test/io/flutter/plugin/editing/InputConnectionAdaptorTest.java +++ b/shell/platform/android/test/io/flutter/plugin/editing/InputConnectionAdaptorTest.java @@ -16,9 +16,12 @@ import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; +import android.content.ClipDescription; import android.content.ClipboardManager; +import android.content.ContentResolver; import android.content.Context; import android.content.res.AssetManager; +import android.net.Uri; import android.os.Build; import android.os.Bundle; import android.text.InputType; @@ -31,7 +34,9 @@ import android.view.inputmethod.ExtractedText; import android.view.inputmethod.ExtractedTextRequest; import android.view.inputmethod.InputConnection; +import android.view.inputmethod.InputContentInfo; import android.view.inputmethod.InputMethodManager; +import androidx.core.view.inputmethod.InputConnectionCompat; import androidx.test.core.app.ApplicationProvider; import androidx.test.ext.junit.runners.AndroidJUnit4; import com.ibm.icu.lang.UCharacter; @@ -43,7 +48,9 @@ import io.flutter.plugin.common.JSONMethodCodec; import io.flutter.plugin.common.MethodCall; import io.flutter.util.FakeKeyEvent; +import java.io.ByteArrayInputStream; import java.nio.ByteBuffer; +import java.nio.charset.Charset; import org.json.JSONArray; import org.json.JSONException; import org.junit.Before; @@ -52,10 +59,12 @@ import org.mockito.ArgumentCaptor; import org.mockito.Mock; import org.mockito.MockitoAnnotations; +import org.robolectric.Shadows; import org.robolectric.annotation.Config; import org.robolectric.annotation.Implementation; import org.robolectric.annotation.Implements; import org.robolectric.shadow.api.Shadow; +import org.robolectric.shadows.ShadowContentResolver; import org.robolectric.shadows.ShadowInputMethodManager; @Config( @@ -64,6 +73,9 @@ @RunWith(AndroidJUnit4.class) public class InputConnectionAdaptorTest { private final Context ctx = ApplicationProvider.getApplicationContext(); + private ContentResolver contentResolver; + private ShadowContentResolver shadowContentResolver; + @Mock KeyboardManager mockKeyboardManager; // Verifies the method and arguments for a captured method call. private void verifyMethodCall(ByteBuffer buffer, String methodName, String[] expectedArgs) @@ -83,6 +95,8 @@ private void verifyMethodCall(ByteBuffer buffer, String methodName, String[] exp @Before public void setUp() { MockitoAnnotations.openMocks(this); + contentResolver = ctx.getContentResolver(); + shadowContentResolver = Shadows.shadowOf(contentResolver); } @Test @@ -171,6 +185,65 @@ public void testPerformContextMenuAction_paste() { assertTrue(editable.toString().startsWith(textToBePasted)); } + @Test + public void testCommitContent() throws JSONException { + View testView = new View(ctx); + int client = 0; + FlutterJNI mockFlutterJNI = mock(FlutterJNI.class); + DartExecutor dartExecutor = spy(new DartExecutor(mockFlutterJNI, mock(AssetManager.class))); + TextInputChannel textInputChannel = new TextInputChannel(dartExecutor); + ListenableEditingState editable = sampleEditable(0, 0); + InputConnectionAdaptor adaptor = + new InputConnectionAdaptor( + testView, + client, + textInputChannel, + mockKeyboardManager, + editable, + null, + mockFlutterJNI); + + String uri = "content://mock/uri/test/commitContent"; + Charset charset = Charset.forName("UTF-8"); + String fakeImageData = "fake image data"; + byte[] fakeImageDataBytes = fakeImageData.getBytes(charset); + shadowContentResolver.registerInputStream( + Uri.parse(uri), new ByteArrayInputStream(fakeImageDataBytes)); + + boolean commitContentSuccess = + adaptor.commitContent( + new InputContentInfo( + Uri.parse(uri), + new ClipDescription("commitContent test", new String[] {"image/png"})), + InputConnectionCompat.INPUT_CONTENT_GRANT_READ_URI_PERMISSION, + null); + assertTrue(commitContentSuccess); + + ArgumentCaptor channelCaptor = ArgumentCaptor.forClass(String.class); + ArgumentCaptor bufferCaptor = ArgumentCaptor.forClass(ByteBuffer.class); + verify(dartExecutor, times(1)).send(channelCaptor.capture(), bufferCaptor.capture(), isNull()); + assertEquals("flutter/textinput", channelCaptor.getValue()); + + String fakeImageDataIntString = ""; + for (int i = 0; i < fakeImageDataBytes.length; i++) { + int byteAsInt = fakeImageDataBytes[i]; + fakeImageDataIntString += byteAsInt; + if (i < (fakeImageDataBytes.length - 1)) { + fakeImageDataIntString += ","; + } + } + verifyMethodCall( + bufferCaptor.getValue(), + "TextInputClient.performAction", + new String[] { + "0", + "TextInputAction.commitContent", + "{\"data\":[" + + fakeImageDataIntString + + "],\"mimeType\":\"image\\/png\",\"uri\":\"content:\\/\\/mock\\/uri\\/test\\/commitContent\"}" + }); + } + @Test public void testPerformPrivateCommand_dataIsNull() throws JSONException { View testView = new View(ctx); diff --git a/shell/platform/android/test/io/flutter/plugin/editing/TextInputPluginTest.java b/shell/platform/android/test/io/flutter/plugin/editing/TextInputPluginTest.java index ab47a9978d311..462b6ec2ff808 100644 --- a/shell/platform/android/test/io/flutter/plugin/editing/TextInputPluginTest.java +++ b/shell/platform/android/test/io/flutter/plugin/editing/TextInputPluginTest.java @@ -163,6 +163,7 @@ public void setTextInputEditingState_doesNotInvokeUpdateEditingState() { null, null, null, + null, null)); textInputPlugin.setTextInputEditingState( @@ -221,6 +222,7 @@ public void setTextInputEditingState_doesNotInvokeUpdateEditingStateWithDeltas() null, null, null, + null, null)); textInputPlugin.setTextInputEditingState( @@ -273,6 +275,7 @@ public void textEditingDelta_TestUpdateEditingValueWithDeltasIsNotInvokedWhenDel null, null, null, + null, null)); // There's a pending restart since we initialized the text input client. Flush that now. @@ -387,6 +390,7 @@ public void textEditingDelta_TestUpdateEditingValueIsNotInvokedWhenDeltaModelEna null, null, null, + null, null)); // There's a pending restart since we initialized the text input client. Flush that now. @@ -515,6 +519,7 @@ public void textEditingDelta_TestDeltaIsCreatedWhenComposingTextSetIsInserting() null, null, null, + null, null)); // There's a pending restart since we initialized the text input client. Flush that now. @@ -624,6 +629,7 @@ public void textEditingDelta_TestDeltaIsCreatedWhenComposingTextSetIsDeleting() null, null, null, + null, null)); // There's a pending restart since we initialized the text input client. Flush that now. @@ -731,6 +737,7 @@ public void textEditingDelta_TestDeltaIsCreatedWhenComposingTextSetIsReplacing() null, null, null, + null, null)); // There's a pending restart since we initialized the text input client. Flush that now. @@ -835,6 +842,7 @@ public void inputConnectionAdaptor_RepeatFilter() throws NullPointerException { null, null, null, + null, null)); // There's a pending restart since we initialized the text input client. Flush that now. @@ -923,6 +931,7 @@ public void setTextInputEditingState_doesNotRestartWhenTextIsIdentical() { null, null, null, + null, null)); // There's a pending restart since we initialized the text input client. Flush that now. textInputPlugin.setTextInputEditingState( @@ -960,6 +969,7 @@ public void setTextInputEditingState_alwaysSetEditableWhenDifferent() { null, null, null, + null, null)); // There's a pending restart since we initialized the text input client. Flush that now. With // changed text, we should @@ -1006,6 +1016,7 @@ public void setTextInputEditingState_restartsIMEOnlyWhenFrameworkChangesComposin null, null, null, + null, null)); // There's a pending restart since we initialized the text input client. Flush that now. textInputPlugin.setTextInputEditingState( @@ -1106,6 +1117,7 @@ public void setTextInputEditingState_nullInputMethodSubtype() { null, null, null, + null, null)); // There's a pending restart since we initialized the text input client. Flush that now. textInputPlugin.setTextInputEditingState( @@ -1146,6 +1158,7 @@ public void inputConnection_createsActionFromEnter() throws JSONException { null, null, null, + null, null)); // There's a pending restart since we initialized the text input client. Flush that now. textInputPlugin.setTextInputEditingState( @@ -1212,6 +1225,7 @@ public void inputConnection_finishComposingTextUpdatesIMM() throws JSONException null, null, null, + null, null)); // There's a pending restart since we initialized the text input client. Flush that now. textInputPlugin.setTextInputEditingState( @@ -1249,6 +1263,7 @@ public void inputConnection_textInputTypeNone() { null, null, null, + null, null)); InputConnection connection = @@ -1278,6 +1293,7 @@ public void showTextInput_textInputTypeNone() { null, null, null, + null, null)); textInputPlugin.showTextInput(testView); @@ -1310,6 +1326,7 @@ public void autofill_enabledByDefault() { null, null, autofill, + null, null); textInputPlugin.setTextInputClient( @@ -1325,6 +1342,7 @@ public void autofill_enabledByDefault() { null, null, autofill, + null, new TextInputChannel.Configuration[] {config})); final ViewStructure viewStructure = mock(ViewStructure.class); @@ -1368,6 +1386,7 @@ public void autofill_canBeDisabled() { null, null, null, + null, null); textInputPlugin.setTextInputClient(0, config); @@ -1407,6 +1426,7 @@ public void autofill_hintText() { null, null, autofill, + null, null); textInputPlugin.setTextInputClient(0, config); @@ -1456,6 +1476,7 @@ public void autofill_onProvideVirtualViewStructure() { null, null, autofill1, + null, null); final TextInputChannel.Configuration config2 = new TextInputChannel.Configuration( @@ -1469,6 +1490,7 @@ public void autofill_onProvideVirtualViewStructure() { null, null, autofill2, + null, null); textInputPlugin.setTextInputClient( @@ -1484,6 +1506,7 @@ public void autofill_onProvideVirtualViewStructure() { null, null, autofill1, + null, new TextInputChannel.Configuration[] {config1, config2})); final ViewStructure viewStructure = mock(ViewStructure.class); @@ -1539,6 +1562,7 @@ public void autofill_onProvideVirtualViewStructure_singular_textfield() { null, null, autofill, + null, null)); final ViewStructure viewStructure = mock(ViewStructure.class); @@ -1596,6 +1620,7 @@ public void autofill_testLifeCycle() { null, null, autofill1, + null, null); final TextInputChannel.Configuration config2 = new TextInputChannel.Configuration( @@ -1609,6 +1634,7 @@ public void autofill_testLifeCycle() { null, null, autofill2, + null, null); // Set client. This should call notifyViewExited on the FlutterView if the previous client is @@ -1625,6 +1651,7 @@ public void autofill_testLifeCycle() { null, null, autofill1, + null, new TextInputChannel.Configuration[] {config1, config2}); textInputPlugin.setTextInputClient(0, autofillConfiguration); @@ -1669,6 +1696,7 @@ public void autofill_testLifeCycle() { null, null, null, + null, null)); assertEquals("1".hashCode(), testAfm.exitId); @@ -1726,6 +1754,7 @@ public void autofill_testAutofillUpdatesTheFramework() { null, null, autofill1, + null, null); final TextInputChannel.Configuration config2 = new TextInputChannel.Configuration( @@ -1739,6 +1768,7 @@ public void autofill_testAutofillUpdatesTheFramework() { null, null, autofill2, + null, null); final TextInputChannel.Configuration autofillConfiguration = @@ -1753,6 +1783,7 @@ public void autofill_testAutofillUpdatesTheFramework() { null, null, autofill1, + null, new TextInputChannel.Configuration[] {config1, config2}); textInputPlugin.setTextInputClient(0, autofillConfiguration); @@ -1809,6 +1840,7 @@ public void autofill_doesNotCrashAfterClearClientCall() { null, null, autofillConfig, + null, null); textInputPlugin.setTextInputClient(0, config); @@ -1867,6 +1899,7 @@ public void autofill_testSetTextIpnutClientUpdatesSideFields() { null, null, autofill1, + null, null); final TextInputChannel.Configuration config2 = new TextInputChannel.Configuration( @@ -1880,6 +1913,7 @@ public void autofill_testSetTextIpnutClientUpdatesSideFields() { null, null, autofill2, + null, null); final TextInputChannel.Configuration autofillConfiguration = @@ -1894,6 +1928,7 @@ public void autofill_testSetTextIpnutClientUpdatesSideFields() { null, null, autofill1, + null, new TextInputChannel.Configuration[] {config1, config2}); textInputPlugin.setTextInputClient(0, autofillConfiguration); diff --git a/shell/platform/android/test/io/flutter/plugin/platform/AccessibilityEventsDelegateTest.java b/shell/platform/android/test/io/flutter/plugin/platform/AccessibilityEventsDelegateTest.java new file mode 100644 index 0000000000000..a6881d2fe1c71 --- /dev/null +++ b/shell/platform/android/test/io/flutter/plugin/platform/AccessibilityEventsDelegateTest.java @@ -0,0 +1,83 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugin.platform; + +import static junit.framework.TestCase.assertFalse; +import static junit.framework.TestCase.assertTrue; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.anyBoolean; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import android.view.MotionEvent; +import android.view.View; +import android.view.accessibility.AccessibilityEvent; +import androidx.test.ext.junit.runners.AndroidJUnit4; +import io.flutter.view.AccessibilityBridge; +import org.junit.Test; +import org.junit.runner.RunWith; + +@RunWith(AndroidJUnit4.class) +public class AccessibilityEventsDelegateTest { + @Test + public void acessibilityEventsDelegate_forwardsAccessibilityEvents() { + final AccessibilityBridge mockAccessibilityBridge = mock(AccessibilityBridge.class); + final View embeddedView = mock(View.class); + final View originView = mock(View.class); + final AccessibilityEvent event = mock(AccessibilityEvent.class); + + AccessibilityEventsDelegate delegate = new AccessibilityEventsDelegate(); + delegate.setAccessibilityBridge(mockAccessibilityBridge); + when(mockAccessibilityBridge.externalViewRequestSendAccessibilityEvent(any(), any(), any())) + .thenReturn(true); + + final boolean handled = delegate.requestSendAccessibilityEvent(embeddedView, originView, event); + + assertTrue(handled); + verify(mockAccessibilityBridge, times(1)) + .externalViewRequestSendAccessibilityEvent(embeddedView, originView, event); + } + + @Test + public void acessibilityEventsDelegate_withoutBridge_noopsAccessibilityEvents() { + final View embeddedView = mock(View.class); + final View originView = mock(View.class); + final AccessibilityEvent event = mock(AccessibilityEvent.class); + + AccessibilityEventsDelegate delegate = new AccessibilityEventsDelegate(); + + final boolean handled = delegate.requestSendAccessibilityEvent(embeddedView, originView, event); + + assertFalse(handled); + } + + @Test + public void acessibilityEventsDelegate_forwardsHoverEvents() { + final AccessibilityBridge mockAccessibilityBridge = mock(AccessibilityBridge.class); + final MotionEvent event = mock(MotionEvent.class); + + AccessibilityEventsDelegate delegate = new AccessibilityEventsDelegate(); + delegate.setAccessibilityBridge(mockAccessibilityBridge); + when(mockAccessibilityBridge.onAccessibilityHoverEvent(any(), anyBoolean())).thenReturn(true); + + final boolean handled = delegate.onAccessibilityHoverEvent(event, true); + + assertTrue(handled); + verify(mockAccessibilityBridge, times(1)).onAccessibilityHoverEvent(event, true); + } + + @Test + public void acessibilityEventsDelegate_withoutBridge_noopsHoverEvents() { + final MotionEvent event = mock(MotionEvent.class); + + AccessibilityEventsDelegate delegate = new AccessibilityEventsDelegate(); + + final boolean handled = delegate.onAccessibilityHoverEvent(event, true); + + assertFalse(handled); + } +} diff --git a/shell/platform/android/test/io/flutter/plugin/platform/PlatformOverlayViewTest.java b/shell/platform/android/test/io/flutter/plugin/platform/PlatformOverlayViewTest.java new file mode 100644 index 0000000000000..fc4d36e7f0fe3 --- /dev/null +++ b/shell/platform/android/test/io/flutter/plugin/platform/PlatformOverlayViewTest.java @@ -0,0 +1,47 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugin.platform; + +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import android.content.Context; +import android.os.SystemClock; +import android.view.MotionEvent; +import androidx.test.core.app.ApplicationProvider; +import androidx.test.ext.junit.runners.AndroidJUnit4; +import org.junit.Test; +import org.junit.runner.RunWith; + +@RunWith(AndroidJUnit4.class) +public class PlatformOverlayViewTest { + private final Context ctx = ApplicationProvider.getApplicationContext(); + + @Test + public void platformOverlayView_forwardsHover() { + final AccessibilityEventsDelegate mockAccessibilityDelegate = + mock(AccessibilityEventsDelegate.class); + when(mockAccessibilityDelegate.onAccessibilityHoverEvent(any(), eq(true))).thenReturn(true); + + final int size = 10; + final PlatformOverlayView imageView = + new PlatformOverlayView(ctx, size, size, mockAccessibilityDelegate); + MotionEvent event = + MotionEvent.obtain( + SystemClock.uptimeMillis(), + SystemClock.uptimeMillis(), + MotionEvent.ACTION_HOVER_MOVE, + size / 2, + size / 2, + 0); + imageView.onHoverEvent(event); + + verify(mockAccessibilityDelegate, times(1)).onAccessibilityHoverEvent(event, true); + } +} diff --git a/shell/platform/android/test/io/flutter/plugin/platform/PlatformViewsControllerTest.java b/shell/platform/android/test/io/flutter/plugin/platform/PlatformViewsControllerTest.java index 824c148a70086..5dd43edc132ce 100644 --- a/shell/platform/android/test/io/flutter/plugin/platform/PlatformViewsControllerTest.java +++ b/shell/platform/android/test/io/flutter/plugin/platform/PlatformViewsControllerTest.java @@ -264,7 +264,7 @@ public void itUsesActionEventTypeFromMotionEventForHybridPlatformViews() { @Test @Config(shadows = {ShadowFlutterJNI.class, ShadowPlatformTaskQueue.class}) - public void getPlatformViewById__hybridComposition() { + public void getPlatformViewById_hybridComposition() { PlatformViewsController platformViewsController = new PlatformViewsController(); int platformViewId = 0; @@ -292,7 +292,7 @@ public void getPlatformViewById__hybridComposition() { @Test @Config(shadows = {ShadowFlutterJNI.class, ShadowPlatformTaskQueue.class}) - public void createPlatformViewMessage__initializesAndroidView() { + public void createPlatformViewMessage_initializesAndroidView() { PlatformViewsController platformViewsController = new PlatformViewsController(); int platformViewId = 0; @@ -314,7 +314,56 @@ public void createPlatformViewMessage__initializesAndroidView() { @Test @Config(shadows = {ShadowFlutterJNI.class, ShadowPlatformTaskQueue.class}) - public void createPlatformViewMessage__setsAndroidViewLayoutDirection() { + public void createPlatformViewMessage_wrapsContextForVirtualDisplay() { + PlatformViewsController platformViewsController = new PlatformViewsController(); + + int platformViewId = 0; + assertNull(platformViewsController.getPlatformViewById(platformViewId)); + + PlatformViewFactory viewFactory = mock(PlatformViewFactory.class); + PlatformView platformView = mock(PlatformView.class); + when(platformView.getView()).thenReturn(mock(View.class)); + ArgumentCaptor passedContext = ArgumentCaptor.forClass(Context.class); + when(viewFactory.create(passedContext.capture(), eq(platformViewId), any())) + .thenReturn(platformView); + platformViewsController.getRegistry().registerViewFactory("testType", viewFactory); + + FlutterJNI jni = new FlutterJNI(); + attach(jni, platformViewsController); + + // Simulate create call from the framework. + createPlatformView( + jni, platformViewsController, platformViewId, "testType", /* hybrid=*/ false); + assertTrue(passedContext.getValue() instanceof MutableContextWrapper); + } + + @Test + @Config(shadows = {ShadowFlutterJNI.class, ShadowPlatformTaskQueue.class}) + public void createPlatformViewMessage_doesNotWrapContextForHybrid() { + PlatformViewsController platformViewsController = new PlatformViewsController(); + + int platformViewId = 0; + assertNull(platformViewsController.getPlatformViewById(platformViewId)); + + PlatformViewFactory viewFactory = mock(PlatformViewFactory.class); + PlatformView platformView = mock(PlatformView.class); + when(platformView.getView()).thenReturn(mock(View.class)); + ArgumentCaptor passedContext = ArgumentCaptor.forClass(Context.class); + when(viewFactory.create(passedContext.capture(), eq(platformViewId), any())) + .thenReturn(platformView); + platformViewsController.getRegistry().registerViewFactory("testType", viewFactory); + + FlutterJNI jni = new FlutterJNI(); + attach(jni, platformViewsController); + + // Simulate create call from the framework. + createPlatformView(jni, platformViewsController, platformViewId, "testType", /* hybrid=*/ true); + assertFalse(passedContext.getValue() instanceof MutableContextWrapper); + } + + @Test + @Config(shadows = {ShadowFlutterJNI.class, ShadowPlatformTaskQueue.class}) + public void createPlatformViewMessage_setsAndroidViewLayoutDirection() { PlatformViewsController platformViewsController = new PlatformViewsController(); platformViewsController.setSoftwareRendering(true); @@ -340,7 +389,7 @@ public void createPlatformViewMessage__setsAndroidViewLayoutDirection() { @Test @Config(shadows = {ShadowFlutterJNI.class, ShadowPlatformTaskQueue.class}) - public void createPlatformViewMessage__setsAndroidViewSize() { + public void createPlatformViewMessage_setsAndroidViewSize() { PlatformViewsController platformViewsController = new PlatformViewsController(); platformViewsController.setSoftwareRendering(true); @@ -373,7 +422,7 @@ public void createPlatformViewMessage__setsAndroidViewSize() { @Test @Config(shadows = {ShadowFlutterJNI.class, ShadowPlatformTaskQueue.class}) - public void createPlatformViewMessage__disablesAccessibility() { + public void createPlatformViewMessage_disablesAccessibility() { PlatformViewsController platformViewsController = new PlatformViewsController(); platformViewsController.setSoftwareRendering(true); @@ -400,7 +449,7 @@ public void createPlatformViewMessage__disablesAccessibility() { @Test @Config(shadows = {ShadowFlutterJNI.class, ShadowPlatformTaskQueue.class}) - public void createPlatformViewMessage__throwsIfViewIsNull() { + public void createPlatformViewMessage_throwsIfViewIsNull() { PlatformViewsController platformViewsController = new PlatformViewsController(); int platformViewId = 0; @@ -429,7 +478,7 @@ public void createPlatformViewMessage__throwsIfViewIsNull() { @Test @Config(shadows = {ShadowFlutterJNI.class, ShadowPlatformTaskQueue.class}) - public void createHybridPlatformViewMessage__throwsIfViewIsNull() { + public void createHybridPlatformViewMessage_throwsIfViewIsNull() { PlatformViewsController platformViewsController = new PlatformViewsController(); int platformViewId = 0; @@ -519,7 +568,7 @@ public void onPreEngineRestart_clearsPlatformViewContext() { @Test @Config(shadows = {ShadowFlutterJNI.class, ShadowPlatformTaskQueue.class}) - public void createPlatformViewMessage__throwsIfViewHasParent() { + public void createPlatformViewMessage_throwsIfViewHasParent() { PlatformViewsController platformViewsController = new PlatformViewsController(); int platformViewId = 0; @@ -550,7 +599,7 @@ public void createPlatformViewMessage__throwsIfViewHasParent() { @Test @Config(shadows = {ShadowFlutterJNI.class, ShadowPlatformTaskQueue.class}) - public void createHybridPlatformViewMessage__throwsIfViewHasParent() { + public void createHybridPlatformViewMessage_throwsIfViewHasParent() { PlatformViewsController platformViewsController = new PlatformViewsController(); int platformViewId = 0; @@ -580,7 +629,7 @@ public void createHybridPlatformViewMessage__throwsIfViewHasParent() { @Test @Config(shadows = {ShadowFlutterJNI.class, ShadowPlatformTaskQueue.class}) - public void setPlatformViewDirection__throwIfPlatformViewNotFound() { + public void setPlatformViewDirection_throwIfPlatformViewNotFound() { PlatformViewsController platformViewsController = new PlatformViewsController(); int platformViewId = 0; @@ -651,7 +700,7 @@ public void resizeAndroidView() { @Test @Config(shadows = {ShadowFlutterJNI.class, ShadowPlatformTaskQueue.class}) - public void disposeAndroidView__hybridComposition() { + public void disposeAndroidView_hybridComposition() { PlatformViewsController platformViewsController = new PlatformViewsController(); int platformViewId = 0; @@ -729,7 +778,7 @@ public void disposeNullAndroidView() { ShadowFlutterJNI.class, ShadowPlatformTaskQueue.class }) - public void onEndFrame__destroysOverlaySurfaceAfterFrameOnFlutterSurfaceView() { + public void onEndFrame_destroysOverlaySurfaceAfterFrameOnFlutterSurfaceView() { final PlatformViewsController platformViewsController = new PlatformViewsController(); final int platformViewId = 0; @@ -763,7 +812,7 @@ public void onEndFrame__destroysOverlaySurfaceAfterFrameOnFlutterSurfaceView() { /* viewHeight=*/ 10, /* mutatorsStack=*/ new FlutterMutatorsStack()); - final FlutterImageView overlayImageView = mock(FlutterImageView.class); + final PlatformOverlayView overlayImageView = mock(PlatformOverlayView.class); when(overlayImageView.acquireLatestImage()).thenReturn(true); final FlutterOverlaySurface overlaySurface = @@ -788,7 +837,7 @@ public void onEndFrame__destroysOverlaySurfaceAfterFrameOnFlutterSurfaceView() { @Test @Config(shadows = {ShadowFlutterSurfaceView.class, ShadowFlutterJNI.class}) - public void onEndFrame__removesPlatformView() { + public void onEndFrame_removesPlatformView() { final PlatformViewsController platformViewsController = new PlatformViewsController(); final int platformViewId = 0; @@ -829,7 +878,7 @@ public void onEndFrame__removesPlatformView() { ShadowFlutterJNI.class, ShadowPlatformTaskQueue.class }) - public void onEndFrame__removesPlatformViewParent() { + public void onEndFrame_removesPlatformViewParent() { final PlatformViewsController platformViewsController = new PlatformViewsController(); final int platformViewId = 0; @@ -872,7 +921,7 @@ public void onEndFrame__removesPlatformViewParent() { ShadowFlutterJNI.class, ShadowPlatformTaskQueue.class }) - public void detach__destroysOverlaySurfaces() { + public void detach_destroysOverlaySurfaces() { final PlatformViewsController platformViewsController = new PlatformViewsController(); final int platformViewId = 0; @@ -906,7 +955,7 @@ public void detach__destroysOverlaySurfaces() { /* viewHeight=*/ 10, /* mutatorsStack=*/ new FlutterMutatorsStack()); - final FlutterImageView overlayImageView = mock(FlutterImageView.class); + final PlatformOverlayView overlayImageView = mock(PlatformOverlayView.class); when(overlayImageView.acquireLatestImage()).thenReturn(true); final FlutterOverlaySurface overlaySurface = @@ -923,7 +972,7 @@ public void detach__destroysOverlaySurfaces() { @Test @Config(shadows = {ShadowFlutterSurfaceView.class, ShadowFlutterJNI.class}) - public void detachFromView__removesAndDestroysOverlayViews() { + public void detachFromView_removesAndDestroysOverlayViews() { final PlatformViewsController platformViewsController = new PlatformViewsController(); final int platformViewId = 0; @@ -943,7 +992,7 @@ public void detachFromView__removesAndDestroysOverlayViews() { final FlutterView flutterView = mock(FlutterView.class); platformViewsController.attachToView(flutterView); - final FlutterImageView overlayImageView = mock(FlutterImageView.class); + final PlatformOverlayView overlayImageView = mock(PlatformOverlayView.class); when(overlayImageView.acquireLatestImage()).thenReturn(true); final FlutterOverlaySurface overlaySurface = @@ -961,7 +1010,7 @@ public void detachFromView__removesAndDestroysOverlayViews() { @Test @Config(shadows = {ShadowFlutterSurfaceView.class, ShadowFlutterJNI.class}) - public void destroyOverlaySurfaces__doesNotThrowIfFlutterViewIsDetached() { + public void destroyOverlaySurfaces_doesNotThrowIfFlutterViewIsDetached() { final PlatformViewsController platformViewsController = new PlatformViewsController(); final int platformViewId = 0; @@ -981,7 +1030,7 @@ public void destroyOverlaySurfaces__doesNotThrowIfFlutterViewIsDetached() { final FlutterView flutterView = mock(FlutterView.class); platformViewsController.attachToView(flutterView); - final FlutterImageView overlayImageView = mock(FlutterImageView.class); + final PlatformOverlayView overlayImageView = mock(PlatformOverlayView.class); when(overlayImageView.acquireLatestImage()).thenReturn(true); final FlutterOverlaySurface overlaySurface = @@ -999,7 +1048,7 @@ public void destroyOverlaySurfaces__doesNotThrowIfFlutterViewIsDetached() { @Test @Config(shadows = {ShadowFlutterSurfaceView.class, ShadowFlutterJNI.class}) - public void destroyOverlaySurfaces__doesNotRemoveOverlayView() { + public void destroyOverlaySurfaces_doesNotRemoveOverlayView() { final PlatformViewsController platformViewsController = new PlatformViewsController(); final int platformViewId = 0; @@ -1019,7 +1068,7 @@ public void destroyOverlaySurfaces__doesNotRemoveOverlayView() { final FlutterView flutterView = mock(FlutterView.class); platformViewsController.attachToView(flutterView); - final FlutterImageView overlayImageView = mock(FlutterImageView.class); + final PlatformOverlayView overlayImageView = mock(PlatformOverlayView.class); when(overlayImageView.acquireLatestImage()).thenReturn(true); final FlutterOverlaySurface overlaySurface = @@ -1033,7 +1082,7 @@ public void destroyOverlaySurfaces__doesNotRemoveOverlayView() { } @Test - public void checkInputConnectionProxy__falseIfViewIsNull() { + public void checkInputConnectionProxy_falseIfViewIsNull() { final PlatformViewsController platformViewsController = new PlatformViewsController(); boolean shouldProxying = platformViewsController.checkInputConnectionProxy(null); assertFalse(shouldProxying); @@ -1126,7 +1175,7 @@ public void dontConverRenderSurfaceWhenFlagIsTrue() { /* mutatorsStack=*/ new FlutterMutatorsStack()); assertEquals(flutterView.getChildCount(), 2); - assertTrue(!(flutterView.getChildAt(0) instanceof FlutterImageView)); + assertTrue(!(flutterView.getChildAt(0) instanceof PlatformOverlayView)); assertTrue(flutterView.getChildAt(1) instanceof FlutterMutatorView); // Simulate dispose call from the framework. diff --git a/shell/platform/android/test/io/flutter/view/AccessibilityBridgeTest.java b/shell/platform/android/test/io/flutter/view/AccessibilityBridgeTest.java index a88c0323a7b33..105d8a7a984b6 100644 --- a/shell/platform/android/test/io/flutter/view/AccessibilityBridgeTest.java +++ b/shell/platform/android/test/io/flutter/view/AccessibilityBridgeTest.java @@ -76,12 +76,15 @@ public void itDescribesNonTextFieldsWithAContentDescription() { assertEquals(nodeInfo.getText(), null); } + @TargetApi(26) @Test - public void itDescribesTextFieldsWithText() { + public void itDescribesTextFieldsWithTextAndHint() { AccessibilityBridge accessibilityBridge = setUpBridge(); TestSemanticsNode testSemanticsNode = new TestSemanticsNode(); - testSemanticsNode.label = "Hello, World"; + testSemanticsNode.value = "Hello, World"; + testSemanticsNode.label = "some label"; + testSemanticsNode.hint = "some hint"; testSemanticsNode.addFlag(AccessibilityBridge.Flag.IS_TEXT_FIELD); TestSemanticsUpdate testSemanticsUpdate = testSemanticsNode.toUpdate(); testSemanticsUpdate.sendUpdateToBridge(accessibilityBridge); @@ -89,6 +92,7 @@ public void itDescribesTextFieldsWithText() { assertEquals(nodeInfo.getContentDescription(), null); assertEquals(nodeInfo.getText().toString(), "Hello, World"); + assertEquals(nodeInfo.getHintText().toString(), "some label, some hint"); } @Test @@ -567,6 +571,92 @@ public void itIgnoresUnfocusableNodeDuringHitTest() { assertEquals(accessibilityBridge.getHoveredObjectId(), 2); } + @Test + public void itFindsPlatformViewsDuringHoverByDefault() { + AccessibilityViewEmbedder mockViewEmbedder = mock(AccessibilityViewEmbedder.class); + AccessibilityManager mockManager = mock(AccessibilityManager.class); + View mockRootView = mock(View.class); + Context context = mock(Context.class); + when(mockRootView.getContext()).thenReturn(context); + when(context.getPackageName()).thenReturn("test"); + AccessibilityBridge accessibilityBridge = + setUpBridge(mockRootView, mockManager, mockViewEmbedder); + ViewParent mockParent = mock(ViewParent.class); + when(mockRootView.getParent()).thenReturn(mockParent); + when(mockManager.isEnabled()).thenReturn(true); + when(mockManager.isTouchExplorationEnabled()).thenReturn(true); + + TestSemanticsNode root = new TestSemanticsNode(); + root.id = 0; + root.left = 0; + root.top = 0; + root.bottom = 20; + root.right = 20; + TestSemanticsNode platformView = new TestSemanticsNode(); + platformView.id = 1; + platformView.platformViewId = 1; + platformView.left = 0; + platformView.top = 0; + platformView.bottom = 20; + platformView.right = 20; + root.addChild(platformView); + TestSemanticsUpdate testSemanticsUpdate = root.toUpdate(); + testSemanticsUpdate.sendUpdateToBridge(accessibilityBridge); + + // Synthesize an accessibility hit test event. + MotionEvent mockEvent = mock(MotionEvent.class); + when(mockEvent.getX()).thenReturn(10.0f); + when(mockEvent.getY()).thenReturn(10.0f); + when(mockEvent.getAction()).thenReturn(MotionEvent.ACTION_HOVER_ENTER); + + final boolean handled = accessibilityBridge.onAccessibilityHoverEvent(mockEvent); + + assertTrue(handled); + } + + @Test + public void itIgnoresPlatformViewsDuringHoverIfRequested() { + AccessibilityViewEmbedder mockViewEmbedder = mock(AccessibilityViewEmbedder.class); + AccessibilityManager mockManager = mock(AccessibilityManager.class); + View mockRootView = mock(View.class); + Context context = mock(Context.class); + when(mockRootView.getContext()).thenReturn(context); + when(context.getPackageName()).thenReturn("test"); + AccessibilityBridge accessibilityBridge = + setUpBridge(mockRootView, mockManager, mockViewEmbedder); + ViewParent mockParent = mock(ViewParent.class); + when(mockRootView.getParent()).thenReturn(mockParent); + when(mockManager.isEnabled()).thenReturn(true); + when(mockManager.isTouchExplorationEnabled()).thenReturn(true); + + TestSemanticsNode root = new TestSemanticsNode(); + root.id = 0; + root.left = 0; + root.top = 0; + root.bottom = 20; + root.right = 20; + TestSemanticsNode platformView = new TestSemanticsNode(); + platformView.id = 1; + platformView.platformViewId = 1; + platformView.left = 0; + platformView.top = 0; + platformView.bottom = 20; + platformView.right = 20; + root.addChild(platformView); + TestSemanticsUpdate testSemanticsUpdate = root.toUpdate(); + testSemanticsUpdate.sendUpdateToBridge(accessibilityBridge); + + // Synthesize an accessibility hit test event. + MotionEvent mockEvent = mock(MotionEvent.class); + when(mockEvent.getX()).thenReturn(10.0f); + when(mockEvent.getY()).thenReturn(10.0f); + when(mockEvent.getAction()).thenReturn(MotionEvent.ACTION_HOVER_ENTER); + + final boolean handled = accessibilityBridge.onAccessibilityHoverEvent(mockEvent, true); + + assertFalse(handled); + } + @Test public void itAnnouncesRouteNameWhenRemoveARoute() { AccessibilityViewEmbedder mockViewEmbedder = mock(AccessibilityViewEmbedder.class); diff --git a/shell/platform/android/vsync_waiter_android.cc b/shell/platform/android/vsync_waiter_android.cc index e2601a16b7b17..9198beb32206e 100644 --- a/shell/platform/android/vsync_waiter_android.cc +++ b/shell/platform/android/vsync_waiter_android.cc @@ -52,7 +52,7 @@ void VsyncWaiterAndroid::AwaitVSync() { // static void VsyncWaiterAndroid::OnVsyncFromNDK(int64_t frame_nanos, void* data) { - TRACE_EVENT0("flutter", "VSYNC"); + TRACE_EVENT0("flutter", "VsyncCallback"); auto frame_time = fml::TimePoint::FromEpochDelta( fml::TimeDelta::FromNanoseconds(frame_nanos)); @@ -72,7 +72,7 @@ void VsyncWaiterAndroid::OnVsyncFromJava(JNIEnv* env, jlong frameDelayNanos, jlong refreshPeriodNanos, jlong java_baton) { - TRACE_EVENT0("flutter", "VSYNC"); + TRACE_EVENT0("flutter", "VsyncCallback"); auto frame_time = fml::TimePoint::Now() - fml::TimeDelta::FromNanoseconds(frameDelayNanos); diff --git a/shell/platform/common/accessibility_bridge.cc b/shell/platform/common/accessibility_bridge.cc index d0f19089dd86f..0482abe70dc3c 100644 --- a/shell/platform/common/accessibility_bridge.cc +++ b/shell/platform/common/accessibility_bridge.cc @@ -283,6 +283,7 @@ void AccessibilityBridge::ConvertFlutterUpdate(const SemanticsNode& node, SetStringListAttributesFromFlutterUpdate(node_data, node); SetNameFromFlutterUpdate(node_data, node); SetValueFromFlutterUpdate(node_data, node); + SetTooltipFromFlutterUpdate(node_data, node); node_data.relative_bounds.bounds.SetRect(node.rect.left, node.rect.top, node.rect.right - node.rect.left, node.rect.bottom - node.rect.top); @@ -516,6 +517,12 @@ void AccessibilityBridge::SetValueFromFlutterUpdate(ui::AXNodeData& node_data, node_data.SetValue(node.value); } +void AccessibilityBridge::SetTooltipFromFlutterUpdate( + ui::AXNodeData& node_data, + const SemanticsNode& node) { + node_data.SetTooltip(node.tooltip); +} + void AccessibilityBridge::SetTreeData(const SemanticsNode& node, ui::AXTreeUpdate& tree_update) { FlutterSemanticsFlag flags = node.flags; @@ -582,6 +589,9 @@ AccessibilityBridge::FromFlutterSemanticsNode( if (flutter_node->decreased_value) { result.decreased_value = std::string(flutter_node->decreased_value); } + if (flutter_node->tooltip) { + result.tooltip = std::string(flutter_node->tooltip); + } result.text_direction = flutter_node->text_direction; result.rect = flutter_node->rect; result.transform = flutter_node->transform; diff --git a/shell/platform/common/accessibility_bridge.h b/shell/platform/common/accessibility_bridge.h index 70fcd20c3d2f7..2eec7f7d939a8 100644 --- a/shell/platform/common/accessibility_bridge.h +++ b/shell/platform/common/accessibility_bridge.h @@ -195,6 +195,7 @@ class AccessibilityBridge std::string value; std::string increased_value; std::string decreased_value; + std::string tooltip; FlutterTextDirection text_direction; FlutterRect rect; FlutterTransformation transform; @@ -249,6 +250,8 @@ class AccessibilityBridge const SemanticsNode& node); void SetValueFromFlutterUpdate(ui::AXNodeData& node_data, const SemanticsNode& node); + void SetTooltipFromFlutterUpdate(ui::AXNodeData& node_data, + const SemanticsNode& node); void SetTreeData(const SemanticsNode& node, ui::AXTreeUpdate& tree_update); SemanticsNode FromFlutterSemanticsNode( const FlutterSemanticsNode* flutter_node); diff --git a/shell/platform/common/accessibility_bridge_unittests.cc b/shell/platform/common/accessibility_bridge_unittests.cc index c320b12b332d3..6b6c2129f5a25 100644 --- a/shell/platform/common/accessibility_bridge_unittests.cc +++ b/shell/platform/common/accessibility_bridge_unittests.cc @@ -32,6 +32,7 @@ FlutterSemanticsNode CreateSemanticsNode( .child_count = children ? children->size() : 0, .children_in_traversal_order = children ? children->data() : nullptr, .custom_accessibility_actions_count = 0, + .tooltip = "", }; } diff --git a/shell/platform/common/client_wrapper/event_channel_unittests.cc b/shell/platform/common/client_wrapper/event_channel_unittests.cc index 395913870f644..58005fcffffce 100644 --- a/shell/platform/common/client_wrapper/event_channel_unittests.cc +++ b/shell/platform/common/client_wrapper/event_channel_unittests.cc @@ -33,7 +33,9 @@ class TestBinaryMessenger : public BinaryMessenger { return last_message_handler_channel_; } - BinaryMessageHandler last_message_handler() { return last_message_handler_; } + const BinaryMessageHandler& last_message_handler() { + return last_message_handler_; + } private: std::string last_message_handler_channel_; @@ -64,7 +66,7 @@ TEST(EventChannelTest, Registration) { EXPECT_EQ(messenger.last_message_handler_channel(), channel_name); EXPECT_NE(messenger.last_message_handler(), nullptr); - // Send dummy listen message. + // Send test listen message. MethodCall<> call("listen", nullptr); auto message = codec.EncodeMethodCall(call); messenger.last_message_handler()( @@ -121,7 +123,7 @@ TEST(EventChannelTest, Cancel) { EXPECT_EQ(messenger.last_message_handler_channel(), channel_name); EXPECT_NE(messenger.last_message_handler(), nullptr); - // Send dummy listen message. + // Send test listen message. MethodCall<> call_listen("listen", nullptr); auto message = codec.EncodeMethodCall(call_listen); messenger.last_message_handler()( @@ -129,7 +131,7 @@ TEST(EventChannelTest, Cancel) { [](const uint8_t* reply, const size_t reply_size) {}); EXPECT_EQ(on_listen_called, true); - // Send dummy cancel message. + // Send test cancel message. MethodCall<> call_cancel("cancel", nullptr); message = codec.EncodeMethodCall(call_cancel); messenger.last_message_handler()( @@ -165,7 +167,7 @@ TEST(EventChannelTest, ListenNotCancel) { EXPECT_EQ(messenger.last_message_handler_channel(), channel_name); EXPECT_NE(messenger.last_message_handler(), nullptr); - // Send dummy listen message. + // Send test listen message. MethodCall<> call_listen("listen", nullptr); auto message = codec.EncodeMethodCall(call_listen); messenger.last_message_handler()( @@ -205,7 +207,7 @@ TEST(EventChannelTest, ReRegistration) { EXPECT_EQ(messenger.last_message_handler_channel(), channel_name); EXPECT_NE(messenger.last_message_handler(), nullptr); - // Send dummy listen message. + // Send test listen message. MethodCall<> call("listen", nullptr); auto message = codec.EncodeMethodCall(call); messenger.last_message_handler()( @@ -213,7 +215,7 @@ TEST(EventChannelTest, ReRegistration) { [](const uint8_t* reply, const size_t reply_size) {}); EXPECT_EQ(on_listen_called, true); - // Send second dummy message to test StreamHandler's OnCancel + // Send second test message to test StreamHandler's OnCancel // method is called before OnListen method is called. on_listen_called = false; message = codec.EncodeMethodCall(call); @@ -226,4 +228,50 @@ TEST(EventChannelTest, ReRegistration) { EXPECT_EQ(on_listen_called, true); } +// Test that the handler is called even if the event channel is destroyed. +TEST(EventChannelTest, HandlerOutlivesEventChannel) { + TestBinaryMessenger messenger; + const std::string channel_name("some_channel"); + const StandardMethodCodec& codec = StandardMethodCodec::GetInstance(); + + bool on_listen_called = false; + bool on_cancel_called = false; + { + EventChannel channel(&messenger, channel_name, &codec); + auto handler = std::make_unique>( + [&on_listen_called](const EncodableValue* arguments, + std::unique_ptr>&& events) + -> std::unique_ptr> { + on_listen_called = true; + return nullptr; + }, + [&on_cancel_called](const EncodableValue* arguments) + -> std::unique_ptr> { + on_cancel_called = true; + return nullptr; + }); + channel.SetStreamHandler(std::move(handler)); + } + + // The event channel was destroyed but the handler should still be alive. + EXPECT_EQ(messenger.last_message_handler_channel(), channel_name); + EXPECT_NE(messenger.last_message_handler(), nullptr); + + // Send test listen message. + MethodCall<> call_listen("listen", nullptr); + auto message = codec.EncodeMethodCall(call_listen); + messenger.last_message_handler()( + message->data(), message->size(), + [](const uint8_t* reply, const size_t reply_size) {}); + EXPECT_EQ(on_listen_called, true); + + // Send test cancel message. + MethodCall<> call_cancel("cancel", nullptr); + message = codec.EncodeMethodCall(call_cancel); + messenger.last_message_handler()( + message->data(), message->size(), + [](const uint8_t* reply, const size_t reply_size) {}); + EXPECT_EQ(on_cancel_called, true); +} + } // namespace flutter diff --git a/shell/platform/common/client_wrapper/include/flutter/event_channel.h b/shell/platform/common/client_wrapper/include/flutter/event_channel.h index fe0e1414d63da..08c242a2ff441 100644 --- a/shell/platform/common/client_wrapper/include/flutter/event_channel.h +++ b/shell/platform/common/client_wrapper/include/flutter/event_channel.h @@ -47,10 +47,13 @@ class EventChannel { // Registers a stream handler on this channel. // If no handler has been registered, any incoming stream setup requests will // be handled silently by providing an empty stream. + // + // Note that the EventChannel does not own the handler and will not + // unregister it on destruction. The caller is responsible for unregistering + // the handler if it should no longer be called. void SetStreamHandler(std::unique_ptr> handler) { if (!handler) { messenger_->SetMessageHandler(name_, nullptr); - is_listening_ = false; return; } @@ -61,69 +64,75 @@ class EventChannel { const MethodCodec* codec = codec_; const std::string channel_name = name_; const BinaryMessenger* messenger = messenger_; - BinaryMessageHandler binary_handler = [shared_handler, codec, channel_name, - messenger, - this](const uint8_t* message, - const size_t message_size, - BinaryReply reply) { - constexpr char kOnListenMethod[] = "listen"; - constexpr char kOnCancelMethod[] = "cancel"; - - std::unique_ptr> method_call = - codec->DecodeMethodCall(message, message_size); - if (!method_call) { - std::cerr << "Unable to construct method call from message on channel: " - << channel_name << std::endl; - reply(nullptr, 0); - return; - } - - const std::string& method = method_call->method_name(); - if (method.compare(kOnListenMethod) == 0) { - if (is_listening_) { - std::unique_ptr> error = - shared_handler->OnCancel(nullptr); - if (error) { - std::cerr << "Failed to cancel existing stream: " - << (error->error_code) << ", " << (error->error_message) - << ", " << (error->error_details); + BinaryMessageHandler binary_handler = + [shared_handler, codec, channel_name, messenger, + // Mutable state to track the handler's listening status. + is_listening = bool(false)](const uint8_t* message, + const size_t message_size, + BinaryReply reply) mutable { + constexpr char kOnListenMethod[] = "listen"; + constexpr char kOnCancelMethod[] = "cancel"; + + std::unique_ptr> method_call = + codec->DecodeMethodCall(message, message_size); + if (!method_call) { + std::cerr + << "Unable to construct method call from message on channel: " + << channel_name << std::endl; + reply(nullptr, 0); + return; } - } - is_listening_ = true; - - std::unique_ptr> result; - auto sink = std::make_unique( - messenger, channel_name, codec); - std::unique_ptr> error = - shared_handler->OnListen(method_call->arguments(), std::move(sink)); - if (error) { - result = codec->EncodeErrorEnvelope( - error->error_code, error->error_message, error->error_details); - } else { - result = codec->EncodeSuccessEnvelope(); - } - reply(result->data(), result->size()); - } else if (method.compare(kOnCancelMethod) == 0) { - std::unique_ptr> result; - if (is_listening_) { - std::unique_ptr> error = - shared_handler->OnCancel(method_call->arguments()); - if (error) { - result = codec->EncodeErrorEnvelope( - error->error_code, error->error_message, error->error_details); + + const std::string& method = method_call->method_name(); + if (method.compare(kOnListenMethod) == 0) { + if (is_listening) { + std::unique_ptr> error = + shared_handler->OnCancel(nullptr); + if (error) { + std::cerr << "Failed to cancel existing stream: " + << (error->error_code) << ", " + << (error->error_message) << ", " + << (error->error_details); + } + } + is_listening = true; + + std::unique_ptr> result; + auto sink = std::make_unique( + messenger, channel_name, codec); + std::unique_ptr> error = + shared_handler->OnListen(method_call->arguments(), + std::move(sink)); + if (error) { + result = codec->EncodeErrorEnvelope(error->error_code, + error->error_message, + error->error_details); + } else { + result = codec->EncodeSuccessEnvelope(); + } + reply(result->data(), result->size()); + } else if (method.compare(kOnCancelMethod) == 0) { + std::unique_ptr> result; + if (is_listening) { + std::unique_ptr> error = + shared_handler->OnCancel(method_call->arguments()); + if (error) { + result = codec->EncodeErrorEnvelope(error->error_code, + error->error_message, + error->error_details); + } else { + result = codec->EncodeSuccessEnvelope(); + } + is_listening = false; + } else { + result = codec->EncodeErrorEnvelope( + "error", "No active stream to cancel", nullptr); + } + reply(result->data(), result->size()); } else { - result = codec->EncodeSuccessEnvelope(); + reply(nullptr, 0); } - is_listening_ = false; - } else { - result = codec->EncodeErrorEnvelope( - "error", "No active stream to cancel", nullptr); - } - reply(result->data(), result->size()); - } else { - reply(nullptr, 0); - } - }; + }; messenger_->SetMessageHandler(name_, std::move(binary_handler)); } @@ -165,7 +174,6 @@ class EventChannel { BinaryMessenger* messenger_; const std::string name_; const MethodCodec* codec_; - bool is_listening_ = false; }; } // namespace flutter diff --git a/shell/platform/common/flutter_platform_node_delegate_unittests.cc b/shell/platform/common/flutter_platform_node_delegate_unittests.cc index 62a1b22487849..aa25e2457186d 100644 --- a/shell/platform/common/flutter_platform_node_delegate_unittests.cc +++ b/shell/platform/common/flutter_platform_node_delegate_unittests.cc @@ -57,6 +57,7 @@ TEST(FlutterPlatformNodeDelegateTest, canPerfomActions) { root.value = ""; root.increased_value = ""; root.decreased_value = ""; + root.tooltip = ""; root.child_count = 0; root.custom_accessibility_actions_count = 0; bridge->AddFlutterSemanticsNodeUpdate(&root); @@ -102,6 +103,7 @@ TEST(FlutterPlatformNodeDelegateTest, canGetAXNode) { root.value = ""; root.increased_value = ""; root.decreased_value = ""; + root.tooltip = ""; root.child_count = 0; root.custom_accessibility_actions_count = 0; bridge->AddFlutterSemanticsNodeUpdate(&root); @@ -123,6 +125,7 @@ TEST(FlutterPlatformNodeDelegateTest, canCalculateBoundsCorrectly) { root.value = ""; root.increased_value = ""; root.decreased_value = ""; + root.tooltip = ""; root.child_count = 1; int32_t children[] = {1}; root.children_in_traversal_order = children; @@ -138,6 +141,7 @@ TEST(FlutterPlatformNodeDelegateTest, canCalculateBoundsCorrectly) { child1.value = ""; child1.increased_value = ""; child1.decreased_value = ""; + child1.tooltip = ""; child1.child_count = 0; child1.custom_accessibility_actions_count = 0; child1.rect = {0, 0, 50, 50}; // LTRB @@ -168,6 +172,7 @@ TEST(FlutterPlatformNodeDelegateTest, canCalculateOffScreenBoundsCorrectly) { root.value = ""; root.increased_value = ""; root.decreased_value = ""; + root.tooltip = ""; root.child_count = 1; int32_t children[] = {1}; root.children_in_traversal_order = children; @@ -183,6 +188,7 @@ TEST(FlutterPlatformNodeDelegateTest, canCalculateOffScreenBoundsCorrectly) { child1.value = ""; child1.increased_value = ""; child1.decreased_value = ""; + child1.tooltip = ""; child1.child_count = 0; child1.custom_accessibility_actions_count = 0; child1.rect = {90, 90, 100, 100}; // LTRB @@ -213,6 +219,7 @@ TEST(FlutterPlatformNodeDelegateTest, canUseOwnerBridge) { root.value = ""; root.increased_value = ""; root.decreased_value = ""; + root.tooltip = ""; root.child_count = 1; int32_t children[] = {1}; root.children_in_traversal_order = children; @@ -228,6 +235,7 @@ TEST(FlutterPlatformNodeDelegateTest, canUseOwnerBridge) { child1.value = ""; child1.increased_value = ""; child1.decreased_value = ""; + child1.tooltip = ""; child1.child_count = 0; child1.custom_accessibility_actions_count = 0; child1.rect = {0, 0, 50, 50}; // LTRB diff --git a/shell/platform/darwin/BUILD.gn b/shell/platform/darwin/BUILD.gn index 23c8e4055acf7..f11a8b7aa1cb1 100644 --- a/shell/platform/darwin/BUILD.gn +++ b/shell/platform/darwin/BUILD.gn @@ -26,6 +26,20 @@ source_set("flutter_channels") { sources = [ "common/buffer_conversions.h", "common/buffer_conversions.mm", + ] + + deps = [ "//flutter/fml" ] + + public_deps = [ ":flutter_channels_arc" ] + + public_configs = [ "//flutter:config" ] +} + +source_set("flutter_channels_arc") { + cflags_objc = flutter_cflags_objc_arc + cflags_objcc = flutter_cflags_objcc_arc + + sources = [ "common/framework/Headers/FlutterBinaryMessenger.h", "common/framework/Headers/FlutterChannels.h", "common/framework/Headers/FlutterCodecs.h", @@ -36,13 +50,12 @@ source_set("flutter_channels") { "common/framework/Source/FlutterStandardCodec_Internal.h", ] - deps = [ - "//flutter/common", - "//flutter/flow", - "//flutter/fml", - "//flutter/runtime", - "//flutter/shell/common", - "//third_party/skia", + public = [ + "common/framework/Headers/FlutterBinaryMessenger.h", + "common/framework/Headers/FlutterChannels.h", + "common/framework/Headers/FlutterCodecs.h", + "common/framework/Headers/FlutterMacros.h", + "common/framework/Source/FlutterStandardCodec_Internal.h", ] public_configs = [ "//flutter:config" ] diff --git a/shell/platform/darwin/common/BUILD.gn b/shell/platform/darwin/common/BUILD.gn index 45a9e3092b2bc..72e3a807f1d85 100644 --- a/shell/platform/darwin/common/BUILD.gn +++ b/shell/platform/darwin/common/BUILD.gn @@ -16,15 +16,7 @@ source_set("common") { "command_line.mm", ] - deps = [ - "//flutter/common", - "//flutter/flow", - "//flutter/fml", - "//flutter/runtime", - "//flutter/shell/common", - "//third_party/dart/runtime:dart_api", - "//third_party/skia", - ] + deps = [ "//flutter/fml" ] public_configs = [ "//flutter:config" ] } @@ -38,8 +30,8 @@ config("framework_relative_headers") { # Framework code shared between iOS and macOS. source_set("framework_shared") { - cflags_objc = flutter_cflags_objc - cflags_objcc = flutter_cflags_objcc + cflags_objc = flutter_cflags_objc_arc + cflags_objcc = flutter_cflags_objcc_arc sources = [ "framework/Source/FlutterChannels.mm", diff --git a/shell/platform/darwin/common/framework/Headers/FlutterCodecs.h b/shell/platform/darwin/common/framework/Headers/FlutterCodecs.h index 3ba5d4e9c2580..f7117f01ffb7a 100644 --- a/shell/platform/darwin/common/framework/Headers/FlutterCodecs.h +++ b/shell/platform/darwin/common/framework/Headers/FlutterCodecs.h @@ -344,17 +344,17 @@ FLUTTER_DARWIN_EXPORT /** * The type of the encoded values. */ -@property(readonly, nonatomic) FlutterStandardDataType type; +@property(readonly, nonatomic, assign) FlutterStandardDataType type; /** * The number of value items encoded. */ -@property(readonly, nonatomic) UInt32 elementCount; +@property(readonly, nonatomic, assign) UInt32 elementCount; /** * The number of bytes used by the encoding of a single value item. */ -@property(readonly, nonatomic) UInt8 elementSize; +@property(readonly, nonatomic, assign) UInt8 elementSize; @end /** diff --git a/shell/platform/darwin/common/framework/Source/FlutterChannels.mm b/shell/platform/darwin/common/framework/Source/FlutterChannels.mm index 30b306a301f39..f360144d3748f 100644 --- a/shell/platform/darwin/common/framework/Source/FlutterChannels.mm +++ b/shell/platform/darwin/common/framework/Source/FlutterChannels.mm @@ -4,6 +4,8 @@ #import "flutter/shell/platform/darwin/common/framework/Headers/FlutterChannels.h" +FLUTTER_ASSERT_ARC + #pragma mark - Basic message channel static NSString* const kFlutterChannelBuffersChannel = @"dev.flutter/channel-buffers"; @@ -51,9 +53,9 @@ + (instancetype)messageChannelWithName:(NSString*)name + (instancetype)messageChannelWithName:(NSString*)name binaryMessenger:(NSObject*)messenger codec:(NSObject*)codec { - return [[[FlutterBasicMessageChannel alloc] initWithName:name - binaryMessenger:messenger - codec:codec] autorelease]; + return [[FlutterBasicMessageChannel alloc] initWithName:name + binaryMessenger:messenger + codec:codec]; } - (instancetype)initWithName:(NSString*)name @@ -69,21 +71,13 @@ - (instancetype)initWithName:(NSString*)name taskQueue:(NSObject*)taskQueue { self = [super init]; NSAssert(self, @"Super init cannot be nil"); - _name = [name retain]; - _messenger = [messenger retain]; - _codec = [codec retain]; - _taskQueue = [taskQueue retain]; + _name = [name copy]; + _messenger = messenger; + _codec = codec; + _taskQueue = taskQueue; return self; } -- (void)dealloc { - [_name release]; - [_messenger release]; - [_codec release]; - [_taskQueue release]; - [super dealloc]; -} - - (void)sendMessage:(id)message { [_messenger sendOnChannel:_name message:[_codec encode:message]]; } @@ -107,7 +101,10 @@ - (void)setMessageHandler:(FlutterMessageHandler)handler { } return; } + // Grab reference to avoid retain on self. + // `self` might be released before the block, so the block needs to retain the codec to + // make sure it is not released with `self` NSObject* codec = _codec; FlutterBinaryMessageHandler messageHandler = ^(NSData* message, FlutterBinaryReply callback) { handler([codec decode:message], ^(id reply) { @@ -128,26 +125,19 @@ - (void)resizeChannelBuffer:(NSInteger)newSize { //////////////////////////////////////////////////////////////////////////////// @implementation FlutterError + (instancetype)errorWithCode:(NSString*)code message:(NSString*)message details:(id)details { - return [[[FlutterError alloc] initWithCode:code message:message details:details] autorelease]; + return [[FlutterError alloc] initWithCode:code message:message details:details]; } - (instancetype)initWithCode:(NSString*)code message:(NSString*)message details:(id)details { NSAssert(code, @"Code cannot be nil"); self = [super init]; NSAssert(self, @"Super init cannot be nil"); - _code = [code retain]; - _message = [message retain]; - _details = [details retain]; + _code = [code copy]; + _message = [message copy]; + _details = details; return self; } -- (void)dealloc { - [_code release]; - [_message release]; - [_details release]; - [super dealloc]; -} - - (BOOL)isEqual:(id)object { if (self == object) { return YES; @@ -169,24 +159,18 @@ - (NSUInteger)hash { //////////////////////////////////////////////////////////////////////////////// @implementation FlutterMethodCall + (instancetype)methodCallWithMethodName:(NSString*)method arguments:(id)arguments { - return [[[FlutterMethodCall alloc] initWithMethodName:method arguments:arguments] autorelease]; + return [[FlutterMethodCall alloc] initWithMethodName:method arguments:arguments]; } - (instancetype)initWithMethodName:(NSString*)method arguments:(id)arguments { NSAssert(method, @"Method name cannot be nil"); self = [super init]; NSAssert(self, @"Super init cannot be nil"); - _method = [method retain]; - _arguments = [arguments retain]; + _method = [method copy]; + _arguments = arguments; return self; } -- (void)dealloc { - [_method release]; - [_arguments release]; - [super dealloc]; -} - - (BOOL)isEqual:(id)object { if (self == object) { return YES; @@ -224,8 +208,7 @@ + (instancetype)methodChannelWithName:(NSString*)name + (instancetype)methodChannelWithName:(NSString*)name binaryMessenger:(NSObject*)messenger codec:(NSObject*)codec { - return [[[FlutterMethodChannel alloc] initWithName:name binaryMessenger:messenger - codec:codec] autorelease]; + return [[FlutterMethodChannel alloc] initWithName:name binaryMessenger:messenger codec:codec]; } - (instancetype)initWithName:(NSString*)name @@ -240,21 +223,13 @@ - (instancetype)initWithName:(NSString*)name taskQueue:(NSObject*)taskQueue { self = [super init]; NSAssert(self, @"Super init cannot be nil"); - _name = [name retain]; - _messenger = [messenger retain]; - _codec = [codec retain]; - _taskQueue = [taskQueue retain]; + _name = [name copy]; + _messenger = messenger; + _codec = codec; + _taskQueue = taskQueue; return self; } -- (void)dealloc { - [_name release]; - [_messenger release]; - [_codec release]; - [_taskQueue release]; - [super dealloc]; -} - - (void)invokeMethod:(NSString*)method arguments:(id)arguments { FlutterMethodCall* methodCall = [FlutterMethodCall methodCallWithMethodName:method arguments:arguments]; @@ -285,6 +260,8 @@ - (void)setMethodCallHandler:(FlutterMethodCallHandler)handler { return; } // Make sure the block captures the codec, not self. + // `self` might be released before the block, so the block needs to retain the codec to + // make sure it is not released with `self` NSObject* codec = _codec; FlutterBinaryMessageHandler messageHandler = ^(NSData* message, FlutterBinaryReply callback) { FlutterMethodCall* call = [codec decodeMethodCall:message]; @@ -328,8 +305,7 @@ + (instancetype)eventChannelWithName:(NSString*)name + (instancetype)eventChannelWithName:(NSString*)name binaryMessenger:(NSObject*)messenger codec:(NSObject*)codec { - return [[[FlutterEventChannel alloc] initWithName:name binaryMessenger:messenger - codec:codec] autorelease]; + return [[FlutterEventChannel alloc] initWithName:name binaryMessenger:messenger codec:codec]; } - (instancetype)initWithName:(NSString*)name @@ -344,21 +320,13 @@ - (instancetype)initWithName:(NSString*)name taskQueue:(NSObject* _Nullable)taskQueue { self = [super init]; NSAssert(self, @"Super init cannot be nil"); - _name = [name retain]; - _messenger = [messenger retain]; - _codec = [codec retain]; - _taskQueue = [taskQueue retain]; + _name = [name copy]; + _messenger = messenger; + _codec = codec; + _taskQueue = taskQueue; return self; } -- (void)dealloc { - [_name release]; - [_codec release]; - [_messenger release]; - [_taskQueue release]; - [super dealloc]; -} - static FlutterBinaryMessengerConnection SetStreamHandlerMessageHandlerOnChannel( NSObject* handler, NSString* name, diff --git a/shell/platform/darwin/common/framework/Source/FlutterChannelsTest.m b/shell/platform/darwin/common/framework/Source/FlutterChannelsTest.m index a499fbea8f34d..e2593f535b7e1 100644 --- a/shell/platform/darwin/common/framework/Source/FlutterChannelsTest.m +++ b/shell/platform/darwin/common/framework/Source/FlutterChannelsTest.m @@ -234,6 +234,78 @@ - (void)testBasicMessageChannelTaskQueue { OCMVerify([binaryMessenger cleanUpConnection:connection]); } +- (void)testBasicMessageChannelInvokeHandlerAfterChannelReleased { + NSString* channelName = @"foo"; + __block NSString* handlerMessage; + __block FlutterBinaryMessageHandler messageHandler; + @autoreleasepool { + FlutterBinaryMessengerConnection connection = 123; + id binaryMessenger = OCMProtocolMock(@protocol(FlutterBinaryMessenger)); + id codec = OCMProtocolMock(@protocol(FlutterMessageCodec)); + id taskQueue = OCMClassMock([NSObject class]); + FlutterBasicMessageChannel* channel = + [[FlutterBasicMessageChannel alloc] initWithName:channelName + binaryMessenger:binaryMessenger + codec:codec + taskQueue:taskQueue]; + + FlutterMessageHandler handler = ^(id _Nullable message, FlutterReply callback) { + handlerMessage = message; + }; + OCMStub([binaryMessenger + setMessageHandlerOnChannel:channelName + binaryMessageHandler:[OCMArg checkWithBlock:^BOOL( + FlutterBinaryMessageHandler handler) { + messageHandler = handler; + return YES; + }] + taskQueue:taskQueue]) + .andReturn(connection); + OCMStub([codec decode:[OCMArg any]]).andReturn(@"decoded message"); + [channel setMessageHandler:handler]; + } + // Channel is released, messageHandler should still retain the codec. The codec + // internally makes a `decode` call and updates the `handlerMessage` to "decoded message". + messageHandler([NSData data], ^(NSData* data){ + }); + XCTAssertEqualObjects(handlerMessage, @"decoded message"); +} + +- (void)testMethodChannelInvokeHandlerAfterChannelReleased { + NSString* channelName = @"foo"; + FlutterBinaryMessengerConnection connection = 123; + __block FlutterMethodCall* decodedMethodCall; + __block FlutterBinaryMessageHandler messageHandler; + @autoreleasepool { + id binaryMessenger = OCMProtocolMock(@protocol(FlutterBinaryMessenger)); + id codec = OCMProtocolMock(@protocol(FlutterMethodCodec)); + id taskQueue = OCMClassMock([NSObject class]); + FlutterMethodChannel* channel = [[FlutterMethodChannel alloc] initWithName:channelName + binaryMessenger:binaryMessenger + codec:codec + taskQueue:taskQueue]; + FlutterMethodCallHandler handler = ^(FlutterMethodCall* call, FlutterResult result) { + decodedMethodCall = call; + }; + OCMStub([binaryMessenger + setMessageHandlerOnChannel:channelName + binaryMessageHandler:[OCMArg checkWithBlock:^BOOL( + FlutterBinaryMessageHandler handler) { + messageHandler = handler; + return YES; + }] + taskQueue:taskQueue]) + .andReturn(connection); + OCMStub([codec decodeMethodCall:[OCMArg any]]) + .andReturn([FlutterMethodCall methodCallWithMethodName:@"decoded method call" + arguments:nil]); + [channel setMethodCallHandler:handler]; + } + messageHandler([NSData data], ^(NSData* data){ + }); + XCTAssertEqualObjects(decodedMethodCall.method, @"decoded method call"); +} + - (void)testMethodChannelTaskQueue { NSString* channelName = @"foo"; FlutterBinaryMessengerConnection connection = 123; diff --git a/shell/platform/darwin/common/framework/Source/FlutterCodecs.mm b/shell/platform/darwin/common/framework/Source/FlutterCodecs.mm index e4a1420c10e36..57ef1eb752a4a 100644 --- a/shell/platform/darwin/common/framework/Source/FlutterCodecs.mm +++ b/shell/platform/darwin/common/framework/Source/FlutterCodecs.mm @@ -6,6 +6,8 @@ #include +FLUTTER_ASSERT_ARC + @implementation FlutterBinaryCodec + (instancetype)sharedInstance { static id _sharedInstance = nil; @@ -48,7 +50,7 @@ - (NSString*)decode:(NSData*)message { if (message == nil) { return nil; } - return [[[NSString alloc] initWithData:message encoding:NSUTF8StringEncoding] autorelease]; + return [[NSString alloc] initWithData:message encoding:NSUTF8StringEncoding]; } @end @@ -66,17 +68,18 @@ - (NSData*)encode:(id)message { return nil; } NSData* encoding; + NSError* error; if ([message isKindOfClass:[NSArray class]] || [message isKindOfClass:[NSDictionary class]]) { - encoding = [NSJSONSerialization dataWithJSONObject:message options:0 error:nil]; + encoding = [NSJSONSerialization dataWithJSONObject:message options:0 error:&error]; } else { // NSJSONSerialization does not support top-level simple values. // We encode as singleton array, then extract the relevant bytes. - encoding = [NSJSONSerialization dataWithJSONObject:@[ message ] options:0 error:nil]; + encoding = [NSJSONSerialization dataWithJSONObject:@[ message ] options:0 error:&error]; if (encoding) { encoding = [encoding subdataWithRange:NSMakeRange(1, encoding.length - 2)]; } } - NSAssert(encoding, @"Invalid JSON message, encoding failed"); + NSAssert(encoding, @"Invalid JSON message, encoding failed: %@", error); return encoding; } diff --git a/shell/platform/darwin/common/framework/Source/FlutterStandardCodec.mm b/shell/platform/darwin/common/framework/Source/FlutterStandardCodec.mm index eeb3ef918b0c3..62e85e66a2440 100644 --- a/shell/platform/darwin/common/framework/Source/FlutterStandardCodec.mm +++ b/shell/platform/darwin/common/framework/Source/FlutterStandardCodec.mm @@ -4,6 +4,8 @@ #import "flutter/shell/platform/darwin/common/framework/Source/FlutterStandardCodec_Internal.h" +FLUTTER_ASSERT_ARC + #pragma mark - Codec for basic message channel @implementation FlutterStandardMessageCodec { @@ -12,29 +14,23 @@ @implementation FlutterStandardMessageCodec { + (instancetype)sharedInstance { static id _sharedInstance = nil; if (!_sharedInstance) { - FlutterStandardReaderWriter* readerWriter = - [[[FlutterStandardReaderWriter alloc] init] autorelease]; + FlutterStandardReaderWriter* readerWriter = [[FlutterStandardReaderWriter alloc] init]; _sharedInstance = [[FlutterStandardMessageCodec alloc] initWithReaderWriter:readerWriter]; } return _sharedInstance; } + (instancetype)codecWithReaderWriter:(FlutterStandardReaderWriter*)readerWriter { - return [[[FlutterStandardMessageCodec alloc] initWithReaderWriter:readerWriter] autorelease]; + return [[FlutterStandardMessageCodec alloc] initWithReaderWriter:readerWriter]; } - (instancetype)initWithReaderWriter:(FlutterStandardReaderWriter*)readerWriter { self = [super init]; NSAssert(self, @"Super init cannot be nil"); - _readerWriter = [readerWriter retain]; + _readerWriter = readerWriter; return self; } -- (void)dealloc { - [_readerWriter release]; - [super dealloc]; -} - - (NSData*)encode:(id)message { if (message == nil) { return nil; @@ -64,29 +60,23 @@ @implementation FlutterStandardMethodCodec { + (instancetype)sharedInstance { static id _sharedInstance = nil; if (!_sharedInstance) { - FlutterStandardReaderWriter* readerWriter = - [[[FlutterStandardReaderWriter alloc] init] autorelease]; + FlutterStandardReaderWriter* readerWriter = [[FlutterStandardReaderWriter alloc] init]; _sharedInstance = [[FlutterStandardMethodCodec alloc] initWithReaderWriter:readerWriter]; } return _sharedInstance; } + (instancetype)codecWithReaderWriter:(FlutterStandardReaderWriter*)readerWriter { - return [[[FlutterStandardMethodCodec alloc] initWithReaderWriter:readerWriter] autorelease]; + return [[FlutterStandardMethodCodec alloc] initWithReaderWriter:readerWriter]; } - (instancetype)initWithReaderWriter:(FlutterStandardReaderWriter*)readerWriter { self = [super init]; NSAssert(self, @"Super init cannot be nil"); - _readerWriter = [readerWriter retain]; + _readerWriter = readerWriter; return self; } -- (void)dealloc { - [_readerWriter release]; - [super dealloc]; -} - - (NSData*)encodeMethodCall:(FlutterMethodCall*)call { NSMutableData* data = [NSMutableData dataWithCapacity:32]; FlutterStandardWriter* writer = [_readerWriter writerWithData:data]; @@ -173,7 +163,7 @@ + (instancetype)typedDataWithFloat64:(NSData*)data { } + (instancetype)typedDataWithData:(NSData*)data type:(FlutterStandardDataType)type { - return [[[FlutterStandardTypedData alloc] initWithData:data type:type] autorelease]; + return [[FlutterStandardTypedData alloc] initWithData:data type:type]; } - (instancetype)initWithData:(NSData*)data type:(FlutterStandardDataType)type { @@ -182,18 +172,13 @@ - (instancetype)initWithData:(NSData*)data type:(FlutterStandardDataType)type { NSAssert(data.length % elementSize == 0, @"Data must contain integral number of elements"); self = [super init]; NSAssert(self, @"Super init cannot be nil"); - _data = [data retain]; + _data = [data copy]; _type = type; _elementSize = elementSize; _elementCount = data.length / elementSize; return self; } -- (void)dealloc { - [_data release]; - [super dealloc]; -} - - (BOOL)isEqual:(id)object { if (self == object) { return YES; @@ -220,15 +205,10 @@ @implementation FlutterStandardWriter { - (instancetype)initWithData:(NSMutableData*)data { self = [super init]; NSAssert(self, @"Super init cannot be nil"); - _data = [data retain]; + _data = data; return self; } -- (void)dealloc { - [_data release]; - [super dealloc]; -} - - (void)writeByte:(UInt8)value { [_data appendBytes:&value length:1]; } @@ -273,7 +253,7 @@ - (void)writeValue:(id)value { if (value == nil || value == [NSNull null]) { [self writeByte:FlutterStandardFieldNil]; } else if ([value isKindOfClass:[NSNumber class]]) { - CFNumberRef number = (CFNumberRef)value; + CFNumberRef number = (__bridge CFNumberRef)value; BOOL success = NO; if (CFGetTypeID(number) == CFBooleanGetTypeID()) { BOOL b = CFBooleanGetValue((CFBooleanRef)number); @@ -348,16 +328,11 @@ @implementation FlutterStandardReader { - (instancetype)initWithData:(NSData*)data { self = [super init]; NSAssert(self, @"Super init cannot be nil"); - _data = [data retain]; + _data = [data copy]; _range = NSMakeRange(0, 0); return self; } -- (void)dealloc { - [_data release]; - [super dealloc]; -} - - (BOOL)hasMore { return _range.location < _data.length; } @@ -398,7 +373,7 @@ - (NSData*)readData:(NSUInteger)length { - (NSString*)readUTF8 { NSData* bytes = [self readData:[self readSize]]; - return [[[NSString alloc] initWithData:bytes encoding:NSUTF8StringEncoding] autorelease]; + return [[NSString alloc] initWithData:bytes encoding:NSUTF8StringEncoding]; } - (void)readAlignment:(UInt8)alignment { @@ -482,10 +457,10 @@ - (nullable id)readValueOfType:(UInt8)type { @implementation FlutterStandardReaderWriter - (FlutterStandardWriter*)writerWithData:(NSMutableData*)data { - return [[[FlutterStandardWriter alloc] initWithData:data] autorelease]; + return [[FlutterStandardWriter alloc] initWithData:data]; } - (FlutterStandardReader*)readerWithData:(NSData*)data { - return [[[FlutterStandardReader alloc] initWithData:data] autorelease]; + return [[FlutterStandardReader alloc] initWithData:data]; } @end diff --git a/shell/platform/darwin/graphics/BUILD.gn b/shell/platform/darwin/graphics/BUILD.gn index c7c151c10d33f..fbb5a7a5b1035 100644 --- a/shell/platform/darwin/graphics/BUILD.gn +++ b/shell/platform/darwin/graphics/BUILD.gn @@ -5,25 +5,35 @@ assert(is_ios || is_mac) import("//flutter/common/config.gni") +import("//flutter/impeller/tools/impeller.gni") source_set("graphics") { cflags_objc = flutter_cflags_objc_arc cflags_objcc = flutter_cflags_objcc_arc sources = [ - "FlutterDarwinContextMetal.h", - "FlutterDarwinContextMetal.mm", + "FlutterDarwinContextMetalSkia.h", + "FlutterDarwinContextMetalSkia.mm", "FlutterDarwinExternalTextureMetal.h", "FlutterDarwinExternalTextureMetal.mm", ] deps = [ "//flutter/common/graphics", + "//flutter/display_list", "//flutter/fml", "//flutter/shell/common", "//flutter/shell/platform/darwin/common:framework_shared", ] + if (impeller_supports_rendering) { + sources += [ + "FlutterDarwinContextMetalImpeller.h", + "FlutterDarwinContextMetalImpeller.mm", + ] + deps += [ "//flutter/impeller" ] + } + frameworks = [ "CoreVideo.framework" ] public_deps = [ "//third_party/skia" ] diff --git a/shell/platform/darwin/graphics/FlutterDarwinContextMetalImpeller.h b/shell/platform/darwin/graphics/FlutterDarwinContextMetalImpeller.h new file mode 100644 index 0000000000000..55fc5ac9b79c3 --- /dev/null +++ b/shell/platform/darwin/graphics/FlutterDarwinContextMetalImpeller.h @@ -0,0 +1,50 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef SHELL_PLATFORM_DARWIN_GRAPHICS_DARWIN_CONTEXT_METAL_IMPELLER_H_ +#define SHELL_PLATFORM_DARWIN_GRAPHICS_DARWIN_CONTEXT_METAL_IMPELLER_H_ + +#import +#import +#import + +#include "flutter/fml/platform/darwin/cf_utils.h" +#import "flutter/shell/platform/darwin/common/framework/Headers/FlutterTexture.h" +#import "flutter/shell/platform/darwin/graphics/FlutterDarwinExternalTextureMetal.h" +#include "impeller/renderer/backend/metal/context_mtl.h" + +NS_ASSUME_NONNULL_BEGIN + +/** + * Provides skia GrContexts that are shared between iOS and macOS embeddings. + */ +@interface FlutterDarwinContextMetalImpeller : NSObject + +/** + * Initializes a FlutterDarwinContextMetalImpeller. + */ +- (instancetype)init; + +/** + * Creates an external texture with the specified ID and contents. + */ +- (FlutterDarwinExternalTextureMetal*) + createExternalTextureWithIdentifier:(int64_t)textureID + texture:(NSObject*)texture; + +/** + * Impeller context; + */ +@property(nonatomic, readonly) std::shared_ptr context; + +/* + * Texture cache for external textures. + */ +@property(nonatomic, readonly) fml::CFRef textureCache; + +@end + +NS_ASSUME_NONNULL_END + +#endif // SHELL_PLATFORM_DARWIN_GRAPHICS_DARWIN_CONTEXT_METAL_IMPELLER_H_ diff --git a/shell/platform/darwin/graphics/FlutterDarwinContextMetalImpeller.mm b/shell/platform/darwin/graphics/FlutterDarwinContextMetalImpeller.mm new file mode 100644 index 0000000000000..a75711c2b4441 --- /dev/null +++ b/shell/platform/darwin/graphics/FlutterDarwinContextMetalImpeller.mm @@ -0,0 +1,69 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#import "flutter/shell/platform/darwin/graphics/FlutterDarwinContextMetalImpeller.h" + +#include "flutter/common/graphics/persistent_cache.h" +#include "flutter/fml/logging.h" +#include "flutter/impeller/entity/mtl/entity_shaders.h" +#include "flutter/impeller/renderer/backend/metal/context_mtl.h" +#include "flutter/shell/common/context_options.h" +#import "flutter/shell/platform/darwin/common/framework/Headers/FlutterMacros.h" + +FLUTTER_ASSERT_ARC + +static std::shared_ptr CreateImpellerContext() { + std::vector> shader_mappings = { + std::make_shared(impeller_entity_shaders_data, + impeller_entity_shaders_length), + }; + auto context = impeller::ContextMTL::Create(shader_mappings, "Impeller Library"); + if (!context) { + FML_LOG(ERROR) << "Could not create Metal Impeller Context."; + return nullptr; + } + FML_LOG(ERROR) << "Using the Impeller rendering backend."; + + return context; +} + +@implementation FlutterDarwinContextMetalImpeller + +- (instancetype)init { + self = [super init]; + if (self != nil) { + _context = CreateImpellerContext(); + id device = _context->GetMTLDevice(); + if (!device) { + FML_DLOG(ERROR) << "Could not acquire Metal device."; + return nil; + } + + CVMetalTextureCacheRef textureCache; + CVReturn cvReturn = CVMetalTextureCacheCreate(kCFAllocatorDefault, // allocator + nil, // cache attributes (nil default) + device, // metal device + nil, // texture attributes (nil default) + &textureCache // [out] cache + ); + + if (cvReturn != kCVReturnSuccess) { + FML_DLOG(ERROR) << "Could not create Metal texture cache."; + return nil; + } + _textureCache.Reset(textureCache); + } + return self; +} + +- (FlutterDarwinExternalTextureMetal*) + createExternalTextureWithIdentifier:(int64_t)textureID + texture:(NSObject*)texture { + return [[FlutterDarwinExternalTextureMetal alloc] initWithTextureCache:_textureCache + textureID:textureID + texture:texture + enableImpeller:YES]; +} + +@end diff --git a/shell/platform/darwin/graphics/FlutterDarwinContextMetal.h b/shell/platform/darwin/graphics/FlutterDarwinContextMetalSkia.h similarity index 90% rename from shell/platform/darwin/graphics/FlutterDarwinContextMetal.h rename to shell/platform/darwin/graphics/FlutterDarwinContextMetalSkia.h index 2c93aff87f8c2..02eb2197332fe 100644 --- a/shell/platform/darwin/graphics/FlutterDarwinContextMetal.h +++ b/shell/platform/darwin/graphics/FlutterDarwinContextMetalSkia.h @@ -18,16 +18,16 @@ NS_ASSUME_NONNULL_BEGIN /** * Provides skia GrContexts that are shared between iOS and macOS embeddings. */ -@interface FlutterDarwinContextMetal : NSObject +@interface FlutterDarwinContextMetalSkia : NSObject /** - * Initializes a FlutterDarwinContextMetal with the system default MTLDevice and a new + * Initializes a FlutterDarwinContextMetalSkia with the system default MTLDevice and a new * MTLCommandQueue. */ - (instancetype)initWithDefaultMTLDevice; /** - * Initializes a FlutterDarwinContextMetal with provided MTLDevice and MTLCommandQueue. + * Initializes a FlutterDarwinContextMetalSkia with provided MTLDevice and MTLCommandQueue. */ - (instancetype)initWithMTLDevice:(id)device commandQueue:(id)commandQueue; diff --git a/shell/platform/darwin/graphics/FlutterDarwinContextMetal.mm b/shell/platform/darwin/graphics/FlutterDarwinContextMetalSkia.mm similarity index 93% rename from shell/platform/darwin/graphics/FlutterDarwinContextMetal.mm rename to shell/platform/darwin/graphics/FlutterDarwinContextMetalSkia.mm index 0cd3fe98906dc..c6e1321b19f8c 100644 --- a/shell/platform/darwin/graphics/FlutterDarwinContextMetal.mm +++ b/shell/platform/darwin/graphics/FlutterDarwinContextMetalSkia.mm @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#import "flutter/shell/platform/darwin/graphics/FlutterDarwinContextMetal.h" +#import "flutter/shell/platform/darwin/graphics/FlutterDarwinContextMetalSkia.h" #include "flutter/common/graphics/persistent_cache.h" #include "flutter/fml/logging.h" @@ -11,7 +11,7 @@ FLUTTER_ASSERT_ARC -@implementation FlutterDarwinContextMetal +@implementation FlutterDarwinContextMetalSkia - (instancetype)initWithDefaultMTLDevice { id device = MTLCreateSystemDefaultDevice(); @@ -70,7 +70,7 @@ - (instancetype)initWithMTLDevice:(id)device flutter::MakeDefaultContextOptions(flutter::ContextType::kRender, GrBackendApi::kMetal); id device = _device; id commandQueue = _commandQueue; - return [FlutterDarwinContextMetal createGrContext:device commandQueue:commandQueue]; + return [FlutterDarwinContextMetalSkia createGrContext:device commandQueue:commandQueue]; } + (sk_sp)createGrContext:(id)device @@ -94,7 +94,8 @@ - (void)dealloc { texture:(NSObject*)texture { return [[FlutterDarwinExternalTextureMetal alloc] initWithTextureCache:_textureCache textureID:textureID - texture:texture]; + texture:texture + enableImpeller:NO]; } @end diff --git a/shell/platform/darwin/graphics/FlutterDarwinExternalTextureMetal.h b/shell/platform/darwin/graphics/FlutterDarwinExternalTextureMetal.h index 042aec510abd8..46fcf8d42ced6 100644 --- a/shell/platform/darwin/graphics/FlutterDarwinExternalTextureMetal.h +++ b/shell/platform/darwin/graphics/FlutterDarwinExternalTextureMetal.h @@ -5,6 +5,7 @@ #import #import +#include "flutter/common/graphics/texture.h" #import "flutter/shell/platform/darwin/common/framework/Headers/FlutterTexture.h" #include "third_party/skia/include/core/SkCanvas.h" #include "third_party/skia/include/core/SkImage.h" @@ -13,6 +14,7 @@ + (sk_sp)wrapYUVATexture:(nonnull id)yTex UVTex:(nonnull id)uvTex + YUVColorSpace:(SkYUVColorSpace)colorSpace grContext:(nonnull GrDirectContext*)grContext width:(size_t)width height:(size_t)height; @@ -28,14 +30,13 @@ - (nullable instancetype)initWithTextureCache:(nonnull CVMetalTextureCacheRef)textureCache textureID:(int64_t)textureID - texture:(nonnull NSObject*)texture; - -- (void)canvas:(SkCanvas&)canvas - bounds:(const SkRect&)bounds - freeze:(BOOL)freeze - grContext:(nonnull GrDirectContext*)grContext - sampling:(const SkSamplingOptions&)sampling - paint:(nullable const SkPaint*)paint; + texture:(nonnull NSObject*)texture + enableImpeller:(BOOL)enableImpeller; + +- (void)paintContext:(flutter::Texture::PaintContext&)context + bounds:(const SkRect&)bounds + freeze:(BOOL)freeze + sampling:(const SkSamplingOptions&)sampling; - (void)onGrContextCreated; diff --git a/shell/platform/darwin/graphics/FlutterDarwinExternalTextureMetal.mm b/shell/platform/darwin/graphics/FlutterDarwinExternalTextureMetal.mm index 6af2b62bdba74..63552ed4f8bf8 100644 --- a/shell/platform/darwin/graphics/FlutterDarwinExternalTextureMetal.mm +++ b/shell/platform/darwin/graphics/FlutterDarwinExternalTextureMetal.mm @@ -3,9 +3,10 @@ // found in the LICENSE file. #import "flutter/shell/platform/darwin/graphics/FlutterDarwinExternalTextureMetal.h" - -#include "flutter/fml/logging.h" -#import "flutter/shell/platform/darwin/common/framework/Headers/FlutterMacros.h" +#include "flutter/display_list/display_list_image.h" +#include "impeller/base/validation.h" +#include "impeller/display_list/display_list_image_impeller.h" +#include "impeller/renderer/backend/metal/texture_mtl.h" #include "third_party/skia/include/core/SkColorSpace.h" #include "third_party/skia/include/core/SkYUVAInfo.h" #include "third_party/skia/include/gpu/GrBackendSurface.h" @@ -19,19 +20,22 @@ @implementation FlutterDarwinExternalTextureMetal { CVMetalTextureCacheRef _textureCache; NSObject* _externalTexture; BOOL _textureFrameAvailable; - sk_sp _externalImage; + sk_sp _externalImage; CVPixelBufferRef _lastPixelBuffer; OSType _pixelFormat; + BOOL _enableImpeller; } - (instancetype)initWithTextureCache:(nonnull CVMetalTextureCacheRef)textureCache textureID:(int64_t)textureID - texture:(NSObject*)texture { + texture:(NSObject*)texture + enableImpeller:(BOOL)enableImpeller { if (self = [super init]) { _textureCache = textureCache; CFRetain(_textureCache); _textureID = textureID; _externalTexture = texture; + _enableImpeller = enableImpeller; return self; } return nil; @@ -47,30 +51,41 @@ - (void)dealloc { } } -- (void)canvas:(SkCanvas&)canvas - bounds:(const SkRect&)bounds - freeze:(BOOL)freeze - grContext:(nonnull GrDirectContext*)grContext - sampling:(const SkSamplingOptions&)sampling - paint:(nullable const SkPaint*)paint { +- (void)paintContext:(flutter::Texture::PaintContext&)context + bounds:(const SkRect&)bounds + freeze:(BOOL)freeze + sampling:(const SkSamplingOptions&)sampling { const bool needsUpdatedTexture = (!freeze && _textureFrameAvailable) || !_externalImage; if (needsUpdatedTexture) { - [self onNeedsUpdatedTexture:grContext]; + [self onNeedsUpdatedTexture:context]; } if (_externalImage) { - canvas.drawImageRect(_externalImage, // image - SkRect::Make(_externalImage->bounds()), // source rect - bounds, // destination rect - sampling, // sampling - paint, // paint - SkCanvas::SrcRectConstraint::kFast_SrcRectConstraint // constraint + if (_enableImpeller) { + context.builder->drawImageRect( + _externalImage, // image + SkRect::Make(_externalImage->bounds()), // source rect + bounds, // destination rect + flutter::ToDl(sampling), // sampling + context.dl_paint, // paint + SkCanvas::SrcRectConstraint::kFast_SrcRectConstraint // constraint + ); + return; + } + + context.canvas->drawImageRect( + _externalImage->skia_image(), // image + SkRect::Make(_externalImage->bounds()), // source rect + bounds, // destination rect + sampling, // sampling + context.sk_paint, // paint + SkCanvas::SrcRectConstraint::kFast_SrcRectConstraint // constraint ); } } -- (void)onNeedsUpdatedTexture:(nonnull GrDirectContext*)grContext { +- (void)onNeedsUpdatedTexture:(flutter::Texture::PaintContext&)context { CVPixelBufferRef pixelBuffer = [_externalTexture copyPixelBuffer]; if (pixelBuffer) { CVPixelBufferRelease(_lastPixelBuffer); @@ -80,7 +95,7 @@ - (void)onNeedsUpdatedTexture:(nonnull GrDirectContext*)grContext { // If the application told us there was a texture frame available but did not provide one when // asked for it, reuse the previous texture but make sure to ask again the next time around. - sk_sp image = [self wrapExternalPixelBuffer:_lastPixelBuffer grContext:grContext]; + sk_sp image = [self wrapExternalPixelBuffer:_lastPixelBuffer context:context]; if (image) { _externalImage = image; _textureFrameAvailable = false; @@ -116,29 +131,29 @@ - (void)onTextureUnregistered { #pragma mark - External texture skia wrapper methods. -- (sk_sp)wrapExternalPixelBuffer:(CVPixelBufferRef)pixelBuffer - grContext:(GrDirectContext*)grContext { +- (sk_sp)wrapExternalPixelBuffer:(CVPixelBufferRef)pixelBuffer + context:(flutter::Texture::PaintContext&)context { if (!pixelBuffer) { return nullptr; } - sk_sp image = nullptr; + sk_sp image = nullptr; if (_pixelFormat == kCVPixelFormatType_420YpCbCr8BiPlanarVideoRange || _pixelFormat == kCVPixelFormatType_420YpCbCr8BiPlanarFullRange) { - image = [self wrapNV12ExternalPixelBuffer:pixelBuffer grContext:grContext]; + image = [self wrapNV12ExternalPixelBuffer:pixelBuffer context:context]; } else { - image = [self wrapRGBAExternalPixelBuffer:pixelBuffer grContext:grContext]; + image = [self wrapRGBAExternalPixelBuffer:pixelBuffer context:context]; } if (!image) { - FML_DLOG(ERROR) << "Could not wrap Metal texture as a Skia image."; + FML_DLOG(ERROR) << "Could not wrap Metal texture as a display list image."; } return image; } -- (sk_sp)wrapNV12ExternalPixelBuffer:(CVPixelBufferRef)pixelBuffer - grContext:(GrDirectContext*)grContext { +- (sk_sp)wrapNV12ExternalPixelBuffer:(CVPixelBufferRef)pixelBuffer + context:(flutter::Texture::PaintContext&)context { SkISize textureSize = SkISize::Make(CVPixelBufferGetWidth(pixelBuffer), CVPixelBufferGetHeight(pixelBuffer)); CVMetalTextureRef yMetalTexture = nullptr; @@ -185,15 +200,50 @@ - (void)onTextureUnregistered { id uvTex = CVMetalTextureGetTexture(uvMetalTexture); CVBufferRelease(uvMetalTexture); - return [FlutterDarwinExternalTextureSkImageWrapper wrapYUVATexture:yTex - UVTex:uvTex - grContext:grContext - width:textureSize.width() - height:textureSize.height()]; + if (_enableImpeller) { + impeller::TextureDescriptor yDesc; + yDesc.storage_mode = impeller::StorageMode::kHostVisible; + yDesc.format = impeller::PixelFormat::kR8UNormInt; + yDesc.size = {textureSize.width(), textureSize.height()}; + yDesc.mip_count = 1; + auto yTexture = impeller::TextureMTL::Wrapper(yDesc, yTex); + yTexture->SetIntent(impeller::TextureIntent::kUploadFromHost); + + impeller::TextureDescriptor uvDesc; + uvDesc.storage_mode = impeller::StorageMode::kHostVisible; + uvDesc.format = impeller::PixelFormat::kR8G8UNormInt; + uvDesc.size = {textureSize.width() / 2, textureSize.height() / 2}; + uvDesc.mip_count = 1; + auto uvTexture = impeller::TextureMTL::Wrapper(uvDesc, uvTex); + uvTexture->SetIntent(impeller::TextureIntent::kUploadFromHost); + + impeller::YUVColorSpace yuvColorSpace = + _pixelFormat == kCVPixelFormatType_420YpCbCr8BiPlanarVideoRange + ? impeller::YUVColorSpace::kBT601LimitedRange + : impeller::YUVColorSpace::kBT601FullRange; + + return impeller::DlImageImpeller::MakeFromYUVTextures(context.aiks_context, yTexture, uvTexture, + yuvColorSpace); + } + + SkYUVColorSpace colorSpace = _pixelFormat == kCVPixelFormatType_420YpCbCr8BiPlanarVideoRange + ? kRec601_Limited_SkYUVColorSpace + : kJPEG_Full_SkYUVColorSpace; + auto skImage = [FlutterDarwinExternalTextureSkImageWrapper wrapYUVATexture:yTex + UVTex:uvTex + YUVColorSpace:colorSpace + grContext:context.gr_context + width:textureSize.width() + height:textureSize.height()]; + if (!skImage) { + return nullptr; + } + + return flutter::DlImage::Make(skImage); } -- (sk_sp)wrapRGBAExternalPixelBuffer:(CVPixelBufferRef)pixelBuffer - grContext:(GrDirectContext*)grContext { +- (sk_sp)wrapRGBAExternalPixelBuffer:(CVPixelBufferRef)pixelBuffer + context:(flutter::Texture::PaintContext&)context { SkISize textureSize = SkISize::Make(CVPixelBufferGetWidth(pixelBuffer), CVPixelBufferGetHeight(pixelBuffer)); CVMetalTextureRef metalTexture = nullptr; @@ -216,10 +266,25 @@ - (void)onTextureUnregistered { id rgbaTex = CVMetalTextureGetTexture(metalTexture); CVBufferRelease(metalTexture); - return [FlutterDarwinExternalTextureSkImageWrapper wrapRGBATexture:rgbaTex - grContext:grContext - width:textureSize.width() - height:textureSize.height()]; + if (_enableImpeller) { + impeller::TextureDescriptor desc; + desc.storage_mode = impeller::StorageMode::kHostVisible; + desc.format = impeller::PixelFormat::kB8G8R8A8UNormInt; + desc.size = {textureSize.width(), textureSize.height()}; + desc.mip_count = 1; + auto texture = impeller::TextureMTL::Wrapper(desc, rgbaTex); + texture->SetIntent(impeller::TextureIntent::kUploadFromHost); + return impeller::DlImageImpeller::Make(texture); + } + + auto skImage = [FlutterDarwinExternalTextureSkImageWrapper wrapRGBATexture:rgbaTex + grContext:context.gr_context + width:textureSize.width() + height:textureSize.height()]; + if (!skImage) { + return nullptr; + } + return flutter::DlImage::Make(skImage); } @end @@ -228,6 +293,7 @@ @implementation FlutterDarwinExternalTextureSkImageWrapper + (sk_sp)wrapYUVATexture:(id)yTex UVTex:(id)uvTex + YUVColorSpace:(SkYUVColorSpace)colorSpace grContext:(nonnull GrDirectContext*)grContext width:(size_t)width height:(size_t)height { @@ -248,7 +314,7 @@ @implementation FlutterDarwinExternalTextureSkImageWrapper /*mipMapped=*/GrMipMapped::kNo, /*textureInfo=*/uvSkiaTextureInfo); SkYUVAInfo yuvaInfo(skiaBackendTextures[0].dimensions(), SkYUVAInfo::PlaneConfig::kY_UV, - SkYUVAInfo::Subsampling::k444, kRec601_SkYUVColorSpace); + SkYUVAInfo::Subsampling::k444, colorSpace); GrYUVABackendTextures yuvaBackendTextures(yuvaInfo, skiaBackendTextures, kTopLeft_GrSurfaceOrigin); diff --git a/shell/platform/darwin/ios/BUILD.gn b/shell/platform/darwin/ios/BUILD.gn index 27fc1f7f4e196..52e626188993c 100644 --- a/shell/platform/darwin/ios/BUILD.gn +++ b/shell/platform/darwin/ios/BUILD.gn @@ -340,9 +340,6 @@ action("copy_framework_info_plist") { "--minversion", ios_deployment_target, ] - if (enable_bitcode) { - args += [ "--bitcode" ] - } } copy("copy_framework_module_map") { diff --git a/shell/platform/darwin/ios/framework/Source/FlutterEngine.mm b/shell/platform/darwin/ios/framework/Source/FlutterEngine.mm index 928bab1184605..bb996706cb36e 100644 --- a/shell/platform/darwin/ios/framework/Source/FlutterEngine.mm +++ b/shell/platform/darwin/ios/framework/Source/FlutterEngine.mm @@ -126,6 +126,7 @@ @implementation FlutterEngine { fml::scoped_nsobject _platformViewsChannel; fml::scoped_nsobject _textInputChannel; fml::scoped_nsobject _undoManagerChannel; + fml::scoped_nsobject _scribbleChannel; fml::scoped_nsobject _spellCheckChannel; fml::scoped_nsobject _lifecycleChannel; fml::scoped_nsobject _systemChannel; @@ -471,6 +472,9 @@ - (FlutterMethodChannel*)textInputChannel { - (FlutterMethodChannel*)undoManagerChannel { return _undoManagerChannel.get(); } +- (FlutterMethodChannel*)scribbleChannel { + return _scribbleChannel.get(); +} - (FlutterMethodChannel*)spellCheckChannel { return _spellCheckChannel.get(); } @@ -499,6 +503,7 @@ - (void)resetChannels { _platformViewsChannel.reset(); _textInputChannel.reset(); _undoManagerChannel.reset(); + _scribbleChannel.reset(); _lifecycleChannel.reset(); _systemChannel.reset(); _settingsChannel.reset(); @@ -572,6 +577,11 @@ - (void)setupChannels { binaryMessenger:self.binaryMessenger codec:[FlutterJSONMethodCodec sharedInstance]]); + _scribbleChannel.reset([[FlutterMethodChannel alloc] + initWithName:@"flutter/scribble" + binaryMessenger:self.binaryMessenger + codec:[FlutterJSONMethodCodec sharedInstance]]); + _spellCheckChannel.reset([[FlutterMethodChannel alloc] initWithName:@"flutter/spellcheck" binaryMessenger:self.binaryMessenger @@ -965,15 +975,15 @@ - (void)flutterTextInputView:(FlutterTextInputView*)textInputView #pragma mark - FlutterViewEngineDelegate - (void)flutterTextInputView:(FlutterTextInputView*)textInputView showToolbar:(int)client { - [_textInputChannel.get() invokeMethod:@"TextInputClient.showToolbar" arguments:@[ @(client) ]]; + [_scribbleChannel.get() invokeMethod:@"Scribble.showToolbar" arguments:@[ @(client) ]]; } - (void)flutterTextInputPlugin:(FlutterTextInputPlugin*)textInputPlugin focusElement:(UIScribbleElementIdentifier)elementIdentifier atPoint:(CGPoint)referencePoint result:(FlutterResult)callback { - [_textInputChannel.get() - invokeMethod:@"TextInputClient.focusElement" + [_scribbleChannel.get() + invokeMethod:@"Scribble.focusElement" arguments:@[ elementIdentifier, @(referencePoint.x), @(referencePoint.y) ] result:callback]; } @@ -981,32 +991,30 @@ - (void)flutterTextInputPlugin:(FlutterTextInputPlugin*)textInputPlugin - (void)flutterTextInputPlugin:(FlutterTextInputPlugin*)textInputPlugin requestElementsInRect:(CGRect)rect result:(FlutterResult)callback { - [_textInputChannel.get() - invokeMethod:@"TextInputClient.requestElementsInRect" + [_scribbleChannel.get() + invokeMethod:@"Scribble.requestElementsInRect" arguments:@[ @(rect.origin.x), @(rect.origin.y), @(rect.size.width), @(rect.size.height) ] result:callback]; } - (void)flutterTextInputViewScribbleInteractionBegan:(FlutterTextInputView*)textInputView { - [_textInputChannel.get() invokeMethod:@"TextInputClient.scribbleInteractionBegan" arguments:nil]; + [_scribbleChannel.get() invokeMethod:@"Scribble.scribbleInteractionBegan" arguments:nil]; } - (void)flutterTextInputViewScribbleInteractionFinished:(FlutterTextInputView*)textInputView { - [_textInputChannel.get() invokeMethod:@"TextInputClient.scribbleInteractionFinished" - arguments:nil]; + [_scribbleChannel.get() invokeMethod:@"Scribble.scribbleInteractionFinished" arguments:nil]; } - (void)flutterTextInputView:(FlutterTextInputView*)textInputView insertTextPlaceholderWithSize:(CGSize)size withClient:(int)client { - [_textInputChannel.get() invokeMethod:@"TextInputClient.insertTextPlaceholder" - arguments:@[ @(client), @(size.width), @(size.height) ]]; + [_scribbleChannel.get() invokeMethod:@"Scribble.insertTextPlaceholder" + arguments:@[ @(client), @(size.width), @(size.height) ]]; } - (void)flutterTextInputView:(FlutterTextInputView*)textInputView removeTextPlaceholder:(int)client { - [_textInputChannel.get() invokeMethod:@"TextInputClient.removeTextPlaceholder" - arguments:@[ @(client) ]]; + [_scribbleChannel.get() invokeMethod:@"Scribble.removeTextPlaceholder" arguments:@[ @(client) ]]; } - (void)flutterTextInputViewDidResignFirstResponder:(FlutterTextInputView*)textInputView { diff --git a/shell/platform/darwin/ios/framework/Source/FlutterPlatformViews.mm b/shell/platform/darwin/ios/framework/Source/FlutterPlatformViews.mm index 00d8324d11b55..8442e1eadd9cb 100644 --- a/shell/platform/darwin/ios/framework/Source/FlutterPlatformViews.mm +++ b/shell/platform/darwin/ios/framework/Source/FlutterPlatformViews.mm @@ -321,10 +321,11 @@ - (BOOL)flt_hasFirstResponderInViewHierarchySubtree { } void FlutterPlatformViewsController::PushFilterToVisitedPlatformViews( - std::shared_ptr filter) { + std::shared_ptr filter, + const SkRect& filter_rect) { for (int64_t id : visited_platform_views_) { EmbeddedViewParams params = current_composition_params_[id]; - params.PushImageFilter(filter); + params.PushImageFilter(filter, filter_rect); current_composition_params_[id] = params; } } @@ -425,7 +426,7 @@ - (BOOL)flt_hasFirstResponderInViewHierarchySubtree { CGRectGetWidth(flutter_view.bounds), CGRectGetHeight(flutter_view.bounds))] autorelease]; - NSMutableArray* blurRadii = [[[NSMutableArray alloc] init] autorelease]; + NSMutableArray* blurFilters = [[[NSMutableArray alloc] init] autorelease]; auto iter = mutators_stack.Begin(); while (iter != mutators_stack.End()) { @@ -448,13 +449,35 @@ - (BOOL)flt_hasFirstResponderInViewHierarchySubtree { embedded_view.alpha = (*iter)->GetAlphaFloat() * embedded_view.alpha; break; case kBackdropFilter: { - // We only support DlBlurImageFilter for BackdropFilter. - if ((*iter)->GetFilter().asBlur() && canApplyBlurBackdrop) { - // sigma_x is arbitrarily chosen as the radius value because Quartz sets - // sigma_x and sigma_y equal to each other. DlBlurImageFilter's Tile Mode - // is not supported in Quartz's gaussianBlur CAFilter, so it is not used - // to blur the PlatformView. - [blurRadii addObject:@((*iter)->GetFilter().asBlur()->sigma_x())]; + // Only support DlBlurImageFilter for BackdropFilter. + if (!(*iter)->GetFilterMutation().GetFilter().asBlur() || !canApplyBlurBackdrop) { + break; + } + CGRect filterRect = + flutter::GetCGRectFromSkRect((*iter)->GetFilterMutation().GetFilterRect()); + // `filterRect` reprents the rect that should be filtered inside the `flutter_view_`. + // The `PlatformViewFilter` needs the frame inside the `clipView` that needs to be + // filtered. + if (CGRectIsNull(CGRectIntersection(filterRect, clipView.frame))) { + break; + } + CGRect intersection = CGRectIntersection(filterRect, clipView.frame); + CGRect frameInClipView = [flutter_view_.get() convertRect:intersection toView:clipView]; + // sigma_x is arbitrarily chosen as the radius value because Quartz sets + // sigma_x and sigma_y equal to each other. DlBlurImageFilter's Tile Mode + // is not supported in Quartz's gaussianBlur CAFilter, so it is not used + // to blur the PlatformView. + CGFloat blurRadius = (*iter)->GetFilterMutation().GetFilter().asBlur()->sigma_x(); + UIVisualEffectView* visualEffectView = [[[UIVisualEffectView alloc] + initWithEffect:[UIBlurEffect effectWithStyle:UIBlurEffectStyleLight]] autorelease]; + PlatformViewFilter* filter = + [[[PlatformViewFilter alloc] initWithFrame:frameInClipView + blurRadius:blurRadius + visualEffectView:visualEffectView] autorelease]; + if (!filter) { + canApplyBlurBackdrop = NO; + } else { + [blurFilters addObject:filter]; } break; } @@ -463,15 +486,16 @@ - (BOOL)flt_hasFirstResponderInViewHierarchySubtree { } if (canApplyBlurBackdrop) { - canApplyBlurBackdrop = [clipView applyBlurBackdropFilters:blurRadii]; + [clipView applyBlurBackdropFilters:blurFilters]; } // Reverse the offset of the clipView. // The clipView's frame includes the final translate of the final transform matrix. - // So we need to revese this translate so the platform view can layout at the correct offset. + // Thus, this translate needs to be reversed so the platform view can layout at the correct + // offset. // - // Note that we don't apply this transform matrix the clippings because clippings happen on the - // mask view, whose origin is always (0,0) to the flutter_view. + // Note that the transforms are not applied to the clipping paths because clipping paths happen on + // the mask view, whose origin is always (0,0) to the flutter_view. CATransform3D reverseTranslate = CATransform3DMakeTranslation(-clipView.frame.origin.x, -clipView.frame.origin.y, 0); embedded_view.layer.transform = CATransform3DConcat(finalTransform, reverseTranslate); diff --git a/shell/platform/darwin/ios/framework/Source/FlutterPlatformViewsTest.mm b/shell/platform/darwin/ios/framework/Source/FlutterPlatformViewsTest.mm index b73373760c106..9e678e5121bd7 100644 --- a/shell/platform/darwin/ios/framework/Source/FlutterPlatformViewsTest.mm +++ b/shell/platform/darwin/ios/framework/Source/FlutterPlatformViewsTest.mm @@ -283,7 +283,7 @@ - (void)testApplyBackdropFilter { stack.PushTransform(screenScaleMatrix); // Push a backdrop filter auto filter = std::make_shared(5, 2, flutter::DlTileMode::kClamp); - stack.PushBackdropFilter(filter); + stack.PushBackdropFilter(filter, SkRect::MakeXYWH(0, 0, 10, 10)); auto embeddedViewParams = std::make_unique(screenScaleMatrix, SkSize::Make(10, 10), stack); @@ -297,15 +297,90 @@ - (void)testApplyBackdropFilter { [mockFlutterView setNeedsLayout]; [mockFlutterView layoutIfNeeded]; - // childClippingView has the CAFilter, no additional filters were added - XCTAssertEqual(1, (int)[childClippingView.layer.filters count]); - // No new views were added - XCTAssertEqual(0, (int)[gMockPlatformView.subviews count]); + // childClippingView has visual effect view with the correct configurations. + NSUInteger numberOfExpectedVisualEffectView = 0; + for (UIView* subview in childClippingView.subviews) { + if (![subview isKindOfClass:[UIVisualEffectView class]]) { + continue; + } + XCTAssertLessThan(numberOfExpectedVisualEffectView, 1u); + if ([self validateOneVisualEffectView:subview + expectedFrame:CGRectMake(0, 0, 10, 10) + inputRadius:5]) { + numberOfExpectedVisualEffectView++; + } + } + XCTAssertEqual(numberOfExpectedVisualEffectView, 1u); +} + +- (void)testApplyBackdropFilterWithCorrectFrame { + flutter::FlutterPlatformViewsTestMockPlatformViewDelegate mock_delegate; + auto thread_task_runner = CreateNewThread("FlutterPlatformViewsTest"); + flutter::TaskRunners runners(/*label=*/self.name.UTF8String, + /*platform=*/thread_task_runner, + /*raster=*/thread_task_runner, + /*ui=*/thread_task_runner, + /*io=*/thread_task_runner); + auto flutterPlatformViewsController = std::make_shared(); + auto platform_view = std::make_unique( + /*delegate=*/mock_delegate, + /*rendering_api=*/flutter::IOSRenderingAPI::kSoftware, + /*platform_views_controller=*/flutterPlatformViewsController, + /*task_runners=*/runners); + + FlutterPlatformViewsTestMockFlutterPlatformFactory* factory = + [[FlutterPlatformViewsTestMockFlutterPlatformFactory new] autorelease]; + flutterPlatformViewsController->RegisterViewFactory( + factory, @"MockFlutterPlatformView", + FlutterPlatformViewGestureRecognizersBlockingPolicyEager); + FlutterResult result = ^(id result) { + }; + flutterPlatformViewsController->OnMethodCall( + [FlutterMethodCall + methodCallWithMethodName:@"create" + arguments:@{@"id" : @2, @"viewType" : @"MockFlutterPlatformView"}], + result); + + XCTAssertNotNil(gMockPlatformView); + + UIView* mockFlutterView = [[[UIView alloc] initWithFrame:CGRectMake(0, 0, 10, 10)] autorelease]; + flutterPlatformViewsController->SetFlutterView(mockFlutterView); + // Create embedded view params + flutter::MutatorsStack stack; + // Layer tree always pushes a screen scale factor to the stack + SkMatrix screenScaleMatrix = + SkMatrix::Scale([UIScreen mainScreen].scale, [UIScreen mainScreen].scale); + stack.PushTransform(screenScaleMatrix); + // Push a backdrop filter + auto filter = std::make_shared(5, 2, flutter::DlTileMode::kClamp); + stack.PushBackdropFilter(filter, SkRect::MakeXYWH(0, 0, 8, 8)); - // sigmaX is chosen for input radius, regardless of sigmaY - NSObject* gaussianFilter = [childClippingView.layer.filters firstObject]; - XCTAssertEqualObjects(@"gaussianBlur", [gaussianFilter valueForKey:@"name"]); - XCTAssertEqualObjects(@(5), [gaussianFilter valueForKey:@"inputRadius"]); + auto embeddedViewParams = + std::make_unique(screenScaleMatrix, SkSize::Make(5, 10), stack); + + flutterPlatformViewsController->PrerollCompositeEmbeddedView(2, std::move(embeddedViewParams)); + flutterPlatformViewsController->CompositeEmbeddedView(2); + XCTAssertTrue([gMockPlatformView.superview.superview isKindOfClass:[ChildClippingView class]]); + ChildClippingView* childClippingView = (ChildClippingView*)gMockPlatformView.superview.superview; + [mockFlutterView addSubview:childClippingView]; + + [mockFlutterView setNeedsLayout]; + [mockFlutterView layoutIfNeeded]; + + // childClippingView has visual effect view with the correct configurations. + NSUInteger numberOfExpectedVisualEffectView = 0; + for (UIView* subview in childClippingView.subviews) { + if (![subview isKindOfClass:[UIVisualEffectView class]]) { + continue; + } + XCTAssertLessThan(numberOfExpectedVisualEffectView, 1u); + if ([self validateOneVisualEffectView:subview + expectedFrame:CGRectMake(0, 0, 5, 8) + inputRadius:5]) { + numberOfExpectedVisualEffectView++; + } + } + XCTAssertEqual(numberOfExpectedVisualEffectView, 1u); } - (void)testApplyMultipleBackdropFilters { @@ -349,7 +424,7 @@ - (void)testApplyMultipleBackdropFilters { // Push backdrop filters for (int i = 0; i < 50; i++) { auto filter = std::make_shared(i, 2, flutter::DlTileMode::kClamp); - stack.PushBackdropFilter(filter); + stack.PushBackdropFilter(filter, SkRect::MakeXYWH(0, 0, 10, 10)); } auto embeddedViewParams = @@ -364,17 +439,19 @@ - (void)testApplyMultipleBackdropFilters { [mockFlutterView setNeedsLayout]; [mockFlutterView layoutIfNeeded]; - // childClippingView has CAFilters for the multiple backdrop filters - XCTAssertEqual(50, (int)[childClippingView.layer.filters count]); - // No new views were added - XCTAssertEqual(0, (int)[gMockPlatformView.subviews count]); - - // All filters have sigma X radius - for (int i = 0; i < 50; i++) { - NSObject* gaussianFilter = childClippingView.layer.filters[i]; - XCTAssertEqualObjects(@"gaussianBlur", [gaussianFilter valueForKey:@"name"]); - XCTAssertEqualObjects(@(i), [gaussianFilter valueForKey:@"inputRadius"]); + NSUInteger numberOfExpectedVisualEffectView = 0; + for (UIView* subview in childClippingView.subviews) { + if (![subview isKindOfClass:[UIVisualEffectView class]]) { + continue; + } + XCTAssertLessThan(numberOfExpectedVisualEffectView, 50u); + if ([self validateOneVisualEffectView:subview + expectedFrame:CGRectMake(0, 0, 10, 10) + inputRadius:(CGFloat)numberOfExpectedVisualEffectView]) { + numberOfExpectedVisualEffectView++; + } } + XCTAssertEqual(numberOfExpectedVisualEffectView, (NSUInteger)numberOfExpectedVisualEffectView); } - (void)testAddBackdropFilters { @@ -417,7 +494,7 @@ - (void)testAddBackdropFilters { stack.PushTransform(screenScaleMatrix); // Push a backdrop filter auto filter = std::make_shared(5, 2, flutter::DlTileMode::kClamp); - stack.PushBackdropFilter(filter); + stack.PushBackdropFilter(filter, SkRect::MakeXYWH(0, 0, 10, 10)); auto embeddedViewParams = std::make_unique(screenScaleMatrix, SkSize::Make(10, 10), stack); @@ -431,10 +508,19 @@ - (void)testAddBackdropFilters { [mockFlutterView setNeedsLayout]; [mockFlutterView layoutIfNeeded]; - // childClippingView has the CAFilter, no additional filters were added - XCTAssertEqual(1, (int)[childClippingView.layer.filters count]); - // No new views were added - XCTAssertEqual(0, (int)[gMockPlatformView.subviews count]); + NSUInteger numberOfExpectedVisualEffectView = 0; + for (UIView* subview in childClippingView.subviews) { + if (![subview isKindOfClass:[UIVisualEffectView class]]) { + continue; + } + XCTAssertLessThan(numberOfExpectedVisualEffectView, 1u); + if ([self validateOneVisualEffectView:subview + expectedFrame:CGRectMake(0, 0, 10, 10) + inputRadius:(CGFloat)5]) { + numberOfExpectedVisualEffectView++; + } + } + XCTAssertEqual(numberOfExpectedVisualEffectView, 1u); // // Simulate adding 1 backdrop filter (create a new mutators stack) @@ -444,7 +530,7 @@ - (void)testAddBackdropFilters { stack2.PushTransform(screenScaleMatrix); // Push backdrop filters for (int i = 0; i < 2; i++) { - stack2.PushBackdropFilter(filter); + stack2.PushBackdropFilter(filter, SkRect::MakeXYWH(0, 0, 10, 10)); } embeddedViewParams = std::make_unique(screenScaleMatrix, @@ -455,17 +541,20 @@ - (void)testAddBackdropFilters { [mockFlutterView setNeedsLayout]; [mockFlutterView layoutIfNeeded]; - // childClippingView has CAFilters for the multiple backdrop filters - XCTAssertEqual(2, (int)[childClippingView.layer.filters count]); - // No new views were added - XCTAssertEqual(0, (int)[gMockPlatformView.subviews count]); + numberOfExpectedVisualEffectView = 0; + for (UIView* subview in childClippingView.subviews) { + if (![subview isKindOfClass:[UIVisualEffectView class]]) { + continue; + } + XCTAssertLessThan(numberOfExpectedVisualEffectView, 2u); - // All filters have sigma X radius - for (int i = 0; i < 2; i++) { - NSObject* gaussianFilter = childClippingView.layer.filters[i]; - XCTAssertEqualObjects(@"gaussianBlur", [gaussianFilter valueForKey:@"name"]); - XCTAssertEqualObjects(@(5), [gaussianFilter valueForKey:@"inputRadius"]); + if ([self validateOneVisualEffectView:subview + expectedFrame:CGRectMake(0, 0, 10, 10) + inputRadius:(CGFloat)5]) { + numberOfExpectedVisualEffectView++; + } } + XCTAssertEqual(numberOfExpectedVisualEffectView, 2u); } - (void)testRemoveBackdropFilters { @@ -509,7 +598,7 @@ - (void)testRemoveBackdropFilters { // Push backdrop filters auto filter = std::make_shared(5, 2, flutter::DlTileMode::kClamp); for (int i = 0; i < 5; i++) { - stack.PushBackdropFilter(filter); + stack.PushBackdropFilter(filter, SkRect::MakeXYWH(0, 0, 10, 10)); } auto embeddedViewParams = @@ -531,7 +620,7 @@ - (void)testRemoveBackdropFilters { stack2.PushTransform(screenScaleMatrix); // Push backdrop filters for (int i = 0; i < 4; i++) { - stack2.PushBackdropFilter(filter); + stack2.PushBackdropFilter(filter, SkRect::MakeXYWH(0, 0, 10, 10)); } embeddedViewParams = std::make_unique(screenScaleMatrix, @@ -542,18 +631,19 @@ - (void)testRemoveBackdropFilters { [mockFlutterView setNeedsLayout]; [mockFlutterView layoutIfNeeded]; - // childClippingView has CAFilters for the multiple backdrop filters - XCTAssertEqual(4, (int)[childClippingView.layer.filters count]); - - // All filters have sigma X radius - for (int i = 0; i < 4; i++) { - NSObject* gaussianFilter = childClippingView.layer.filters[i]; - XCTAssertEqualObjects(@"gaussianBlur", [gaussianFilter valueForKey:@"name"]); - XCTAssertEqualObjects(@(5), [gaussianFilter valueForKey:@"inputRadius"]); + NSUInteger numberOfExpectedVisualEffectView = 0; + for (UIView* subview in childClippingView.subviews) { + if (![subview isKindOfClass:[UIVisualEffectView class]]) { + continue; + } + XCTAssertLessThan(numberOfExpectedVisualEffectView, 4u); + if ([self validateOneVisualEffectView:subview + expectedFrame:CGRectMake(0, 0, 10, 10) + inputRadius:(CGFloat)5]) { + numberOfExpectedVisualEffectView++; + } } - - // No new views were added - XCTAssertEqual(0, (int)[gMockPlatformView.subviews count]); + XCTAssertEqual(numberOfExpectedVisualEffectView, 4u); // Simulate removing all backdrop filters (replace the mutators stack) // Update embedded view params, delete except screenScaleMatrix @@ -570,10 +660,13 @@ - (void)testRemoveBackdropFilters { [mockFlutterView setNeedsLayout]; [mockFlutterView layoutIfNeeded]; - // childClippingView has no CAFilters because no backdrop filters were added - XCTAssertEqual(0, (int)[childClippingView.layer.filters count]); - // No new views were added - XCTAssertEqual(0, (int)[gMockPlatformView.subviews count]); + numberOfExpectedVisualEffectView = 0; + for (UIView* subview in childClippingView.subviews) { + if ([subview isKindOfClass:[UIVisualEffectView class]]) { + numberOfExpectedVisualEffectView++; + } + } + XCTAssertEqual(numberOfExpectedVisualEffectView, 0u); } - (void)testEditBackdropFilters { @@ -617,7 +710,7 @@ - (void)testEditBackdropFilters { // Push backdrop filters auto filter = std::make_shared(5, 2, flutter::DlTileMode::kClamp); for (int i = 0; i < 5; i++) { - stack.PushBackdropFilter(filter); + stack.PushBackdropFilter(filter, SkRect::MakeXYWH(0, 0, 10, 10)); } auto embeddedViewParams = @@ -643,11 +736,11 @@ - (void)testEditBackdropFilters { auto filter2 = std::make_shared(2, 5, flutter::DlTileMode::kClamp); - stack2.PushBackdropFilter(filter2); + stack2.PushBackdropFilter(filter2, SkRect::MakeXYWH(0, 0, 10, 10)); continue; } - stack2.PushBackdropFilter(filter); + stack2.PushBackdropFilter(filter, SkRect::MakeXYWH(0, 0, 10, 10)); } embeddedViewParams = std::make_unique(screenScaleMatrix, @@ -658,21 +751,23 @@ - (void)testEditBackdropFilters { [mockFlutterView setNeedsLayout]; [mockFlutterView layoutIfNeeded]; - // childClippingView has CAFilters for the multiple backdrop filters - XCTAssertEqual(5, (int)[childClippingView.layer.filters count]); - // No new views were added - XCTAssertEqual(0, (int)[gMockPlatformView.subviews count]); - - // The edited backdrop filter has the new radius value - for (int i = 0; i < 5; i++) { - NSObject* gaussianFilter = childClippingView.layer.filters[i]; - XCTAssertEqualObjects(@"gaussianBlur", [gaussianFilter valueForKey:@"name"]); - if (i == 3) { - XCTAssertEqualObjects(@(2), [gaussianFilter valueForKey:@"inputRadius"]); - } else { - XCTAssertEqualObjects(@(5), [gaussianFilter valueForKey:@"inputRadius"]); + NSUInteger numberOfExpectedVisualEffectView = 0; + for (UIView* subview in childClippingView.subviews) { + if (![subview isKindOfClass:[UIVisualEffectView class]]) { + continue; + } + XCTAssertLessThan(numberOfExpectedVisualEffectView, 5u); + CGFloat expectInputRadius = 5; + if (numberOfExpectedVisualEffectView == 3) { + expectInputRadius = 2; + } + if ([self validateOneVisualEffectView:subview + expectedFrame:CGRectMake(0, 0, 10, 10) + inputRadius:(CGFloat)expectInputRadius]) { + numberOfExpectedVisualEffectView++; } } + XCTAssertEqual(numberOfExpectedVisualEffectView, 5u); // Simulate editing 1 backdrop filter in the beginning of the stack (replace the mutators stack) // Update embedded view params, delete except screenScaleMatrix @@ -684,11 +779,11 @@ - (void)testEditBackdropFilters { if (i == 0) { auto filter2 = std::make_shared(2, 5, flutter::DlTileMode::kClamp); - stack2.PushBackdropFilter(filter2); + stack2.PushBackdropFilter(filter2, SkRect::MakeXYWH(0, 0, 10, 10)); continue; } - stack2.PushBackdropFilter(filter); + stack2.PushBackdropFilter(filter, SkRect::MakeXYWH(0, 0, 10, 10)); } embeddedViewParams = std::make_unique(screenScaleMatrix, @@ -699,21 +794,23 @@ - (void)testEditBackdropFilters { [mockFlutterView setNeedsLayout]; [mockFlutterView layoutIfNeeded]; - // childClippingView has CAFilters for the multiple backdrop filters - XCTAssertEqual(5, (int)[childClippingView.layer.filters count]); - // No new views were added - XCTAssertEqual(0, (int)[gMockPlatformView.subviews count]); - - // The edited backdrop filter has the new radius value - for (int i = 0; i < 5; i++) { - NSObject* gaussianFilter = childClippingView.layer.filters[i]; - XCTAssertEqualObjects(@"gaussianBlur", [gaussianFilter valueForKey:@"name"]); - if (i == 0) { - XCTAssertEqualObjects(@(2), [gaussianFilter valueForKey:@"inputRadius"]); - } else { - XCTAssertEqualObjects(@(5), [gaussianFilter valueForKey:@"inputRadius"]); + numberOfExpectedVisualEffectView = 0; + for (UIView* subview in childClippingView.subviews) { + if (![subview isKindOfClass:[UIVisualEffectView class]]) { + continue; + } + XCTAssertLessThan(numberOfExpectedVisualEffectView, 5u); + CGFloat expectInputRadius = 5; + if (numberOfExpectedVisualEffectView == 0) { + expectInputRadius = 2; + } + if ([self validateOneVisualEffectView:subview + expectedFrame:CGRectMake(0, 0, 10, 10) + inputRadius:(CGFloat)expectInputRadius]) { + numberOfExpectedVisualEffectView++; } } + XCTAssertEqual(numberOfExpectedVisualEffectView, 5u); // Simulate editing 1 backdrop filter in the end of the stack (replace the mutators stack) // Update embedded view params, delete except screenScaleMatrix @@ -725,11 +822,11 @@ - (void)testEditBackdropFilters { if (i == 4) { auto filter2 = std::make_shared(2, 5, flutter::DlTileMode::kClamp); - stack2.PushBackdropFilter(filter2); + stack2.PushBackdropFilter(filter2, SkRect::MakeXYWH(0, 0, 10, 10)); continue; } - stack2.PushBackdropFilter(filter); + stack2.PushBackdropFilter(filter, SkRect::MakeXYWH(0, 0, 10, 10)); } embeddedViewParams = std::make_unique(screenScaleMatrix, @@ -740,21 +837,23 @@ - (void)testEditBackdropFilters { [mockFlutterView setNeedsLayout]; [mockFlutterView layoutIfNeeded]; - // childClippingView has CAFilters for the multiple backdrop filters - XCTAssertEqual(5, (int)[childClippingView.layer.filters count]); - // No new views were added - XCTAssertEqual(0, (int)[gMockPlatformView.subviews count]); - - // The edited backdrop filter has the new radius value - for (int i = 0; i < 5; i++) { - NSObject* gaussianFilter = childClippingView.layer.filters[i]; - XCTAssertEqualObjects(@"gaussianBlur", [gaussianFilter valueForKey:@"name"]); - if (i == 4) { - XCTAssertEqualObjects(@(2), [gaussianFilter valueForKey:@"inputRadius"]); - } else { - XCTAssertEqualObjects(@(5), [gaussianFilter valueForKey:@"inputRadius"]); + numberOfExpectedVisualEffectView = 0; + for (UIView* subview in childClippingView.subviews) { + if (![subview isKindOfClass:[UIVisualEffectView class]]) { + continue; + } + XCTAssertLessThan(numberOfExpectedVisualEffectView, 5u); + CGFloat expectInputRadius = 5; + if (numberOfExpectedVisualEffectView == 4) { + expectInputRadius = 2; + } + if ([self validateOneVisualEffectView:subview + expectedFrame:CGRectMake(0, 0, 10, 10) + inputRadius:(CGFloat)expectInputRadius]) { + numberOfExpectedVisualEffectView++; } } + XCTAssertEqual(numberOfExpectedVisualEffectView, 5u); // Simulate editing all backdrop filters in the stack (replace the mutators stack) // Update embedded view params, delete except screenScaleMatrix @@ -765,7 +864,7 @@ - (void)testEditBackdropFilters { for (int i = 0; i < 5; i++) { auto filter2 = std::make_shared(i, 2, flutter::DlTileMode::kClamp); - stack2.PushBackdropFilter(filter2); + stack2.PushBackdropFilter(filter2, SkRect::MakeXYWH(0, 0, 10, 10)); } embeddedViewParams = std::make_unique(screenScaleMatrix, @@ -776,18 +875,19 @@ - (void)testEditBackdropFilters { [mockFlutterView setNeedsLayout]; [mockFlutterView layoutIfNeeded]; - // childClippingView has CAFilters for the multiple backdrop filters - XCTAssertEqual(5, (int)[childClippingView.layer.filters count]); - // No new views were added - XCTAssertEqual(0, (int)[gMockPlatformView.subviews count]); - - // The edited backdrop filter has the new radius value - for (int i = 0; i < 5; i++) { - NSObject* gaussianFilter = childClippingView.layer.filters[i]; - XCTAssertEqualObjects(@"gaussianBlur", [gaussianFilter valueForKey:@"name"]); - - XCTAssertEqualObjects(@(i), [gaussianFilter valueForKey:@"inputRadius"]); + numberOfExpectedVisualEffectView = 0; + for (UIView* subview in childClippingView.subviews) { + if (![subview isKindOfClass:[UIVisualEffectView class]]) { + continue; + } + XCTAssertLessThan(numberOfExpectedVisualEffectView, 5u); + if ([self validateOneVisualEffectView:subview + expectedFrame:CGRectMake(0, 0, 10, 10) + inputRadius:(CGFloat)numberOfExpectedVisualEffectView]) { + numberOfExpectedVisualEffectView++; + } } + XCTAssertEqual(numberOfExpectedVisualEffectView, 5u); } - (void)testApplyBackdropFilterNotDlBlurImageFilter { @@ -830,7 +930,7 @@ - (void)testApplyBackdropFilterNotDlBlurImageFilter { stack.PushTransform(screenScaleMatrix); // Push a dilate backdrop filter auto dilateFilter = std::make_shared(5, 2); - stack.PushBackdropFilter(dilateFilter); + stack.PushBackdropFilter(dilateFilter, SkRect::MakeEmpty()); auto embeddedViewParams = std::make_unique(screenScaleMatrix, SkSize::Make(10, 10), stack); @@ -839,15 +939,19 @@ - (void)testApplyBackdropFilterNotDlBlurImageFilter { flutterPlatformViewsController->CompositeEmbeddedView(2); XCTAssertTrue([gMockPlatformView.superview.superview isKindOfClass:[ChildClippingView class]]); ChildClippingView* childClippingView = (ChildClippingView*)gMockPlatformView.superview.superview; + [mockFlutterView addSubview:childClippingView]; [mockFlutterView setNeedsLayout]; [mockFlutterView layoutIfNeeded]; - // No filters were added - XCTAssertEqual(0, (int)[childClippingView.layer.filters count]); - // No new views were added - XCTAssertEqual(0, (int)[gMockPlatformView.subviews count]); + NSUInteger numberOfExpectedVisualEffectView = 0; + for (UIView* subview in childClippingView.subviews) { + if ([subview isKindOfClass:[UIVisualEffectView class]]) { + numberOfExpectedVisualEffectView++; + } + } + XCTAssertEqual(numberOfExpectedVisualEffectView, 0u); // Simulate adding a non-DlBlurImageFilter in the middle of the stack (create a new mutators // stack) Create embedded view params @@ -859,11 +963,11 @@ - (void)testApplyBackdropFilterNotDlBlurImageFilter { for (int i = 0; i < 5; i++) { if (i == 2) { - stack2.PushBackdropFilter(dilateFilter); + stack2.PushBackdropFilter(dilateFilter, SkRect::MakeXYWH(0, 0, 10, 10)); continue; } - stack2.PushBackdropFilter(blurFilter); + stack2.PushBackdropFilter(blurFilter, SkRect::MakeXYWH(0, 0, 10, 10)); } embeddedViewParams = std::make_unique(screenScaleMatrix, @@ -874,17 +978,19 @@ - (void)testApplyBackdropFilterNotDlBlurImageFilter { [mockFlutterView setNeedsLayout]; [mockFlutterView layoutIfNeeded]; - // Filters were only added for DlBlurImageFilters - XCTAssertEqual(4, (int)[childClippingView.layer.filters count]); - // No new views were added - XCTAssertEqual(0, (int)[gMockPlatformView.subviews count]); - - // The added filters are all gaussianBlur filters - for (int i = 0; i < 4; i++) { - NSObject* gaussianFilter = childClippingView.layer.filters[i]; - XCTAssertEqualObjects(@"gaussianBlur", [gaussianFilter valueForKey:@"name"]); - XCTAssertEqualObjects(@(5), [gaussianFilter valueForKey:@"inputRadius"]); + numberOfExpectedVisualEffectView = 0; + for (UIView* subview in childClippingView.subviews) { + if (![subview isKindOfClass:[UIVisualEffectView class]]) { + continue; + } + XCTAssertLessThan(numberOfExpectedVisualEffectView, 4u); + if ([self validateOneVisualEffectView:subview + expectedFrame:CGRectMake(0, 0, 10, 10) + inputRadius:(CGFloat)5]) { + numberOfExpectedVisualEffectView++; + } } + XCTAssertEqual(numberOfExpectedVisualEffectView, 4u); // Simulate adding a non-DlBlurImageFilter to the beginning of the stack (replace the mutators // stack) Update embedded view params, delete except screenScaleMatrix @@ -894,11 +1000,11 @@ - (void)testApplyBackdropFilterNotDlBlurImageFilter { // Push backdrop filters and dilate filter for (int i = 0; i < 5; i++) { if (i == 0) { - stack2.PushBackdropFilter(dilateFilter); + stack2.PushBackdropFilter(dilateFilter, SkRect::MakeXYWH(0, 0, 10, 10)); continue; } - stack2.PushBackdropFilter(blurFilter); + stack2.PushBackdropFilter(blurFilter, SkRect::MakeXYWH(0, 0, 10, 10)); } embeddedViewParams = std::make_unique(screenScaleMatrix, @@ -909,17 +1015,19 @@ - (void)testApplyBackdropFilterNotDlBlurImageFilter { [mockFlutterView setNeedsLayout]; [mockFlutterView layoutIfNeeded]; - // Filters were only added for DlBlurImageFilters - XCTAssertEqual(4, (int)[childClippingView.layer.filters count]); - // No new views were added - XCTAssertEqual(0, (int)[gMockPlatformView.subviews count]); - - // The added filters are all gaussianBlur filters - for (int i = 0; i < 4; i++) { - NSObject* gaussianFilter = childClippingView.layer.filters[i]; - XCTAssertEqualObjects(@"gaussianBlur", [gaussianFilter valueForKey:@"name"]); - XCTAssertEqualObjects(@(5), [gaussianFilter valueForKey:@"inputRadius"]); + numberOfExpectedVisualEffectView = 0; + for (UIView* subview in childClippingView.subviews) { + if (![subview isKindOfClass:[UIVisualEffectView class]]) { + continue; + } + XCTAssertLessThan(numberOfExpectedVisualEffectView, 4u); + if ([self validateOneVisualEffectView:subview + expectedFrame:CGRectMake(0, 0, 10, 10) + inputRadius:(CGFloat)5]) { + numberOfExpectedVisualEffectView++; + } } + XCTAssertEqual(numberOfExpectedVisualEffectView, 4u); // Simulate adding a non-DlBlurImageFilter to the end of the stack (replace the mutators stack) // Update embedded view params, delete except screenScaleMatrix @@ -929,11 +1037,11 @@ - (void)testApplyBackdropFilterNotDlBlurImageFilter { // Push backdrop filters and dilate filter for (int i = 0; i < 5; i++) { if (i == 4) { - stack2.PushBackdropFilter(dilateFilter); + stack2.PushBackdropFilter(dilateFilter, SkRect::MakeXYWH(0, 0, 10, 10)); continue; } - stack2.PushBackdropFilter(blurFilter); + stack2.PushBackdropFilter(blurFilter, SkRect::MakeXYWH(0, 0, 10, 10)); } embeddedViewParams = std::make_unique(screenScaleMatrix, @@ -944,17 +1052,19 @@ - (void)testApplyBackdropFilterNotDlBlurImageFilter { [mockFlutterView setNeedsLayout]; [mockFlutterView layoutIfNeeded]; - // Filters were only added for DlBlurImageFilters - XCTAssertEqual(4, (int)[childClippingView.layer.filters count]); - // No new views were added - XCTAssertEqual(0, (int)[gMockPlatformView.subviews count]); - - // The added filters are all gaussianBlur filters - for (int i = 0; i < 4; i++) { - NSObject* gaussianFilter = childClippingView.layer.filters[i]; - XCTAssertEqualObjects(@"gaussianBlur", [gaussianFilter valueForKey:@"name"]); - XCTAssertEqualObjects(@(5), [gaussianFilter valueForKey:@"inputRadius"]); + numberOfExpectedVisualEffectView = 0; + for (UIView* subview in childClippingView.subviews) { + if (![subview isKindOfClass:[UIVisualEffectView class]]) { + continue; + } + XCTAssertLessThan(numberOfExpectedVisualEffectView, 4u); + if ([self validateOneVisualEffectView:subview + expectedFrame:CGRectMake(0, 0, 10, 10) + inputRadius:(CGFloat)5]) { + numberOfExpectedVisualEffectView++; + } } + XCTAssertEqual(numberOfExpectedVisualEffectView, 4u); // Simulate adding only non-DlBlurImageFilter to the stack (replace the mutators stack) // Update embedded view params, delete except screenScaleMatrix @@ -963,7 +1073,7 @@ - (void)testApplyBackdropFilterNotDlBlurImageFilter { } // Push dilate filters for (int i = 0; i < 5; i++) { - stack2.PushBackdropFilter(dilateFilter); + stack2.PushBackdropFilter(dilateFilter, SkRect::MakeXYWH(0, 0, 10, 10)); } embeddedViewParams = std::make_unique(screenScaleMatrix, @@ -974,38 +1084,45 @@ - (void)testApplyBackdropFilterNotDlBlurImageFilter { [mockFlutterView setNeedsLayout]; [mockFlutterView layoutIfNeeded]; - // No filters were added - XCTAssertEqual(0, (int)[childClippingView.layer.filters count]); - // No new views were added - XCTAssertEqual(0, (int)[gMockPlatformView.subviews count]); + numberOfExpectedVisualEffectView = 0; + for (UIView* subview in childClippingView.subviews) { + if ([subview isKindOfClass:[UIVisualEffectView class]]) { + numberOfExpectedVisualEffectView++; + } + } + XCTAssertEqual(numberOfExpectedVisualEffectView, 0u); } -- (void)testApplyBackdropFilterAPIChanged { - NSArray* blurRadii = @[ @(1), @(5), @(10) ]; - - // The gaussianBlur filter is extracted once for each childClippingView. - // Each test requires a new childClippingView +- (void)testApplyBackdropFilterCorrectAPI { + [PlatformViewFilter resetPreparation]; + // The gaussianBlur filter is extracted from UIVisualEffectView. + // Each test requires a new PlatformViewFilter // Valid UIVisualEffectView API - ChildClippingView* childClippingView1 = [[ChildClippingView alloc] init]; - childClippingView1.blurEffectView = [[UIVisualEffectView alloc] + UIVisualEffectView* visualEffectView = [[UIVisualEffectView alloc] initWithEffect:[UIBlurEffect effectWithStyle:UIBlurEffectStyleLight]]; - XCTAssertTrue([childClippingView1 applyBlurBackdropFilters:blurRadii]); - - // Invalid UIVisualEffectView initialization - ChildClippingView* childClippingView2 = [[ChildClippingView alloc] init]; - childClippingView2.blurEffectView = [[UIVisualEffectView alloc] init]; - XCTAssertFalse([childClippingView2 applyBlurBackdropFilters:blurRadii]); + PlatformViewFilter* platformViewFilter = + [[PlatformViewFilter alloc] initWithFrame:CGRectMake(0, 0, 10, 10) + blurRadius:5 + visualEffectView:visualEffectView]; + XCTAssertNotNil(platformViewFilter); +} - // Invalid UIView - ChildClippingView* childClippingView3 = [[ChildClippingView alloc] init]; - childClippingView3.blurEffectView = [[UIView alloc] init]; - XCTAssertFalse([childClippingView3 applyBlurBackdropFilters:blurRadii]); +- (void)testApplyBackdropFilterAPIChangedInvalidUIVisualEffectView { + [PlatformViewFilter resetPreparation]; + UIVisualEffectView* visualEffectView = [[UIVisualEffectView alloc] init]; + PlatformViewFilter* platformViewFilter = + [[PlatformViewFilter alloc] initWithFrame:CGRectMake(0, 0, 10, 10) + blurRadius:5 + visualEffectView:visualEffectView]; + XCTAssertNil(platformViewFilter); +} - // Invalid UIVisualEffectView API for "name" - UIVisualEffectView* editedUIVisualEffectView1 = [[UIVisualEffectView alloc] +- (void)testApplyBackdropFilterAPIChangedNoGaussianBlurFilter { + [PlatformViewFilter resetPreparation]; + UIVisualEffectView* editedUIVisualEffectView = [[UIVisualEffectView alloc] initWithEffect:[UIBlurEffect effectWithStyle:UIBlurEffectStyleLight]]; - NSArray* subviews1 = editedUIVisualEffectView1.subviews; - for (UIView* view in subviews1) { + NSArray* subviews = editedUIVisualEffectView.subviews; + for (UIView* view in subviews) { if ([view isKindOfClass:NSClassFromString(@"_UIVisualEffectBackdropView")]) { for (CIFilter* filter in view.layer.filters) { if ([[filter valueForKey:@"name"] isEqual:@"gaussianBlur"]) { @@ -1016,16 +1133,19 @@ - (void)testApplyBackdropFilterAPIChanged { break; } } + PlatformViewFilter* platformViewFilter = + [[PlatformViewFilter alloc] initWithFrame:CGRectMake(0, 0, 10, 10) + blurRadius:5 + visualEffectView:editedUIVisualEffectView]; + XCTAssertNil(platformViewFilter); +} - ChildClippingView* childClippingView4 = [[ChildClippingView alloc] init]; - childClippingView4.blurEffectView = editedUIVisualEffectView1; - XCTAssertFalse([childClippingView4 applyBlurBackdropFilters:blurRadii]); - - // Invalid UIVisualEffectView API for "inputRadius" - UIVisualEffectView* editedUIVisualEffectView2 = [[UIVisualEffectView alloc] +- (void)testApplyBackdropFilterAPIChangedInvalidInputRadius { + [PlatformViewFilter resetPreparation]; + UIVisualEffectView* editedUIVisualEffectView = [[UIVisualEffectView alloc] initWithEffect:[UIBlurEffect effectWithStyle:UIBlurEffectStyleLight]]; - NSArray* subviews2 = editedUIVisualEffectView2.subviews; - for (UIView* view in subviews2) { + NSArray* subviews = editedUIVisualEffectView.subviews; + for (UIView* view in subviews) { if ([view isKindOfClass:NSClassFromString(@"_UIVisualEffectBackdropView")]) { for (CIFilter* filter in view.layer.filters) { if ([[filter valueForKey:@"name"] isEqual:@"gaussianBlur"]) { @@ -1037,9 +1157,28 @@ - (void)testApplyBackdropFilterAPIChanged { } } - ChildClippingView* childClippingView5 = [[ChildClippingView alloc] init]; - childClippingView5.blurEffectView = editedUIVisualEffectView2; - XCTAssertFalse([childClippingView5 applyBlurBackdropFilters:blurRadii]); + PlatformViewFilter* platformViewFilter = + [[PlatformViewFilter alloc] initWithFrame:CGRectMake(0, 0, 10, 10) + blurRadius:5 + visualEffectView:editedUIVisualEffectView]; + XCTAssertNil(platformViewFilter); +} + +- (void)testBackdropFilterVisualEffectSubviewBackgroundColor { + UIVisualEffectView* visualEffectView = [[UIVisualEffectView alloc] + initWithEffect:[UIBlurEffect effectWithStyle:UIBlurEffectStyleLight]]; + PlatformViewFilter* platformViewFilter = + [[PlatformViewFilter alloc] initWithFrame:CGRectMake(0, 0, 10, 10) + blurRadius:5 + visualEffectView:visualEffectView]; + CGColorRef visualEffectSubviewBackgroundColor; + for (UIView* view in [platformViewFilter backdropFilterView].subviews) { + if ([view isKindOfClass:NSClassFromString(@"_UIVisualEffectSubview")]) { + visualEffectSubviewBackgroundColor = view.layer.backgroundColor; + } + } + XCTAssertTrue( + CGColorEqualToColor(visualEffectSubviewBackgroundColor, UIColor.clearColor.CGColor)); } - (void)testCompositePlatformView { @@ -1142,7 +1281,8 @@ - (void)testBackdropFilterCorrectlyPushedAndReset { flutterPlatformViewsController->PrerollCompositeEmbeddedView(2, std::move(embeddedViewParams)); flutterPlatformViewsController->PushVisitedPlatformView(2); auto filter = std::make_shared(5, 2, flutter::DlTileMode::kClamp); - flutterPlatformViewsController->PushFilterToVisitedPlatformViews(filter); + flutterPlatformViewsController->PushFilterToVisitedPlatformViews(filter, + SkRect::MakeXYWH(0, 0, 10, 10)); flutterPlatformViewsController->CompositeEmbeddedView(2); XCTAssertTrue([gMockPlatformView.superview.superview isKindOfClass:[ChildClippingView class]]); ChildClippingView* childClippingView = (ChildClippingView*)gMockPlatformView.superview.superview; @@ -1151,15 +1291,20 @@ - (void)testBackdropFilterCorrectlyPushedAndReset { [mockFlutterView setNeedsLayout]; [mockFlutterView layoutIfNeeded]; - // childClippingView has the CAFilter, no additional filters were added - XCTAssertEqual(1, (int)[childClippingView.layer.filters count]); - // No new views were added - XCTAssertEqual(0, (int)[gMockPlatformView.subviews count]); - - // sigmaX is chosen for input radius, regardless of sigmaY - NSObject* gaussianFilter = [childClippingView.layer.filters firstObject]; - XCTAssertEqualObjects(@"gaussianBlur", [gaussianFilter valueForKey:@"name"]); - XCTAssertEqualObjects(@(5), [gaussianFilter valueForKey:@"inputRadius"]); + // childClippingView has visual effect view with the correct configurations. + NSUInteger numberOfExpectedVisualEffectView = 0; + for (UIView* subview in childClippingView.subviews) { + if (![subview isKindOfClass:[UIVisualEffectView class]]) { + continue; + } + XCTAssertLessThan(numberOfExpectedVisualEffectView, 1u); + if ([self validateOneVisualEffectView:subview + expectedFrame:CGRectMake(0, 0, 10, 10) + inputRadius:5]) { + numberOfExpectedVisualEffectView++; + } + } + XCTAssertEqual(numberOfExpectedVisualEffectView, 1u); // New frame, with no filter pushed. auto embeddedViewParams2 = @@ -1172,8 +1317,14 @@ - (void)testBackdropFilterCorrectlyPushedAndReset { [mockFlutterView setNeedsLayout]; [mockFlutterView layoutIfNeeded]; - // No filter in this frame. - XCTAssertEqual(0, (int)[childClippingView.layer.filters count]); + numberOfExpectedVisualEffectView = 0; + for (UIView* subview in childClippingView.subviews) { + if (![subview isKindOfClass:[UIVisualEffectView class]]) { + continue; + } + numberOfExpectedVisualEffectView++; + } + XCTAssertEqual(numberOfExpectedVisualEffectView, 0u); } - (void)testChildClippingViewShouldBeTheBoundingRectOfPlatformView { @@ -2083,4 +2234,31 @@ - (void)testHasFirstResponderInViewHierarchySubtree_descendantViewBecomesFirstRe XCTAssertFalse(view.flt_hasFirstResponderInViewHierarchySubtree); } +// Return true if a correct visual effect view is found. It also implies all the validation in this +// method passes. +// +// There are two fail states for this method. 1. One of the XCTAssert method failed; or 2. No +// correct visual effect view found. +- (BOOL)validateOneVisualEffectView:(UIView*)visualEffectView + expectedFrame:(CGRect)frame + inputRadius:(CGFloat)inputRadius { + XCTAssertTrue(CGRectEqualToRect(visualEffectView.frame, frame)); + for (UIView* view in visualEffectView.subviews) { + if (![view isKindOfClass:NSClassFromString(@"_UIVisualEffectBackdropView")]) { + continue; + } + XCTAssertEqual(view.layer.filters.count, 1u); + NSObject* filter = view.layer.filters.firstObject; + + XCTAssertEqualObjects([filter valueForKey:@"name"], @"gaussianBlur"); + + NSObject* inputRadiusInFilter = [filter valueForKey:@"inputRadius"]; + XCTAssertTrue([inputRadiusInFilter isKindOfClass:[NSNumber class]] && + flutter::BlurRadiusEqualToBlurRadius(((NSNumber*)inputRadiusInFilter).floatValue, + inputRadius)); + return YES; + } + return NO; +} + @end diff --git a/shell/platform/darwin/ios/framework/Source/FlutterPlatformViews_Internal.h b/shell/platform/darwin/ios/framework/Source/FlutterPlatformViews_Internal.h index 542f39b736f4f..06180a9d04c78 100644 --- a/shell/platform/darwin/ios/framework/Source/FlutterPlatformViews_Internal.h +++ b/shell/platform/darwin/ios/framework/Source/FlutterPlatformViews_Internal.h @@ -45,18 +45,54 @@ @end -// The parent view handles clipping to its subviews. -@interface ChildClippingView : UIView +// An object represents a blur filter. +// +// This object produces a `backdropFilterView`. +// To blur a View, add `backdropFilterView` as a subView of the View. +@interface PlatformViewFilter : NSObject + +// Determines the rect of the blur effect in the coordinate system of `backdropFilterView`'s +// parentView. +@property(assign, nonatomic, readonly) CGRect frame; + +// Determines the blur intensity. +// +// It is set as the value of `inputRadius` of the `gaussianFilter` that is internally used. +@property(assign, nonatomic, readonly) CGFloat blurRadius; + +// This is the view to use to blur the PlatformView. +// +// It is a modified version of UIKit's `UIVisualEffectView`. +// The inputRadius can be customized and it doesn't add any color saturation to the blurred view. +@property(nonatomic, retain, readonly) UIVisualEffectView* backdropFilterView; + +// For testing only. ++ (void)resetPreparation; -// Applies blur backdrop filters to the ChildClippingView with blur radius values from -// blurRadii. Returns NO if Apple's API has changed and blurred backdrop filters cannot -// be applied, otherwise returns YES. -- (BOOL)applyBlurBackdropFilters:(NSArray*)blurRadii; +- (instancetype)init NS_UNAVAILABLE; -// The UIView used to extract the gaussianBlur filter. This must be a UIVisualEffectView -// initalized with UIBlurEffect to extract the correct filter. Made a public property -// for custom unit tests. -@property(nonatomic, retain) UIView* blurEffectView; +// Initialize the filter object. +// +// The `frame` determines the rect of the blur effect in the coordinate system of +// `backdropFilterView`'s parentView. The `blurRadius` determines the blur intensity. It is set as +// the value of `inputRadius` of the `gaussianFilter` that is internally used. The +// `UIVisualEffectView` is the view that is used to add the blur effects. It is modified to become +// `backdropFilterView`, which better supports the need of Flutter. +// +// Note: if the implementation of UIVisualEffectView changes in a way that affects the +// implementation in `PlatformViewFilter`, this method will return nil. +- (instancetype)initWithFrame:(CGRect)frame + blurRadius:(CGFloat)blurRadius + visualEffectView:(UIVisualEffectView*)visualEffectView NS_DESIGNATED_INITIALIZER; + +@end + +// The parent view handles clipping to its subViews. +@interface ChildClippingView : UIView + +// Applies blur backdrop filters to the ChildClippingView with blur values from +// filters. +- (void)applyBlurBackdropFilters:(NSMutableArray*)filters; @end @@ -69,6 +105,9 @@ CATransform3D GetCATransform3DFromSkMatrix(const SkMatrix& matrix); // The position of the `layer` should be unchanged after resetting the anchor. void ResetAnchor(CALayer* layer); +CGRect GetCGRectFromSkRect(const SkRect& clipSkRect); +BOOL BlurRadiusEqualToBlurRadius(CGFloat radius1, CGFloat radius2); + class IOSContextGL; class IOSSurface; @@ -197,7 +236,8 @@ class FlutterPlatformViewsController { long FindFirstResponderPlatformViewId(); // Pushes backdrop filter mutation to the mutator stack of each visited platform view. - void PushFilterToVisitedPlatformViews(std::shared_ptr filter); + void PushFilterToVisitedPlatformViews(std::shared_ptr filter, + const SkRect& filter_rect); // Pushes the view id of a visted platform view to the list of visied platform views. void PushVisitedPlatformView(int64_t view_id) { visited_platform_views_.push_back(view_id); } diff --git a/shell/platform/darwin/ios/framework/Source/FlutterPlatformViews_Internal.mm b/shell/platform/darwin/ios/framework/Source/FlutterPlatformViews_Internal.mm index e3c3389080a7d..9f46bf854e75d 100644 --- a/shell/platform/darwin/ios/framework/Source/FlutterPlatformViews_Internal.mm +++ b/shell/platform/darwin/ios/framework/Source/FlutterPlatformViews_Internal.mm @@ -55,124 +55,165 @@ void ResetAnchor(CALayer* layer) { layer.position = CGPointZero; } -} // namespace flutter - -@implementation ChildClippingView { - // A gaussianFilter from UIVisualEffectView that can be copied for new backdrop filters. - NSObject* _gaussianFilter; +CGRect GetCGRectFromSkRect(const SkRect& clipSkRect) { + return CGRectMake(clipSkRect.fLeft, clipSkRect.fTop, clipSkRect.fRight - clipSkRect.fLeft, + clipSkRect.fBottom - clipSkRect.fTop); } -// Lazy initializes blurEffectView as the expected UIVisualEffectView. The backdropFilter blur -// requires this UIVisualEffectView initialization. The lazy initalization is only used to allow -// custom unit tests. -- (UIView*)blurEffectView { - if (!_blurEffectView) { - // blurEffectView is only needed to extract its gaussianBlur filter. It is released after - // searching its subviews and extracting the filter. - _blurEffectView = [[[UIVisualEffectView alloc] - initWithEffect:[UIBlurEffect effectWithStyle:UIBlurEffectStyleLight]] retain]; - } - return _blurEffectView; +BOOL BlurRadiusEqualToBlurRadius(CGFloat radius1, CGFloat radius2) { + const CGFloat epsilon = 0.01; + return radius1 - radius2 < epsilon; } -// The ChildClippingView's frame is the bounding rect of the platform view. we only want touches to -// be hit tested and consumed by this view if they are inside the embedded platform view which could -// be smaller the embedded platform view is rotated. -- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent*)event { - for (UIView* view in self.subviews) { - if ([view pointInside:[self convertPoint:point toView:view] withEvent:event]) { - return YES; +} // namespace flutter + +@implementation PlatformViewFilter + +static NSObject* _gaussianBlurFilter = nil; +// The index of "_UIVisualEffectBackdropView" in UIVisualEffectView's subViews. +static NSInteger _indexOfBackdropView = -1; +// The index of "_UIVisualEffectSubview" in UIVisualEffectView's subViews. +static NSInteger _indexOfVisualEffectSubview = -1; +static BOOL _preparedOnce = NO; + +- (instancetype)initWithFrame:(CGRect)frame + blurRadius:(CGFloat)blurRadius + visualEffectView:(UIVisualEffectView*)visualEffectView { + if (self = [super init]) { + _frame = frame; + _blurRadius = blurRadius; + [PlatformViewFilter prepareOnce:visualEffectView]; + if (![PlatformViewFilter isUIVisualEffectViewImplementationValid]) { + FML_DLOG(ERROR) << "Apple's API for UIVisualEffectView changed. Update the implementation to " + "access the gaussianBlur CAFilter."; + [self release]; + return nil; } + NSObject* gaussianBlurFilter = [[_gaussianBlurFilter copy] autorelease]; + FML_DCHECK(gaussianBlurFilter); + UIView* backdropView = visualEffectView.subviews[_indexOfBackdropView]; + [gaussianBlurFilter setValue:@(_blurRadius) forKey:@"inputRadius"]; + backdropView.layer.filters = @[ gaussianBlurFilter ]; + + UIView* visualEffectSubview = visualEffectView.subviews[_indexOfVisualEffectSubview]; + visualEffectSubview.layer.backgroundColor = UIColor.clearColor.CGColor; + + _backdropFilterView = [visualEffectView retain]; + _backdropFilterView.frame = _frame; } - return NO; + return self; } -// Creates and initializes a UIVisualEffectView with a UIBlurEffect. Extracts and returns its -// gaussianFilter. Returns nil if Apple's API has changed and the filter cannot be extracted. -- (NSObject*)extractGaussianFilter { - NSObject* gaussianFilter = nil; ++ (void)resetPreparation { + _preparedOnce = NO; + [_gaussianBlurFilter release]; + _gaussianBlurFilter = nil; + _indexOfBackdropView = -1; + _indexOfVisualEffectSubview = -1; +} - for (UIView* view in self.blurEffectView.subviews) { ++ (void)prepareOnce:(UIVisualEffectView*)visualEffectView { + if (_preparedOnce) { + return; + } + for (NSUInteger i = 0; i < visualEffectView.subviews.count; i++) { + UIView* view = visualEffectView.subviews[i]; if ([view isKindOfClass:NSClassFromString(@"_UIVisualEffectBackdropView")]) { - for (CIFilter* filter in view.layer.filters) { - if ([[filter valueForKey:@"name"] isEqual:@"gaussianBlur"]) { - if ([[filter valueForKey:@"inputRadius"] isKindOfClass:[NSNumber class]]) { - gaussianFilter = filter; - } - // No need to look at other CIFilters. If the API structure has not changed, the - // gaussianBlur filter was succesfully saved. Otherwise, still exit the loop because the - // filter cannot be extracted. + _indexOfBackdropView = i; + for (NSObject* filter in view.layer.filters) { + if ([[filter valueForKey:@"name"] isEqual:@"gaussianBlur"] && + [[filter valueForKey:@"inputRadius"] isKindOfClass:[NSNumber class]]) { + _gaussianBlurFilter = [filter retain]; break; } } - // No need to look at other UIViews. If the API structure has not changed, the gaussianBlur - // filter was succesfully saved. Otherwise, still exit the loop because the filter cannot - // be extracted. - break; + } else if ([view isKindOfClass:NSClassFromString(@"_UIVisualEffectSubview")]) { + _indexOfVisualEffectSubview = i; } } + _preparedOnce = YES; +} - return gaussianFilter; ++ (BOOL)isUIVisualEffectViewImplementationValid { + return _indexOfBackdropView > -1 && _indexOfVisualEffectSubview > -1 && _gaussianBlurFilter; } -- (BOOL)applyBlurBackdropFilters:(NSArray*)blurRadii { - // The outer if-statement checks for the first time this method is called and _gaussianFilter is - // not initialized. The inner if-statement checks if extracting the gaussianBlur was successful. - // If it was not successful, this method will not be called again. Thus the if-statements check - // for different conditions. - if (!_gaussianFilter) { - _gaussianFilter = [self extractGaussianFilter]; +- (void)dealloc { + [_backdropFilterView release]; + _backdropFilterView = nil; - if (!_gaussianFilter) { - FML_DLOG(ERROR) << "Apple's API for UIVisualEffectView changed. Update the implementation to " - "access the gaussianBlur CAFilter."; - return NO; + [super dealloc]; +} + +@end + +@interface ChildClippingView () + +@property(retain, nonatomic) NSMutableArray* filters; + +@end + +@implementation ChildClippingView + +// The ChildClippingView's frame is the bounding rect of the platform view. we only want touches to +// be hit tested and consumed by this view if they are inside the embedded platform view which could +// be smaller the embedded platform view is rotated. +- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent*)event { + for (UIView* view in self.subviews) { + if ([view pointInside:[self convertPoint:point toView:view] withEvent:event]) { + return YES; } } + return NO; +} - BOOL newRadiusValues = NO; - - if ([blurRadii count] != [self.layer.filters count]) { - newRadiusValues = YES; +- (void)applyBlurBackdropFilters:(NSMutableArray*)filters { + BOOL needUpdateFilterViews = NO; + if (self.filters.count != filters.count) { + needUpdateFilterViews = YES; } else { - for (NSUInteger i = 0; i < [blurRadii count]; i++) { - if ([self.layer.filters[i] valueForKey:@"inputRadius"] != blurRadii[i]) { - newRadiusValues = YES; - break; + for (NSUInteger i = 0; i < filters.count; i++) { + if (!CGRectEqualToRect(self.filters[i].frame, filters[i].frame) || + !flutter::BlurRadiusEqualToBlurRadius(self.filters[i].blurRadius, + filters[i].blurRadius)) { + needUpdateFilterViews = YES; } } } - - if (newRadiusValues) { - NSMutableArray* newGaussianFilters = [[[NSMutableArray alloc] init] autorelease]; - - for (NSUInteger i = 0; i < [blurRadii count]; i++) { - NSObject* newGaussianFilter = [[_gaussianFilter copy] autorelease]; - [newGaussianFilter setValue:blurRadii[i] forKey:@"inputRadius"]; - [newGaussianFilters addObject:newGaussianFilter]; + if (needUpdateFilterViews) { + // Clear the old filter views. + for (PlatformViewFilter* filter in self.filters) { + [[filter backdropFilterView] removeFromSuperview]; + } + // Update to the new filters. + self.filters = [filters retain]; + // Add new filter views. + for (PlatformViewFilter* filter in self.filters) { + UIView* backdropFilterView = [filter backdropFilterView]; + [self addSubview:backdropFilterView]; } - - self.layer.filters = newGaussianFilters; } - - return YES; } - (void)dealloc { - [_blurEffectView release]; - _blurEffectView = nil; + [_filters release]; + _filters = nil; - [_gaussianFilter release]; - _gaussianFilter = nil; [super dealloc]; } +- (NSMutableArray*)filters { + if (!_filters) { + _filters = [[[NSMutableArray alloc] init] retain]; + } + return _filters; +} + @end @interface FlutterClippingMaskView () - (fml::CFRef)getTransformedPath:(CGPathRef)path matrix:(CATransform3D)matrix; -- (CGRect)getCGRectFromSkRect:(const SkRect&)clipSkRect; @end @@ -212,7 +253,7 @@ - (void)drawRect:(CGRect)rect { } - (void)clipRect:(const SkRect&)clipSkRect matrix:(const CATransform3D&)matrix { - CGRect clipRect = [self getCGRectFromSkRect:clipSkRect]; + CGRect clipRect = flutter::GetCGRectFromSkRect(clipSkRect); CGPathRef path = CGPathCreateWithRect(clipRect, nil); paths_.push_back([self getTransformedPath:path matrix:matrix]); } @@ -229,7 +270,7 @@ - (void)clipRRect:(const SkRRect&)clipSkRRect matrix:(const CATransform3D&)matri } case SkRRect::kOval_Type: case SkRRect::kSimple_Type: { - CGRect clipRect = [self getCGRectFromSkRect:clipSkRRect.rect()]; + CGRect clipRect = flutter::GetCGRectFromSkRect(clipSkRRect.rect()); pathRef = CGPathCreateWithRoundedRect(clipRect, clipSkRRect.getSimpleRadii().x(), clipSkRRect.getSimpleRadii().y(), nil); break; @@ -296,7 +337,7 @@ - (void)clipPath:(const SkPath&)path matrix:(const CATransform3D&)matrix { SkPath::Iter iter(path, true); SkPoint pts[kMaxPointsInVerb]; SkPath::Verb verb = iter.next(pts); - SkPoint last_pt_from_last_verb; + SkPoint last_pt_from_last_verb = SkPoint::Make(0, 0); while (verb != SkPath::kDone_Verb) { if (verb == SkPath::kLine_Verb || verb == SkPath::kQuad_Verb || verb == SkPath::kConic_Verb || verb == SkPath::kCubic_Verb) { @@ -353,9 +394,4 @@ - (void)clipPath:(const SkPath&)path matrix:(const CATransform3D&)matrix { return fml::CFRef(transformedPath); } -- (CGRect)getCGRectFromSkRect:(const SkRect&)clipSkRect { - return CGRectMake(clipSkRect.fLeft, clipSkRect.fTop, clipSkRect.fRight - clipSkRect.fLeft, - clipSkRect.fBottom - clipSkRect.fTop); -} - @end diff --git a/shell/platform/darwin/ios/framework/Source/FlutterRestorationPluginTest.mm b/shell/platform/darwin/ios/framework/Source/FlutterRestorationPluginTest.mm index 36de96d451a8d..d61a29e0f31fd 100644 --- a/shell/platform/darwin/ios/framework/Source/FlutterRestorationPluginTest.mm +++ b/shell/platform/darwin/ios/framework/Source/FlutterRestorationPluginTest.mm @@ -80,7 +80,7 @@ - (void)testRestorationEnabledWaitsForData { [restorationPlugin setRestorationData:data]; XCTAssertEqual([capturedResult count], 2u); XCTAssertEqual([capturedResult objectForKey:@"enabled"], @YES); - XCTAssertEqual([[capturedResult objectForKey:@"data"] data], data); + XCTAssertEqualObjects([[capturedResult objectForKey:@"data"] data], data); } - (void)testRestorationDisabledRespondsRightAway { @@ -112,7 +112,7 @@ - (void)testRespondsRightAwayWhenDataIsSet { }]; XCTAssertEqual([capturedResult count], 2u); XCTAssertEqual([capturedResult objectForKey:@"enabled"], @YES); - XCTAssertEqual([[capturedResult objectForKey:@"data"] data], data); + XCTAssertEqualObjects([[capturedResult objectForKey:@"data"] data], data); } - (void)testRespondsWithNoDataWhenRestorationIsCompletedWithoutData { @@ -161,7 +161,7 @@ - (void)testReturnsDataSetByFramework { result:^(id _Nullable result) { XCTAssertNil(result); }]; - XCTAssertEqual([restorationPlugin restorationData], data); + XCTAssertEqualObjects([restorationPlugin restorationData], data); } - (void)testRespondsWithDataSetByFramework { @@ -177,7 +177,7 @@ - (void)testRespondsWithDataSetByFramework { result:^(id _Nullable result) { XCTAssertNil(result); }]; - XCTAssertEqual([restorationPlugin restorationData], data); + XCTAssertEqualObjects([restorationPlugin restorationData], data); __block id capturedResult; methodCall = [FlutterMethodCall methodCallWithMethodName:@"get" arguments:nil]; @@ -187,7 +187,7 @@ - (void)testRespondsWithDataSetByFramework { }]; XCTAssertEqual([capturedResult count], 2u); XCTAssertEqual([capturedResult objectForKey:@"enabled"], @YES); - XCTAssertEqual([[capturedResult objectForKey:@"data"] data], data); + XCTAssertEqualObjects([[capturedResult objectForKey:@"data"] data], data); } - (void)testResetClearsData { @@ -203,7 +203,7 @@ - (void)testResetClearsData { result:^(id _Nullable result) { XCTAssertNil(result); }]; - XCTAssertEqual([restorationPlugin restorationData], data); + XCTAssertEqualObjects([restorationPlugin restorationData], data); [restorationPlugin reset]; XCTAssertNil([restorationPlugin restorationData]); diff --git a/shell/platform/darwin/ios/framework/Source/FlutterTextInputPlugin.mm b/shell/platform/darwin/ios/framework/Source/FlutterTextInputPlugin.mm index edb7d70a33d71..fc4230015cd26 100644 --- a/shell/platform/darwin/ios/framework/Source/FlutterTextInputPlugin.mm +++ b/shell/platform/darwin/ios/framework/Source/FlutterTextInputPlugin.mm @@ -48,7 +48,7 @@ @"TextInput.setEditableSizeAndTransform"; static NSString* const kSetMarkedTextRectMethod = @"TextInput.setMarkedTextRect"; static NSString* const kFinishAutofillContextMethod = @"TextInput.finishAutofillContext"; -static NSString* const kSetSelectionRectsMethod = @"TextInput.setSelectionRects"; +static NSString* const kSetSelectionRectsMethod = @"Scribble.setSelectionRects"; static NSString* const kStartLiveTextInputMethod = @"TextInput.startLiveTextInput"; #pragma mark - TextInputConfiguration Field Names @@ -74,6 +74,19 @@ #pragma mark - Static Functions +// Determine if the character at `range` of `text` is an emoji. +static BOOL IsEmoji(NSString* text, NSRange charRange) { + UChar32 codePoint; + BOOL gotCodePoint = [text getBytes:&codePoint + maxLength:sizeof(codePoint) + usedLength:NULL + encoding:NSUTF32StringEncoding + options:kNilOptions + range:charRange + remainingRange:NULL]; + return gotCodePoint && u_hasBinaryProperty(codePoint, UCHAR_EMOJI); +} + // "TextInputType.none" is a made-up input type that's typically // used when there's an in-app virtual keyboard. If // "TextInputType.none" is specified, disable the system @@ -694,6 +707,7 @@ - (void)forwardInvocation:(NSInvocation*)anInvocation { @interface FlutterTextInputPlugin () @property(nonatomic, readonly) fml::WeakPtr weakPtr; @property(nonatomic, readonly) id textInputDelegate; +@property(nonatomic, readonly) UIView* hostView; @end @interface FlutterTextInputView () @@ -702,6 +716,10 @@ @interface FlutterTextInputView () @property(nonatomic, assign) CGRect markedRect; @property(nonatomic) BOOL isVisibleToAutofill; @property(nonatomic, assign) BOOL accessibilityEnabled; +// The composed character that is temporarily removed by the keyboard API. +// This is cleared at the start of each keyboard interaction. (Enter a character, delete a character +// etc) +@property(nonatomic, copy) NSString* temporarilyDeletedComposedCharacter; - (void)setEditableTransform:(NSArray*)matrix; @end @@ -880,6 +898,8 @@ - (void)dealloc { [_markedTextStyle release]; [_textContentType release]; [_textInteraction release]; + [_temporarilyDeletedComposedCharacter release]; + _temporarilyDeletedComposedCharacter = nil; [super dealloc]; } @@ -1224,6 +1244,10 @@ - (void)replaceRange:(UITextRange*)range withText:(NSString*)text { } - (BOOL)shouldChangeTextInRange:(UITextRange*)range replacementText:(NSString*)text { + // `temporarilyDeletedComposedCharacter` should only be used during a single text change session. + // So it needs to be cleared at the start of each text editting session. + self.temporarilyDeletedComposedCharacter = nil; + if (self.returnKeyType == UIReturnKeyDefault && [text isEqualToString:@"\n"]) { [self.textInputDelegate flutterTextInputView:self performAction:FlutterTextInputActionNewline @@ -1579,7 +1603,10 @@ - (CGRect)firstRectForRange:(UITextRange*)range { _cachedFirstRect = [self localRectFromFrameworkTransform:rect]; } - return _cachedFirstRect; + UIView* hostView = _textInputPlugin.get().hostView; + NSAssert(hostView == nil || [self isDescendantOfView:hostView], @"%@ is not a descendant of %@", + self, hostView); + return hostView ? [hostView convertRect:_cachedFirstRect toView:self] : _cachedFirstRect; } if (_scribbleInteractionStatus == FlutterScribbleInteractionStatusNone && @@ -1848,6 +1875,15 @@ - (BOOL)hasText { } - (void)insertText:(NSString*)text { + if (self.temporarilyDeletedComposedCharacter.length > 0 && text.length == 1 && !text.UTF8String && + [text characterAtIndex:0] == [self.temporarilyDeletedComposedCharacter characterAtIndex:0]) { + // Workaround for https://github.com/flutter/flutter/issues/111494 + // TODO(cyanglaz): revert this workaround if when flutter supports a minimum iOS version which + // this bug is fixed by Apple. + text = self.temporarilyDeletedComposedCharacter; + self.temporarilyDeletedComposedCharacter = nil; + } + NSMutableArray* copiedRects = [[NSMutableArray alloc] initWithCapacity:[_selectionRects count]]; NSAssert([_selectedTextRange.start isKindOfClass:[FlutterTextPosition class]], @@ -1918,15 +1954,7 @@ - (void)deleteBackward { // We should check if the last character is a part of emoji. // If so, we must delete the entire emoji to prevent the text from being malformed. NSRange charRange = fml::RangeForCharacterAtIndex(self.text, oldRange.location - 1); - UChar32 codePoint; - BOOL gotCodePoint = [self.text getBytes:&codePoint - maxLength:sizeof(codePoint) - usedLength:NULL - encoding:NSUTF32StringEncoding - options:kNilOptions - range:charRange - remainingRange:NULL]; - if (gotCodePoint && u_hasBinaryProperty(codePoint, UCHAR_EMOJI)) { + if (IsEmoji(self.text, charRange)) { newRange = NSMakeRange(charRange.location, oldRange.location - charRange.location); } @@ -1936,6 +1964,15 @@ - (void)deleteBackward { } if (!_selectedTextRange.isEmpty) { + // Cache the last deleted emoji to use for an iOS bug where the next + // insertion corrupts the emoji characters. + // See: https://github.com/flutter/flutter/issues/111494#issuecomment-1248441346 + if (IsEmoji(self.text, _selectedTextRange.range)) { + NSString* deletedText = [self.text substringWithRange:_selectedTextRange.range]; + NSRange deleteFirstCharacterRange = fml::RangeForCharacterAtIndex(deletedText, 0); + self.temporarilyDeletedComposedCharacter = + [deletedText substringWithRange:deleteFirstCharacterRange]; + } [self replaceRange:_selectedTextRange withText:@""]; } } diff --git a/shell/platform/darwin/ios/framework/Source/FlutterTextInputPluginTest.mm b/shell/platform/darwin/ios/framework/Source/FlutterTextInputPluginTest.mm index 09c307ef0dba8..462ea9e8359af 100644 --- a/shell/platform/darwin/ios/framework/Source/FlutterTextInputPluginTest.mm +++ b/shell/platform/darwin/ios/framework/Source/FlutterTextInputPluginTest.mm @@ -453,6 +453,65 @@ - (void)testDeletingBackward { XCTAssertEqualObjects(inputView.text, @""); } +// This tests the workaround to fix an iOS 16 bug +// See: https://github.com/flutter/flutter/issues/111494 +- (void)testSystemOnlyAddingPartialComposedCharacter { + NSDictionary* config = self.mutableTemplateCopy; + [self setClientId:123 configuration:config]; + NSArray* inputFields = self.installedInputViews; + FlutterTextInputView* inputView = inputFields[0]; + + [inputView insertText:@"👨‍👩‍👧‍👦"]; + [inputView deleteBackward]; + + // Insert the first unichar in the emoji. + [inputView insertText:[@"👨‍👩‍👧‍👦" substringWithRange:NSMakeRange(0, 1)]]; + [inputView insertText:@"아"]; + + XCTAssertEqualObjects(inputView.text, @"👨‍👩‍👧‍👦아"); + + // Deleting 아. + [inputView deleteBackward]; + // 👨‍👩‍👧‍👦 should be the current string. + + [inputView insertText:@"😀"]; + [inputView deleteBackward]; + // Insert the first unichar in the emoji. + [inputView insertText:[@"😀" substringWithRange:NSMakeRange(0, 1)]]; + [inputView insertText:@"아"]; + XCTAssertEqualObjects(inputView.text, @"👨‍👩‍👧‍👦😀아"); + + // Deleting 아. + [inputView deleteBackward]; + // 👨‍👩‍👧‍👦😀 should be the current string. + + [inputView deleteBackward]; + // Insert the first unichar in the emoji. + [inputView insertText:[@"😀" substringWithRange:NSMakeRange(0, 1)]]; + [inputView insertText:@"아"]; + + XCTAssertEqualObjects(inputView.text, @"👨‍👩‍👧‍👦😀아"); +} + +- (void)testCachedComposedCharacterClearedAtKeyboardInteraction { + NSDictionary* config = self.mutableTemplateCopy; + [self setClientId:123 configuration:config]; + NSArray* inputFields = self.installedInputViews; + FlutterTextInputView* inputView = inputFields[0]; + + [inputView insertText:@"👨‍👩‍👧‍👦"]; + [inputView deleteBackward]; + [inputView shouldChangeTextInRange:OCMClassMock([UITextRange class]) replacementText:@""]; + + // Insert the first unichar in the emoji. + NSString* brokenEmoji = [@"👨‍👩‍👧‍👦" substringWithRange:NSMakeRange(0, 1)]; + [inputView insertText:brokenEmoji]; + [inputView insertText:@"아"]; + + NSString* finalText = [NSString stringWithFormat:@"%@아", brokenEmoji]; + XCTAssertEqualObjects(inputView.text, finalText); +} + - (void)testPastingNonTextDisallowed { NSDictionary* config = self.mutableTemplateCopy; [self setClientId:123 configuration:config]; @@ -1158,7 +1217,11 @@ - (void)testInputViewsDoNotHaveUITextInteractions { #pragma mark - UITextInput methods - Tests - (void)testUpdateFirstRectForRange { - FlutterTextInputView* inputView = [[FlutterTextInputView alloc] initWithOwner:textInputPlugin]; + [self setClientId:123 configuration:self.mutableTemplateCopy]; + + FlutterTextInputView* inputView = textInputPlugin.activeView; + textInputPlugin.viewController.view.frame = CGRectMake(0, 0, 0, 0); + [inputView setTextInputState:@{@"text" : @"COMPOSING", @"composingBase" : @1, @"composingExtent" : @3}]; @@ -1213,6 +1276,16 @@ - (void)testUpdateFirstRectForRange { [inputView setMarkedRect:testRect]; XCTAssertTrue( CGRectEqualToRect(CGRectMake(-306, 3, 300, 300), [inputView firstRectForRange:range])); + + NSAssert(inputView.superview, @"inputView is not in the view hierarchy!"); + const CGPoint offset = CGPointMake(113, 119); + CGRect currentFrame = inputView.frame; + currentFrame.origin = offset; + inputView.frame = currentFrame; + // Moving the input view within the FlutterView shouldn't affect the coordinates, + // since the framework sends us global coordinates. + XCTAssertTrue(CGRectEqualToRect(CGRectMake(-306 - 113, 3 - 119, 300, 300), + [inputView firstRectForRange:range])); } - (void)testFirstRectForRangeReturnsCorrectSelectionRect { @@ -1781,6 +1854,38 @@ - (void)testGarbageInputViewsAreNotRemovedImmediately { [self commitAutofillContextAndVerify]; } +- (void)testScribbleSetSelectionRects { + NSMutableDictionary* regularField = self.mutableTemplateCopy; + NSDictionary* editingValue = @{ + @"text" : @"REGULAR_TEXT_FIELD", + @"composingBase" : @0, + @"composingExtent" : @3, + @"selectionBase" : @1, + @"selectionExtent" : @4 + }; + [regularField setValue:@{ + @"uniqueIdentifier" : @"field1", + @"hints" : @[ @"hint2" ], + @"editingValue" : editingValue, + } + forKey:@"autofill"]; + [regularField addEntriesFromDictionary:editingValue]; + [self setClientId:123 configuration:regularField]; + XCTAssertEqual(self.installedInputViews.count, 1ul); + XCTAssertEqual([textInputPlugin.activeView.selectionRects count], 0u); + + NSArray* selectionRect = [NSArray arrayWithObjects:@0, @0, @100, @100, @0, nil]; + NSArray* selectionRects = [NSArray arrayWithObjects:selectionRect, nil]; + FlutterMethodCall* methodCall = + [FlutterMethodCall methodCallWithMethodName:@"Scribble.setSelectionRects" + arguments:selectionRects]; + [textInputPlugin handleMethodCall:methodCall + result:^(id _Nullable result){ + }]; + + XCTAssertEqual([textInputPlugin.activeView.selectionRects count], 1u); +} + - (void)testDecommissionedViewAreNotReusedByAutofill { // Regression test for https://github.com/flutter/flutter/issues/84407. NSMutableDictionary* configuration = self.mutableTemplateCopy; diff --git a/shell/platform/darwin/ios/framework/Source/FlutterViewController.mm b/shell/platform/darwin/ios/framework/Source/FlutterViewController.mm index d4ce938899df9..78195cf1800c8 100644 --- a/shell/platform/darwin/ios/framework/Source/FlutterViewController.mm +++ b/shell/platform/darwin/ios/framework/Source/FlutterViewController.mm @@ -505,7 +505,7 @@ + (BOOL)automaticallyNotifiesObserversOfDisplayingFlutterUI { - (void)setDisplayingFlutterUI:(BOOL)displayingFlutterUI { if (_displayingFlutterUI != displayingFlutterUI) { if (displayingFlutterUI == YES) { - if (!self.isViewLoaded || !self.view.window) { + if (!self.viewIfLoaded.window) { return; } } @@ -901,9 +901,9 @@ - (void)applicationWillEnterForeground:(NSNotification*)notification { // Make this transition only while this current view controller is visible. - (void)goToApplicationLifecycle:(nonnull NSString*)state { - // Accessing self.view will create the view. Check whether the view is organically loaded - // first before checking whether the view is attached to window. - if (self.isViewLoaded && self.view.window) { + // Accessing self.view will create the view. Instead use viewIfLoaded + // to check whether the view is attached to window. + if (self.viewIfLoaded.window) { [[_engine.get() lifecycleChannel] sendMessage:state]; } } diff --git a/shell/platform/darwin/ios/framework/Source/accessibility_bridge.mm b/shell/platform/darwin/ios/framework/Source/accessibility_bridge.mm index 08dbb1d241380..e713e1166a8fb 100644 --- a/shell/platform/darwin/ios/framework/Source/accessibility_bridge.mm +++ b/shell/platform/darwin/ios/framework/Source/accessibility_bridge.mm @@ -63,7 +63,7 @@ void PostAccessibilityNotification(UIAccessibilityNotifications notification, AccessibilityBridge::~AccessibilityBridge() { [accessibility_channel_.get() setMessageHandler:nil]; clearState(); - view_controller_.view.accessibilityElements = nil; + view_controller_.viewIfLoaded.accessibilityElements = nil; } UIView* AccessibilityBridge::textInputView() { @@ -183,7 +183,7 @@ void PostAccessibilityNotification(UIAccessibilityNotifications notification, previous_routes_.push_back([route uid]); } } else { - view_controller_.view.accessibilityElements = nil; + view_controller_.viewIfLoaded.accessibilityElements = nil; } NSMutableArray* doomed_uids = [NSMutableArray arrayWithArray:[objects_ allKeys]]; diff --git a/shell/platform/darwin/ios/framework/Source/accessibility_bridge_test.mm b/shell/platform/darwin/ios/framework/Source/accessibility_bridge_test.mm index 3da6359d5f3a1..4a8a3479288d7 100644 --- a/shell/platform/darwin/ios/framework/Source/accessibility_bridge_test.mm +++ b/shell/platform/darwin/ios/framework/Source/accessibility_bridge_test.mm @@ -10,6 +10,7 @@ #import "flutter/shell/platform/darwin/ios/framework/Headers/FlutterPlatformViews.h" #import "flutter/shell/platform/darwin/ios/framework/Source/FlutterPlatformViews_Internal.h" #import "flutter/shell/platform/darwin/ios/framework/Source/FlutterSemanticsScrollView.h" +#import "flutter/shell/platform/darwin/ios/framework/Source/FlutterViewController_Internal.h" #import "flutter/shell/platform/darwin/ios/framework/Source/accessibility_bridge.h" #import "flutter/shell/platform/darwin/ios/platform_view_ios.h" @@ -171,7 +172,7 @@ - (void)testUpdateSemanticsEmpty { /*task_runners=*/runners); id mockFlutterView = OCMClassMock([FlutterView class]); id mockFlutterViewController = OCMClassMock([FlutterViewController class]); - OCMStub([mockFlutterViewController view]).andReturn(mockFlutterView); + OCMStub([mockFlutterViewController viewIfLoaded]).andReturn(mockFlutterView); OCMExpect([mockFlutterView setAccessibilityElements:[OCMArg isNil]]); auto bridge = std::make_unique(/*view_controller=*/mockFlutterViewController, @@ -308,6 +309,54 @@ - (void)testSemanticsDeallocated { XCTAssertNil(gMockPlatformView); } +- (void)testSemanticsDeallocatedWithoutLoadingView { + id engine = OCMClassMock([FlutterEngine class]); + FlutterViewController* flutterViewController = + [[FlutterViewController alloc] initWithEngine:engine nibName:nil bundle:nil]; + @autoreleasepool { + flutter::MockDelegate mock_delegate; + auto thread_task_runner = CreateNewThread("AccessibilityBridgeTest"); + flutter::TaskRunners runners(/*label=*/self.name.UTF8String, + /*platform=*/thread_task_runner, + /*raster=*/thread_task_runner, + /*ui=*/thread_task_runner, + /*io=*/thread_task_runner); + + auto flutterPlatformViewsController = + std::make_shared(); + auto platform_view = std::make_unique( + /*delegate=*/mock_delegate, + /*rendering_api=*/flutter::IOSRenderingAPI::kSoftware, + /*platform_views_controller=*/flutterPlatformViewsController, + /*task_runners=*/runners); + + MockFlutterPlatformFactory* factory = [[MockFlutterPlatformFactory new] autorelease]; + flutterPlatformViewsController->RegisterViewFactory( + factory, @"MockFlutterPlatformView", + FlutterPlatformViewGestureRecognizersBlockingPolicyEager); + FlutterResult result = ^(id result) { + }; + flutterPlatformViewsController->OnMethodCall( + [FlutterMethodCall + methodCallWithMethodName:@"create" + arguments:@{@"id" : @2, @"viewType" : @"MockFlutterPlatformView"}], + result); + + auto bridge = std::make_unique( + /*view_controller=*/flutterViewController, + /*platform_view=*/platform_view.get(), + /*platform_views_controller=*/flutterPlatformViewsController); + + XCTAssertNotNil(gMockPlatformView); + flutterPlatformViewsController->Reset(); + platform_view->NotifyDestroyed(); + } + XCTAssertNil(gMockPlatformView); + XCTAssertNil(flutterViewController.viewIfLoaded); + [flutterViewController deregisterNotifications]; + [flutterViewController release]; +} + - (void)testReplacedSemanticsDoesNotCleanupChildren { flutter::MockDelegate mock_delegate; auto thread_task_runner = CreateNewThread("AccessibilityBridgeTest"); diff --git a/shell/platform/darwin/ios/framework/Source/vsync_waiter_ios.mm b/shell/platform/darwin/ios/framework/Source/vsync_waiter_ios.mm index 63954c9c59b09..da358506ac5ce 100644 --- a/shell/platform/darwin/ios/framework/Source/vsync_waiter_ios.mm +++ b/shell/platform/darwin/ios/framework/Source/vsync_waiter_ios.mm @@ -102,7 +102,7 @@ - (void)pause { } - (void)onDisplayLink:(CADisplayLink*)link { - TRACE_EVENT0("flutter", "VSYNC"); + TRACE_EVENT0("flutter", "VsyncCallback"); CFTimeInterval delay = CACurrentMediaTime() - link.timestamp; fml::TimePoint frame_start_time = fml::TimePoint::Now() - fml::TimeDelta::FromSecondsF(delay); diff --git a/shell/platform/darwin/ios/ios_context_metal_impeller.h b/shell/platform/darwin/ios/ios_context_metal_impeller.h index 4e3dca13e55e8..a46dc81cfed9c 100644 --- a/shell/platform/darwin/ios/ios_context_metal_impeller.h +++ b/shell/platform/darwin/ios/ios_context_metal_impeller.h @@ -6,7 +6,8 @@ #define FLUTTER_SHELL_PLATFORM_DARWIN_IOS_IOS_CONTEXT_METAL_IMPELER_H_ #include "flutter/fml/macros.h" -#include "flutter/shell/platform/darwin/graphics/FlutterDarwinContextMetal.h" +#include "flutter/shell/platform/darwin/graphics/FlutterDarwinContextMetalImpeller.h" +#include "flutter/shell/platform/darwin/graphics/FlutterDarwinContextMetalSkia.h" #include "flutter/shell/platform/darwin/ios/ios_context.h" namespace impeller { @@ -23,7 +24,7 @@ class IOSContextMetalImpeller final : public IOSContext { ~IOSContextMetalImpeller(); - fml::scoped_nsobject GetDarwinContext() const; + fml::scoped_nsobject GetDarwinContext() const; IOSRenderingBackend GetBackend() const override; @@ -33,7 +34,7 @@ class IOSContextMetalImpeller final : public IOSContext { sk_sp GetResourceContext() const; private: - std::shared_ptr context_; + fml::scoped_nsobject darwin_context_metal_impeller_; // |IOSContext| sk_sp CreateResourceContext() override; diff --git a/shell/platform/darwin/ios/ios_context_metal_impeller.mm b/shell/platform/darwin/ios/ios_context_metal_impeller.mm index 6747c522c0f2f..fc011f652c4cf 100644 --- a/shell/platform/darwin/ios/ios_context_metal_impeller.mm +++ b/shell/platform/darwin/ios/ios_context_metal_impeller.mm @@ -3,33 +3,21 @@ // found in the LICENSE file. #import "flutter/shell/platform/darwin/ios/ios_context_metal_impeller.h" - #include "flutter/impeller/entity/mtl/entity_shaders.h" -#include "flutter/impeller/renderer/backend/metal/context_mtl.h" +#import "flutter/shell/platform/darwin/ios/ios_external_texture_metal.h" namespace flutter { -static std::shared_ptr CreateImpellerContext() { - std::vector> shader_mappings = { - std::make_shared(impeller_entity_shaders_data, - impeller_entity_shaders_length), - }; - auto context = impeller::ContextMTL::Create(shader_mappings, "Impeller Library"); - if (!context) { - FML_LOG(ERROR) << "Could not create Metal Impeller Context."; - return nullptr; - } - FML_LOG(ERROR) << "Using the Impeller rendering backend."; - return context; -} - IOSContextMetalImpeller::IOSContextMetalImpeller() - : IOSContext(MsaaSampleCount::kFour), context_(CreateImpellerContext()) {} + : IOSContext(MsaaSampleCount::kFour), + darwin_context_metal_impeller_(fml::scoped_nsobject{ + [[FlutterDarwinContextMetalImpeller alloc] init]}) {} IOSContextMetalImpeller::~IOSContextMetalImpeller() = default; -fml::scoped_nsobject IOSContextMetalImpeller::GetDarwinContext() const { - return fml::scoped_nsobject{}; +fml::scoped_nsobject IOSContextMetalImpeller::GetDarwinContext() + const { + return fml::scoped_nsobject{}; } IOSRenderingBackend IOSContextMetalImpeller::GetBackend() const { @@ -51,7 +39,7 @@ // |IOSContext| std::shared_ptr IOSContextMetalImpeller::GetImpellerContext() const { - return context_; + return darwin_context_metal_impeller_.get().context; } // |IOSContext| @@ -64,7 +52,10 @@ std::unique_ptr IOSContextMetalImpeller::CreateExternalTexture( int64_t texture_id, fml::scoped_nsobject> texture) { - return nullptr; + return std::make_unique( + fml::scoped_nsobject{ + [[darwin_context_metal_impeller_ createExternalTextureWithIdentifier:texture_id + texture:texture] retain]}); } } // namespace flutter diff --git a/shell/platform/darwin/ios/ios_context_metal_skia.h b/shell/platform/darwin/ios/ios_context_metal_skia.h index 48661f7d18edb..42b6a8285f64b 100644 --- a/shell/platform/darwin/ios/ios_context_metal_skia.h +++ b/shell/platform/darwin/ios/ios_context_metal_skia.h @@ -10,7 +10,7 @@ #include "flutter/fml/macros.h" #include "flutter/fml/platform/darwin/cf_utils.h" #include "flutter/fml/platform/darwin/scoped_nsobject.h" -#import "flutter/shell/platform/darwin/graphics/FlutterDarwinContextMetal.h" +#import "flutter/shell/platform/darwin/graphics/FlutterDarwinContextMetalSkia.h" #import "flutter/shell/platform/darwin/ios/ios_context.h" #include "third_party/skia/include/gpu/GrDirectContext.h" @@ -22,7 +22,7 @@ class IOSContextMetalSkia final : public IOSContext { ~IOSContextMetalSkia(); - fml::scoped_nsobject GetDarwinContext() const; + fml::scoped_nsobject GetDarwinContext() const; // |IOSContext| IOSRenderingBackend GetBackend() const override; @@ -33,7 +33,7 @@ class IOSContextMetalSkia final : public IOSContext { sk_sp GetResourceContext() const; private: - fml::scoped_nsobject darwin_context_metal_; + fml::scoped_nsobject darwin_context_metal_; // |IOSContext| sk_sp CreateResourceContext() override; diff --git a/shell/platform/darwin/ios/ios_context_metal_skia.mm b/shell/platform/darwin/ios/ios_context_metal_skia.mm index fb4ef48762237..1a4d8c8ed358e 100644 --- a/shell/platform/darwin/ios/ios_context_metal_skia.mm +++ b/shell/platform/darwin/ios/ios_context_metal_skia.mm @@ -6,20 +6,20 @@ #include "flutter/common/graphics/persistent_cache.h" #include "flutter/fml/logging.h" -#import "flutter/shell/platform/darwin/graphics/FlutterDarwinContextMetal.h" +#import "flutter/shell/platform/darwin/graphics/FlutterDarwinContextMetalSkia.h" #import "flutter/shell/platform/darwin/ios/ios_external_texture_metal.h" #include "third_party/skia/include/gpu/GrContextOptions.h" namespace flutter { IOSContextMetalSkia::IOSContextMetalSkia(MsaaSampleCount msaa_samples) : IOSContext(msaa_samples) { - darwin_context_metal_ = fml::scoped_nsobject{ - [[FlutterDarwinContextMetal alloc] initWithDefaultMTLDevice]}; + darwin_context_metal_ = fml::scoped_nsobject{ + [[FlutterDarwinContextMetalSkia alloc] initWithDefaultMTLDevice]}; } IOSContextMetalSkia::~IOSContextMetalSkia() = default; -fml::scoped_nsobject IOSContextMetalSkia::GetDarwinContext() const { +fml::scoped_nsobject IOSContextMetalSkia::GetDarwinContext() const { return darwin_context_metal_; } diff --git a/shell/platform/darwin/ios/ios_external_texture_metal.h b/shell/platform/darwin/ios/ios_external_texture_metal.h index 158497d336329..ba0153013a907 100644 --- a/shell/platform/darwin/ios/ios_external_texture_metal.h +++ b/shell/platform/darwin/ios/ios_external_texture_metal.h @@ -26,12 +26,10 @@ class IOSExternalTextureMetal final : public Texture { darwin_external_texture_metal_; // |Texture| - void Paint(SkCanvas& canvas, + void Paint(PaintContext& context, const SkRect& bounds, bool freeze, - GrDirectContext* context, - const SkSamplingOptions& sampling, - const SkPaint* paint) override; + const SkSamplingOptions& sampling) override; // |Texture| void OnGrContextCreated() override; diff --git a/shell/platform/darwin/ios/ios_external_texture_metal.mm b/shell/platform/darwin/ios/ios_external_texture_metal.mm index 50d1405a084bf..ccc68aa07a008 100644 --- a/shell/platform/darwin/ios/ios_external_texture_metal.mm +++ b/shell/platform/darwin/ios/ios_external_texture_metal.mm @@ -3,6 +3,7 @@ // found in the LICENSE file. #import "flutter/shell/platform/darwin/ios/ios_external_texture_metal.h" +#include "flow/layers/layer.h" namespace flutter { @@ -13,18 +14,14 @@ IOSExternalTextureMetal::~IOSExternalTextureMetal() = default; -void IOSExternalTextureMetal::Paint(SkCanvas& canvas, +void IOSExternalTextureMetal::Paint(PaintContext& context, const SkRect& bounds, bool freeze, - GrDirectContext* context, - const SkSamplingOptions& sampling, - const SkPaint* paint) { - [darwin_external_texture_metal_ canvas:canvas - bounds:bounds - freeze:freeze - grContext:context - sampling:sampling - paint:paint]; + const SkSamplingOptions& sampling) { + [darwin_external_texture_metal_ paintContext:context + bounds:bounds + freeze:freeze + sampling:sampling]; } void IOSExternalTextureMetal::OnGrContextCreated() { diff --git a/shell/platform/darwin/ios/ios_external_view_embedder.h b/shell/platform/darwin/ios/ios_external_view_embedder.h index 03cec910bae39..8779f936db838 100644 --- a/shell/platform/darwin/ios/ios_external_view_embedder.h +++ b/shell/platform/darwin/ios/ios_external_view_embedder.h @@ -69,7 +69,8 @@ class IOSExternalViewEmbedder : public ExternalViewEmbedder { // |ExternalViewEmbedder| void PushFilterToVisitedPlatformViews( - std::shared_ptr filter) override; + std::shared_ptr filter, + const SkRect& filter_rect) override; // |ExternalViewEmbedder| void PushVisitedPlatformView(int64_t view_id) override; diff --git a/shell/platform/darwin/ios/ios_external_view_embedder.mm b/shell/platform/darwin/ios/ios_external_view_embedder.mm index 76995be2c56ad..3222bf2a096c3 100644 --- a/shell/platform/darwin/ios/ios_external_view_embedder.mm +++ b/shell/platform/darwin/ios/ios_external_view_embedder.mm @@ -100,8 +100,9 @@ // |ExternalViewEmbedder| void IOSExternalViewEmbedder::PushFilterToVisitedPlatformViews( - std::shared_ptr filter) { - platform_views_controller_->PushFilterToVisitedPlatformViews(filter); + std::shared_ptr filter, + const SkRect& filter_rect) { + platform_views_controller_->PushFilterToVisitedPlatformViews(filter, filter_rect); } // |ExternalViewEmbedder| diff --git a/shell/platform/darwin/macos/BUILD.gn b/shell/platform/darwin/macos/BUILD.gn index d2f5b3df28619..abe1fc3f76cb2 100644 --- a/shell/platform/darwin/macos/BUILD.gn +++ b/shell/platform/darwin/macos/BUILD.gn @@ -121,6 +121,9 @@ source_set("flutter_framework_source") { "framework/Source/FlutterView.mm", "framework/Source/FlutterViewController.mm", "framework/Source/FlutterViewController_Internal.h", + "framework/Source/FlutterViewEngineProvider.h", + "framework/Source/FlutterViewEngineProvider.mm", + "framework/Source/FlutterViewProvider.h", "framework/Source/KeyCodeMap.g.mm", "framework/Source/MacOSGLContextSwitch.h", "framework/Source/MacOSGLContextSwitch.mm", @@ -202,6 +205,7 @@ executable("flutter_desktop_darwin_unittests") { "framework/Source/FlutterViewControllerTest.mm", "framework/Source/FlutterViewControllerTestUtils.h", "framework/Source/FlutterViewControllerTestUtils.mm", + "framework/Source/FlutterViewEngineProviderUnitTests.mm", "framework/Source/TestFlutterPlatformView.h", "framework/Source/TestFlutterPlatformView.mm", ] diff --git a/shell/platform/darwin/macos/framework/Headers/FlutterDartProject.h b/shell/platform/darwin/macos/framework/Headers/FlutterDartProject.h index 76ffc9fe86b97..e888273c880ca 100644 --- a/shell/platform/darwin/macos/framework/Headers/FlutterDartProject.h +++ b/shell/platform/darwin/macos/framework/Headers/FlutterDartProject.h @@ -44,7 +44,7 @@ FLUTTER_DARWIN_EXPORT * * Set this to nil to pass no arguments to the Dart entrypoint. */ -@property(nonatomic, nullable) NSArray* dartEntrypointArguments; +@property(nonatomic, nullable, strong) NSArray* dartEntrypointArguments; @end diff --git a/shell/platform/darwin/macos/framework/Headers/FlutterViewController.h b/shell/platform/darwin/macos/framework/Headers/FlutterViewController.h index 43c88215d3f90..53e26fbad4da6 100644 --- a/shell/platform/darwin/macos/framework/Headers/FlutterViewController.h +++ b/shell/platform/darwin/macos/framework/Headers/FlutterViewController.h @@ -53,7 +53,18 @@ FLUTTER_DARWIN_EXPORT bundle:(nullable NSBundle*)nibBundleOrNil NS_DESIGNATED_INITIALIZER; - (nonnull instancetype)initWithCoder:(nonnull NSCoder*)nibNameOrNil NS_DESIGNATED_INITIALIZER; - +/** + * Initializes this FlutterViewController with the specified `FlutterEngine`. + * + * The initialized viewcontroller will attach itself to the engine as part of this process. + * + * @param engine The `FlutterEngine` instance to attach to. Cannot be nil. + * @param nibName The NIB name to initialize this controller with. + * @param nibBundle The NIB bundle. + */ +- (nonnull instancetype)initWithEngine:(nonnull FlutterEngine*)engine + nibName:(nullable NSString*)nibName + bundle:(nullable NSBundle*)nibBundle NS_DESIGNATED_INITIALIZER; /** * Invoked by the engine right before the engine is restarted. * @@ -62,4 +73,48 @@ FLUTTER_DARWIN_EXPORT */ - (void)onPreEngineRestart; +/** + * The contentView (FlutterView)'s background color is set to black during + * its instantiation. + * + * The containing layer's color can be set to the NSColor provided to this method. + * + * For example, the background may be set after the FlutterViewController + * is instantiated in MainFlutterWindow.swift in the Flutter project. + * ```swift + * import Cocoa + * import FlutterMacOS + * + * class MainFlutterWindow: NSWindow { + * override func awakeFromNib() { + * let flutterViewController = FlutterViewController.init() + * + * // The background color of the window and `FlutterViewController` + * // are retained separately. + * // + * // In this example, both the MainFlutterWindow and FlutterViewController's + * // FlutterView's backgroundColor are set to clear to achieve a fully + * // transparent effect. + * // + * // If the window's background color is not set, it will use the system + * // default. + * // + * // If the `FlutterView`'s color is not set via `FlutterViewController.setBackgroundColor` + * // it's default will be black. + * self.backgroundColor = NSColor.clear + * flutterViewController.backgroundColor = NSColor.clear + * + * let windowFrame = self.frame + * self.contentViewController = flutterViewController + * self.setFrame(windowFrame, display: true) + * + * RegisterGeneratedPlugins(registry: flutterViewController) + * + * super.awakeFromNib() + * } + * } + * ``` + */ +@property(readwrite, nonatomic, nullable) NSColor* backgroundColor; + @end diff --git a/shell/platform/darwin/macos/framework/Source/AccessibilityBridgeMacDelegateTest.mm b/shell/platform/darwin/macos/framework/Source/AccessibilityBridgeMacDelegateTest.mm index 5f4a6d6a8d125..625272b192d24 100644 --- a/shell/platform/darwin/macos/framework/Source/AccessibilityBridgeMacDelegateTest.mm +++ b/shell/platform/darwin/macos/framework/Source/AccessibilityBridgeMacDelegateTest.mm @@ -67,6 +67,7 @@ void DispatchMacOSNotification(gfx::NativeViewAccessible native_node, root.value = ""; root.increased_value = ""; root.decreased_value = ""; + root.tooltip = ""; root.child_count = 0; root.custom_accessibility_actions_count = 0; bridge->AddFlutterSemanticsNodeUpdate(&root); @@ -119,6 +120,7 @@ void DispatchMacOSNotification(gfx::NativeViewAccessible native_node, root.value = ""; root.increased_value = ""; root.decreased_value = ""; + root.tooltip = ""; root.child_count = 0; root.custom_accessibility_actions_count = 0; bridge->AddFlutterSemanticsNodeUpdate(&root); @@ -172,6 +174,7 @@ void DispatchMacOSNotification(gfx::NativeViewAccessible native_node, root.value = ""; root.increased_value = ""; root.decreased_value = ""; + root.tooltip = ""; root.child_count = 0; root.custom_accessibility_actions_count = 0; bridge->AddFlutterSemanticsNodeUpdate(&root); diff --git a/shell/platform/darwin/macos/framework/Source/FlutterCompositor.h b/shell/platform/darwin/macos/framework/Source/FlutterCompositor.h index 07792fbddb26b..ba4d44cc21d1d 100644 --- a/shell/platform/darwin/macos/framework/Source/FlutterCompositor.h +++ b/shell/platform/darwin/macos/framework/Source/FlutterCompositor.h @@ -10,6 +10,7 @@ #include "flutter/fml/macros.h" #include "flutter/shell/platform/darwin/macos/framework/Source/FlutterView.h" +#include "flutter/shell/platform/darwin/macos/framework/Source/FlutterViewProvider.h" #include "flutter/shell/platform/embedder/embedder.h" namespace flutter { @@ -19,9 +20,12 @@ namespace flutter { // Platform views are not yet supported. class FlutterCompositor { public: - using ViewProvider = std::function; - - explicit FlutterCompositor(ViewProvider get_view_callback); + // Create a FlutterCompositor with a view provider. + // + // The view_provider is used to query FlutterViews from view IDs, + // which are used for presenting and creating backing stores. + // It must not be null, and is typically FlutterViewEngineProvider. + explicit FlutterCompositor(id view_provider); virtual ~FlutterCompositor() = default; @@ -46,7 +50,9 @@ class FlutterCompositor { // Presents the FlutterLayers by updating FlutterView(s) using the // layer content. // Present sets frame_started_ to false. - virtual bool Present(const FlutterLayer** layers, size_t layers_count) = 0; + virtual bool Present(uint64_t surface_id, + const FlutterLayer** layers, + size_t layers_count) = 0; using PresentCallback = std::function; @@ -64,6 +70,9 @@ class FlutterCompositor { typedef enum { kStarted, kPresenting, kEnded } FrameStatus; protected: + // Get the view associated with the view ID. + // + // Returns nil if the ID is invalid. FlutterView* GetView(uint64_t view_id); // Gets and sets the FrameStatus for the current frame. @@ -88,7 +97,8 @@ class FlutterCompositor { // A list of the active CALayer objects for the frame that need to be removed. std::list active_ca_layers_; - ViewProvider get_view_callback_; + // Where the compositor can query FlutterViews. Must not be null. + id const view_provider_; // Callback set by the embedder to be called when the layer tree has been // correctly set up for this frame. diff --git a/shell/platform/darwin/macos/framework/Source/FlutterCompositor.mm b/shell/platform/darwin/macos/framework/Source/FlutterCompositor.mm index 3c0490f1fcaa7..70be1049d0bcd 100644 --- a/shell/platform/darwin/macos/framework/Source/FlutterCompositor.mm +++ b/shell/platform/darwin/macos/framework/Source/FlutterCompositor.mm @@ -7,8 +7,9 @@ namespace flutter { -FlutterCompositor::FlutterCompositor(ViewProvider get_view_callback) { - get_view_callback_ = std::move(get_view_callback); +FlutterCompositor::FlutterCompositor(id view_provider) + : view_provider_(view_provider) { + FML_CHECK(view_provider != nullptr) << "FlutterViewProvider* cannot be nullptr"; } void FlutterCompositor::SetPresentCallback( @@ -34,7 +35,7 @@ } FlutterView* FlutterCompositor::GetView(uint64_t view_id) { - return get_view_callback_(view_id); + return [view_provider_ getView:view_id]; } void FlutterCompositor::SetFrameStatus(FlutterCompositor::FrameStatus frame_status) { diff --git a/shell/platform/darwin/macos/framework/Source/FlutterEmbedderExternalTextureUnittests.mm b/shell/platform/darwin/macos/framework/Source/FlutterEmbedderExternalTextureUnittests.mm index 144d09e22aad2..1444503ca3fcd 100644 --- a/shell/platform/darwin/macos/framework/Source/FlutterEmbedderExternalTextureUnittests.mm +++ b/shell/platform/darwin/macos/framework/Source/FlutterEmbedderExternalTextureUnittests.mm @@ -8,7 +8,7 @@ #include #include -#import "flutter/shell/platform/darwin/graphics/FlutterDarwinContextMetal.h" +#import "flutter/shell/platform/darwin/graphics/FlutterDarwinContextMetalSkia.h" #import "flutter/shell/platform/darwin/graphics/FlutterDarwinExternalTextureMetal.h" #import "flutter/shell/platform/darwin/macos/framework/Source/FlutterExternalTextureMetal.h" #include "flutter/shell/platform/embedder/embedder.h" @@ -71,8 +71,8 @@ - (CVPixelBufferRef)pixelBuffer { const int64_t texture_id = 1; // Set up the surface. - FlutterDarwinContextMetal* darwinContextMetal = - [[FlutterDarwinContextMetal alloc] initWithDefaultMTLDevice]; + FlutterDarwinContextMetalSkia* darwinContextMetal = + [[FlutterDarwinContextMetalSkia alloc] initWithDefaultMTLDevice]; SkImageInfo info = SkImageInfo::MakeN32Premul(width, height); GrDirectContext* grContext = darwinContextMetal.mainContext.get(); sk_sp gpuSurface(SkSurface::MakeRenderTarget(grContext, SkBudgeted::kNo, info)); @@ -111,7 +111,11 @@ - (CVPixelBufferRef)pixelBuffer { std::make_unique(texture_id, callback); SkRect bounds = SkRect::MakeWH(info.width(), info.height()); SkSamplingOptions sampling = SkSamplingOptions(SkFilterMode::kNearest); - texture->Paint(*gpuSurface->getCanvas(), bounds, /*freeze=*/false, grContext, sampling); + flutter::Texture::PaintContext context{ + .canvas = gpuSurface->getCanvas(), + .gr_context = grContext, + }; + texture->Paint(context, bounds, /*freeze=*/false, sampling); ASSERT_TRUE(mtlTexture != nil); @@ -125,8 +129,8 @@ - (CVPixelBufferRef)pixelBuffer { const int64_t texture_id = 1; // Set up the surface. - FlutterDarwinContextMetal* darwinContextMetal = - [[FlutterDarwinContextMetal alloc] initWithDefaultMTLDevice]; + FlutterDarwinContextMetalSkia* darwinContextMetal = + [[FlutterDarwinContextMetalSkia alloc] initWithDefaultMTLDevice]; SkImageInfo info = SkImageInfo::MakeN32Premul(width, height); GrDirectContext* grContext = darwinContextMetal.mainContext.get(); sk_sp gpuSurface(SkSurface::MakeRenderTarget(grContext, SkBudgeted::kNo, info)); @@ -161,7 +165,11 @@ - (CVPixelBufferRef)pixelBuffer { std::make_unique(texture_id, callback); SkRect bounds = SkRect::MakeWH(info.width(), info.height()); SkSamplingOptions sampling = SkSamplingOptions(SkFilterMode::kNearest); - texture->Paint(*gpuSurface->getCanvas(), bounds, /*freeze=*/false, grContext, sampling); + flutter::Texture::PaintContext context{ + .canvas = gpuSurface->getCanvas(), + .gr_context = grContext, + }; + texture->Paint(context, bounds, /*freeze=*/false, sampling); gpuSurface->makeImageSnapshot(); } @@ -173,8 +181,8 @@ - (CVPixelBufferRef)pixelBuffer { const int64_t texture_id = 1; // Set up the surface. - FlutterDarwinContextMetal* darwinContextMetal = - [[FlutterDarwinContextMetal alloc] initWithDefaultMTLDevice]; + FlutterDarwinContextMetalSkia* darwinContextMetal = + [[FlutterDarwinContextMetalSkia alloc] initWithDefaultMTLDevice]; SkImageInfo info = SkImageInfo::MakeN32Premul(width, height); GrDirectContext* grContext = darwinContextMetal.mainContext.get(); sk_sp gpuSurface(SkSurface::MakeRenderTarget(grContext, SkBudgeted::kNo, info)); @@ -200,6 +208,8 @@ - (CVPixelBufferRef)pixelBuffer { EXPECT_TRUE(texture->num_textures == 2); EXPECT_TRUE(texture->textures != nullptr); EXPECT_TRUE(texture->pixel_format == FlutterMetalExternalTexturePixelFormat::kYUVA); + EXPECT_TRUE(texture->yuv_color_space == + FlutterMetalExternalTextureYUVColorSpace::kBT601LimitedRange); return std::unique_ptr(texture); }; @@ -209,7 +219,11 @@ - (CVPixelBufferRef)pixelBuffer { std::make_unique(texture_id, callback); SkRect bounds = SkRect::MakeWH(info.width(), info.height()); SkSamplingOptions sampling = SkSamplingOptions(SkFilterMode::kNearest); - texture->Paint(*gpuSurface->getCanvas(), bounds, /*freeze=*/false, grContext, sampling); + flutter::Texture::PaintContext context{ + .canvas = gpuSurface->getCanvas(), + .gr_context = grContext, + }; + texture->Paint(context, bounds, /*freeze=*/false, sampling); gpuSurface->makeImageSnapshot(); } @@ -221,8 +235,8 @@ - (CVPixelBufferRef)pixelBuffer { const int64_t texture_id = 1; // Set up the surface. - FlutterDarwinContextMetal* darwinContextMetal = - [[FlutterDarwinContextMetal alloc] initWithDefaultMTLDevice]; + FlutterDarwinContextMetalSkia* darwinContextMetal = + [[FlutterDarwinContextMetalSkia alloc] initWithDefaultMTLDevice]; SkImageInfo info = SkImageInfo::MakeN32Premul(width, height); GrDirectContext* grContext = darwinContextMetal.mainContext.get(); sk_sp gpuSurface(SkSurface::MakeRenderTarget(grContext, SkBudgeted::kNo, info)); @@ -248,6 +262,8 @@ - (CVPixelBufferRef)pixelBuffer { EXPECT_TRUE(texture->num_textures == 2); EXPECT_TRUE(texture->textures != nullptr); EXPECT_TRUE(texture->pixel_format == FlutterMetalExternalTexturePixelFormat::kYUVA); + EXPECT_TRUE(texture->yuv_color_space == + FlutterMetalExternalTextureYUVColorSpace::kBT601FullRange); return std::unique_ptr(texture); }; @@ -257,7 +273,11 @@ - (CVPixelBufferRef)pixelBuffer { std::make_unique(texture_id, callback); SkRect bounds = SkRect::MakeWH(info.width(), info.height()); SkSamplingOptions sampling = SkSamplingOptions(SkFilterMode::kNearest); - texture->Paint(*gpuSurface->getCanvas(), bounds, /*freeze=*/false, grContext, sampling); + flutter::Texture::PaintContext context{ + .canvas = gpuSurface->getCanvas(), + .gr_context = grContext, + }; + texture->Paint(context, bounds, /*freeze=*/false, sampling); gpuSurface->makeImageSnapshot(); } diff --git a/shell/platform/darwin/macos/framework/Source/FlutterEngine.mm b/shell/platform/darwin/macos/framework/Source/FlutterEngine.mm index 8931ab1432d19..1df8303dc9a11 100644 --- a/shell/platform/darwin/macos/framework/Source/FlutterEngine.mm +++ b/shell/platform/darwin/macos/framework/Source/FlutterEngine.mm @@ -21,6 +21,7 @@ #import "flutter/shell/platform/darwin/macos/framework/Source/FlutterPlatformViewController.h" #import "flutter/shell/platform/darwin/macos/framework/Source/FlutterRenderingBackend.h" #import "flutter/shell/platform/darwin/macos/framework/Source/FlutterViewController_Internal.h" +#import "flutter/shell/platform/darwin/macos/framework/Source/FlutterViewEngineProvider.h" #include "flutter/shell/platform/embedder/embedder.h" /** @@ -211,6 +212,8 @@ @implementation FlutterEngine { // This is either a FlutterGLCompositor or a FlutterMetalCompositor instance. std::unique_ptr _macOSCompositor; + FlutterViewEngineProvider* _viewProvider; + // FlutterCompositor is copied and used in embedder.cc. FlutterCompositor _compositor; @@ -244,6 +247,7 @@ - (instancetype)initWithName:(NSString*)labelPrefix _currentMessengerConnection = 1; _allowHeadlessExecution = allowHeadlessExecution; _semanticsEnabled = NO; + _viewProvider = [[FlutterViewEngineProvider alloc] initWithEngine:self]; _embedderAPI.struct_size = sizeof(FlutterEngineProcTable); FlutterEngineGetProcAddresses(&_embedderAPI); @@ -434,19 +438,15 @@ - (FlutterCompositor*)createFlutterCompositor { __weak FlutterEngine* weakSelf = self; - flutter::FlutterCompositor::ViewProvider getViewCallback = [weakSelf](uint64_t view_id) { - return weakSelf.viewController == nullptr ? nullptr : weakSelf.viewController.flutterView; - }; - if ([FlutterRenderingBackend renderUsingMetal]) { FlutterMetalRenderer* metalRenderer = reinterpret_cast(_renderer); _macOSCompositor = std::make_unique( - std::move(getViewCallback), _platformViewController, metalRenderer.device); + _viewProvider, _platformViewController, metalRenderer.device); } else { FlutterOpenGLRenderer* openGLRenderer = reinterpret_cast(_renderer); [openGLRenderer.openGLContext makeCurrentContext]; - _macOSCompositor = std::make_unique(std::move(getViewCallback), - openGLRenderer.openGLContext); + _macOSCompositor = + std::make_unique(_viewProvider, openGLRenderer.openGLContext); } _macOSCompositor->SetPresentCallback([weakSelf](bool has_flutter_content) { if (has_flutter_content) { @@ -476,11 +476,13 @@ - (FlutterCompositor*)createFlutterCompositor { backing_store); }; - _compositor.present_layers_callback = [](const FlutterLayer** layers, // - size_t layers_count, // - void* user_data // - ) { - return reinterpret_cast(user_data)->Present(layers, layers_count); + _compositor.present_layers_surface_callback = [](uint64_t surface_id, // + const FlutterLayer** layers, // + size_t layers_count, // + void* user_data // + ) { + return reinterpret_cast(user_data)->Present(surface_id, layers, + layers_count); }; _compositor.avoid_backing_store_cache = true; diff --git a/shell/platform/darwin/macos/framework/Source/FlutterEngineTest.mm b/shell/platform/darwin/macos/framework/Source/FlutterEngineTest.mm index 1f9e825176806..f6ac4a37a181a 100644 --- a/shell/platform/darwin/macos/framework/Source/FlutterEngineTest.mm +++ b/shell/platform/darwin/macos/framework/Source/FlutterEngineTest.mm @@ -101,6 +101,67 @@ @interface FlutterEngine (Test) EXPECT_TRUE(logs.find("Hello logging") != std::string::npos); } +TEST_F(FlutterEngineTest, BackgroundIsBlack) { + // Launch the test entrypoint. + FlutterEngine* engine = GetFlutterEngine(); + EXPECT_TRUE([engine runWithEntrypoint:@"backgroundTest"]); + EXPECT_TRUE(engine.running); + + NSString* fixtures = @(flutter::testing::GetFixturesPath()); + FlutterDartProject* project = [[FlutterDartProject alloc] + initWithAssetsPath:fixtures + ICUDataPath:[fixtures stringByAppendingString:@"/icudtl.dat"]]; + FlutterViewController* viewController = [[FlutterViewController alloc] initWithProject:project]; + [viewController loadView]; + viewController.flutterView.frame = CGRectMake(0, 0, 800, 600); + [engine setViewController:viewController]; + + // Latch to ensure the entire layer tree has been generated and presented. + fml::AutoResetWaitableEvent latch; + AddNativeCallback("SignalNativeTest", CREATE_NATIVE_ENTRY([&](Dart_NativeArguments args) { + CALayer* rootLayer = engine.viewController.flutterView.layer; + EXPECT_TRUE(rootLayer.backgroundColor != nil); + if (rootLayer.backgroundColor != nil) { + NSColor* actualBackgroundColor = + [NSColor colorWithCGColor:rootLayer.backgroundColor]; + EXPECT_EQ(actualBackgroundColor, [NSColor blackColor]); + } + latch.Signal(); + })); + latch.Wait(); +} + +TEST_F(FlutterEngineTest, CanOverrideBackgroundColor) { + // Launch the test entrypoint. + FlutterEngine* engine = GetFlutterEngine(); + EXPECT_TRUE([engine runWithEntrypoint:@"backgroundTest"]); + EXPECT_TRUE(engine.running); + + NSString* fixtures = @(flutter::testing::GetFixturesPath()); + FlutterDartProject* project = [[FlutterDartProject alloc] + initWithAssetsPath:fixtures + ICUDataPath:[fixtures stringByAppendingString:@"/icudtl.dat"]]; + FlutterViewController* viewController = [[FlutterViewController alloc] initWithProject:project]; + [viewController loadView]; + viewController.flutterView.frame = CGRectMake(0, 0, 800, 600); + [engine setViewController:viewController]; + viewController.flutterView.backgroundColor = [NSColor whiteColor]; + + // Latch to ensure the entire layer tree has been generated and presented. + fml::AutoResetWaitableEvent latch; + AddNativeCallback("SignalNativeTest", CREATE_NATIVE_ENTRY([&](Dart_NativeArguments args) { + CALayer* rootLayer = engine.viewController.flutterView.layer; + EXPECT_TRUE(rootLayer.backgroundColor != nil); + if (rootLayer.backgroundColor != nil) { + NSColor* actualBackgroundColor = + [NSColor colorWithCGColor:rootLayer.backgroundColor]; + EXPECT_EQ(actualBackgroundColor, [NSColor whiteColor]); + } + latch.Signal(); + })); + latch.Wait(); +} + TEST_F(FlutterEngineTest, CanToggleAccessibility) { FlutterEngine* engine = GetFlutterEngine(); // Capture the update callbacks before the embedder API initializes. @@ -145,6 +206,7 @@ @interface FlutterEngine (Test) root.value = ""; root.increased_value = ""; root.decreased_value = ""; + root.tooltip = ""; root.child_count = 1; int32_t children[] = {1}; root.children_in_traversal_order = children; @@ -162,6 +224,7 @@ @interface FlutterEngine (Test) child1.value = ""; child1.increased_value = ""; child1.decreased_value = ""; + child1.tooltip = ""; child1.child_count = 0; child1.custom_accessibility_actions_count = 0; update_node_callback(&child1, (void*)CFBridgingRetain(engine)); @@ -238,6 +301,7 @@ @interface FlutterEngine (Test) root.value = ""; root.increased_value = ""; root.decreased_value = ""; + root.tooltip = ""; root.child_count = 1; int32_t children[] = {1}; root.children_in_traversal_order = children; @@ -255,6 +319,7 @@ @interface FlutterEngine (Test) child1.value = ""; child1.increased_value = ""; child1.decreased_value = ""; + child1.tooltip = ""; child1.child_count = 0; child1.custom_accessibility_actions_count = 0; update_node_callback(&child1, (void*)CFBridgingRetain(engine)); @@ -327,6 +392,7 @@ @interface FlutterEngine (Test) root.value = ""; root.increased_value = ""; root.decreased_value = ""; + root.tooltip = ""; root.child_count = 1; int32_t children[] = {1}; root.children_in_traversal_order = children; @@ -344,6 +410,7 @@ @interface FlutterEngine (Test) child1.value = ""; child1.increased_value = ""; child1.decreased_value = ""; + child1.tooltip = ""; child1.child_count = 0; child1.custom_accessibility_actions_count = 0; update_node_callback(&child1, (void*)CFBridgingRetain(engine)); diff --git a/shell/platform/darwin/macos/framework/Source/FlutterExternalTextureMetal.h b/shell/platform/darwin/macos/framework/Source/FlutterExternalTextureMetal.h index df0db4b1dd95f..8942d1ff71062 100644 --- a/shell/platform/darwin/macos/framework/Source/FlutterExternalTextureMetal.h +++ b/shell/platform/darwin/macos/framework/Source/FlutterExternalTextureMetal.h @@ -4,7 +4,7 @@ #import -#import "flutter/shell/platform/darwin/graphics/FlutterDarwinContextMetal.h" +#import "flutter/shell/platform/darwin/graphics/FlutterDarwinContextMetalSkia.h" #import "flutter/shell/platform/darwin/macos/framework/Source/FlutterMacOSExternalTexture.h" /** @@ -17,7 +17,7 @@ * Initializes a texture adapter with |texture|. */ - (nonnull instancetype)initWithFlutterTexture:(nonnull id)texture - darwinMetalContext:(nonnull FlutterDarwinContextMetal*)context; + darwinMetalContext:(nonnull FlutterDarwinContextMetalSkia*)context; /** * Accepts texture buffer copy request from the Flutter engine. diff --git a/shell/platform/darwin/macos/framework/Source/FlutterExternalTextureMetal.mm b/shell/platform/darwin/macos/framework/Source/FlutterExternalTextureMetal.mm index 1ece011425d3c..db49abf14a340 100644 --- a/shell/platform/darwin/macos/framework/Source/FlutterExternalTextureMetal.mm +++ b/shell/platform/darwin/macos/framework/Source/FlutterExternalTextureMetal.mm @@ -7,7 +7,7 @@ #include "flutter/fml/platform/darwin/cf_utils.h" @implementation FlutterExternalTextureMetal { - FlutterDarwinContextMetal* _darwinMetalContext; + FlutterDarwinContextMetalSkia* _darwinMetalContext; int64_t _textureID; @@ -17,7 +17,7 @@ @implementation FlutterExternalTextureMetal { } - (instancetype)initWithFlutterTexture:(id)texture - darwinMetalContext:(FlutterDarwinContextMetal*)context { + darwinMetalContext:(FlutterDarwinContextMetalSkia*)context { self = [super init]; if (self) { _texture = texture; @@ -98,6 +98,10 @@ - (BOOL)populateTextureFromYUVAPixelBuffer:(nonnull CVPixelBufferRef)pixelBuffer textureOut->width = textureSize.width(); textureOut->pixel_format = FlutterMetalExternalTexturePixelFormat::kYUVA; textureOut->textures = _textures.data(); + OSType pixel_format = CVPixelBufferGetPixelFormatType(pixelBuffer); + textureOut->yuv_color_space = pixel_format == kCVPixelFormatType_420YpCbCr8BiPlanarVideoRange + ? FlutterMetalExternalTextureYUVColorSpace::kBT601LimitedRange + : FlutterMetalExternalTextureYUVColorSpace::kBT601FullRange; return YES; } diff --git a/shell/platform/darwin/macos/framework/Source/FlutterGLCompositor.h b/shell/platform/darwin/macos/framework/Source/FlutterGLCompositor.h index 4ed49110a635a..cdbc4c2b69b77 100644 --- a/shell/platform/darwin/macos/framework/Source/FlutterGLCompositor.h +++ b/shell/platform/darwin/macos/framework/Source/FlutterGLCompositor.h @@ -19,7 +19,7 @@ namespace flutter { // FlutterGLCompositor is created and destroyed by FlutterEngine. class FlutterGLCompositor : public FlutterCompositor { public: - FlutterGLCompositor(ViewProvider get_view_callback, + FlutterGLCompositor(id view_provider, NSOpenGLContext* opengl_context); virtual ~FlutterGLCompositor() = default; @@ -44,7 +44,9 @@ class FlutterGLCompositor : public FlutterCompositor { // Presents the FlutterLayers by updating FlutterView(s) using the // layer content. // Present sets frame_started_ to false. - bool Present(const FlutterLayer** layers, size_t layers_count) override; + bool Present(uint64_t surface_id, + const FlutterLayer** layers, + size_t layers_count) override; private: const NSOpenGLContext* open_gl_context_; diff --git a/shell/platform/darwin/macos/framework/Source/FlutterGLCompositor.mm b/shell/platform/darwin/macos/framework/Source/FlutterGLCompositor.mm index f6113b9ad0c1b..7400196543fce 100644 --- a/shell/platform/darwin/macos/framework/Source/FlutterGLCompositor.mm +++ b/shell/platform/darwin/macos/framework/Source/FlutterGLCompositor.mm @@ -19,15 +19,16 @@ namespace flutter { -FlutterGLCompositor::FlutterGLCompositor(ViewProvider get_view_callback, +FlutterGLCompositor::FlutterGLCompositor(id view_provider, NSOpenGLContext* opengl_context) - : FlutterCompositor(get_view_callback), open_gl_context_(opengl_context) {} + : FlutterCompositor(view_provider), open_gl_context_(opengl_context) {} bool FlutterGLCompositor::CreateBackingStore(const FlutterBackingStoreConfig* config, FlutterBackingStore* backing_store_out) { - // Always gets the first view, #0. After Flutter supports multi-view, it - // should get the view ID from somewhere. - FlutterView* view = GetView(0); + // TODO(dkwingsmt): This class only supports single-view for now. As more + // classes are gradually converted to multi-view, it should get the view ID + // from somewhere. + FlutterView* view = GetView(kFlutterDefaultViewId); if (!view) { return false; } @@ -76,10 +77,10 @@ return true; } -bool FlutterGLCompositor::Present(const FlutterLayer** layers, size_t layers_count) { - // Always gets the first view, #0. After Flutter supports multi-view, it - // should get the view ID from somewhere. - FlutterView* view = GetView(0); +bool FlutterGLCompositor::Present(uint64_t surface_id, + const FlutterLayer** layers, + size_t layers_count) { + FlutterView* view = GetView(surface_id); if (!view) { return false; } diff --git a/shell/platform/darwin/macos/framework/Source/FlutterGLCompositorUnittests.mm b/shell/platform/darwin/macos/framework/Source/FlutterGLCompositorUnittests.mm index b4693ce136966..46de7725298ff 100644 --- a/shell/platform/darwin/macos/framework/Source/FlutterGLCompositorUnittests.mm +++ b/shell/platform/darwin/macos/framework/Source/FlutterGLCompositorUnittests.mm @@ -9,16 +9,46 @@ #import "flutter/shell/platform/darwin/macos/framework/Source/FlutterViewControllerTestUtils.h" #import "flutter/testing/testing.h" +@interface FlutterViewMockProviderGL : NSObject { + FlutterView* _defaultView; +} +/** + * Create a FlutterViewMockProviderGL with the provided view as the default view. + */ +- (nonnull instancetype)initWithDefaultView:(nonnull FlutterView*)view; +@end + +@implementation FlutterViewMockProviderGL + +- (nonnull instancetype)initWithDefaultView:(nonnull FlutterView*)view { + self = [super init]; + if (self != nil) { + _defaultView = view; + } + return self; +} + +- (nullable FlutterView*)getView:(uint64_t)viewId { + if (viewId == kFlutterDefaultViewId) { + return _defaultView; + } + return nil; +} + +@end + namespace flutter::testing { +namespace { -TEST(FlutterGLCompositorTest, TestPresent) { - id mock_view = OCMClassMock([FlutterView class]); - flutter::FlutterCompositor::ViewProvider get_view_callback = [&mock_view](uint64_t view_id) { - return mock_view; - }; +id MockViewProvider() { + id viewMock = OCMClassMock([FlutterView class]); + return [[FlutterViewMockProviderGL alloc] initWithDefaultView:viewMock]; +} +} // namespace +TEST(FlutterGLCompositorTest, TestPresent) { std::unique_ptr macos_compositor = - std::make_unique(get_view_callback, nullptr); + std::make_unique(MockViewProvider(), nullptr); bool flag = false; macos_compositor->SetPresentCallback([f = &flag](bool has_flutter_content) { @@ -26,7 +56,7 @@ return true; }); - ASSERT_TRUE(macos_compositor->Present(nil, 0)); + ASSERT_TRUE(macos_compositor->Present(0, nil, 0)); ASSERT_TRUE(flag); } diff --git a/shell/platform/darwin/macos/framework/Source/FlutterMenuPluginTest.mm b/shell/platform/darwin/macos/framework/Source/FlutterMenuPluginTest.mm index 326863c1b8e09..915df002c3d12 100644 --- a/shell/platform/darwin/macos/framework/Source/FlutterMenuPluginTest.mm +++ b/shell/platform/darwin/macos/framework/Source/FlutterMenuPluginTest.mm @@ -25,6 +25,11 @@ - (bool)testSetMenu; @implementation FlutterMenuPluginTestObjc - (bool)testSetMenu { + // Workaround to deflake the test. + // See: https://github.com/flutter/flutter/issues/104748#issuecomment-1159336728 + NSView* view = [[NSView alloc] initWithFrame:NSZeroRect]; + view.wantsLayer = YES; + // Build a simulation of the default main menu. NSMenu* mainMenu = [[NSMenu alloc] init]; NSMenuItem* appNameMenu = [[NSMenuItem alloc] initWithTitle:@"APP_NAME" @@ -175,9 +180,7 @@ - (bool)testSetMenu { @end namespace flutter::testing { -// TODO(gspencergoog): Re-enabled when deflaked -// https://github.com/flutter/flutter/issues/106589 -TEST(FlutterMenuPluginTest, DISABLED_TestSetMenu) { +TEST(FlutterMenuPluginTest, TestSetMenu) { ASSERT_TRUE([[FlutterMenuPluginTestObjc alloc] testSetMenu]); } } // namespace flutter::testing diff --git a/shell/platform/darwin/macos/framework/Source/FlutterMetalCompositor.h b/shell/platform/darwin/macos/framework/Source/FlutterMetalCompositor.h index 1cbd21d2a437c..fe07eed2c6854 100644 --- a/shell/platform/darwin/macos/framework/Source/FlutterMetalCompositor.h +++ b/shell/platform/darwin/macos/framework/Source/FlutterMetalCompositor.h @@ -14,7 +14,7 @@ namespace flutter { class FlutterMetalCompositor : public FlutterCompositor { public: explicit FlutterMetalCompositor( - ViewProvider get_view_callback, + id view_provider, FlutterPlatformViewController* platform_views_controller, id mtl_device); @@ -42,13 +42,15 @@ class FlutterMetalCompositor : public FlutterCompositor { // Composites the provided FlutterLayer objects and presents the composited // frame to the FlutterView(s). - bool Present(const FlutterLayer** layers, size_t layers_count) override; + bool Present(uint64_t surface_id, + const FlutterLayer** layers, + size_t layers_count) override; private: // Presents the platform view layer represented by `layer`. `layer_index` is // used to position the layer in the z-axis. If the layer does not have a - // superview, it will become subview of `default_super_view`. - void PresentPlatformView(FlutterView* default_super_view, + // superview, it will become subview of `default_base_view`. + void PresentPlatformView(FlutterView* default_base_view, const FlutterLayer* layer, size_t layer_position); diff --git a/shell/platform/darwin/macos/framework/Source/FlutterMetalCompositor.mm b/shell/platform/darwin/macos/framework/Source/FlutterMetalCompositor.mm index 901f8464071fb..148341651ae38 100644 --- a/shell/platform/darwin/macos/framework/Source/FlutterMetalCompositor.mm +++ b/shell/platform/darwin/macos/framework/Source/FlutterMetalCompositor.mm @@ -11,18 +11,19 @@ namespace flutter { FlutterMetalCompositor::FlutterMetalCompositor( - ViewProvider get_view_callback, + id view_provider, FlutterPlatformViewController* platform_views_controller, id mtl_device) - : FlutterCompositor(get_view_callback), + : FlutterCompositor(view_provider), mtl_device_(mtl_device), platform_views_controller_(platform_views_controller) {} bool FlutterMetalCompositor::CreateBackingStore(const FlutterBackingStoreConfig* config, FlutterBackingStore* backing_store_out) { - // Always gets the first view, #0. After Flutter supports multi-view, it - // should get the view ID from somewhere. - FlutterView* view = GetView(0); + // TODO(dkwingsmt): This class only supports single-view for now. As more + // classes are gradually converted to multi-view, it should get the view ID + // from somewhere. + FlutterView* view = GetView(kFlutterDefaultViewId); if (!view) { return false; } @@ -79,10 +80,10 @@ return true; } -bool FlutterMetalCompositor::Present(const FlutterLayer** layers, size_t layers_count) { - // Always gets the first view, #0. After Flutter supports multi-view, it - // should get the view ID from somewhere. - FlutterView* view = GetView(0); +bool FlutterMetalCompositor::Present(uint64_t surface_id, + const FlutterLayer** layers, + size_t layers_count) { + FlutterView* view = GetView(surface_id); if (!view) { return false; } @@ -115,7 +116,7 @@ return EndFrame(has_flutter_content); } -void FlutterMetalCompositor::PresentPlatformView(FlutterView* default_super_view, +void FlutterMetalCompositor::PresentPlatformView(FlutterView* default_base_view, const FlutterLayer* layer, size_t layer_position) { // TODO (https://github.com/flutter/flutter/issues/96668) @@ -132,7 +133,7 @@ platform_view.frame = CGRectMake(layer->offset.x / scale, layer->offset.y / scale, layer->size.width / scale, layer->size.height / scale); if (platform_view.superview == nil) { - [default_super_view addSubview:platform_view]; + [default_base_view addSubview:platform_view]; } platform_view.layer.zPosition = layer_position; } diff --git a/shell/platform/darwin/macos/framework/Source/FlutterMetalCompositorUnittests.mm b/shell/platform/darwin/macos/framework/Source/FlutterMetalCompositorUnittests.mm index a5c4170b1a7b0..4084a61395d3f 100644 --- a/shell/platform/darwin/macos/framework/Source/FlutterMetalCompositorUnittests.mm +++ b/shell/platform/darwin/macos/framework/Source/FlutterMetalCompositorUnittests.mm @@ -7,11 +7,41 @@ #import "flutter/shell/platform/darwin/macos/framework/Source/FlutterMetalCompositor.h" #import "flutter/shell/platform/darwin/macos/framework/Source/FlutterView.h" +#import "flutter/shell/platform/darwin/macos/framework/Source/FlutterViewProvider.h" #import "flutter/testing/testing.h" +@interface FlutterViewMockProviderMetal : NSObject { + FlutterView* _defaultView; +} +/** + * Create a FlutterViewMockProviderMetal with the provided view as the default view. + */ +- (nonnull instancetype)initWithDefaultView:(nonnull FlutterView*)view; +@end + +@implementation FlutterViewMockProviderMetal + +- (nonnull instancetype)initWithDefaultView:(nonnull FlutterView*)view { + self = [super init]; + if (self != nil) { + _defaultView = view; + } + return self; +} + +- (nullable FlutterView*)getView:(uint64_t)viewId { + if (viewId == kFlutterDefaultViewId) { + return _defaultView; + } + return nil; +} + +@end + namespace flutter::testing { +namespace { -flutter::FlutterCompositor::ViewProvider MockGetViewCallback() { +id MockViewProvider() { FlutterView* viewMock = OCMClassMock([FlutterView class]); FlutterMetalRenderBackingStore* backingStoreMock = OCMClassMock([FlutterMetalRenderBackingStore class]); @@ -27,13 +57,15 @@ OCMStub([textureMock height]).andReturn(size.height); }) .andReturn(backingStoreMock); - return [viewMock](uint64_t view_id) { return viewMock; }; + + return [[FlutterViewMockProviderMetal alloc] initWithDefaultView:viewMock]; } +} // namespace TEST(FlutterMetalCompositorTest, TestPresent) { std::unique_ptr macos_compositor = std::make_unique( - MockGetViewCallback(), /*platform_view_controller*/ nullptr, /*mtl_device*/ nullptr); + MockViewProvider(), /*platform_view_controller*/ nullptr, /*mtl_device*/ nullptr); bool flag = false; macos_compositor->SetPresentCallback([f = &flag](bool has_flutter_content) { @@ -41,14 +73,14 @@ return true; }); - ASSERT_TRUE(macos_compositor->Present(nil, 0)); + ASSERT_TRUE(macos_compositor->Present(0, nil, 0)); ASSERT_TRUE(flag); } TEST(FlutterMetalCompositorTest, TestCreate) { std::unique_ptr macos_compositor = std::make_unique( - MockGetViewCallback(), /*platform_view_controller*/ nullptr, /*mtl_device*/ nullptr); + MockViewProvider(), /*platform_view_controller*/ nullptr, /*mtl_device*/ nullptr); FlutterBackingStore backing_store; FlutterBackingStoreConfig config; @@ -67,7 +99,7 @@ TEST(FlutterMetalCompositorTest, TestCompositing) { std::unique_ptr macos_compositor = std::make_unique( - MockGetViewCallback(), /*platform_view_controller*/ nullptr, /*mtl_device*/ nullptr); + MockViewProvider(), /*platform_view_controller*/ nullptr, /*mtl_device*/ nullptr); FlutterBackingStore backing_store; FlutterBackingStoreConfig config; diff --git a/shell/platform/darwin/macos/framework/Source/FlutterMetalRenderer.mm b/shell/platform/darwin/macos/framework/Source/FlutterMetalRenderer.mm index b7e0d0d65f281..12f073b324ca9 100644 --- a/shell/platform/darwin/macos/framework/Source/FlutterMetalRenderer.mm +++ b/shell/platform/darwin/macos/framework/Source/FlutterMetalRenderer.mm @@ -37,7 +37,7 @@ static bool OnAcquireExternalTexture(FlutterEngine* engine, @implementation FlutterMetalRenderer { FlutterView* _flutterView; - FlutterDarwinContextMetal* _darwinMetalContext; + FlutterDarwinContextMetalSkia* _darwinMetalContext; } - (instancetype)initWithFlutterEngine:(nonnull FlutterEngine*)flutterEngine { @@ -55,8 +55,8 @@ - (instancetype)initWithFlutterEngine:(nonnull FlutterEngine*)flutterEngine { return nil; } - _darwinMetalContext = [[FlutterDarwinContextMetal alloc] initWithMTLDevice:_device - commandQueue:_commandQueue]; + _darwinMetalContext = [[FlutterDarwinContextMetalSkia alloc] initWithMTLDevice:_device + commandQueue:_commandQueue]; } return self; } diff --git a/shell/platform/darwin/macos/framework/Source/FlutterPlatformNodeDelegateMacTest.mm b/shell/platform/darwin/macos/framework/Source/FlutterPlatformNodeDelegateMacTest.mm index 18b2f21386ea4..a7fa46c57bb7d 100644 --- a/shell/platform/darwin/macos/framework/Source/FlutterPlatformNodeDelegateMacTest.mm +++ b/shell/platform/darwin/macos/framework/Source/FlutterPlatformNodeDelegateMacTest.mm @@ -46,6 +46,7 @@ root.value = ""; root.increased_value = ""; root.decreased_value = ""; + root.tooltip = ""; root.child_count = 0; root.custom_accessibility_actions_count = 0; bridge->AddFlutterSemanticsNodeUpdate(&root); @@ -82,6 +83,7 @@ root.value = "selectable text"; root.increased_value = ""; root.decreased_value = ""; + root.tooltip = ""; root.child_count = 0; root.custom_accessibility_actions_count = 0; bridge->AddFlutterSemanticsNodeUpdate(&root); @@ -122,6 +124,7 @@ root.value = "selectable text"; root.increased_value = ""; root.decreased_value = ""; + root.tooltip = ""; root.child_count = 0; root.custom_accessibility_actions_count = 0; bridge->AddFlutterSemanticsNodeUpdate(&root); @@ -168,6 +171,7 @@ root.value = ""; root.increased_value = ""; root.decreased_value = ""; + root.tooltip = ""; root.child_count = 1; int32_t children[] = {1}; root.children_in_traversal_order = children; @@ -181,6 +185,7 @@ child1.value = ""; child1.increased_value = ""; child1.decreased_value = ""; + child1.tooltip = ""; child1.child_count = 0; child1.custom_accessibility_actions_count = 0; bridge->AddFlutterSemanticsNodeUpdate(&child1); @@ -248,6 +253,7 @@ root.value = ""; root.increased_value = ""; root.decreased_value = ""; + root.tooltip = ""; root.child_count = 1; int32_t children[] = {1}; root.children_in_traversal_order = children; @@ -268,6 +274,7 @@ child1.value = "textfield"; child1.increased_value = ""; child1.decreased_value = ""; + child1.tooltip = ""; child1.text_selection_base = -1; child1.text_selection_extent = -1; child1.child_count = 0; diff --git a/shell/platform/darwin/macos/framework/Source/FlutterView.h b/shell/platform/darwin/macos/framework/Source/FlutterView.h index 8aed110e70adb..f45f94655445b 100644 --- a/shell/platform/darwin/macos/framework/Source/FlutterView.h +++ b/shell/platform/darwin/macos/framework/Source/FlutterView.h @@ -3,9 +3,21 @@ // found in the LICENSE file. #import +#include #import "flutter/shell/platform/darwin/macos/framework/Source/FlutterResizableBackingStoreProvider.h" +/** + * The view ID for APIs that don't support multi-view. + * + * Some single-view APIs will eventually be replaced by their multi-view + * variant. During the deprecation period, the single-view APIs will coexist with + * and work with the multi-view APIs as if the other views don't exist. For + * backward compatibility, single-view APIs will always operate the view with + * this ID. Also, the first view assigned to the engine will also have this ID. + */ +constexpr uint64_t kFlutterDefaultViewId = 0; + /** * Listener for view resizing. */ @@ -68,4 +80,13 @@ */ - (void)shutdown; +/** + * By default, the `FlutterSurfaceManager` creates two layers to manage Flutter + * content, the content layer and containing layer. To set the native background + * color, onto which the Flutter content is drawn, call this method with the + * NSColor which you would like to override the default, black background color + * with. + */ +- (void)setBackgroundColor:(nonnull NSColor*)color; + @end diff --git a/shell/platform/darwin/macos/framework/Source/FlutterView.mm b/shell/platform/darwin/macos/framework/Source/FlutterView.mm index 6407cb27882ef..b2c85efba3cd4 100644 --- a/shell/platform/darwin/macos/framework/Source/FlutterView.mm +++ b/shell/platform/darwin/macos/framework/Source/FlutterView.mm @@ -28,6 +28,7 @@ - (instancetype)initWithMTLDevice:(id)device self = [super initWithFrame:NSZeroRect]; if (self) { [self setWantsLayer:YES]; + [self setBackgroundColor:[NSColor blackColor]]; [self setLayerContentsRedrawPolicy:NSViewLayerContentsRedrawDuringViewResize]; _reshapeListener = reshapeListener; _resizableBackingStoreProvider = @@ -51,6 +52,7 @@ - (instancetype)initWithFrame:(NSRect)frame self = [super initWithFrame:frame]; if (self) { [self setWantsLayer:YES]; + [self setBackgroundColor:[NSColor blackColor]]; _reshapeListener = reshapeListener; _resizableBackingStoreProvider = [[FlutterOpenGLResizableBackingStoreProvider alloc] initWithMainContext:mainContext @@ -84,6 +86,10 @@ - (void)reshaped { }]; } +- (void)setBackgroundColor:(NSColor*)color { + self.layer.backgroundColor = color.CGColor; +} + #pragma mark - NSView overrides - (void)setFrameSize:(NSSize)newSize { @@ -114,6 +120,15 @@ - (BOOL)acceptsFirstResponder { return YES; } +- (void)cursorUpdate:(NSEvent*)event { + // When adding/removing views AppKit will schedule call to current hit-test view + // cursorUpdate: at the end of frame to determine possible cursor change. If + // the view doesn't implement cursorUpdate: AppKit will set the default (arrow) cursor + // instead. This would replace the cursor set by FlutterMouseCursorPlugin. + // Empty cursorUpdate: implementation prevents this behavior. + // https://github.com/flutter/flutter/issues/111425 +} + - (void)viewDidChangeBackingProperties { [super viewDidChangeBackingProperties]; // Force redraw diff --git a/shell/platform/darwin/macos/framework/Source/FlutterViewController.mm b/shell/platform/darwin/macos/framework/Source/FlutterViewController.mm index bf13f616782f6..d78c3941aa275 100644 --- a/shell/platform/darwin/macos/framework/Source/FlutterViewController.mm +++ b/shell/platform/darwin/macos/framework/Source/FlutterViewController.mm @@ -159,6 +159,8 @@ void Reset() { */ @interface FlutterViewWrapper : NSView +- (void)setBackgroundColor:(NSColor*)color; + @end /** @@ -266,6 +268,10 @@ - (instancetype)initWithFlutterView:(FlutterView*)view { return self; } +- (void)setBackgroundColor:(NSColor*)color { + [_flutterView setBackgroundColor:color]; +} + - (NSArray*)accessibilityChildren { return @[ _flutterView ]; } @@ -329,18 +335,21 @@ - (instancetype)initWithEngine:(nonnull FlutterEngine*)engine nibName:(nullable NSString*)nibName bundle:(nullable NSBundle*)nibBundle { NSAssert(engine != nil, @"Engine is required"); + NSAssert(engine.viewController == nil, + @"The supplied FlutterEngine is already used with FlutterViewController " + "instance. One instance of the FlutterEngine can only be attached to one " + "FlutterViewController at a time. Set FlutterEngine.viewController " + "to nil before attaching it to another FlutterViewController."); + self = [super initWithNibName:nibName bundle:nibBundle]; if (self) { - if (engine.viewController) { - NSLog(@"The supplied FlutterEngine %@ is already used with FlutterViewController " - "instance %@. One instance of the FlutterEngine can only be attached to one " - "FlutterViewController at a time. Set FlutterEngine.viewController " - "to nil before attaching it to another FlutterViewController.", - [engine description], [engine.viewController description]); - } _engine = engine; CommonInit(self); - [engine setViewController:self]; + if (engine.running) { + [self loadView]; + engine.viewController = self; + [self initializeKeyboard]; + } } return self; @@ -373,6 +382,9 @@ - (void)loadView { } flutterView = [[FlutterView alloc] initWithMainContext:mainContext reshapeListener:self]; } + if (_backgroundColor != nil) { + [flutterView setBackgroundColor:_backgroundColor]; + } FlutterViewWrapper* wrapperView = [[FlutterViewWrapper alloc] initWithFlutterView:flutterView]; self.view = wrapperView; _flutterView = flutterView; @@ -415,6 +427,11 @@ - (void)setMouseTrackingMode:(FlutterMouseTrackingMode)mode { [self configureTrackingArea]; } +- (void)setBackgroundColor:(NSColor*)color { + _backgroundColor = color; + [_flutterView setBackgroundColor:_backgroundColor]; +} + - (void)onPreEngineRestart { [self initializeKeyboard]; } diff --git a/shell/platform/darwin/macos/framework/Source/FlutterViewControllerTest.mm b/shell/platform/darwin/macos/framework/Source/FlutterViewControllerTest.mm index 5905600b6d1e4..eb373819a8ff9 100644 --- a/shell/platform/darwin/macos/framework/Source/FlutterViewControllerTest.mm +++ b/shell/platform/darwin/macos/framework/Source/FlutterViewControllerTest.mm @@ -23,6 +23,7 @@ - (bool)testFlagsChangedEventsArePropagatedIfNotHandled; - (bool)testKeyboardIsRestartedOnEngineRestart; - (bool)testTrackpadGesturesAreSentToFramework; - (bool)testViewWillAppearCalledMultipleTimes; +- (bool)testFlutterViewIsConfigured; + (void)respondFalseForSendEvent:(const FlutterKeyEvent&)event callback:(nullable FlutterKeyEventCallback)callback @@ -164,6 +165,10 @@ id MockGestureEvent(NSEventType type, NSEventPhase phase, double magnification, ASSERT_TRUE([[FlutterViewControllerTestObjC alloc] testViewWillAppearCalledMultipleTimes]); } +TEST(FlutterViewControllerTest, testFlutterViewIsConfigured) { + ASSERT_TRUE([[FlutterViewControllerTestObjC alloc] testFlutterViewIsConfigured]); +} + } // namespace flutter::testing @implementation FlutterViewControllerTestObjC @@ -261,6 +266,27 @@ - (bool)testKeyEventsArePropagatedIfNotHandled { return true; } +- (bool)testFlutterViewIsConfigured { + id engineMock = OCMClassMock([FlutterEngine class]); + + id renderer_ = [[FlutterMetalRenderer alloc] initWithFlutterEngine:engineMock]; + OCMStub([engineMock renderer]).andReturn(renderer_); + + FlutterViewController* viewController = [[FlutterViewController alloc] initWithEngine:engineMock + nibName:@"" + bundle:nil]; + [viewController loadView]; + + @try { + // Make sure "renderer" was called during "loadView", which means "flutterView" is created + OCMVerify([engineMock renderer]); + } @catch (...) { + return false; + } + + return true; +} + - (bool)testFlagsChangedEventsArePropagatedIfNotHandled { id engineMock = OCMClassMock([FlutterEngine class]); id binaryMessengerMock = OCMProtocolMock(@protocol(FlutterBinaryMessenger)); diff --git a/shell/platform/darwin/macos/framework/Source/FlutterViewController_Internal.h b/shell/platform/darwin/macos/framework/Source/FlutterViewController_Internal.h index 04ed474602cf7..19870cf5b183b 100644 --- a/shell/platform/darwin/macos/framework/Source/FlutterViewController_Internal.h +++ b/shell/platform/darwin/macos/framework/Source/FlutterViewController_Internal.h @@ -18,19 +18,6 @@ */ @property(nonatomic, readonly, nonnull) FlutterTextInputPlugin* textInputPlugin; -/** - * Initializes this FlutterViewController with the specified `FlutterEngine`. - * - * The initialized viewcontroller will attach itself to the engine as part of this process. - * - * @param engine The `FlutterEngine` instance to attach to. Cannot be nil. - * @param nibName The NIB name to initialize this controller with. - * @param nibBundle The NIB bundle. - */ -- (nonnull instancetype)initWithEngine:(nonnull FlutterEngine*)engine - nibName:(nullable NSString*)nibName - bundle:(nullable NSBundle*)nibBundle NS_DESIGNATED_INITIALIZER; - /** * Returns YES if provided event is being currently redispatched by keyboard manager. */ diff --git a/shell/platform/darwin/macos/framework/Source/FlutterViewEngineProvider.h b/shell/platform/darwin/macos/framework/Source/FlutterViewEngineProvider.h new file mode 100644 index 0000000000000..feafa708be803 --- /dev/null +++ b/shell/platform/darwin/macos/framework/Source/FlutterViewEngineProvider.h @@ -0,0 +1,22 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#import "flutter/shell/platform/darwin/macos/framework/Source/FlutterViewProvider.h" + +@class FlutterEngine; + +/** + * A facade over FlutterEngine that allows FlutterEngine's children components + * to query FlutterView. + * + * FlutterViewProvider only holds a weak reference to FlutterEngine. + */ +@interface FlutterViewEngineProvider : NSObject + +/** + * Create a FlutterViewProvider with the underlying engine. + */ +- (nonnull instancetype)initWithEngine:(nonnull __weak FlutterEngine*)engine; + +@end diff --git a/shell/platform/darwin/macos/framework/Source/FlutterViewEngineProvider.mm b/shell/platform/darwin/macos/framework/Source/FlutterViewEngineProvider.mm new file mode 100644 index 0000000000000..a063784b5e2c9 --- /dev/null +++ b/shell/platform/darwin/macos/framework/Source/FlutterViewEngineProvider.mm @@ -0,0 +1,35 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#import "flutter/shell/platform/darwin/macos/framework/Source/FlutterViewEngineProvider.h" +#import "flutter/shell/platform/darwin/macos/framework/Source/FlutterEngine_Internal.h" +#import "flutter/shell/platform/darwin/macos/framework/Source/FlutterViewController_Internal.h" + +@interface FlutterViewEngineProvider () { + __weak FlutterEngine* _engine; +} + +@end + +@implementation FlutterViewEngineProvider + +- (instancetype)initWithEngine:(FlutterEngine*)engine { + self = [super init]; + if (self != nil) { + _engine = engine; + } + return self; +} + +- (nullable FlutterView*)getView:(uint64_t)viewId { + // TODO(dkwingsmt): This class only supports the first view for now. After + // FlutterEngine supports multi-view, it should get the view associated to the + // ID. + if (viewId == kFlutterDefaultViewId) { + return _engine.viewController.flutterView; + } + return nil; +} + +@end diff --git a/shell/platform/darwin/macos/framework/Source/FlutterViewEngineProviderUnittests.mm b/shell/platform/darwin/macos/framework/Source/FlutterViewEngineProviderUnittests.mm new file mode 100644 index 0000000000000..6a1aa66b69c59 --- /dev/null +++ b/shell/platform/darwin/macos/framework/Source/FlutterViewEngineProviderUnittests.mm @@ -0,0 +1,41 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include +#import +#import + +#import "flutter/shell/platform/darwin/macos/framework/Source/FlutterEngine_Internal.h" +#import "flutter/shell/platform/darwin/macos/framework/Source/FlutterViewController_Internal.h" +#import "flutter/shell/platform/darwin/macos/framework/Source/FlutterViewEngineProvider.h" +#import "flutter/testing/testing.h" +#include "third_party/googletest/googletest/include/gtest/gtest.h" + +#import "flutter/testing/testing.h" +#include "third_party/googletest/googletest/include/gtest/gtest.h" + +namespace flutter::testing { + +TEST(FlutterViewEngineProviderUnittests, GetViewReturnsTheCorrectView) { + FlutterViewEngineProvider* viewProvider; + id mockEngine = OCMClassMock([FlutterEngine class]); + __block id mockFlutterViewController; + OCMStub([mockEngine viewController]).andDo(^(NSInvocation* invocation) { + if (mockFlutterViewController != nil) { + [invocation setReturnValue:&mockFlutterViewController]; + } + }); + viewProvider = [[FlutterViewEngineProvider alloc] initWithEngine:mockEngine]; + + // When the view controller is not set, the returned view is nil. + EXPECT_EQ([viewProvider getView:0], nil); + + // When the view controller is set, the returned view is the controller's view. + mockFlutterViewController = OCMStrictClassMock([FlutterViewController class]); + id mockView = OCMStrictClassMock([FlutterView class]); + OCMStub([mockFlutterViewController flutterView]).andReturn(mockView); + EXPECT_EQ([viewProvider getView:0], mockView); +} + +} // namespace flutter::testing diff --git a/shell/platform/darwin/macos/framework/Source/FlutterViewProvider.h b/shell/platform/darwin/macos/framework/Source/FlutterViewProvider.h new file mode 100644 index 0000000000000..98aca04055d5b --- /dev/null +++ b/shell/platform/darwin/macos/framework/Source/FlutterViewProvider.h @@ -0,0 +1,23 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#import "flutter/shell/platform/darwin/macos/framework/Source/FlutterView.h" + +/** + * An interface to query FlutterView. + * + * See also: + * + * * FlutterViewEngineProvider, a typical implementation. + */ +@protocol FlutterViewProvider + +/** + * Get the FlutterView with the given view ID. + * + * Returns nil if the ID is invalid. + */ +- (nullable FlutterView*)getView:(uint64_t)id; + +@end diff --git a/shell/platform/darwin/macos/framework/Source/fixtures/flutter_desktop_test.dart b/shell/platform/darwin/macos/framework/Source/fixtures/flutter_desktop_test.dart index dfb2e2ff9cfe4..afdc3275e9618 100644 --- a/shell/platform/darwin/macos/framework/Source/fixtures/flutter_desktop_test.dart +++ b/shell/platform/darwin/macos/framework/Source/fixtures/flutter_desktop_test.dart @@ -5,7 +5,8 @@ import 'dart:io'; import 'dart:ui'; -void signalNativeTest() native 'SignalNativeTest'; +@pragma('vm:external-name', 'SignalNativeTest') +external void signalNativeTest(); void main() { } @@ -14,7 +15,8 @@ void main() { /// /// This is used to notify the native side of the test of a string value from /// the Dart fixture under test. -void notifyStringValue(String s) native 'NotifyStringValue'; +@pragma('vm:external-name', 'NotifyStringValue') +external void notifyStringValue(String s); @pragma('vm:entry-point') void executableNameNotNull() { @@ -55,3 +57,9 @@ Picture _createSimplePicture() { void nativeCallback() { signalNativeTest(); } + +@pragma('vm:entry-point') +void backgroundTest() { + PlatformDispatcher.instance.views.first.render(SceneBuilder().build()); + signalNativeTest(); // should look black +} diff --git a/shell/platform/embedder/BUILD.gn b/shell/platform/embedder/BUILD.gn index a97e190d729b8..83d62c610d1cb 100644 --- a/shell/platform/embedder/BUILD.gn +++ b/shell/platform/embedder/BUILD.gn @@ -135,6 +135,11 @@ template("embedder_source_set") { "embedder_surface_vulkan.cc", "embedder_surface_vulkan.h", ] + + deps += [ + "//flutter/flutter_vma:flutter_skia_vma", + "//flutter/vulkan/procs", + ] } public_deps = [ ":embedder_headers" ] @@ -291,6 +296,7 @@ if (enable_unittests) { public_deps += [ "//flutter/testing:vulkan", "//flutter/vulkan", + "//flutter/vulkan/procs", ] } } @@ -420,9 +426,6 @@ if (is_mac && !embedder_for_target) { "--destination", rebase_path(outputs[0]), ] - if (enable_bitcode) { - args += [ "--bitcode" ] - } } copy("copy_module_map") { diff --git a/shell/platform/embedder/embedder.cc b/shell/platform/embedder/embedder.cc index dcb19c02028ff..16b9098b3e3fb 100644 --- a/shell/platform/embedder/embedder.cc +++ b/shell/platform/embedder/embedder.cc @@ -556,8 +556,13 @@ InferVulkanPlatformViewCreationCallback( return ptr(user_data, &image_desc); }; + auto vk_instance = static_cast(config->vulkan.instance); + auto proc_addr = + vulkan_get_instance_proc_address(vk_instance, "GetInstanceProcAddr"); + flutter::EmbedderSurfaceVulkan::VulkanDispatchTable vulkan_dispatch_table = { - .get_instance_proc_address = vulkan_get_instance_proc_address, + .get_instance_proc_address = + reinterpret_cast(proc_addr), .get_next_image = vulkan_get_next_image, .present_image = vulkan_present_image_callback, }; @@ -567,8 +572,7 @@ InferVulkanPlatformViewCreationCallback( std::unique_ptr embedder_surface = std::make_unique( - config->vulkan.version, - static_cast(config->vulkan.instance), + config->vulkan.version, vk_instance, config->vulkan.enabled_instance_extension_count, config->vulkan.enabled_instance_extensions, config->vulkan.enabled_device_extension_count, @@ -1034,7 +1038,7 @@ InferExternalViewEmbedderFromArgs(const FlutterCompositor* compositor) { auto c_collect_callback = SAFE_ACCESS(compositor, collect_backing_store_callback, nullptr); auto c_present_callback = - SAFE_ACCESS(compositor, present_layers_callback, nullptr); + SAFE_ACCESS(compositor, present_layers_surface_callback, nullptr); bool avoid_backing_store_cache = SAFE_ACCESS(compositor, avoid_backing_store_cache, false); @@ -1054,12 +1058,12 @@ InferExternalViewEmbedderFromArgs(const FlutterCompositor* compositor) { }; flutter::EmbedderExternalViewEmbedder::PresentCallback present_callback = - [c_present_callback, - user_data = compositor->user_data](const auto& layers) { + [c_present_callback, user_data = compositor->user_data]( + uint64_t surface_id, const auto& layers) { TRACE_EVENT0("flutter", "FlutterCompositorPresentLayers"); return c_present_callback( - const_cast(layers.data()), layers.size(), - user_data); + surface_id, const_cast(layers.data()), + layers.size(), user_data); }; return {std::make_unique( @@ -1462,6 +1466,7 @@ FlutterEngineResult FlutterEngineInitialize(size_t version, node.customAccessibilityActions.size(), node.customAccessibilityActions.data(), node.platformViewId, + node.tooltip.c_str(), }; update_semantics_node_callback(&embedder_node, user_data); } diff --git a/shell/platform/embedder/embedder.h b/shell/platform/embedder/embedder.h index c12452c788490..e708d98ad109a 100644 --- a/shell/platform/embedder/embedder.h +++ b/shell/platform/embedder/embedder.h @@ -584,6 +584,12 @@ typedef enum { kRGBA, } FlutterMetalExternalTexturePixelFormat; +/// YUV color space for the YUV external texture. +typedef enum { + kBT601FullRange, + kBT601LimitedRange, +} FlutterMetalExternalTextureYUVColorSpace; + typedef struct { /// The size of this struct. Must be sizeof(FlutterMetalExternalTexture). size_t struct_size; @@ -604,6 +610,8 @@ typedef struct { /// `FlutterEngineUnregisterExternalTexture`, the embedder has to release /// these textures. FlutterMetalTextureHandle* textures; + /// The YUV color space of the YUV external texture. + FlutterMetalExternalTextureYUVColorSpace yuv_color_space; } FlutterMetalExternalTexture; /// Callback to provide an external texture for a given texture_id. @@ -1074,8 +1082,8 @@ typedef struct { /// A value that `value` will have after a kFlutterSemanticsActionDecrease` /// action has been performed. const char* decreased_value; - /// The reading direction for `label`, `value`, `hint`, `increasedValue`, and - /// `decreasedValue`. + /// The reading direction for `label`, `value`, `hint`, `increasedValue`, + /// `decreasedValue`, and `tooltip`. FlutterTextDirection text_direction; /// The bounding box for this node in its coordinate system. FlutterRect rect; @@ -1096,6 +1104,8 @@ typedef struct { /// Identifier of the platform view associated with this semantics node, or /// -1 if none. FlutterPlatformViewIdentifier platform_view_id; + /// A textual tooltip attached to the node. + const char* tooltip; } FlutterSemanticsNode; /// `FlutterSemanticsCustomAction` ID used as a sentinel to signal the end of a @@ -1371,6 +1381,8 @@ typedef struct { size_t struct_size; /// The size of the render target the engine expects to render into. FlutterSize size; + /// Indicates the view that owns the layer this store is backing. + uint64_t surface_id; } FlutterBackingStoreConfig; typedef enum { @@ -1414,6 +1426,10 @@ typedef bool (*FlutterBackingStoreCollectCallback)( typedef bool (*FlutterLayersPresentCallback)(const FlutterLayer** layers, size_t layers_count, void* user_data); +typedef bool (*FlutterLayersPresentSurfaceCallback)(uint64_t surface_id, + const FlutterLayer** layers, + size_t layers_count, + void* user_data); typedef struct { /// This size of this struct. Must be sizeof(FlutterCompositor). @@ -1421,7 +1437,7 @@ typedef struct { /// A baton that in not interpreted by the engine in any way. If it passed /// back to the embedder in `FlutterCompositor.create_backing_store_callback`, /// `FlutterCompositor.collect_backing_store_callback` and - /// `FlutterCompositor.present_layers_callback` + /// `FlutterCompositor.present_layers_surface_callback` void* user_data; /// A callback invoked by the engine to obtain a backing store for a specific /// `FlutterLayer`. @@ -1434,11 +1450,13 @@ typedef struct { /// A callback invoked by the engine to release the backing store. The /// embedder may collect any resources associated with the backing store. FlutterBackingStoreCollectCallback collect_backing_store_callback; - /// Callback invoked by the engine to composite the contents of each layer - /// onto the screen. - FlutterLayersPresentCallback present_layers_callback; + /// A deprecated callback. It is not used and should not be set. + void* _deprecated_present_layers_callback; /// Avoid caching backing stores provided by this compositor. bool avoid_backing_store_cache; + /// Callback invoked by the engine to composite the contents of each layer + /// onto the screen. + FlutterLayersPresentSurfaceCallback present_layers_surface_callback; } FlutterCompositor; typedef struct { diff --git a/shell/platform/embedder/embedder_external_texture_gl.cc b/shell/platform/embedder/embedder_external_texture_gl.cc index 94246797f5175..2454ce8782ba4 100644 --- a/shell/platform/embedder/embedder_external_texture_gl.cc +++ b/shell/platform/embedder/embedder_external_texture_gl.cc @@ -5,6 +5,8 @@ #include "flutter/shell/platform/embedder/embedder_external_texture_gl.h" #include "flutter/fml/logging.h" +#include "include/core/SkCanvas.h" +#include "include/core/SkPaint.h" #include "third_party/skia/include/core/SkAlphaType.h" #include "third_party/skia/include/core/SkColorSpace.h" #include "third_party/skia/include/core/SkColorType.h" @@ -25,20 +27,21 @@ EmbedderExternalTextureGL::EmbedderExternalTextureGL( EmbedderExternalTextureGL::~EmbedderExternalTextureGL() = default; // |flutter::Texture| -void EmbedderExternalTextureGL::Paint(SkCanvas& canvas, +void EmbedderExternalTextureGL::Paint(PaintContext& context, const SkRect& bounds, bool freeze, - GrDirectContext* context, - const SkSamplingOptions& sampling, - const SkPaint* paint) { + const SkSamplingOptions& sampling) { if (last_image_ == nullptr) { last_image_ = ResolveTexture(Id(), // - context, // + context.gr_context, // SkISize::Make(bounds.width(), bounds.height()) // ); } + SkCanvas& canvas = *context.canvas; + const SkPaint* paint = context.sk_paint; + if (last_image_) { if (bounds != SkRect::Make(last_image_->bounds())) { canvas.drawImageRect(last_image_, bounds, sampling, paint); diff --git a/shell/platform/embedder/embedder_external_texture_gl.h b/shell/platform/embedder/embedder_external_texture_gl.h index 887a0e50fe026..6d5585f352493 100644 --- a/shell/platform/embedder/embedder_external_texture_gl.h +++ b/shell/platform/embedder/embedder_external_texture_gl.h @@ -32,12 +32,10 @@ class EmbedderExternalTextureGL : public flutter::Texture { const SkISize& size); // |flutter::Texture| - void Paint(SkCanvas& canvas, + void Paint(PaintContext& context, const SkRect& bounds, bool freeze, - GrDirectContext* context, - const SkSamplingOptions& sampling, - const SkPaint* paint) override; + const SkSamplingOptions& sampling) override; // |flutter::Texture| void OnGrContextCreated() override; diff --git a/shell/platform/embedder/embedder_external_texture_metal.h b/shell/platform/embedder/embedder_external_texture_metal.h index 0587aa0f69ec5..6aa0908aeda75 100644 --- a/shell/platform/embedder/embedder_external_texture_metal.h +++ b/shell/platform/embedder/embedder_external_texture_metal.h @@ -32,12 +32,10 @@ class EmbedderExternalTextureMetal : public flutter::Texture { const SkISize& size); // |flutter::Texture| - void Paint(SkCanvas& canvas, + void Paint(PaintContext& context, const SkRect& bounds, bool freeze, - GrDirectContext* context, - const SkSamplingOptions& sampling, - const SkPaint* paint) override; + const SkSamplingOptions& sampling) override; // |flutter::Texture| void OnGrContextCreated() override; diff --git a/shell/platform/embedder/embedder_external_texture_metal.mm b/shell/platform/embedder/embedder_external_texture_metal.mm index 4c880dc8b8aba..e71e1ab77e9d1 100644 --- a/shell/platform/embedder/embedder_external_texture_metal.mm +++ b/shell/platform/embedder/embedder_external_texture_metal.mm @@ -4,6 +4,7 @@ #include "flutter/shell/platform/embedder/embedder_external_texture_metal.h" +#include "flow/layers/layer.h" #include "flutter/fml/logging.h" #import "flutter/shell/platform/darwin/graphics/FlutterDarwinExternalTextureMetal.h" #include "third_party/skia/include/core/SkImage.h" @@ -31,16 +32,18 @@ static bool ValidNumTextures(int expected, int actual) { EmbedderExternalTextureMetal::~EmbedderExternalTextureMetal() = default; // |flutter::Texture| -void EmbedderExternalTextureMetal::Paint(SkCanvas& canvas, +void EmbedderExternalTextureMetal::Paint(PaintContext& context, const SkRect& bounds, bool freeze, - GrDirectContext* context, - const SkSamplingOptions& sampling, - const SkPaint* paint) { + const SkSamplingOptions& sampling) { if (last_image_ == nullptr) { - last_image_ = ResolveTexture(Id(), context, SkISize::Make(bounds.width(), bounds.height())); + last_image_ = + ResolveTexture(Id(), context.gr_context, SkISize::Make(bounds.width(), bounds.height())); } + SkCanvas& canvas = *context.canvas; + const SkPaint* paint = context.sk_paint; + if (last_image_) { if (bounds != SkRect::Make(last_image_->bounds())) { canvas.drawImageRect(last_image_, bounds, sampling, paint); @@ -77,8 +80,13 @@ static bool ValidNumTextures(int expected, int actual) { if (ValidNumTextures(2, texture->num_textures)) { id yTex = (__bridge id)texture->textures[0]; id uvTex = (__bridge id)texture->textures[1]; + SkYUVColorSpace colorSpace = + texture->yuv_color_space == FlutterMetalExternalTextureYUVColorSpace::kBT601LimitedRange + ? kRec601_Limited_SkYUVColorSpace + : kJPEG_Full_SkYUVColorSpace; image = [FlutterDarwinExternalTextureSkImageWrapper wrapYUVATexture:yTex UVTex:uvTex + YUVColorSpace:colorSpace grContext:context width:size.width() height:size.height()]; diff --git a/shell/platform/embedder/embedder_external_view_embedder.cc b/shell/platform/embedder/embedder_external_view_embedder.cc index 0e61db48ce8d8..0371abdd09f68 100644 --- a/shell/platform/embedder/embedder_external_view_embedder.cc +++ b/shell/platform/embedder/embedder_external_view_embedder.cc @@ -131,13 +131,15 @@ EmbedderPaintContext EmbedderExternalViewEmbedder::CompositeEmbeddedView( } static FlutterBackingStoreConfig MakeBackingStoreConfig( - const SkISize& backing_store_size) { + const SkISize& backing_store_size, + uint64_t surface_id) { FlutterBackingStoreConfig config = {}; config.struct_size = sizeof(config); config.size.width = backing_store_size.width(); config.size.height = backing_store_size.height(); + config.surface_id = surface_id; return config; } @@ -145,6 +147,7 @@ static FlutterBackingStoreConfig MakeBackingStoreConfig( // |ExternalViewEmbedder| void EmbedderExternalViewEmbedder::SubmitFrame( GrDirectContext* context, + uint64_t frame_view_id, std::unique_ptr frame) { auto [matched_render_targets, pending_keys] = render_target_cache_.GetExistingTargetsInCache(pending_views_); @@ -184,7 +187,7 @@ void EmbedderExternalViewEmbedder::SubmitFrame( const auto render_surface_size = external_view->GetRenderSurfaceSize(); const auto backing_store_config = - MakeBackingStoreConfig(render_surface_size); + MakeBackingStoreConfig(render_surface_size, frame_view_id); // This is where the embedder will create render targets for us. Control // flow to the embedder makes the engine susceptible to having the embedder @@ -263,7 +266,7 @@ void EmbedderExternalViewEmbedder::SubmitFrame( // Flush the layer description down to the embedder for presentation. // // @warning: Embedder may trample on our OpenGL context here. - presented_layers.InvokePresentCallback(present_callback_); + presented_layers.InvokePresentCallback(present_callback_, frame_view_id); } // See why this is necessary in the comment where this collection in realized. diff --git a/shell/platform/embedder/embedder_external_view_embedder.h b/shell/platform/embedder/embedder_external_view_embedder.h index 7921cb8b78255..8edad877dd2c7 100644 --- a/shell/platform/embedder/embedder_external_view_embedder.h +++ b/shell/platform/embedder/embedder_external_view_embedder.h @@ -33,7 +33,8 @@ class EmbedderExternalViewEmbedder final : public ExternalViewEmbedder { GrDirectContext* context, const FlutterBackingStoreConfig& config)>; using PresentCallback = - std::function& layers)>; + std::function& layers)>; using SurfaceTransformationCallback = std::function; //---------------------------------------------------------------------------- @@ -101,6 +102,7 @@ class EmbedderExternalViewEmbedder final : public ExternalViewEmbedder { // |ExternalViewEmbedder| void SubmitFrame(GrDirectContext* context, + uint64_t frame_view_id, std::unique_ptr frame) override; // |ExternalViewEmbedder| diff --git a/shell/platform/embedder/embedder_layers.cc b/shell/platform/embedder/embedder_layers.cc index 6465293748f9f..e612779dd73b9 100644 --- a/shell/platform/embedder/embedder_layers.cc +++ b/shell/platform/embedder/embedder_layers.cc @@ -199,14 +199,14 @@ void EmbedderLayers::PushPlatformViewLayer( presented_layers_.push_back(layer); } -void EmbedderLayers::InvokePresentCallback( - const PresentCallback& callback) const { +void EmbedderLayers::InvokePresentCallback(const PresentCallback& callback, + uint64_t frame_view_id) const { std::vector presented_layers_pointers; presented_layers_pointers.reserve(presented_layers_.size()); for (const auto& layer : presented_layers_) { presented_layers_pointers.push_back(&layer); } - callback(presented_layers_pointers); + callback(frame_view_id, presented_layers_pointers); } } // namespace flutter diff --git a/shell/platform/embedder/embedder_layers.h b/shell/platform/embedder/embedder_layers.h index c1cb2907588c9..9ad7bb64c3b70 100644 --- a/shell/platform/embedder/embedder_layers.h +++ b/shell/platform/embedder/embedder_layers.h @@ -30,8 +30,10 @@ class EmbedderLayers { const EmbeddedViewParams& params); using PresentCallback = - std::function& layers)>; - void InvokePresentCallback(const PresentCallback& callback) const; + std::function& layers)>; + void InvokePresentCallback(const PresentCallback& callback, + uint64_t frame_view_id) const; private: const SkISize frame_size_; diff --git a/shell/platform/embedder/embedder_surface_metal.mm b/shell/platform/embedder/embedder_surface_metal.mm index afa11d62f610b..b7582d01b5c2c 100644 --- a/shell/platform/embedder/embedder_surface_metal.mm +++ b/shell/platform/embedder/embedder_surface_metal.mm @@ -8,7 +8,7 @@ #include "flutter/fml/logging.h" #include "flutter/shell/gpu/gpu_surface_metal_delegate.h" -#import "flutter/shell/platform/darwin/graphics/FlutterDarwinContextMetal.h" +#import "flutter/shell/platform/darwin/graphics/FlutterDarwinContextMetalSkia.h" #include "third_party/skia/include/gpu/GrDirectContext.h" FLUTTER_ASSERT_NOT_ARC @@ -22,11 +22,12 @@ : GPUSurfaceMetalDelegate(MTLRenderTargetType::kMTLTexture), metal_dispatch_table_(std::move(metal_dispatch_table)), external_view_embedder_(std::move(external_view_embedder)) { - main_context_ = [FlutterDarwinContextMetal createGrContext:(id)device - commandQueue:(id)command_queue]; + main_context_ = + [FlutterDarwinContextMetalSkia createGrContext:(id)device + commandQueue:(id)command_queue]; resource_context_ = - [FlutterDarwinContextMetal createGrContext:(id)device - commandQueue:(id)command_queue]; + [FlutterDarwinContextMetalSkia createGrContext:(id)device + commandQueue:(id)command_queue]; valid_ = main_context_ && resource_context_; } diff --git a/shell/platform/embedder/embedder_surface_vulkan.cc b/shell/platform/embedder/embedder_surface_vulkan.cc index 837d15882c648..8fe32f17e6755 100644 --- a/shell/platform/embedder/embedder_surface_vulkan.cc +++ b/shell/platform/embedder/embedder_surface_vulkan.cc @@ -6,7 +6,9 @@ #include +#include "flutter/flutter_vma/flutter_skia_vma.h" #include "flutter/shell/common/shell_io_manager.h" +#include "flutter/vulkan/vulkan_skia_proc_table.h" #include "include/gpu/GrDirectContext.h" #include "include/gpu/vk/GrVkBackendContext.h" #include "include/gpu/vk/GrVkExtensions.h" @@ -44,8 +46,18 @@ EmbedderSurfaceVulkan::EmbedderSurfaceVulkan( return; } - vk_->SetupInstanceProcAddresses(vulkan::VulkanHandle{instance}); - vk_->SetupDeviceProcAddresses(vulkan::VulkanHandle{device}); + bool success = vk_->SetupInstanceProcAddresses( + vulkan::VulkanHandle{instance}); + if (!success) { + FML_LOG(ERROR) << "Could not setup instance proc addresses."; + return; + } + success = + vk_->SetupDeviceProcAddresses(vulkan::VulkanHandle{device}); + if (!success) { + FML_LOG(ERROR) << "Could not setup device proc addresses."; + return; + } if (!vk_->IsValid()) { FML_LOG(ERROR) << "VulkanProcTable invalid."; return; @@ -122,7 +134,7 @@ sk_sp EmbedderSurfaceVulkan::CreateGrContext( return nullptr; } - auto get_proc = vk_->CreateSkiaGetProc(); + auto get_proc = CreateSkiaGetProc(vk_); if (get_proc == nullptr) { FML_LOG(ERROR) << "Failed to create Vulkan getProc for Skia."; return nullptr; @@ -143,6 +155,14 @@ sk_sp EmbedderSurfaceVulkan::CreateGrContext( backend_context.fGetProc = get_proc; backend_context.fOwnsInstanceAndDevice = false; + uint32_t vulkan_api_version = version; + sk_sp allocator = + flutter::FlutterSkiaVulkanMemoryAllocator::Make( + vulkan_api_version, instance, device_.GetPhysicalDeviceHandle(), + device_.GetHandle(), vk_, true); + + backend_context.fMemoryAllocator = allocator; + extensions.init(backend_context.fGetProc, backend_context.fInstance, backend_context.fPhysicalDevice, instance_extension_count, instance_extensions, device_extension_count, diff --git a/shell/platform/embedder/embedder_surface_vulkan.h b/shell/platform/embedder/embedder_surface_vulkan.h index d51ae5d8ce938..8c44e3ddd99e6 100644 --- a/shell/platform/embedder/embedder_surface_vulkan.h +++ b/shell/platform/embedder/embedder_surface_vulkan.h @@ -9,10 +9,10 @@ #include "flutter/shell/gpu/gpu_surface_vulkan.h" #include "flutter/shell/platform/embedder/embedder_external_view_embedder.h" #include "flutter/shell/platform/embedder/embedder_surface.h" +#include "flutter/vulkan/procs/vulkan_proc_table.h" #include "shell/common/context_options.h" #include "shell/gpu/gpu_surface_vulkan_delegate.h" #include "shell/platform/embedder/embedder.h" -#include "vulkan/vulkan_proc_table.h" namespace flutter { @@ -20,8 +20,7 @@ class EmbedderSurfaceVulkan final : public EmbedderSurface, public GPUSurfaceVulkanDelegate { public: struct VulkanDispatchTable { - std::function - get_instance_proc_address; // required + PFN_vkGetInstanceProcAddr get_instance_proc_address; // required std::function get_next_image; // required std::function diff --git a/shell/platform/embedder/fixtures/main.dart b/shell/platform/embedder/fixtures/main.dart index 41d9a2fda8434..a8098c8fda34f 100644 --- a/shell/platform/embedder/fixtures/main.dart +++ b/shell/platform/embedder/fixtures/main.dart @@ -18,7 +18,8 @@ void customEntrypoint() { sayHiFromCustomEntrypoint(); } -void sayHiFromCustomEntrypoint() native 'SayHiFromCustomEntrypoint'; +@pragma('vm:external-name', 'SayHiFromCustomEntrypoint') +external void sayHiFromCustomEntrypoint(); @pragma('vm:entry-point') void customEntrypoint1() { @@ -27,9 +28,12 @@ void customEntrypoint1() { sayHiFromCustomEntrypoint3(); } -void sayHiFromCustomEntrypoint1() native 'SayHiFromCustomEntrypoint1'; -void sayHiFromCustomEntrypoint2() native 'SayHiFromCustomEntrypoint2'; -void sayHiFromCustomEntrypoint3() native 'SayHiFromCustomEntrypoint3'; +@pragma('vm:external-name', 'SayHiFromCustomEntrypoint1') +external void sayHiFromCustomEntrypoint1(); +@pragma('vm:external-name', 'SayHiFromCustomEntrypoint2') +external void sayHiFromCustomEntrypoint2(); +@pragma('vm:external-name', 'SayHiFromCustomEntrypoint3') +external void sayHiFromCustomEntrypoint3(); @pragma('vm:entry-point') void terminateExitCodeHandler() { @@ -41,8 +45,8 @@ void executableNameNotNull() { notifyStringValue(Platform.executable); } -void notifyStringValue(String value) native 'NotifyStringValue'; - +@pragma('vm:external-name', 'NotifyStringValue') +external void notifyStringValue(String value); @pragma('vm:entry-point') void invokePlatformTaskRunner() { @@ -63,14 +67,18 @@ Float64List kTestTransform = () { return values; }(); -void signalNativeTest() native 'SignalNativeTest'; -void signalNativeCount(int count) native 'SignalNativeCount'; -void signalNativeMessage(String message) native 'SignalNativeMessage'; -void notifySemanticsEnabled(bool enabled) native 'NotifySemanticsEnabled'; -void notifyAccessibilityFeatures(bool reduceMotion) - native 'NotifyAccessibilityFeatures'; -void notifySemanticsAction(int nodeId, int action, List data) - native 'NotifySemanticsAction'; +@pragma('vm:external-name', 'SignalNativeTest') +external void signalNativeTest(); +@pragma('vm:external-name', 'SignalNativeCount') +external void signalNativeCount(int count); +@pragma('vm:external-name', 'SignalNativeMessage') +external void signalNativeMessage(String message); +@pragma('vm:external-name', 'NotifySemanticsEnabled') +external void notifySemanticsEnabled(bool enabled); +@pragma('vm:external-name', 'NotifyAccessibilityFeatures') +external void notifyAccessibilityFeatures(bool reduceMotion); +@pragma('vm:external-name', 'NotifySemanticsAction') +external void notifySemanticsAction(int nodeId, int action, List data); /// Returns a future that completes when /// `PlatformDispatcher.instance.onSemanticsEnabledChanged` fires. @@ -264,7 +272,9 @@ void a11y_main() async { label: 'Archive', hint: 'archive message', ); - PlatformDispatcher.instance.updateSemantics(builder.build()); + + PlatformDispatcher.instance.views.first.updateSemantics(builder.build()); + signalNativeTest(); // Await semantics action from embedder. @@ -553,8 +563,9 @@ Picture CreateGradientBox(Size size) { return baseRecorder.endRecording(); } -void _echoKeyEvent(int change, int timestamp, int physical, int logical, - int charCode, bool synthesized) native 'EchoKeyEvent'; +@pragma('vm:external-name', 'EchoKeyEvent') +external void _echoKeyEvent(int change, int timestamp, int physical, + int logical, int charCode, bool synthesized); // Convert `kind` in enum form to its integer form. // @@ -923,7 +934,8 @@ void scene_builder_with_complex_clips() { PlatformDispatcher.instance.scheduleFrame(); } -void sendObjectToNativeCode(dynamic object) native 'SendObjectToNativeCode'; +@pragma('vm:external-name', 'SendObjectToNativeCode') +external void sendObjectToNativeCode(dynamic object); @pragma('vm:entry-point') void objects_can_be_posted() { @@ -975,8 +987,8 @@ void render_targets_are_recycled() { PlatformDispatcher.instance.scheduleFrame(); } -void nativeArgumentsCallback(List args) - native 'NativeArgumentsCallback'; +@pragma('vm:external-name', 'NativeArgumentsCallback') +external void nativeArgumentsCallback(List args); @pragma('vm:entry-point') void custom_logger(List args) { @@ -988,8 +1000,8 @@ void dart_entrypoint_args(List args) { nativeArgumentsCallback(args); } -void snapshotsCallback(Image big_image, Image small_image) - native 'SnapshotsCallback'; +@pragma('vm:external-name', 'SnapshotsCallback') +external void snapshotsCallback(Image big_image, Image small_image); @pragma('vm:entry-point') void snapshot_large_scene(int max_size) async { diff --git a/shell/platform/embedder/tests/embedder_config_builder.cc b/shell/platform/embedder/tests/embedder_config_builder.cc index 58e48c4b594d8..13a46b88b5f1f 100644 --- a/shell/platform/embedder/tests/embedder_config_builder.cc +++ b/shell/platform/embedder/tests/embedder_config_builder.cc @@ -355,16 +355,19 @@ void EmbedderConfigBuilder::SetCompositor(bool avoid_backing_store_cache) { return reinterpret_cast(user_data) ->CollectBackingStore(backing_store); }; - compositor_.present_layers_callback = [](const FlutterLayer** layers, // - size_t layers_count, // - void* user_data // - ) { - return reinterpret_cast(user_data)->Present( - layers, // - layers_count // - - ); - }; + compositor_.present_layers_surface_callback = + [](uint64_t surface_id, + const FlutterLayer** layers, // + size_t layers_count, // + void* user_data // + ) { + return reinterpret_cast(user_data)->Present( + surface_id, + layers, // + layers_count // + + ); + }; compositor_.avoid_backing_store_cache = avoid_backing_store_cache; project_args_.compositor = &compositor_; } @@ -510,9 +513,9 @@ void EmbedderConfigBuilder::InitializeVulkanRendererConfig() { vulkan_renderer_config_.get_instance_proc_address_callback = [](void* context, FlutterVulkanInstanceHandle instance, const char* name) -> void* { - return reinterpret_cast(context) - ->vulkan_context_->vk_->GetInstanceProcAddr( - reinterpret_cast(instance), name); + auto proc_addr = reinterpret_cast(context) + ->vulkan_context_->vk_->GetInstanceProcAddr; + return reinterpret_cast(proc_addr); }; vulkan_renderer_config_.get_next_image_callback = [](void* context, diff --git a/shell/platform/embedder/tests/embedder_test_compositor.cc b/shell/platform/embedder/tests/embedder_test_compositor.cc index 23afb36f01e72..7e9f4808a562b 100644 --- a/shell/platform/embedder/tests/embedder_test_compositor.cc +++ b/shell/platform/embedder/tests/embedder_test_compositor.cc @@ -4,6 +4,8 @@ #include "flutter/shell/platform/embedder/tests/embedder_test_compositor.h" +#include + #include "flutter/fml/logging.h" #include "flutter/shell/platform/embedder/tests/embedder_assertions.h" #include "third_party/skia/include/core/SkSurface.h" @@ -13,7 +15,7 @@ namespace testing { EmbedderTestCompositor::EmbedderTestCompositor(SkISize surface_size, sk_sp context) - : surface_size_(surface_size), context_(context) { + : surface_size_(surface_size), context_(std::move(context)) { FML_CHECK(!surface_size_.isEmpty()) << "Surface size must not be empty"; } @@ -58,7 +60,8 @@ sk_sp EmbedderTestCompositor::GetLastComposition() { return last_composition_; } -bool EmbedderTestCompositor::Present(const FlutterLayer** layers, +bool EmbedderTestCompositor::Present(uint64_t view_id, + const FlutterLayer** layers, size_t layers_count) { if (!UpdateOffscrenComposition(layers, layers_count)) { FML_LOG(ERROR) @@ -118,16 +121,17 @@ size_t EmbedderTestCompositor::GetBackingStoresCollectedCount() const { } void EmbedderTestCompositor::AddOnCreateRenderTargetCallback( - fml::closure callback) { + const fml::closure& callback) { on_create_render_target_callbacks_.push_back(callback); } void EmbedderTestCompositor::AddOnCollectRenderTargetCallback( - fml::closure callback) { + const fml::closure& callback) { on_collect_render_target_callbacks_.push_back(callback); } -void EmbedderTestCompositor::AddOnPresentCallback(fml::closure callback) { +void EmbedderTestCompositor::AddOnPresentCallback( + const fml::closure& callback) { on_present_callbacks_.push_back(callback); } diff --git a/shell/platform/embedder/tests/embedder_test_compositor.h b/shell/platform/embedder/tests/embedder_test_compositor.h index 26d96de6cda81..c32c4770b1e28 100644 --- a/shell/platform/embedder/tests/embedder_test_compositor.h +++ b/shell/platform/embedder/tests/embedder_test_compositor.h @@ -36,7 +36,9 @@ class EmbedderTestCompositor { bool CollectBackingStore(const FlutterBackingStore* backing_store); - bool Present(const FlutterLayer** layers, size_t layers_count); + bool Present(uint64_t view_id, + const FlutterLayer** layers, + size_t layers_count); void SetPlatformViewRendererCallback( const PlatformViewRendererCallback& callback); @@ -64,11 +66,11 @@ class EmbedderTestCompositor { size_t GetBackingStoresCollectedCount() const; - void AddOnCreateRenderTargetCallback(fml::closure callback); + void AddOnCreateRenderTargetCallback(const fml::closure& callback); - void AddOnCollectRenderTargetCallback(fml::closure callback); + void AddOnCollectRenderTargetCallback(const fml::closure& callback); - void AddOnPresentCallback(fml::closure callback); + void AddOnPresentCallback(const fml::closure& callback); sk_sp GetGrContext(); diff --git a/shell/platform/embedder/tests/embedder_test_compositor_gl.cc b/shell/platform/embedder/tests/embedder_test_compositor_gl.cc index fbc6c340d32f8..35cdf42828a63 100644 --- a/shell/platform/embedder/tests/embedder_test_compositor_gl.cc +++ b/shell/platform/embedder/tests/embedder_test_compositor_gl.cc @@ -4,6 +4,8 @@ #include "flutter/shell/platform/embedder/tests/embedder_test_compositor_gl.h" +#include + #include "flutter/fml/logging.h" #include "flutter/shell/platform/embedder/tests/embedder_assertions.h" #include "third_party/skia/include/core/SkSurface.h" @@ -14,7 +16,7 @@ namespace testing { EmbedderTestCompositorGL::EmbedderTestCompositorGL( SkISize surface_size, sk_sp context) - : EmbedderTestCompositor(surface_size, context) {} + : EmbedderTestCompositor(surface_size, std::move(context)) {} EmbedderTestCompositorGL::~EmbedderTestCompositorGL() = default; diff --git a/shell/platform/embedder/tests/embedder_test_compositor_metal.cc b/shell/platform/embedder/tests/embedder_test_compositor_metal.cc index bb07d3256b4a0..f92b7cc21e4d0 100644 --- a/shell/platform/embedder/tests/embedder_test_compositor_metal.cc +++ b/shell/platform/embedder/tests/embedder_test_compositor_metal.cc @@ -4,6 +4,8 @@ #include "flutter/shell/platform/embedder/tests/embedder_test_compositor_metal.h" +#include + #include "flutter/fml/logging.h" #include "flutter/shell/platform/embedder/tests/embedder_assertions.h" #include "third_party/skia/include/core/SkSurface.h" @@ -14,7 +16,7 @@ namespace testing { EmbedderTestCompositorMetal::EmbedderTestCompositorMetal( SkISize surface_size, sk_sp context) - : EmbedderTestCompositor(surface_size, context) {} + : EmbedderTestCompositor(surface_size, std::move(context)) {} EmbedderTestCompositorMetal::~EmbedderTestCompositorMetal() = default; diff --git a/shell/platform/embedder/tests/embedder_test_compositor_vulkan.cc b/shell/platform/embedder/tests/embedder_test_compositor_vulkan.cc index a932260513b98..c0df97a5f606c 100644 --- a/shell/platform/embedder/tests/embedder_test_compositor_vulkan.cc +++ b/shell/platform/embedder/tests/embedder_test_compositor_vulkan.cc @@ -4,6 +4,8 @@ #include "flutter/shell/platform/embedder/tests/embedder_test_compositor_vulkan.h" +#include + #include "flutter/fml/logging.h" #include "flutter/shell/platform/embedder/tests/embedder_assertions.h" #include "flutter/shell/platform/embedder/tests/embedder_test_backingstore_producer.h" @@ -15,7 +17,7 @@ namespace testing { EmbedderTestCompositorVulkan::EmbedderTestCompositorVulkan( SkISize surface_size, sk_sp context) - : EmbedderTestCompositor(surface_size, context) {} + : EmbedderTestCompositor(surface_size, std::move(context)) {} EmbedderTestCompositorVulkan::~EmbedderTestCompositorVulkan() = default; diff --git a/shell/platform/embedder/tests/embedder_test_context.cc b/shell/platform/embedder/tests/embedder_test_context.cc index 88f833a9fdfce..261eb0f6b980f 100644 --- a/shell/platform/embedder/tests/embedder_test_context.cc +++ b/shell/platform/embedder/tests/embedder_test_context.cc @@ -4,6 +4,8 @@ #include "flutter/shell/platform/embedder/tests/embedder_test_context.h" +#include + #include "flutter/fml/make_copyable.h" #include "flutter/fml/paths.h" #include "flutter/runtime/dart_vm.h" @@ -94,7 +96,8 @@ void EmbedderTestContext::SetRootSurfaceTransformation(SkMatrix matrix) { root_surface_transformation_ = matrix; } -void EmbedderTestContext::AddIsolateCreateCallback(fml::closure closure) { +void EmbedderTestContext::AddIsolateCreateCallback( + const fml::closure& closure) { if (closure) { isolate_create_callbacks_.push_back(closure); } @@ -226,7 +229,7 @@ void EmbedderTestContext::FireRootSurfacePresentCallbackIfPresent( void EmbedderTestContext::SetVsyncCallback( std::function callback) { - vsync_callback_ = callback; + vsync_callback_ = std::move(callback); } void EmbedderTestContext::RunVsyncCallback(intptr_t baton) { diff --git a/shell/platform/embedder/tests/embedder_test_context.h b/shell/platform/embedder/tests/embedder_test_context.h index ade3333d95fc3..8577abbdbb301 100644 --- a/shell/platform/embedder/tests/embedder_test_context.h +++ b/shell/platform/embedder/tests/embedder_test_context.h @@ -67,7 +67,7 @@ class EmbedderTestContext { void SetRootSurfaceTransformation(SkMatrix matrix); - void AddIsolateCreateCallback(fml::closure closure); + void AddIsolateCreateCallback(const fml::closure& closure); void AddNativeCallback(const char* name, Dart_NativeFunction function); diff --git a/shell/platform/embedder/tests/embedder_test_context_gl.cc b/shell/platform/embedder/tests/embedder_test_context_gl.cc index 0215999814a0d..ed3dabcfe8c71 100644 --- a/shell/platform/embedder/tests/embedder_test_context_gl.cc +++ b/shell/platform/embedder/tests/embedder_test_context_gl.cc @@ -4,6 +4,8 @@ #include "flutter/shell/platform/embedder/tests/embedder_test_context_gl.h" +#include + #include "flutter/fml/make_copyable.h" #include "flutter/fml/paths.h" #include "flutter/runtime/dart_vm.h" @@ -18,7 +20,7 @@ namespace flutter { namespace testing { EmbedderTestContextGL::EmbedderTestContextGL(std::string assets_path) - : EmbedderTestContext(assets_path) {} + : EmbedderTestContext(std::move(assets_path)) {} EmbedderTestContextGL::~EmbedderTestContextGL() { SetGLGetFBOCallback(nullptr); @@ -61,18 +63,18 @@ bool EmbedderTestContextGL::GLPresent(FlutterPresentInfo present_info) { void EmbedderTestContextGL::SetGLGetFBOCallback(GLGetFBOCallback callback) { std::scoped_lock lock(gl_callback_mutex_); - gl_get_fbo_callback_ = callback; + gl_get_fbo_callback_ = std::move(callback); } void EmbedderTestContextGL::SetGLPopulateExistingDamageCallback( GLPopulateExistingDamageCallback callback) { std::scoped_lock lock(gl_callback_mutex_); - gl_populate_existing_damage_callback_ = callback; + gl_populate_existing_damage_callback_ = std::move(callback); } void EmbedderTestContextGL::SetGLPresentCallback(GLPresentCallback callback) { std::scoped_lock lock(gl_callback_mutex_); - gl_present_callback_ = callback; + gl_present_callback_ = std::move(callback); } uint32_t EmbedderTestContextGL::GLGetFramebuffer(FlutterFrameInfo frame_info) { diff --git a/shell/platform/embedder/tests/embedder_test_context_software.cc b/shell/platform/embedder/tests/embedder_test_context_software.cc index 1bb3bf5c8aea7..cddeed7656b25 100644 --- a/shell/platform/embedder/tests/embedder_test_context_software.cc +++ b/shell/platform/embedder/tests/embedder_test_context_software.cc @@ -4,6 +4,8 @@ #include "flutter/shell/platform/embedder/tests/embedder_test_context_software.h" +#include + #include "flutter/fml/make_copyable.h" #include "flutter/fml/paths.h" #include "flutter/runtime/dart_vm.h" @@ -18,11 +20,11 @@ namespace testing { EmbedderTestContextSoftware::EmbedderTestContextSoftware( std::string assets_path) - : EmbedderTestContext(assets_path) {} + : EmbedderTestContext(std::move(assets_path)) {} EmbedderTestContextSoftware::~EmbedderTestContextSoftware() = default; -bool EmbedderTestContextSoftware::Present(sk_sp image) { +bool EmbedderTestContextSoftware::Present(const sk_sp& image) { software_surface_present_count_++; FireRootSurfacePresentCallbackIfPresent([image] { return image; }); diff --git a/shell/platform/embedder/tests/embedder_test_context_software.h b/shell/platform/embedder/tests/embedder_test_context_software.h index f8690484d0119..d4708e91825be 100644 --- a/shell/platform/embedder/tests/embedder_test_context_software.h +++ b/shell/platform/embedder/tests/embedder_test_context_software.h @@ -21,7 +21,7 @@ class EmbedderTestContextSoftware : public EmbedderTestContext { // |EmbedderTestContext| EmbedderTestContextType GetContextType() const override; - bool Present(sk_sp image); + bool Present(const sk_sp& image); protected: virtual void SetupCompositor() override; diff --git a/shell/platform/embedder/tests/embedder_test_context_vulkan.cc b/shell/platform/embedder/tests/embedder_test_context_vulkan.cc index 9260f19e98b70..c5f821a8088cc 100644 --- a/shell/platform/embedder/tests/embedder_test_context_vulkan.cc +++ b/shell/platform/embedder/tests/embedder_test_context_vulkan.cc @@ -11,8 +11,8 @@ #include "flutter/shell/platform/embedder/tests/embedder_test_compositor_vulkan.h" #include "flutter/testing/test_vulkan_context.h" #include "flutter/testing/test_vulkan_surface.h" +#include "flutter/vulkan/procs/vulkan_proc_table.h" #include "flutter/vulkan/vulkan_device.h" -#include "flutter/vulkan/vulkan_proc_table.h" #include "third_party/skia/include/core/SkSurface.h" namespace flutter { diff --git a/shell/platform/embedder/tests/embedder_unittests.cc b/shell/platform/embedder/tests/embedder_unittests.cc index d0e336b98b5b4..74f6c4a563731 100644 --- a/shell/platform/embedder/tests/embedder_unittests.cc +++ b/shell/platform/embedder/tests/embedder_unittests.cc @@ -5,6 +5,7 @@ #define FML_USED_ON_EMBEDDER #include +#include #include #include "embedder.h" @@ -1580,7 +1581,7 @@ static void expectSoftwareRenderingOutputMatches( builder.SetSoftwareRendererConfig(); builder.SetCompositor(); - builder.SetDartEntrypoint(entrypoint); + builder.SetDartEntrypoint(std::move(entrypoint)); builder.SetRenderTargetType( EmbedderTestBackingStoreProducer::RenderTargetType::kSoftwareBuffer2, pixfmt); @@ -1595,7 +1596,9 @@ static void expectSoftwareRenderingOutputMatches( ASSERT_EQ(layers[0]->backing_store->type, kFlutterBackingStoreTypeSoftware2); matches = SurfacePixelDataMatchesBytes( - (SkSurface*)layers[0]->backing_store->software2.user_data, bytes); + static_cast( + layers[0]->backing_store->software2.user_data), + bytes); latch.Signal(); }); @@ -1622,7 +1625,8 @@ static void expectSoftwareRenderingOutputMatches( T pixelvalue) { uint8_t* bytes = reinterpret_cast(&pixelvalue); return expectSoftwareRenderingOutputMatches( - test, entrypoint, pixfmt, std::vector(bytes, bytes + sizeof(T))); + test, std::move(entrypoint), pixfmt, + std::vector(bytes, bytes + sizeof(T))); } #define SW_PIXFMT_TEST_F(dart_entrypoint, pixfmt, matcher) \ diff --git a/shell/platform/embedder/tests/embedder_unittests_gl.cc b/shell/platform/embedder/tests/embedder_unittests_gl.cc index 08f653495f379..09b4020022db8 100644 --- a/shell/platform/embedder/tests/embedder_unittests_gl.cc +++ b/shell/platform/embedder/tests/embedder_unittests_gl.cc @@ -71,7 +71,7 @@ TEST_F(EmbedderTest, builder.SetCompositor(); builder.GetCompositor().create_backing_store_callback = nullptr; builder.GetCompositor().collect_backing_store_callback = nullptr; - builder.GetCompositor().present_layers_callback = nullptr; + builder.GetCompositor().present_layers_surface_callback = nullptr; auto engine = builder.LaunchEngine(); ASSERT_FALSE(engine.is_valid()); } @@ -4018,7 +4018,7 @@ TEST_F(EmbedderTest, ExternalTextureGLRefreshedTooOften) { TestGLSurface surface(SkISize::Make(100, 100)); auto context = surface.GetGrContext(); - typedef void (*glGenTexturesProc)(uint32_t n, uint32_t * textures); + typedef void (*glGenTexturesProc)(uint32_t n, uint32_t* textures); glGenTexturesProc glGenTextures; glGenTextures = reinterpret_cast( @@ -4047,20 +4047,24 @@ TEST_F(EmbedderTest, ExternalTextureGLRefreshedTooOften) { auto canvas = skia_surface->getCanvas(); Texture* texture_ = &texture; - texture_->Paint(*canvas, SkRect::MakeXYWH(0, 0, 100, 100), false, - context.get(), SkSamplingOptions(SkFilterMode::kLinear)); + Texture::PaintContext ctx{ + .canvas = canvas, + .gr_context = context.get(), + }; + texture_->Paint(ctx, SkRect::MakeXYWH(0, 0, 100, 100), false, + SkSamplingOptions(SkFilterMode::kLinear)); EXPECT_TRUE(resolve_called); resolve_called = false; - texture_->Paint(*canvas, SkRect::MakeXYWH(0, 0, 100, 100), false, - context.get(), SkSamplingOptions(SkFilterMode::kLinear)); + texture_->Paint(ctx, SkRect::MakeXYWH(0, 0, 100, 100), false, + SkSamplingOptions(SkFilterMode::kLinear)); EXPECT_FALSE(resolve_called); texture_->MarkNewFrameAvailable(); - texture_->Paint(*canvas, SkRect::MakeXYWH(0, 0, 100, 100), false, - context.get(), SkSamplingOptions(SkFilterMode::kLinear)); + texture_->Paint(ctx, SkRect::MakeXYWH(0, 0, 100, 100), false, + SkSamplingOptions(SkFilterMode::kLinear)); EXPECT_TRUE(resolve_called); } diff --git a/shell/platform/embedder/tests/embedder_unittests_metal.mm b/shell/platform/embedder/tests/embedder_unittests_metal.mm index 8e2bbf948bbdb..296edf7b5723e 100644 --- a/shell/platform/embedder/tests/embedder_unittests_metal.mm +++ b/shell/platform/embedder/tests/embedder_unittests_metal.mm @@ -53,7 +53,7 @@ // ASSERT_TRUE(ImageMatchesFixture("gradient_metal.png", rendered_scene)); } -static sk_sp GetSurfaceFromTexture(sk_sp skia_context, +static sk_sp GetSurfaceFromTexture(const sk_sp& skia_context, SkISize texture_size, void* texture) { GrMtlTextureInfo info; @@ -465,20 +465,24 @@ void Collect() { auto canvas = skia_surface->getCanvas(); Texture* texture_ = &texture; - texture_->Paint(*canvas, SkRect::MakeXYWH(0, 0, 100, 100), false, surface->GetGrContext().get(), + Texture::PaintContext ctx{ + .canvas = canvas, + .gr_context = surface->GetGrContext().get(), + }; + texture_->Paint(ctx, SkRect::MakeXYWH(0, 0, 100, 100), false, SkSamplingOptions(SkFilterMode::kLinear)); EXPECT_TRUE(resolve_called); resolve_called = false; - texture_->Paint(*canvas, SkRect::MakeXYWH(0, 0, 100, 100), false, surface->GetGrContext().get(), + texture_->Paint(ctx, SkRect::MakeXYWH(0, 0, 100, 100), false, SkSamplingOptions(SkFilterMode::kLinear)); EXPECT_FALSE(resolve_called); texture_->MarkNewFrameAvailable(); - texture_->Paint(*canvas, SkRect::MakeXYWH(0, 0, 100, 100), false, surface->GetGrContext().get(), + texture_->Paint(ctx, SkRect::MakeXYWH(0, 0, 100, 100), false, SkSamplingOptions(SkFilterMode::kLinear)); EXPECT_TRUE(resolve_called); diff --git a/shell/platform/embedder/tests/embedder_unittests_util.cc b/shell/platform/embedder/tests/embedder_unittests_util.cc index ba17af342e2ab..d6e9236379280 100644 --- a/shell/platform/embedder/tests/embedder_unittests_util.cc +++ b/shell/platform/embedder/tests/embedder_unittests_util.cc @@ -5,6 +5,7 @@ #define FML_USED_ON_EMBEDDER #include +#include #include "flutter/shell/platform/embedder/tests/embedder_test_backingstore_producer.h" #include "flutter/shell/platform/embedder/tests/embedder_unittests_util.h" @@ -32,7 +33,7 @@ sk_sp CreateRenderSurface(const FlutterLayer& layer, } // Normalizes the color-space, color-type and alpha-type for comparison. -static sk_sp NormalizeImage(sk_sp image) { +static sk_sp NormalizeImage(const sk_sp& image) { // To avoid clipping, convert to a very wide gamut, and a high bit depth. sk_sp norm_colorspace = SkColorSpace::MakeRGB( SkNamedTransferFn::kRec2020, SkNamedGamut::kRec2020); @@ -56,7 +57,7 @@ static sk_sp NormalizeImage(sk_sp image) { return data; } -bool RasterImagesAreSame(sk_sp a, sk_sp b) { +bool RasterImagesAreSame(const sk_sp& a, const sk_sp& b) { if (!a || !b) { return false; } @@ -127,7 +128,7 @@ void ConfigureBackingStore(FlutterBackingStore& backing_store, bool WriteImageToDisk(const fml::UniqueFD& directory, const std::string& name, - sk_sp image) { + const sk_sp& image) { if (!image) { return false; } @@ -144,7 +145,7 @@ bool WriteImageToDisk(const fml::UniqueFD& directory, } bool ImageMatchesFixture(const std::string& fixture_file_name, - sk_sp scene_image) { + const sk_sp& scene_image) { fml::FileMapping fixture_image_mapping(OpenFixture(fixture_file_name)); FML_CHECK(fixture_image_mapping.GetSize() != 0u) @@ -219,7 +220,7 @@ bool SurfacePixelDataMatchesBytes(SkSurface* surface, FML_LOG(ERROR) << "SkImage pixel data didn't match bytes."; { - const uint8_t* addr = (const uint8_t*)pixmap.addr(); + const uint8_t* addr = static_cast(pixmap.addr()); std::stringstream stream; for (size_t i = 0; i < pixmap.computeByteSize(); ++i) { stream << "0x" << std::setfill('0') << std::setw(2) << std::uppercase @@ -255,7 +256,8 @@ void FilterMutationsByType( const FlutterPlatformViewMutation** mutations, size_t count, FlutterPlatformViewMutationType type, - std::function handler) { + const std::function& + handler) { if (mutations == nullptr) { return; } @@ -273,7 +275,8 @@ void FilterMutationsByType( void FilterMutationsByType( const FlutterPlatformView* view, FlutterPlatformViewMutationType type, - std::function handler) { + const std::function& + handler) { return FilterMutationsByType(view->mutations, view->mutations_count, type, handler); } diff --git a/shell/platform/embedder/tests/embedder_unittests_util.h b/shell/platform/embedder/tests/embedder_unittests_util.h index f888aa349068f..cbc189269008c 100644 --- a/shell/platform/embedder/tests/embedder_unittests_util.h +++ b/shell/platform/embedder/tests/embedder_unittests_util.h @@ -23,7 +23,7 @@ namespace testing { sk_sp CreateRenderSurface(const FlutterLayer& layer, GrDirectContext* context); -bool RasterImagesAreSame(sk_sp a, sk_sp b); +bool RasterImagesAreSame(const sk_sp& a, const sk_sp& b); /// @brief Prepends a prefix to the name which is unique to the test /// context type. This is useful for tests that use @@ -61,10 +61,10 @@ void ConfigureBackingStore(FlutterBackingStore& backing_store, bool WriteImageToDisk(const fml::UniqueFD& directory, const std::string& name, - sk_sp image); + const sk_sp& image); bool ImageMatchesFixture(const std::string& fixture_file_name, - sk_sp scene_image); + const sk_sp& scene_image); bool ImageMatchesFixture(const std::string& fixture_file_name, std::future>& scene_image); @@ -79,12 +79,14 @@ void FilterMutationsByType( const FlutterPlatformViewMutation** mutations, size_t count, FlutterPlatformViewMutationType type, - std::function handler); + const std::function& + handler); void FilterMutationsByType( const FlutterPlatformView* view, FlutterPlatformViewMutationType type, - std::function handler); + const std::function& + handler); SkMatrix GetTotalMutationTransformationMatrix( const FlutterPlatformViewMutation** mutations, diff --git a/shell/platform/fuchsia/dart-pkg/fuchsia/lib/fuchsia.dart b/shell/platform/fuchsia/dart-pkg/fuchsia/lib/fuchsia.dart index ff0ade3a36c7f..cfd2f2e7e071e 100644 --- a/shell/platform/fuchsia/dart-pkg/fuchsia/lib/fuchsia.dart +++ b/shell/platform/fuchsia/dart-pkg/fuchsia/lib/fuchsia.dart @@ -59,7 +59,8 @@ class MxStartupInfo { } } -void _setReturnCode(int returnCode) native 'SetReturnCode'; +@pragma('vm:external-name', 'SetReturnCode') +external void _setReturnCode(int returnCode); void exit(int returnCode) { _setReturnCode(returnCode); diff --git a/shell/platform/fuchsia/dart-pkg/zircon/lib/src/handle.dart b/shell/platform/fuchsia/dart-pkg/zircon/lib/src/handle.dart index d4ba29a1392dd..adfac800bc986 100644 --- a/shell/platform/fuchsia/dart-pkg/zircon/lib/src/handle.dart +++ b/shell/platform/fuchsia/dart-pkg/zircon/lib/src/handle.dart @@ -17,11 +17,14 @@ class Handle extends NativeFieldWrapperClass1 { factory Handle.invalid() { return _createInvalid(); } - static Handle _createInvalid() native 'Handle_CreateInvalid'; + @pragma('vm:external-name', 'Handle_CreateInvalid') + external static Handle _createInvalid(); - int get handle native 'Handle_handle'; + @pragma('vm:external-name', 'Handle_handle') + external int get handle; - int get koid native 'Handle_koid'; + @pragma('vm:external-name', 'Handle_koid') + external int get koid; @override String toString() => 'Handle($handle)'; @@ -36,14 +39,18 @@ class Handle extends NativeFieldWrapperClass1 { int get hashCode => handle.hashCode; // Common handle operations. - bool get isValid native 'Handle_is_valid'; - int close() native 'Handle_Close'; - HandleWaiter asyncWait(int signals, AsyncWaitCallback callback) - native 'Handle_AsyncWait'; + @pragma('vm:external-name', 'Handle_is_valid') + external bool get isValid; + @pragma('vm:external-name', 'Handle_Close') + external int close(); + @pragma('vm:external-name', 'Handle_AsyncWait') + external HandleWaiter asyncWait(int signals, AsyncWaitCallback callback); - Handle duplicate(int rights) native 'Handle_Duplicate'; + @pragma('vm:external-name', 'Handle_Duplicate') + external Handle duplicate(int rights); - Handle replace(int rights) native 'Handle_Replace'; + @pragma('vm:external-name', 'Handle_Replace') + external Handle replace(int rights); } @pragma('vm:entry-point') diff --git a/shell/platform/fuchsia/dart-pkg/zircon/lib/src/handle_disposition.dart b/shell/platform/fuchsia/dart-pkg/zircon/lib/src/handle_disposition.dart index 3a8fcb074f4d2..bd3fa0363a70f 100644 --- a/shell/platform/fuchsia/dart-pkg/zircon/lib/src/handle_disposition.dart +++ b/shell/platform/fuchsia/dart-pkg/zircon/lib/src/handle_disposition.dart @@ -14,14 +14,19 @@ class HandleDisposition extends NativeFieldWrapperClass1 { _constructor(operation, handle, type, rights); } - void _constructor(int operation, Handle handle, int type, int rights) - native 'HandleDisposition_constructor'; + @pragma('vm:external-name', 'HandleDisposition_constructor') + external void _constructor(int operation, Handle handle, int type, int rights); - int get operation native 'HandleDisposition_operation'; - Handle get handle native 'HandleDisposition_handle'; - int get type native 'HandleDisposition_type'; - int get rights native 'HandleDisposition_rights'; - int get result native 'HandleDisposition_result'; + @pragma('vm:external-name', 'HandleDisposition_operation') + external int get operation; + @pragma('vm:external-name', 'HandleDisposition_handle') + external Handle get handle; + @pragma('vm:external-name', 'HandleDisposition_type') + external int get type; + @pragma('vm:external-name', 'HandleDisposition_rights') + external int get rights; + @pragma('vm:external-name', 'HandleDisposition_result') + external int get result; @override String toString() => diff --git a/shell/platform/fuchsia/dart-pkg/zircon/lib/src/handle_waiter.dart b/shell/platform/fuchsia/dart-pkg/zircon/lib/src/handle_waiter.dart index 3b1a914f42240..dba823a13bb47 100644 --- a/shell/platform/fuchsia/dart-pkg/zircon/lib/src/handle_waiter.dart +++ b/shell/platform/fuchsia/dart-pkg/zircon/lib/src/handle_waiter.dart @@ -15,5 +15,6 @@ class HandleWaiter extends NativeFieldWrapperClass1 { @pragma('vm:entry-point') HandleWaiter._(); - void cancel() native 'HandleWaiter_Cancel'; + @pragma('vm:external-name', 'HandleWaiter_Cancel') + external void cancel(); } diff --git a/shell/platform/fuchsia/dart-pkg/zircon/lib/src/system.dart b/shell/platform/fuchsia/dart-pkg/zircon/lib/src/system.dart index 5e9eaf614bc10..34e7f08c2d8be 100644 --- a/shell/platform/fuchsia/dart-pkg/zircon/lib/src/system.dart +++ b/shell/platform/fuchsia/dart-pkg/zircon/lib/src/system.dart @@ -196,44 +196,48 @@ class System extends NativeFieldWrapperClass1 { System._(); // Channel operations. - static HandlePairResult channelCreate([int options = 0]) - native 'System_ChannelCreate'; - static HandleResult channelFromFile(String path) - native 'System_ChannelFromFile'; - static int connectToService(String path, Handle channel) - native 'System_ConnectToService'; - static int channelWrite(Handle channel, ByteData data, List handles) - native 'System_ChannelWrite'; - static int channelWriteEtc(Handle channel, ByteData data, List handleDispositions) - native 'System_ChannelWriteEtc'; - static ReadResult channelQueryAndRead(Handle channel) - native 'System_ChannelQueryAndRead'; - static ReadEtcResult channelQueryAndReadEtc(Handle channel) - native 'System_ChannelQueryAndReadEtc'; + @pragma('vm:external-name', 'System_ChannelCreate') + external static HandlePairResult channelCreate([int options = 0]); + @pragma('vm:external-name', 'System_ChannelFromFile') + external static HandleResult channelFromFile(String path); + @pragma('vm:external-name', 'System_ConnectToService') + external static int connectToService(String path, Handle channel); + @pragma('vm:external-name', 'System_ChannelWrite') + external static int channelWrite(Handle channel, ByteData data, List handles); + @pragma('vm:external-name', 'System_ChannelWriteEtc') + external static int channelWriteEtc(Handle channel, ByteData data, List handleDispositions); + @pragma('vm:external-name', 'System_ChannelQueryAndRead') + external static ReadResult channelQueryAndRead(Handle channel); + @pragma('vm:external-name', 'System_ChannelQueryAndReadEtc') + external static ReadEtcResult channelQueryAndReadEtc(Handle channel); // Eventpair operations. - static HandlePairResult eventpairCreate([int options = 0]) - native 'System_EventpairCreate'; + @pragma('vm:external-name', 'System_EventpairCreate') + external static HandlePairResult eventpairCreate([int options = 0]); // Socket operations. - static HandlePairResult socketCreate([int options = 0]) - native 'System_SocketCreate'; - static WriteResult socketWrite(Handle socket, ByteData data, int options) - native 'System_SocketWrite'; - static ReadResult socketRead(Handle socket, int size) - native 'System_SocketRead'; + @pragma('vm:external-name', 'System_SocketCreate') + external static HandlePairResult socketCreate([int options = 0]); + @pragma('vm:external-name', 'System_SocketWrite') + external static WriteResult socketWrite(Handle socket, ByteData data, int options); + @pragma('vm:external-name', 'System_SocketRead') + external static ReadResult socketRead(Handle socket, int size); // Vmo operations. - static HandleResult vmoCreate(int size, [int options = 0]) - native 'System_VmoCreate'; - static FromFileResult vmoFromFile(String path) native 'System_VmoFromFile'; - static GetSizeResult vmoGetSize(Handle vmo) native 'System_VmoGetSize'; - static int vmoSetSize(Handle vmo, int size) native 'System_VmoSetSize'; - static int vmoWrite(Handle vmo, int offset, ByteData bytes) - native 'System_VmoWrite'; - static ReadResult vmoRead(Handle vmo, int offset, int size) - native 'System_VmoRead'; - static MapResult vmoMap(Handle vmo) native 'System_VmoMap'; + @pragma('vm:external-name', 'System_VmoCreate') + external static HandleResult vmoCreate(int size, [int options = 0]); + @pragma('vm:external-name', 'System_VmoFromFile') + external static FromFileResult vmoFromFile(String path); + @pragma('vm:external-name', 'System_VmoGetSize') + external static GetSizeResult vmoGetSize(Handle vmo); + @pragma('vm:external-name', 'System_VmoSetSize') + external static int vmoSetSize(Handle vmo, int size); + @pragma('vm:external-name', 'System_VmoWrite') + external static int vmoWrite(Handle vmo, int offset, ByteData bytes); + @pragma('vm:external-name', 'System_VmoRead') + external static ReadResult vmoRead(Handle vmo, int offset, int size); + @pragma('vm:external-name', 'System_VmoMap') + external static MapResult vmoMap(Handle vmo); // Time operations. static int clockGetMonotonic() { @@ -244,7 +248,8 @@ class System extends NativeFieldWrapperClass1 { } } - static int _nativeClockGetMonotonic() native 'System_ClockGetMonotonic'; + @pragma('vm:external-name', 'System_ClockGetMonotonic') + external static int _nativeClockGetMonotonic(); // TODO(edcoyne): Remove this, it is required to safely do an API transition across repos. static int reboot() { return -2; /*ZX_ERR_NOT_SUPPORTED*/ } diff --git a/shell/platform/fuchsia/dart/BUILD.gn b/shell/platform/fuchsia/dart/BUILD.gn index 9fccac301d897..a1315a738c19a 100644 --- a/shell/platform/fuchsia/dart/BUILD.gn +++ b/shell/platform/fuchsia/dart/BUILD.gn @@ -127,7 +127,7 @@ dart_library("args") { package_root = "//third_party/dart/third_party/pkg/args" package_name = "args" - language_version = "2.12" + language_version = "2.18" deps = [] diff --git a/shell/platform/fuchsia/dart_runner/BUILD.gn b/shell/platform/fuchsia/dart_runner/BUILD.gn index 85350bd3929e2..87520ce524e0c 100644 --- a/shell/platform/fuchsia/dart_runner/BUILD.gn +++ b/shell/platform/fuchsia/dart_runner/BUILD.gn @@ -298,6 +298,20 @@ jit_runner_package("dart_jit_product_runner") { product = true } +# "OOT" copy of the runner used by tests, to avoid conflicting with the runner +# in the base fuchsia image. +# TODO(fxbug.dev/106575): Fix this with subpackages. +aot_runner_package("oot_dart_aot_runner") { + product = false +} + +# "OOT" copy of the runner used by tests, to avoid conflicting with the runner +# in the base fuchsia image. +# TODO(fxbug.dev/106575): Fix this with subpackages. +jit_runner_package("oot_dart_jit_runner") { + product = false +} + if (enable_unittests) { runner_sources("jit_runner_sources_for_test") { product = false diff --git a/shell/platform/fuchsia/dart_runner/dart_test_component_controller.cc b/shell/platform/fuchsia/dart_runner/dart_test_component_controller.cc index 5670d7306cf68..a1786e26497c5 100644 --- a/shell/platform/fuchsia/dart_runner/dart_test_component_controller.cc +++ b/shell/platform/fuchsia/dart_runner/dart_test_component_controller.cc @@ -178,7 +178,7 @@ void DartTestComponentController::SetUp() { suite_context_ = sys::ComponentContext::Create(); suite_context_->outgoing()->AddPublicService(this->GetHandler()); suite_context_->outgoing()->Serve( - start_info_.mutable_outgoing_dir()->TakeChannel(), loop_->dispatcher()); + std::move(*start_info_.mutable_outgoing_dir()), loop_->dispatcher()); loop_->Run(); } diff --git a/shell/platform/fuchsia/dart_runner/embedder/builtin.dart b/shell/platform/fuchsia/dart_runner/embedder/builtin.dart index 7972b08e0c932..996970f2e8870 100644 --- a/shell/platform/fuchsia/dart_runner/embedder/builtin.dart +++ b/shell/platform/fuchsia/dart_runner/embedder/builtin.dart @@ -20,7 +20,8 @@ void _print(arg) { } class _Logger { - static void _printString(String s) native "Logger_PrintString"; + @pragma('vm:external-name', 'Logger_PrintString') + external static void _printString(String s); } @pragma('vm:entry-point') @@ -36,7 +37,8 @@ Uri _scriptUri() { } } -void _scheduleMicrotask(void callback()) native "ScheduleMicrotask"; +@pragma('vm:external-name', 'ScheduleMicrotask') +external void _scheduleMicrotask(void callback()); @pragma('vm:entry-point') _getScheduleMicrotaskClosure() => _scheduleMicrotask; diff --git a/shell/platform/fuchsia/dart_runner/tests/README.md b/shell/platform/fuchsia/dart_runner/tests/README.md index 0bfb005e5fc6c..2509a19baafb1 100644 --- a/shell/platform/fuchsia/dart_runner/tests/README.md +++ b/shell/platform/fuchsia/dart_runner/tests/README.md @@ -1,40 +1,3 @@ # Dart Runner Tests Contains tests for the Dart Runner and their corresponding utility code - -### Running the Tests - -- The tests can be run using the Fuchsia emulator -``` -fx set workstation_eng.qemu-x64 -ffx emu start --headless -``` -- Start up the package server -``` -fx serve -``` -- Prepare the BUILD files -``` -$ENGINE_DIR/flutter/tools/gn --fuchsia --no-lto -``` -- Build the Fuchsia binary with the test directory as the target (ie. `flutter/shell/platform/fuchsia/dart_runner/tests/startup_integration_test`) -``` -ninja -C $ENGINE_DIR/out/fuchsia_debug_x64 flutter/shell/platform/fuchsia/dart_runner/tests/startup_integration_test -``` -- Deploy/publish test FAR files to Fuchsia -``` -$FUCHSIA_DIR/.jiri_root/bin/fx pm publish -a -repo $FUCHSIA_DIR/$(cat $FUCHSIA_DIR/.fx-build-dir)/amber-files -f $ENGINE_DIR/out/fuchsia_debug_x64/dart-jit-runner-integration-test-0.far -``` - -Note that some tests may have components that also need to be deployed/published (ie. `dart_jit_echo_server` also needs to be published for the Dart JIT integration test to run successfully) - -``` -$FUCHSIA_DIR/.jiri_root/bin/fx pm publish -a -repo $FUCHSIA_DIR/$(cat $FUCHSIA_DIR/.fx-build-dir)/amber-files -f $ENGINE_DIR/out/fuchsia_debug_x64/gen/flutter/shell/platform/fuchsia/dart_runner/tests/startup_integration_test/dart_jit_runner/dart_jit_echo_server/dart_jit_echo_server/dart_jit_echo_server.far -``` -- Run the test -``` -ffx test run "fuchsia-pkg://fuchsia.com/dart-jit-runner-integration-test#meta/dart-jit-runner-integration-test.cm" -``` - -Notes: -- To find the FAR files, `ls` into the output directory provided to the `ninja` command diff --git a/shell/platform/fuchsia/dart_runner/tests/startup_integration_test/BUILD.gn b/shell/platform/fuchsia/dart_runner/tests/startup_integration_test/BUILD.gn index 3ce01796bbc88..efb1d7ac29647 100644 --- a/shell/platform/fuchsia/dart_runner/tests/startup_integration_test/BUILD.gn +++ b/shell/platform/fuchsia/dart_runner/tests/startup_integration_test/BUILD.gn @@ -6,5 +6,8 @@ import("//build/fuchsia/sdk.gni") group("startup_integration_test") { testonly = true - deps = [ "dart_jit_runner:tests" ] + deps = [ + "dart_aot_runner:tests", + "dart_jit_runner:tests", + ] } diff --git a/shell/platform/fuchsia/dart_runner/tests/startup_integration_test/dart_aot_runner/BUILD.gn b/shell/platform/fuchsia/dart_runner/tests/startup_integration_test/dart_aot_runner/BUILD.gn new file mode 100644 index 0000000000000..43e68bab0ccdd --- /dev/null +++ b/shell/platform/fuchsia/dart_runner/tests/startup_integration_test/dart_aot_runner/BUILD.gn @@ -0,0 +1,47 @@ +# Copyright 2013 The Flutter Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +import("//build/fuchsia/sdk.gni") + +import("//flutter/tools/fuchsia/dart/dart_component.gni") +import("//flutter/tools/fuchsia/fidl/fidl.gni") +import("//flutter/tools/fuchsia/fuchsia_archive.gni") + +group("tests") { + testonly = true + deps = [ ":dart-aot-runner-integration-test" ] +} + +executable("dart-aot-runner-integration-test-bin") { + testonly = true + + output_name = "dart-aot-runner-integration-test" + + sources = [ "dart-aot-runner-integration-test.cc" ] + + # This is needed for //third_party/googletest for linking zircon symbols. + libs = [ "$fuchsia_sdk_path/arch/$target_cpu/sysroot/lib/libzircon.so" ] + + deps = [ + "$fuchsia_sdk_root/fidl:fuchsia.logger", + "$fuchsia_sdk_root/fidl:fuchsia.tracing.provider", + "$fuchsia_sdk_root/pkg:async", + "$fuchsia_sdk_root/pkg:async-loop-testing", + "$fuchsia_sdk_root/pkg:fidl_cpp", + "$fuchsia_sdk_root/pkg:sys_component_cpp_testing", + "$fuchsia_sdk_root/pkg:zx", + "//flutter/fml", + "//flutter/shell/platform/fuchsia/dart_runner/tests/fidl/flutter.example.echo:echo", + "//flutter/shell/platform/fuchsia/dart_runner/tests/startup_integration_test/dart_echo_server:aot_echo_package", + "//third_party/googletest:gtest", + "//third_party/googletest:gtest_main", + ] +} + +fuchsia_test_archive("dart-aot-runner-integration-test") { + deps = [ ":dart-aot-runner-integration-test-bin" ] + + binary = "$target_name" + cml_file = rebase_path("meta/$target_name.cml") +} diff --git a/shell/platform/fuchsia/dart_runner/tests/startup_integration_test/dart_aot_runner/README.md b/shell/platform/fuchsia/dart_runner/tests/startup_integration_test/dart_aot_runner/README.md new file mode 100644 index 0000000000000..53184dc437218 --- /dev/null +++ b/shell/platform/fuchsia/dart_runner/tests/startup_integration_test/dart_aot_runner/README.md @@ -0,0 +1,36 @@ +# dart_aot_runner + +Contains the integration test for the Dart AOT runner. + +### Running Tests + +#### Setup emulator and PM serve +``` +fx set workstation_eng.qemu-x64 +ffx emu start --headless + +fx serve +``` + +#### Prepare build files and build binary +``` +$ENGINE_DIR/flutter/tools/gn --fuchsia --no-lto --runtime-mode=profile +ninja -C $ENGINE_DIR/out/fuchsia_profile_x64 flutter/shell/platform/fuchsia fuchsia_tests +``` + +#### Publish files to PM +``` +$FUCHSIA_DIR/.jiri_root/bin/fx pm publish -a -repo $FUCHSIA_DIR/$(cat $FUCHSIA_DIR/.fx-build-dir)/amber-files -f $ENGINE_DIR/out/fuchsia_profile_x64/dart-aot-runner-integration-test-0.far + +$FUCHSIA_DIR/.jiri_root/bin/fx pm publish -a -repo $FUCHSIA_DIR/$(cat $FUCHSIA_DIR/.fx-build-dir)/amber-files -f $ENGINE_DIR/out/fuchsia_profile_x64/oot_dart_aot_runner-0.far + +$FUCHSIA_DIR/.jiri_root/bin/fx pm publish -a -repo $FUCHSIA_DIR/$(cat $FUCHSIA_DIR/.fx-build-dir)/amber-files -f $ENGINE_DIR/out/fuchsia_profile_x64/gen/flutter/shell/platform/fuchsia/dart_runner/tests/startup_integration_test/dart_echo_server/dart_aot_echo_server/dart_aot_echo_server.far +``` + +#### Run test +``` +ffx test run "fuchsia-pkg://fuchsia.com/dart-aot-runner-integration-test#meta/dart-aot-runner-integration-test.cm" +``` + +## Notes +The `profile` runtime should be used when running the `dart_aot_runner` integration test. Snapshots will fail to generate or generate incorrectly if the wrong runtime is used. diff --git a/shell/platform/fuchsia/dart_runner/tests/startup_integration_test/dart_aot_runner/dart-aot-runner-integration-test.cc b/shell/platform/fuchsia/dart_runner/tests/startup_integration_test/dart_aot_runner/dart-aot-runner-integration-test.cc new file mode 100644 index 0000000000000..fff8d443e0315 --- /dev/null +++ b/shell/platform/fuchsia/dart_runner/tests/startup_integration_test/dart_aot_runner/dart-aot-runner-integration-test.cc @@ -0,0 +1,112 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// The generated C++ bindings for the Echo FIDL protocol +#include + +#include + +#include +#include +#include + +#include "flutter/fml/logging.h" +#include "gtest/gtest.h" + +namespace dart_aot_runner_testing::testing { +namespace { + +// Types imported for the realm_builder library +using component_testing::ChildOptions; +using component_testing::ChildRef; +using component_testing::Directory; +using component_testing::ParentRef; +using component_testing::Protocol; +using component_testing::RealmBuilder; +using component_testing::RealmRoot; +using component_testing::Route; + +constexpr auto kDartRunnerEnvironment = "dart_runner_env"; + +constexpr auto kDartAotRunner = "dart_aot_runner"; +constexpr auto kDartAotRunnerRef = ChildRef{kDartAotRunner}; +constexpr auto kDartAotRunnerUrl = + "fuchsia-pkg://fuchsia.com/oot_dart_aot_runner#meta/" + "dart_aot_runner.cm"; + +constexpr auto kDartAotEchoServer = "dart_aot_echo_server"; +constexpr auto kDartAotEchoServerRef = ChildRef{kDartAotEchoServer}; +constexpr auto kDartAotEchoServerUrl = + "fuchsia-pkg://fuchsia.com/dart_aot_echo_server#meta/" + "dart_aot_echo_server.cm"; + +class RealmBuilderTest : public ::loop_fixture::RealLoop, + public ::testing::Test { + public: + RealmBuilderTest() = default; +}; + +TEST_F(RealmBuilderTest, DartRunnerStartsUp) { + auto realm_builder = RealmBuilder::Create(); + // Add Dart AOT runner as a child of RealmBuilder + realm_builder.AddChild(kDartAotRunner, kDartAotRunnerUrl); + + // Add environment providing the Dart AOT runner + fuchsia::component::decl::Environment dart_runner_environment; + dart_runner_environment.set_name(kDartRunnerEnvironment); + dart_runner_environment.set_extends( + fuchsia::component::decl::EnvironmentExtends::REALM); + dart_runner_environment.set_runners({}); + auto environment_runners = dart_runner_environment.mutable_runners(); + + fuchsia::component::decl::RunnerRegistration dart_aot_runner_reg; + dart_aot_runner_reg.set_source(fuchsia::component::decl::Ref::WithChild( + fuchsia::component::decl::ChildRef{.name = kDartAotRunner})); + dart_aot_runner_reg.set_source_name(kDartAotRunner); + dart_aot_runner_reg.set_target_name(kDartAotRunner); + environment_runners->push_back(std::move(dart_aot_runner_reg)); + + auto realm_decl = realm_builder.GetRealmDecl(); + if (!realm_decl.has_environments()) { + realm_decl.set_environments({}); + } + auto realm_environments = realm_decl.mutable_environments(); + realm_environments->push_back(std::move(dart_runner_environment)); + realm_builder.ReplaceRealmDecl(std::move(realm_decl)); + + // Add Dart server component as a child of Realm Builder + realm_builder.AddChild(kDartAotEchoServer, kDartAotEchoServerUrl, + ChildOptions{.environment = kDartRunnerEnvironment}); + + // Route base capabilities to the Dart AOT runner + realm_builder.AddRoute( + Route{.capabilities = {Protocol{"fuchsia.logger.LogSink"}, + Protocol{"fuchsia.tracing.provider.Registry"}, + Protocol{"fuchsia.posix.socket.Provider"}, + Protocol{"fuchsia.intl.PropertyProvider"}, + Protocol{"fuchsia.vulkan.loader.Loader"}, + Directory{"config-data"}}, + .source = ParentRef(), + .targets = {kDartAotRunnerRef, kDartAotEchoServerRef}}); + + // Route the Echo FIDL protocol, this allows the Dart echo server to + // communicate with the Realm Builder + realm_builder.AddRoute( + Route{.capabilities = {Protocol{"flutter.example.echo.Echo"}}, + .source = kDartAotEchoServerRef, + .targets = {ParentRef()}}); + + // Build the Realm with the provided child and protocols + auto realm = realm_builder.Build(dispatcher()); + FML_LOG(INFO) << "Realm built: " << realm.GetChildName(); + // Connect to the Dart echo server + auto echo = realm.ConnectSync(); + fidl::StringPtr response; + // Attempt to ping the Dart echo server for a response + echo->EchoString("hello", &response); + ASSERT_EQ(response, "hello"); +} + +} // namespace +} // namespace dart_aot_runner_testing::testing diff --git a/shell/platform/fuchsia/dart_runner/tests/startup_integration_test/dart_aot_runner/meta/dart-aot-runner-integration-test.cml b/shell/platform/fuchsia/dart_runner/tests/startup_integration_test/dart_aot_runner/meta/dart-aot-runner-integration-test.cml new file mode 100644 index 0000000000000..9ef643ec9a9c6 --- /dev/null +++ b/shell/platform/fuchsia/dart_runner/tests/startup_integration_test/dart_aot_runner/meta/dart-aot-runner-integration-test.cml @@ -0,0 +1,40 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +{ + include: [ + "gtest_runner.shard.cml", + "sys/component/realm_builder_absolute.shard.cml", + + // This test needs both the vulkan facet and the hermetic-tier-2 facet, + // so we are forced to make it a system test. + "sys/testing/system-test.shard.cml", + ], + program: { + binary: "bin/app", + }, + offer: [ + { + // Offer capabilities needed by components in this test realm. + // Keep it minimal, describe only what's actually needed. + protocol: [ + "fuchsia.logger.LogSink", + "fuchsia.sysmem.Allocator", + "fuchsia.tracing.provider.Registry", + "fuchsia.vulkan.loader.Loader", + "fuchsia.posix.socket.Provider", + "fuchsia.intl.PropertyProvider", + ], + from: "parent", + to: "#realm_builder", + }, + { + directory: "pkg", + subdir: "config", + as: "config-data", + from: "framework", + to: "#realm_builder", + }, + ], +} diff --git a/shell/platform/fuchsia/dart_runner/tests/startup_integration_test/dart_aot_runner/meta/gtest_runner.shard.cml b/shell/platform/fuchsia/dart_runner/tests/startup_integration_test/dart_aot_runner/meta/gtest_runner.shard.cml new file mode 100644 index 0000000000000..f6cfe507747ad --- /dev/null +++ b/shell/platform/fuchsia/dart_runner/tests/startup_integration_test/dart_aot_runner/meta/gtest_runner.shard.cml @@ -0,0 +1,18 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +{ + program: { + runner: "gtest_runner", + }, + capabilities: [ + { protocol: "fuchsia.test.Suite" }, + ], + expose: [ + { + protocol: "fuchsia.test.Suite", + from: "self", + }, + ], +} diff --git a/shell/platform/fuchsia/dart_runner/tests/startup_integration_test/dart_echo_server/BUILD.gn b/shell/platform/fuchsia/dart_runner/tests/startup_integration_test/dart_echo_server/BUILD.gn new file mode 100644 index 0000000000000..c6b7622ca9b9f --- /dev/null +++ b/shell/platform/fuchsia/dart_runner/tests/startup_integration_test/dart_echo_server/BUILD.gn @@ -0,0 +1,78 @@ +# Copyright 2013 The Flutter Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +import("//build/fuchsia/sdk.gni") + +import("//flutter/tools/fuchsia/dart/dart_component.gni") +import("//flutter/tools/fuchsia/dart/dart_library.gni") +import("//flutter/tools/fuchsia/gn-sdk/package.gni") + +dart_library("lib") { + testonly = true + package_name = "dart_echo_server" + null_safe = true + + source_dir = "." + sources = [ "main.dart" ] + + deps = [ + "//flutter/shell/platform/fuchsia/dart_runner/tests/fidl/flutter.example.echo:echo", + "//flutter/tools/fuchsia/dart:fidl", + "//flutter/tools/fuchsia/dart:fuchsia_services", + "//flutter/tools/fuchsia/fidl:fuchsia.logger", + "//flutter/tools/fuchsia/fidl:fuchsia.test", + ] +} + +# Dart component that serves the test Echo FIDL protocol, built using the Dart AOT runner +dart_component("aot_component") { + testonly = true + null_safe = true + + main_package = "dart_echo_server" + manifest = "meta/dart-aot-echo-server.cml" + component_name = "dart_aot_echo_server" + + deps = [ ":lib" ] +} + +# Dart component that serves the test Echo FIDL protocol, built using the Dart AOT runner +dart_component("jit_component") { + testonly = true + null_safe = true + + main_package = "dart_echo_server" + manifest = "meta/dart-jit-echo-server.cml" + component_name = "dart_jit_echo_server" + + deps = [ ":lib" ] +} + +fuchsia_package("aot_echo_package") { + testonly = true + + package_name = "dart_aot_echo_server" + deps = [ + ":aot_component", + + # "OOT" copy of the runner used by tests, to avoid conflicting with the + # runners in the base fuchsia image. + # TODO(fxbug.dev/106575): Fix this with subpackages. + "//flutter/shell/platform/fuchsia/dart_runner:oot_dart_aot_runner", + ] +} + +fuchsia_package("jit_echo_package") { + testonly = true + + package_name = "dart_jit_echo_server" + deps = [ + ":jit_component", + + # "OOT" copy of the runner used by tests, to avoid conflicting with the + # runners in the base fuchsia image. + # TODO(fxbug.dev/106575): Fix this with subpackages. + "//flutter/shell/platform/fuchsia/dart_runner:oot_dart_jit_runner", + ] +} diff --git a/shell/platform/fuchsia/dart_runner/tests/startup_integration_test/dart_echo_server/README.md b/shell/platform/fuchsia/dart_runner/tests/startup_integration_test/dart_echo_server/README.md new file mode 100644 index 0000000000000..7e91d785abf37 --- /dev/null +++ b/shell/platform/fuchsia/dart_runner/tests/startup_integration_test/dart_echo_server/README.md @@ -0,0 +1,7 @@ +# dart_echo_server + +Contains the Echo servers for the integration tests. There are currently two outputs: +- `dart-aot-echo-server` +- `dart-jit-echo-server` + +The outputs run with their respective Dart runners and are consumed by their respective integration test. diff --git a/shell/platform/fuchsia/dart_runner/tests/startup_integration_test/dart_jit_runner/dart_jit_echo_server/main.dart b/shell/platform/fuchsia/dart_runner/tests/startup_integration_test/dart_echo_server/main.dart similarity index 100% rename from shell/platform/fuchsia/dart_runner/tests/startup_integration_test/dart_jit_runner/dart_jit_echo_server/main.dart rename to shell/platform/fuchsia/dart_runner/tests/startup_integration_test/dart_echo_server/main.dart diff --git a/shell/platform/fuchsia/dart_runner/tests/startup_integration_test/dart_echo_server/meta/dart-aot-echo-server.cml b/shell/platform/fuchsia/dart_runner/tests/startup_integration_test/dart_echo_server/meta/dart-aot-echo-server.cml new file mode 100644 index 0000000000000..8f9954f736dd9 --- /dev/null +++ b/shell/platform/fuchsia/dart_runner/tests/startup_integration_test/dart_echo_server/meta/dart-aot-echo-server.cml @@ -0,0 +1,21 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +{ + include: [ "syslog/client.shard.cml" ], + program: { + data: "data/dart-aot-echo-server", + runner: "dart_aot_runner", + }, + // Capabilities provided by this component. + capabilities: [ + { protocol: "flutter.example.echo.Echo" }, + ], + expose: [ + { + protocol: "flutter.example.echo.Echo", + from: "self", + }, + ], +} diff --git a/shell/platform/fuchsia/dart_runner/tests/startup_integration_test/dart_jit_runner/dart_jit_echo_server/meta/dart-jit-echo-server.cml b/shell/platform/fuchsia/dart_runner/tests/startup_integration_test/dart_echo_server/meta/dart-jit-echo-server.cml similarity index 92% rename from shell/platform/fuchsia/dart_runner/tests/startup_integration_test/dart_jit_runner/dart_jit_echo_server/meta/dart-jit-echo-server.cml rename to shell/platform/fuchsia/dart_runner/tests/startup_integration_test/dart_echo_server/meta/dart-jit-echo-server.cml index 7d5d684507154..9687045f14285 100644 --- a/shell/platform/fuchsia/dart_runner/tests/startup_integration_test/dart_jit_runner/dart_jit_echo_server/meta/dart-jit-echo-server.cml +++ b/shell/platform/fuchsia/dart_runner/tests/startup_integration_test/dart_echo_server/meta/dart-jit-echo-server.cml @@ -5,6 +5,7 @@ { include: [ "syslog/client.shard.cml" ], program: { + data: "data/dart-jit-echo-server", runner: "dart_jit_runner", }, // Capabilities provided by this component. diff --git a/shell/platform/fuchsia/dart_runner/tests/startup_integration_test/dart_jit_runner/BUILD.gn b/shell/platform/fuchsia/dart_runner/tests/startup_integration_test/dart_jit_runner/BUILD.gn index d918de9415f4c..b464b3f0213ef 100644 --- a/shell/platform/fuchsia/dart_runner/tests/startup_integration_test/dart_jit_runner/BUILD.gn +++ b/shell/platform/fuchsia/dart_runner/tests/startup_integration_test/dart_jit_runner/BUILD.gn @@ -31,19 +31,16 @@ executable("dart-jit-runner-integration-test-bin") { "$fuchsia_sdk_root/pkg:fidl_cpp", "$fuchsia_sdk_root/pkg:sys_component_cpp_testing", "$fuchsia_sdk_root/pkg:zx", - "dart_jit_echo_server:package", "//flutter/fml", "//flutter/shell/platform/fuchsia/dart_runner/tests/fidl/flutter.example.echo:echo", + "//flutter/shell/platform/fuchsia/dart_runner/tests/startup_integration_test/dart_echo_server:jit_echo_package", "//third_party/googletest:gtest", "//third_party/googletest:gtest_main", ] } fuchsia_test_archive("dart-jit-runner-integration-test") { - deps = [ - ":dart-jit-runner-integration-test-bin", - "dart_jit_echo_server:package", - ] + deps = [ ":dart-jit-runner-integration-test-bin" ] binary = "$target_name" cml_file = rebase_path("meta/$target_name.cml") diff --git a/shell/platform/fuchsia/dart_runner/tests/startup_integration_test/dart_jit_runner/README.md b/shell/platform/fuchsia/dart_runner/tests/startup_integration_test/dart_jit_runner/README.md index be30e687b3fd6..98b52069f1dfa 100644 --- a/shell/platform/fuchsia/dart_runner/tests/startup_integration_test/dart_jit_runner/README.md +++ b/shell/platform/fuchsia/dart_runner/tests/startup_integration_test/dart_jit_runner/README.md @@ -1,3 +1,36 @@ # dart_jit_runner -Contains the integration test for the Dart JIT runner. The Dart Echo server is launched with a JIT runner. +Contains the integration test for the Dart JIT runner. + +### Running Tests + +#### Setup emulator and PM serve +``` +fx set workstation_eng.qemu-x64 +ffx emu start --headless + +fx serve +``` + +#### Prepare build files and build binary +``` +$ENGINE_DIR/flutter/tools/gn --fuchsia --no-lto +ninja -C $ENGINE_DIR/out/fuchsia_debug_x64 flutter/shell/platform/fuchsia fuchsia_tests +``` + +#### Publish files to PM +``` +$FUCHSIA_DIR/.jiri_root/bin/fx pm publish -a -repo $FUCHSIA_DIR/$(cat $FUCHSIA_DIR/.fx-build-dir)/amber-files -f $ENGINE_DIR/out/fuchsia_debug_x64/dart-jit-runner-integration-test-0.far + +$FUCHSIA_DIR/.jiri_root/bin/fx pm publish -a -repo $FUCHSIA_DIR/$(cat $FUCHSIA_DIR/.fx-build-dir)/amber-files -f $ENGINE_DIR/out/fuchsia_debug_x64/oot_dart_jit_runner-0.far + +$FUCHSIA_DIR/.jiri_root/bin/fx pm publish -a -repo $FUCHSIA_DIR/$(cat $FUCHSIA_DIR/.fx-build-dir)/amber-files -f $ENGINE_DIR/out/fuchsia_debug_x64/gen/flutter/shell/platform/fuchsia/dart_runner/tests/startup_integration_test/dart_echo_server/dart_jit_echo_server/dart_jit_echo_server.far +``` + +#### Run test +``` +ffx test run "fuchsia-pkg://fuchsia.com/dart-jit-runner-integration-test#meta/dart-jit-runner-integration-test.cm" +``` + +## Notes +The `debug` runtime should be used when running the `dart_jit_runner` integration test. Snapshots will fail to generate or generate incorrectly if the wrong runtime is used. diff --git a/shell/platform/fuchsia/dart_runner/tests/startup_integration_test/dart_jit_runner/dart-jit-runner-integration-test.cc b/shell/platform/fuchsia/dart_runner/tests/startup_integration_test/dart_jit_runner/dart-jit-runner-integration-test.cc index b7d61132e36fd..0c24533459e11 100644 --- a/shell/platform/fuchsia/dart_runner/tests/startup_integration_test/dart_jit_runner/dart-jit-runner-integration-test.cc +++ b/shell/platform/fuchsia/dart_runner/tests/startup_integration_test/dart_jit_runner/dart-jit-runner-integration-test.cc @@ -5,6 +5,8 @@ // The generated C++ bindings for the Echo FIDL protocol #include +#include + #include #include #include @@ -15,13 +17,30 @@ namespace dart_jit_runner_testing::testing { namespace { +// Types imported for the realm_builder library +using component_testing::ChildOptions; using component_testing::ChildRef; +using component_testing::Directory; using component_testing::ParentRef; using component_testing::Protocol; using component_testing::RealmBuilder; using component_testing::RealmRoot; using component_testing::Route; +constexpr auto kDartRunnerEnvironment = "dart_runner_env"; + +constexpr auto kDartJitRunner = "dart_jit_runner"; +constexpr auto kDartJitRunnerRef = ChildRef{kDartJitRunner}; +constexpr auto kDartJitRunnerUrl = + "fuchsia-pkg://fuchsia.com/oot_dart_jit_runner#meta/" + "dart_jit_runner.cm"; + +constexpr auto kDartJitEchoServer = "dart_jit_echo_server"; +constexpr auto kDartJitEchoServerRef = ChildRef{kDartJitEchoServer}; +constexpr auto kDartJitEchoServerUrl = + "fuchsia-pkg://fuchsia.com/dart_jit_echo_server#meta/" + "dart_jit_echo_server.cm"; + class RealmBuilderTest : public ::loop_fixture::RealLoop, public ::testing::Test { public: @@ -30,20 +49,52 @@ class RealmBuilderTest : public ::loop_fixture::RealLoop, TEST_F(RealmBuilderTest, DartRunnerStartsUp) { auto realm_builder = RealmBuilder::Create(); + // Add Dart JIT runner as a child of RealmBuilder + realm_builder.AddChild(kDartJitRunner, kDartJitRunnerUrl); + + // Add environment providing the Dart JIT runner + fuchsia::component::decl::Environment dart_runner_environment; + dart_runner_environment.set_name(kDartRunnerEnvironment); + dart_runner_environment.set_extends( + fuchsia::component::decl::EnvironmentExtends::REALM); + dart_runner_environment.set_runners({}); + auto environment_runners = dart_runner_environment.mutable_runners(); + + fuchsia::component::decl::RunnerRegistration dart_jit_runner_reg; + dart_jit_runner_reg.set_source(fuchsia::component::decl::Ref::WithChild( + fuchsia::component::decl::ChildRef{.name = kDartJitRunner})); + dart_jit_runner_reg.set_source_name(kDartJitRunner); + dart_jit_runner_reg.set_target_name(kDartJitRunner); + environment_runners->push_back(std::move(dart_jit_runner_reg)); + auto realm_decl = realm_builder.GetRealmDecl(); + if (!realm_decl.has_environments()) { + realm_decl.set_environments({}); + } + auto realm_environments = realm_decl.mutable_environments(); + realm_environments->push_back(std::move(dart_runner_environment)); + realm_builder.ReplaceRealmDecl(std::move(realm_decl)); + // Add Dart server component as a child of Realm Builder - realm_builder.AddChild("hello_world", - "fuchsia-pkg://fuchsia.com/dart_jit_echo_server#meta/" - "dart_jit_echo_server.cm"); + realm_builder.AddChild(kDartJitEchoServer, kDartJitEchoServerUrl, + ChildOptions{.environment = kDartRunnerEnvironment}); + + // Route base capabilities to the Dart JIT runner realm_builder.AddRoute( - Route{.capabilities = {Protocol{"fuchsia.logger.LogSink"}}, + Route{.capabilities = {Protocol{"fuchsia.logger.LogSink"}, + Protocol{"fuchsia.tracing.provider.Registry"}, + Protocol{"fuchsia.posix.socket.Provider"}, + Protocol{"fuchsia.intl.PropertyProvider"}, + Directory{"config-data"}}, .source = ParentRef(), - .targets = {ChildRef{"hello_world"}}}); + .targets = {kDartJitRunnerRef, kDartJitEchoServerRef}}); + // Route the Echo FIDL protocol, this allows the Dart echo server to // communicate with the Realm Builder realm_builder.AddRoute( Route{.capabilities = {Protocol{"flutter.example.echo.Echo"}}, - .source = ChildRef{"hello_world"}, + .source = kDartJitEchoServerRef, .targets = {ParentRef()}}); + // Build the Realm with the provided child and protocols auto realm = realm_builder.Build(dispatcher()); FML_LOG(INFO) << "Realm built: " << realm.GetChildName(); diff --git a/shell/platform/fuchsia/dart_runner/tests/startup_integration_test/dart_jit_runner/dart_jit_echo_server/BUILD.gn b/shell/platform/fuchsia/dart_runner/tests/startup_integration_test/dart_jit_runner/dart_jit_echo_server/BUILD.gn deleted file mode 100644 index bf5bc016ab6b6..0000000000000 --- a/shell/platform/fuchsia/dart_runner/tests/startup_integration_test/dart_jit_runner/dart_jit_echo_server/BUILD.gn +++ /dev/null @@ -1,45 +0,0 @@ -# Copyright 2013 The Flutter Authors. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -import("//build/fuchsia/sdk.gni") - -import("//flutter/tools/fuchsia/dart/dart_component.gni") -import("//flutter/tools/fuchsia/dart/dart_library.gni") -import("//flutter/tools/fuchsia/gn-sdk/package.gni") - -dart_library("lib") { - testonly = true - package_name = "dart_jit_echo_server" - null_safe = true - - source_dir = "." - sources = [ "main.dart" ] - - deps = [ - "//flutter/shell/platform/fuchsia/dart_runner/tests/fidl/flutter.example.echo:echo", - "//flutter/tools/fuchsia/dart:fidl", - "//flutter/tools/fuchsia/dart:fuchsia_services", - "//flutter/tools/fuchsia/fidl:fuchsia.logger", - "//flutter/tools/fuchsia/fidl:fuchsia.test", - ] -} - -# Dart component that serves the test Echo FIDL protocol, built using the Dart JIT runner -dart_component("component") { - testonly = true - null_safe = true - - manifest = "meta/dart-jit-echo-server.cml" - main_package = "dart_jit_echo_server" - component_name = "dart_jit_echo_server" - - deps = [ ":lib" ] -} - -fuchsia_package("package") { - testonly = true - - package_name = "dart_jit_echo_server" - deps = [ ":component" ] -} diff --git a/shell/platform/fuchsia/dart_runner/tests/startup_integration_test/dart_jit_runner/meta/dart-jit-runner-integration-test.cml b/shell/platform/fuchsia/dart_runner/tests/startup_integration_test/dart_jit_runner/meta/dart-jit-runner-integration-test.cml index af47353d2835e..9ef643ec9a9c6 100644 --- a/shell/platform/fuchsia/dart_runner/tests/startup_integration_test/dart_jit_runner/meta/dart-jit-runner-integration-test.cml +++ b/shell/platform/fuchsia/dart_runner/tests/startup_integration_test/dart_jit_runner/meta/dart-jit-runner-integration-test.cml @@ -23,9 +23,18 @@ "fuchsia.sysmem.Allocator", "fuchsia.tracing.provider.Registry", "fuchsia.vulkan.loader.Loader", + "fuchsia.posix.socket.Provider", + "fuchsia.intl.PropertyProvider", ], from: "parent", to: "#realm_builder", }, + { + directory: "pkg", + subdir: "config", + as: "config-data", + from: "framework", + to: "#realm_builder", + }, ], } diff --git a/shell/platform/fuchsia/flutter/BUILD.gn b/shell/platform/fuchsia/flutter/BUILD.gn index 01a1f2e3ce106..13e55261d92f3 100644 --- a/shell/platform/fuchsia/flutter/BUILD.gn +++ b/shell/platform/fuchsia/flutter/BUILD.gn @@ -131,13 +131,16 @@ template("runner_sources") { "//flutter/shell/common", "//flutter/shell/platform/common/client_wrapper:client_wrapper", ] + flutter_deps = [ ":fuchsia_gpu_configuration", "//flutter/assets", "//flutter/common", + "//flutter/flutter_vma:flutter_skia_vma", "//flutter/fml", "//flutter/shell/platform/common/client_wrapper:client_wrapper_library_stubs", "//flutter/vulkan", + "//flutter/vulkan/procs", ] public_deps = [ diff --git a/shell/platform/fuchsia/flutter/component_v1.cc b/shell/platform/fuchsia/flutter/component_v1.cc index b9a8674f65c0a..bc58d846538f9 100644 --- a/shell/platform/fuchsia/flutter/component_v1.cc +++ b/shell/platform/fuchsia/flutter/component_v1.cc @@ -159,16 +159,16 @@ ComponentV1::ComponentV1( continue; } - zx::channel dir; + fidl::InterfaceHandle dir; if (path == kServiceRootPath) { svc_ = std::make_unique( std::move(startup_info.flat_namespace.directories.at(i))); - dir = svc_->CloneChannel().TakeChannel(); + dir = svc_->CloneChannel(); } else { dir = std::move(startup_info.flat_namespace.directories.at(i)); } - zx_handle_t dir_handle = dir.release(); + zx_handle_t dir_handle = dir.TakeChannel().release(); if (fdio_ns_bind(fdio_ns_.get(), path.data(), dir_handle) != ZX_OK) { FML_LOG(ERROR) << "Could not bind path to namespace: " << path; zx_handle_close(dir_handle); @@ -199,7 +199,7 @@ ComponentV1::ComponentV1( outgoing_dir_->Serve(fuchsia::io::OpenFlags::RIGHT_READABLE | fuchsia::io::OpenFlags::RIGHT_WRITABLE | fuchsia::io::OpenFlags::DIRECTORY, - std::move(launch_info.directory_request)); + launch_info.directory_request.TakeChannel()); } directory_request_ = directory_ptr_.NewRequest(); diff --git a/shell/platform/fuchsia/flutter/flatland_external_view_embedder.cc b/shell/platform/fuchsia/flutter/flatland_external_view_embedder.cc index c2538feb3a22f..f31aecb683d03 100644 --- a/shell/platform/fuchsia/flutter/flatland_external_view_embedder.cc +++ b/shell/platform/fuchsia/flutter/flatland_external_view_embedder.cc @@ -36,6 +36,24 @@ FlatlandExternalViewEmbedder::FlatlandExternalViewEmbedder( root_transform_id_ = flatland_->NextTransformId(); flatland_->flatland()->CreateTransform(root_transform_id_); flatland_->flatland()->SetRootTransform(root_transform_id_); + + if (intercept_all_input) { + input_interceptor_transform_ = flatland_->NextTransformId(); + flatland_->flatland()->CreateTransform(*input_interceptor_transform_); + + flatland_->flatland()->AddChild(root_transform_id_, + *input_interceptor_transform_); + child_transforms_.emplace_back(*input_interceptor_transform_); + + // Attach full-screen hit testing shield. Note that since the hit-region + // may be transformed (translated, rotated), we do not want to set + // width/height to FLT_MAX. This will cause a numeric overflow. + flatland_->flatland()->SetHitRegions( + *input_interceptor_transform_, + {{{0, 0, kMaxHitRegionSize, kMaxHitRegionSize}, + fuchsia::ui::composition::HitTestInteraction:: + SEMANTICALLY_INVISIBLE}}); + } } FlatlandExternalViewEmbedder::~FlatlandExternalViewEmbedder() = default; @@ -336,6 +354,18 @@ void FlatlandExternalViewEmbedder::SubmitFrame( // Reset for the next pass: flatland_layer_index++; } + + // TODO(fxbug.dev/104956): Setting per-layer overlay hit region for Flatland + // external view embedder should match with what is being done in GFX + // external view embedder. + // Set up the input interceptor at the top of the + // scene, if applicable. It will capture all input, and any unwanted input + // will be reinjected into embedded views. + if (input_interceptor_transform_.has_value()) { + flatland_->flatland()->AddChild(root_transform_id_, + *input_interceptor_transform_); + child_transforms_.emplace_back(*input_interceptor_transform_); + } } // Present the session to Scenic, along with surface acquire/release fences. diff --git a/shell/platform/fuchsia/flutter/flatland_external_view_embedder.h b/shell/platform/fuchsia/flutter/flatland_external_view_embedder.h index a32e66fa4ff4d..0600b598c1351 100644 --- a/shell/platform/fuchsia/flutter/flatland_external_view_embedder.h +++ b/shell/platform/fuchsia/flutter/flatland_external_view_embedder.h @@ -192,6 +192,11 @@ class FlatlandExternalViewEmbedder final SkISize frame_size_ = SkISize::Make(0, 0); float frame_dpr_ = 1.f; + // TransformId for the input interceptor node when input shield is turned on, + // std::nullptr otherwise. + std::optional + input_interceptor_transform_; + FML_DISALLOW_COPY_AND_ASSIGN(FlatlandExternalViewEmbedder); }; diff --git a/shell/platform/fuchsia/flutter/flatland_platform_view.cc b/shell/platform/fuchsia/flutter/flatland_platform_view.cc index 6b9a5dfbd6517..0373c6ace6f23 100644 --- a/shell/platform/fuchsia/flutter/flatland_platform_view.cc +++ b/shell/platform/fuchsia/flutter/flatland_platform_view.cc @@ -84,25 +84,27 @@ void FlatlandPlatformView::OnGetLayout( } SetViewportMetrics({ - pixel_ratio, // device_pixel_ratio - view_logical_size_.value()[0], // physical_width - view_logical_size_.value()[1], // physical_height - 0.0f, // physical_padding_top - 0.0f, // physical_padding_right - 0.0f, // physical_padding_bottom - 0.0f, // physical_padding_left - 0.0f, // physical_view_inset_top - 0.0f, // physical_view_inset_right - 0.0f, // physical_view_inset_bottom - 0.0f, // physical_view_inset_left - 0.0f, // p_physical_system_gesture_inset_top - 0.0f, // p_physical_system_gesture_inset_right - 0.0f, // p_physical_system_gesture_inset_bottom - 0.0f, // p_physical_system_gesture_inset_left, - -1.0, // p_physical_touch_slop, - {}, // p_physical_display_features_bounds - {}, // p_physical_display_features_type - {}, // p_physical_display_features_state + pixel_ratio, // device_pixel_ratio + std::round(view_logical_size_.value()[0] * + pixel_ratio), // physical_width + std::round(view_logical_size_.value()[1] * + pixel_ratio), // physical_height + 0.0f, // physical_padding_top + 0.0f, // physical_padding_right + 0.0f, // physical_padding_bottom + 0.0f, // physical_padding_left + 0.0f, // physical_view_inset_top + 0.0f, // physical_view_inset_right + 0.0f, // physical_view_inset_bottom + 0.0f, // physical_view_inset_left + 0.0f, // p_physical_system_gesture_inset_top + 0.0f, // p_physical_system_gesture_inset_right + 0.0f, // p_physical_system_gesture_inset_bottom + 0.0f, // p_physical_system_gesture_inset_left, + -1.0, // p_physical_touch_slop, + {}, // p_physical_display_features_bounds + {}, // p_physical_display_features_type + {}, // p_physical_display_features_state }); parent_viewport_watcher_->GetLayout( @@ -154,10 +156,11 @@ void FlatlandPlatformView::OnChildViewViewRef( fuchsia::ui::views::ViewRef view_ref) { FML_CHECK(child_view_info_.count(content_id) == 1); - focus_delegate_->OnChildViewViewRef(view_id, std::move(view_ref)); - fuchsia::ui::views::ViewRef view_ref_clone; fidl::Clone(view_ref, &view_ref_clone); + + focus_delegate_->OnChildViewViewRef(view_id, std::move(view_ref)); + pointer_injector_delegate_->OnCreateView(view_id, std::move(view_ref_clone)); OnChildViewConnected(content_id); } diff --git a/shell/platform/fuchsia/flutter/gfx_platform_view.cc b/shell/platform/fuchsia/flutter/gfx_platform_view.cc index 0d2ba0272e7cd..ed9eeece151a0 100644 --- a/shell/platform/fuchsia/flutter/gfx_platform_view.cc +++ b/shell/platform/fuchsia/flutter/gfx_platform_view.cc @@ -157,28 +157,6 @@ void GfxPlatformView::OnScenicEvent( break; } break; - case fuchsia::ui::scenic::Event::Tag::kInput: - switch (event.input().Which()) { - case fuchsia::ui::input::InputEvent::Tag::kFocus: - break; // Focus handled elsewhere. - case fuchsia::ui::input::InputEvent::Tag::kPointer: { - // Only received when TouchSource not plugged in. - OnHandlePointerEvent(event.input().pointer()); - break; - } - case fuchsia::ui::input::InputEvent::Tag::kKeyboard: { - // All devices should receive key events via input3.KeyboardListener - // instead. - FML_LOG(WARNING) << "Keyboard event from Scenic: ignored"; - break; - } - case fuchsia::ui::input::InputEvent::Tag::Invalid: { - FML_DCHECK(false) - << "Flutter PlatformView::OnScenicEvent: Got an invalid INPUT " - "event."; - } - } - break; default: { break; } diff --git a/shell/platform/fuchsia/flutter/meta/common.shard.cml b/shell/platform/fuchsia/flutter/meta/common.shard.cml index 8be3af896d84d..b43a3da575c05 100644 --- a/shell/platform/fuchsia/flutter/meta/common.shard.cml +++ b/shell/platform/fuchsia/flutter/meta/common.shard.cml @@ -7,28 +7,22 @@ // Copied from inspect/client.shard.cml because out-of-tree doesn't // have support for CML includes from the SDK. { - directory: "diagnostics", rights: [ "connect" ], path: "/diagnostics", }, ], - expose: [ - // Required for inspect. - // Copied from inspect/client.shard.cml because out-of-tree doesn't - // have support for CML includes from the SDK. - { - directory: "diagnostics", - from: "self", - to: "framework", - }, - ], use: [ { directory: "config-data", rights: [ "r*" ], path: "/config/data", }, + { + directory: "root-ssl-certificates", + rights: [ "r*" ], + path: "/config/ssl", + }, { protocol: [ "fuchsia.accessibility.semantics.SemanticsManager", @@ -36,21 +30,31 @@ "fuchsia.feedback.CrashReporter", "fuchsia.fonts.Provider", "fuchsia.intl.PropertyProvider", - "fuchsia.logger.LogSink", // Copied from syslog/client.shard.cml. + "fuchsia.logger.LogSink", // Copied from syslog/client.shard.cml. "fuchsia.memorypressure.Provider", "fuchsia.net.name.Lookup", "fuchsia.posix.socket.Provider", "fuchsia.sysmem.Allocator", - "fuchsia.timezone.Timezone", // Copied from vulkan/client.shard.cml. - "fuchsia.tracing.provider.Registry", // Copied from vulkan/client.shard.cml. + "fuchsia.timezone.Timezone", // Copied from vulkan/client.shard.cml. + "fuchsia.tracing.provider.Registry", // Copied from vulkan/client.shard.cml. "fuchsia.ui.composition.Allocator", "fuchsia.ui.composition.Flatland", "fuchsia.ui.input.ImeService", "fuchsia.ui.input3.Keyboard", - "fuchsia.ui.scenic.Scenic", "fuchsia.ui.pointerinjector.Registry", - "fuchsia.vulkan.loader.Loader" // Copied from vulkan/client.shard.cml. - ] - } - ] + "fuchsia.ui.scenic.Scenic", + "fuchsia.vulkan.loader.Loader", // Copied from vulkan/client.shard.cml. + ], + }, + ], + expose: [ + // Required for inspect. + // Copied from inspect/client.shard.cml because out-of-tree doesn't + // have support for CML includes from the SDK. + { + directory: "diagnostics", + from: "self", + to: "framework", + }, + ], } diff --git a/shell/platform/fuchsia/flutter/platform_view_unittest.cc b/shell/platform/fuchsia/flutter/platform_view_unittest.cc index 3d7eb7977f5c0..796f884fa1794 100644 --- a/shell/platform/fuchsia/flutter/platform_view_unittest.cc +++ b/shell/platform/fuchsia/flutter/platform_view_unittest.cc @@ -1496,116 +1496,4 @@ TEST_F(PlatformViewTests, TouchSourceLogicalToPhysicalConversion) { EXPECT_EQ(flutter_events[1].physical_y, 20.f); } -TEST_F(PlatformViewTests, DownPointerNumericNudge) { - constexpr float kSmallDiscrepancy = -0.00003f; - - fuchsia::ui::scenic::SessionListenerPtr session_listener; - MockPlatformViewDelegate delegate; - flutter::TaskRunners task_runners("test_runners", nullptr, nullptr, nullptr, - nullptr); - flutter_runner::GfxPlatformView platform_view = - PlatformViewBuilder(delegate, std::move(task_runners)) - .SetSessionListenerRequest(session_listener.NewRequest()) - .Build(); - RunLoopUntilIdle(); - EXPECT_EQ(delegate.pointer_packets().size(), 0u); - - std::vector events; - events.emplace_back( - fuchsia::ui::scenic::Event::WithGfx( - fuchsia::ui::gfx::Event::WithViewPropertiesChanged( - fuchsia::ui::gfx::ViewPropertiesChangedEvent{ - .view_id = 0, - .properties = - fuchsia::ui::gfx::ViewProperties{ - .bounding_box = - fuchsia::ui::gfx::BoundingBox{ - .min = - fuchsia::ui::gfx::vec3{ - .x = 0.f, - .y = 0.f, - .z = 0.f, - }, - .max = - fuchsia::ui::gfx::vec3{ - .x = 100.f, - .y = 100.f, - .z = 100.f, - }, - }, - }, - }))); - events.emplace_back(fuchsia::ui::scenic::Event::WithGfx( - fuchsia::ui::gfx::Event::WithMetrics(fuchsia::ui::gfx::MetricsEvent{ - .node_id = 0, - .metrics = - fuchsia::ui::gfx::Metrics{ - .scale_x = 1.f, - .scale_y = 1.f, - .scale_z = 1.f, - }, - }))); - events.emplace_back(fuchsia::ui::scenic::Event::WithInput( - fuchsia::ui::input::InputEvent::WithPointer( - fuchsia::ui::input::PointerEvent{ - .event_time = 1111, - .device_id = 2222, - .pointer_id = 3333, - .type = fuchsia::ui::input::PointerEventType::TOUCH, - .phase = fuchsia::ui::input::PointerEventPhase::ADD, - .x = 50.f, - .y = kSmallDiscrepancy, // floating point inaccuracy - .radius_major = 0.f, - .radius_minor = 0.f, - .buttons = 0u, - }))); - events.emplace_back(fuchsia::ui::scenic::Event::WithInput( - fuchsia::ui::input::InputEvent::WithPointer( - fuchsia::ui::input::PointerEvent{ - .event_time = 1111, - .device_id = 2222, - .pointer_id = 3333, - .type = fuchsia::ui::input::PointerEventType::TOUCH, - .phase = fuchsia::ui::input::PointerEventPhase::DOWN, - .x = 50.f, - .y = kSmallDiscrepancy, // floating point inaccuracy - .radius_major = 0.f, - .radius_minor = 0.f, - .buttons = 0u, - }))); - events.emplace_back(fuchsia::ui::scenic::Event::WithInput( - fuchsia::ui::input::InputEvent::WithPointer( - fuchsia::ui::input::PointerEvent{ - .event_time = 1111, - .device_id = 2222, - .pointer_id = 3333, - .type = fuchsia::ui::input::PointerEventType::TOUCH, - .phase = fuchsia::ui::input::PointerEventPhase::MOVE, - .x = 50.f, - .y = kSmallDiscrepancy, // floating point inaccuracy - .radius_major = 0.f, - .radius_minor = 0.f, - .buttons = 0u, - }))); - session_listener->OnScenicEvent(std::move(events)); - RunLoopUntilIdle(); - ASSERT_EQ(delegate.pointer_packets().size(), 3u); - - // Embedder issues pointer data in a bytestream format, PointerDataPacket. - // Use this handy utility to recover data as a C struct, PointerData. - std::vector> packets = - delegate.TakePointerDataPackets(); - std::vector add, down, move; - UnpackPointerPacket(add, std::move(packets[0])); - UnpackPointerPacket(down, std::move(packets[1])); - UnpackPointerPacket(move, std::move(packets[2])); - - EXPECT_EQ(add[0].physical_x, 50.f); - EXPECT_EQ(add[0].physical_y, kSmallDiscrepancy); - EXPECT_EQ(down[0].physical_x, 50.f); - EXPECT_EQ(down[0].physical_y, 0.f); // clamping happened - EXPECT_EQ(move[0].physical_x, 50.f); - EXPECT_EQ(move[0].physical_y, kSmallDiscrepancy); -} - } // namespace flutter_runner::testing diff --git a/shell/platform/fuchsia/flutter/tests/flatland_platform_view_unittest.cc b/shell/platform/fuchsia/flutter/tests/flatland_platform_view_unittest.cc index cde88fd84d0d4..7fe9ed64853b4 100644 --- a/shell/platform/fuchsia/flutter/tests/flatland_platform_view_unittest.cc +++ b/shell/platform/fuchsia/flutter/tests/flatland_platform_view_unittest.cc @@ -672,7 +672,8 @@ TEST_F(FlatlandPlatformViewTests, SetViewportMetrics) { watcher.SetLayout(width, height, kDPR); RunLoopUntilIdle(); EXPECT_EQ(delegate.metrics(), - flutter::ViewportMetrics(kDPR, width, height, -1.0)); + flutter::ViewportMetrics(kDPR, std::round(width * kDPR), + std::round(height * kDPR), -1.0)); } // This test makes sure that the PlatformView correctly registers semantics diff --git a/shell/platform/fuchsia/flutter/tests/integration/BUILD.gn b/shell/platform/fuchsia/flutter/tests/integration/BUILD.gn index 7746be62d914b..30ba3b7690f42 100644 --- a/shell/platform/fuchsia/flutter/tests/integration/BUILD.gn +++ b/shell/platform/fuchsia/flutter/tests/integration/BUILD.gn @@ -10,6 +10,8 @@ group("integration") { testonly = true deps = [ "embedder:tests", + "mouse-input:tests", "text-input:tests", + "touch-input:tests", ] } diff --git a/shell/platform/fuchsia/flutter/tests/integration/embedder/parent-view/pubspec.yaml b/shell/platform/fuchsia/flutter/tests/integration/embedder/parent-view/pubspec.yaml index a1aaca742d1a6..151abb7e2d131 100644 --- a/shell/platform/fuchsia/flutter/tests/integration/embedder/parent-view/pubspec.yaml +++ b/shell/platform/fuchsia/flutter/tests/integration/embedder/parent-view/pubspec.yaml @@ -5,4 +5,4 @@ name: parent-view2 environment: - sdk: '>=2.12.0 <3.0.0' + sdk: '>=2.18.0 <3.0.0' diff --git a/shell/platform/fuchsia/flutter/tests/integration/mouse-input/BUILD.gn b/shell/platform/fuchsia/flutter/tests/integration/mouse-input/BUILD.gn new file mode 100644 index 0000000000000..c26b44b7da874 --- /dev/null +++ b/shell/platform/fuchsia/flutter/tests/integration/mouse-input/BUILD.gn @@ -0,0 +1,71 @@ +# Copyright 2013 The Flutter Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +assert(is_fuchsia) + +import("//build/fuchsia/sdk.gni") +import("//flutter/tools/fuchsia/fuchsia_archive.gni") +import("//flutter/tools/fuchsia/gn-sdk/package.gni") + +group("tests") { + testonly = true + deps = [ ":mouse-input-test" ] +} + +executable("mouse-input-test-bin") { + testonly = true + output_name = "mouse-input-test" + sources = [ "mouse-input-test.cc" ] + + # This is needed for //third_party/googletest for linking zircon symbols. + libs = [ "$fuchsia_sdk_path/arch/$target_cpu/sysroot/lib/libzircon.so" ] + + deps = [ + "$fuchsia_sdk_root/fidl:fuchsia.accessibility.semantics", + "$fuchsia_sdk_root/fidl:fuchsia.buildinfo", + "$fuchsia_sdk_root/fidl:fuchsia.component", + "$fuchsia_sdk_root/fidl:fuchsia.fonts", + "$fuchsia_sdk_root/fidl:fuchsia.intl", + "$fuchsia_sdk_root/fidl:fuchsia.kernel", + "$fuchsia_sdk_root/fidl:fuchsia.memorypressure", + "$fuchsia_sdk_root/fidl:fuchsia.metrics", + "$fuchsia_sdk_root/fidl:fuchsia.net.interfaces", + "$fuchsia_sdk_root/fidl:fuchsia.tracing.provider", + "$fuchsia_sdk_root/fidl:fuchsia.ui.app", + "$fuchsia_sdk_root/fidl:fuchsia.ui.input", + "$fuchsia_sdk_root/fidl:fuchsia.ui.pointerinjector", + "$fuchsia_sdk_root/fidl:fuchsia.ui.policy", + "$fuchsia_sdk_root/fidl:fuchsia.ui.scenic", + "$fuchsia_sdk_root/fidl:fuchsia.ui.test.input", + "$fuchsia_sdk_root/fidl:fuchsia.ui.test.scene", + "$fuchsia_sdk_root/fidl:fuchsia.web", + "$fuchsia_sdk_root/pkg:async", + "$fuchsia_sdk_root/pkg:async-loop-testing", + "$fuchsia_sdk_root/pkg:fidl_cpp", + "$fuchsia_sdk_root/pkg:scenic_cpp", + "$fuchsia_sdk_root/pkg:sys_component_cpp_testing", + "$fuchsia_sdk_root/pkg:zx", + "mouse-input-view:package", + "//build/fuchsia/fidl:fuchsia.ui.gfx", + "//flutter/fml", + "//flutter/shell/platform/fuchsia/flutter/tests/integration/utils:portable_ui_test", + "//third_party/googletest:gtest", + "//third_party/googletest:gtest_main", + ] +} + +fuchsia_test_archive("mouse-input-test") { + testonly = true + deps = [ + ":mouse-input-test-bin", + + # "OOT" copies of the runners used by tests, to avoid conflicting with the + # runners in the base fuchsia image. + # TODO(fxbug.dev/106575): Fix this with subpackages. + "//flutter/shell/platform/fuchsia/flutter:oot_flutter_jit_runner", + ] + + binary = "$target_name" + cml_file = rebase_path("meta/$target_name.cml") +} diff --git a/shell/platform/fuchsia/flutter/tests/integration/mouse-input/README.md b/shell/platform/fuchsia/flutter/tests/integration/mouse-input/README.md new file mode 100644 index 0000000000000..c36111b38633a --- /dev/null +++ b/shell/platform/fuchsia/flutter/tests/integration/mouse-input/README.md @@ -0,0 +1,60 @@ +# mouse-input + +`mouse-input-test` exercises mouse input through a child view (in this case, the `mouse-input-view` Dart component) and +asserting the location as well as what button was used (mouse down, mouse up, wheel, etc) during the event. We do this by +attaching the child view, injecting mouse input, and validating that the view reports the event back with the expected +payload. + +```shell +Injecting the mouse input +[mouse-input-test.cm] INFO: [portable_ui_test.cc(227)] Injecting mouse input + +View receives the event +[flutter_jit_runner] INFO: mouse-input-view.cm(flutter): mouse-input-view received input: PointerData(embedderId: 0, timeStamp: 23:18:05.031003, change: PointerChange.add, kind: PointerDeviceKind.mouse, signalKind: PointerSignalKind.none, device: 4294967295, pointerIdentifier: 0, physicalX: 641.4656372070312, physicalY: 402.9313049316406, physicalDeltaX: 0.0, physicalDeltaY: 0.0, buttons: 0, synthesized: true, pressure: 0.0, pressureMin: 0.0, pressureMax: 0.0, distance: 0.0, distanceMax: 0.0, size: 0.0, radiusMajor: 0.0, radiusMinor: 0.0, radiusMin: 0.0, radiusMax: 0.0, orientation: 0.0, tilt: 0.0, platformData: 0, scrollDeltaX: 0.0, scrollDeltaY: 0.0, panX: 0.0, panY: 0.0, panDeltaX: 0.0, panDeltaY: 0.0, scale: 0.0, rotation: 0.0) + +Successfully received response from view +[mouse-input-test.cm] INFO: [mouse-input-test.cc(120)] Received MouseInput event +[mouse-input-test.cm] INFO: [mouse-input-test.cc(207)] Client received mouse change at (641.466, 402.931) with buttons 0. +[mouse-input-test.cm] INFO: [mouse-input-test.cc(211)] Expected mouse change is at approximately (641, 402) with buttons 0. +``` + +## Running the Test + +Reference the Flutter integration test [documentation](https://github.com/flutter/engine/blob/main/shell/platform/fuchsia/flutter/tests/integration/README.md) at `//flutter/shell/platform/fuchsia/flutter/tests/integration/README.md` + +## Playing around with `mouse-input-view` + +Build Fuchsia with `workstation_eng.qemu-x64` +```shell +fx set workstation_eng.qemu-x64 && fx build +``` + +Build flutter/engine +```shell +$ENGINE_DIR/flutter/tools/gn --fuchsia --no-lto && ninja -C $ENGINE_DIR/out/fuchsia_debug_x64 flutter/shell/platform/fuchsia/flutter/tests/ +integration/mouse_input:tests +``` + +Start a Fuchsia package server +```shell +cd "$FUCHSIA_DIR" +fx serve +``` + +Publish `touch-input-view` +```shell +$FUCHSIA_DIR/.jiri_root/bin/fx pm publish -a -repo $FUCHSIA_DIR/$(cat $FUCHSIA_DIR/.fx-build-dir)/amber-files -f $ENGINE_DIR/out/ +fuchsia_debug_x64/gen/flutter/shell/platform/fuchsia/flutter/tests/integration/mouse-input/mouse-input-view/mouse-input-view/mouse-input-view.far +``` + +Launch Fuchsia emulator in a graphical environment +```shell +ffx emu start +``` + +**Before proceeding, make sure you have successfully completed the "Set a Password" screen** + +Add `mouse-input-view` +```shell +ffx session add fuchsia-pkg://fuchsia.com/mouse-input-view#meta/mouse-input-view.cm +``` diff --git a/shell/platform/fuchsia/flutter/tests/integration/mouse-input/meta/gtest_runner.shard.cml b/shell/platform/fuchsia/flutter/tests/integration/mouse-input/meta/gtest_runner.shard.cml new file mode 100644 index 0000000000000..d9871b70f3022 --- /dev/null +++ b/shell/platform/fuchsia/flutter/tests/integration/mouse-input/meta/gtest_runner.shard.cml @@ -0,0 +1,17 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. +{ + program: { + runner: "gtest_runner", + }, + capabilities: [ + { protocol: "fuchsia.test.Suite" }, + ], + expose: [ + { + protocol: "fuchsia.test.Suite", + from: "self", + }, + ], +} diff --git a/shell/platform/fuchsia/flutter/tests/integration/mouse-input/meta/mouse-input-test.cml b/shell/platform/fuchsia/flutter/tests/integration/mouse-input/meta/mouse-input-test.cml new file mode 100644 index 0000000000000..a2994117bd742 --- /dev/null +++ b/shell/platform/fuchsia/flutter/tests/integration/mouse-input/meta/mouse-input-test.cml @@ -0,0 +1,55 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. +{ + include: [ + "gtest_runner.shard.cml", + "sys/component/realm_builder_absolute.shard.cml", + + // This test needs both the vulkan facet and the hermetic-tier-2 facet, + // so we are forced to make it a system test. + "sys/testing/system-test.shard.cml", + ], + program: { + binary: "bin/app", + }, + use: [ + { + protocol: [ + "fuchsia.ui.test.input.MouseInputListener", + ] + } + ], + offer: [ + { + // Offer capabilities needed by components in this test realm. + // Keep it minimal, describe only what's actually needed. + protocol: [ + "fuchsia.kernel.RootJobForInspect", + "fuchsia.kernel.Stats", + "fuchsia.logger.LogSink", + "fuchsia.scheduler.ProfileProvider", + "fuchsia.sysmem.Allocator", + "fuchsia.tracing.provider.Registry", + "fuchsia.ui.input.ImeService", + "fuchsia.vulkan.loader.Loader", + "fuchsia.ui.scenic.Scenic", + "fuchsia.ui.composition.Allocator", + "fuchsia.ui.composition.Flatland", + "fuchsia.ui.test.input.MouseInputListener", + "fuchsia.intl.PropertyProvider", + "fuchsia.posix.socket.Provider", + "fuchsia.ui.pointerinjector.Registry", + ], + from: "parent", + to: "#realm_builder", + }, + { + directory: "pkg", + subdir: "config", + as: "config-data", + from: "framework", + to: "#realm_builder", + }, + ], +} diff --git a/shell/platform/fuchsia/flutter/tests/integration/mouse-input/mouse-input-test.cc b/shell/platform/fuchsia/flutter/tests/integration/mouse-input/mouse-input-test.cc new file mode 100644 index 0000000000000..2839b6f39e5a6 --- /dev/null +++ b/shell/platform/fuchsia/flutter/tests/integration/mouse-input/mouse-input-test.cc @@ -0,0 +1,612 @@ +// Copyright 2022 The Fuchsia Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include "flutter/fml/logging.h" +#include "flutter/shell/platform/fuchsia/flutter/tests/integration/utils/portable_ui_test.h" +#include "lib/fidl/cpp/interface_ptr.h" + +namespace mouse_input_test::testing { +namespace { +// Types imported for the realm_builder library. +using component_testing::ChildRef; +using component_testing::ConfigValue; +using component_testing::LocalComponent; +using component_testing::LocalComponentHandles; +using component_testing::ParentRef; +using component_testing::Protocol; +using component_testing::Realm; +using component_testing::Route; + +using fuchsia_test_utils::PortableUITest; +using RealmBuilder = component_testing::RealmBuilder; + +// Alias for Component child name as provided to Realm Builder. +using ChildName = std::string; + +// Alias for Component Legacy URL as provided to Realm Builder. +using LegacyUrl = std::string; + +// Maximum pointer movement during a clickpad press for the gesture to +// be guaranteed to be interpreted as a click. For movement greater than +// this value, upper layers may, e.g., interpret the gesture as a drag. +// +// This value corresponds to the one used to instantiate the ClickDragHandler +// registered by Input Pipeline in Scene Manager. +constexpr int64_t kClickToDragThreshold = 16.0; + +constexpr auto kMouseInputListener = "mouse_input_listener"; +constexpr auto kMouseInputListenerRef = ChildRef{kMouseInputListener}; +constexpr auto kMouseInputView = "mouse-input-view"; +constexpr auto kMouseInputViewRef = ChildRef{kMouseInputView}; +constexpr auto kMouseInputViewUrl = + "fuchsia-pkg://fuchsia.com/mouse-input-view#meta/mouse-input-view.cm"; + +struct Position { + double x = 0.0; + double y = 0.0; +}; + +// Combines all vectors in `vecs` into one. +template +std::vector merge(std::initializer_list> vecs) { + std::vector result; + for (auto v : vecs) { + result.insert(result.end(), v.begin(), v.end()); + } + return result; +} + +int ButtonsToInt( + const std::vector& buttons) { + int result = 0; + for (const auto& button : buttons) { + result |= (0x1 >> button); + } + + return result; +} + +// `MouseInputListener` is a local test protocol that our test apps use to let +// us know what position and button press state the mouse cursor has. +class MouseInputListenerServer + : public fuchsia::ui::test::input::MouseInputListener, + public LocalComponent { + public: + explicit MouseInputListenerServer(async_dispatcher_t* dispatcher) + : dispatcher_(dispatcher) {} + + void ReportMouseInput( + fuchsia::ui::test::input::MouseInputListenerReportMouseInputRequest + request) override { + FML_LOG(INFO) << "Received MouseInput event"; + events_.push(std::move(request)); + } + + // |MockComponent::Start| + // When the component framework requests for this component to start, this + // method will be invoked by the realm_builder library. + void Start(std::unique_ptr mock_handles) override { + FML_LOG(INFO) << "Starting MouseInputServer"; + ASSERT_EQ(ZX_OK, mock_handles->outgoing()->AddPublicService( + fidl::InterfaceRequestHandler< + fuchsia::ui::test::input::MouseInputListener>( + [this](auto request) { + bindings_.AddBinding(this, std::move(request), + dispatcher_); + }))); + mock_handles_.emplace_back(std::move(mock_handles)); + } + + size_t SizeOfEvents() const { return events_.size(); } + + fuchsia::ui::test::input::MouseInputListenerReportMouseInputRequest + PopEvent() { + auto e = std::move(events_.front()); + events_.pop(); + return e; + } + + const fuchsia::ui::test::input::MouseInputListenerReportMouseInputRequest& + LastEvent() const { + return events_.back(); + } + + void ClearEvents() { events_ = {}; } + + private: + // Not owned. + async_dispatcher_t* dispatcher_ = nullptr; + fidl::BindingSet bindings_; + std::vector> mock_handles_; + std::queue< + fuchsia::ui::test::input::MouseInputListenerReportMouseInputRequest> + events_; +}; + +class MouseInputTest : public PortableUITest, + public ::testing::Test, + public ::testing::WithParamInterface { + protected: + void SetUp() override { + PortableUITest::SetUp(); + + // Register fake mouse device. + RegisterMouse(); + + // Get the display dimensions. + FML_LOG(INFO) << "Waiting for scenic display info"; + scenic_ = realm_root()->Connect(); + scenic_->GetDisplayInfo([this](fuchsia::ui::gfx::DisplayInfo display_info) { + display_width_ = display_info.width_in_px; + display_height_ = display_info.height_in_px; + FML_LOG(INFO) << "Got display_width = " << display_width_ + << " and display_height = " << display_height_; + }); + RunLoopUntil( + [this] { return display_width_ != 0 && display_height_ != 0; }); + } + + void TearDown() override { + // at the end of test, ensure event queue is empty. + ASSERT_EQ(mouse_input_listener_->SizeOfEvents(), 0u); + } + + MouseInputListenerServer* mouse_input_listener() { + return mouse_input_listener_.get(); + } + + // Helper method for checking the test.mouse.MouseInputListener response from + // the client app. + void VerifyEvent( + fuchsia::ui::test::input::MouseInputListenerReportMouseInputRequest& + pointer_data, + double expected_x, + double expected_y, + std::vector expected_buttons, + const fuchsia::ui::test::input::MouseEventPhase expected_phase, + const std::string& component_name) { + FML_LOG(INFO) << "Client received mouse change at (" + << pointer_data.local_x() << ", " << pointer_data.local_y() + << ") with buttons " << ButtonsToInt(pointer_data.buttons()) + << "."; + FML_LOG(INFO) << "Expected mouse change is at approximately (" << expected_x + << ", " << expected_y << ") with buttons " + << ButtonsToInt(expected_buttons) << "."; + + // Allow for minor rounding differences in coordinates. + // Note: These approximations don't account for + // `PointerMotionDisplayScaleHandler` or `PointerMotionSensorScaleHandler`. + // We will need to do so in order to validate larger motion or different + // sized displays. + EXPECT_NEAR(pointer_data.local_x(), expected_x, 1); + EXPECT_NEAR(pointer_data.local_y(), expected_y, 1); + EXPECT_EQ(pointer_data.buttons(), expected_buttons); + EXPECT_EQ(pointer_data.phase(), expected_phase); + EXPECT_EQ(pointer_data.component_name(), component_name); + } + + void VerifyEventLocationOnTheRightOfExpectation( + fuchsia::ui::test::input::MouseInputListenerReportMouseInputRequest& + pointer_data, + double expected_x_min, + double expected_y, + std::vector expected_buttons, + const fuchsia::ui::test::input::MouseEventPhase expected_phase, + const std::string& component_name) { + FML_LOG(INFO) << "Client received mouse change at (" + << pointer_data.local_x() << ", " << pointer_data.local_y() + << ") with buttons " << ButtonsToInt(pointer_data.buttons()) + << "."; + FML_LOG(INFO) << "Expected mouse change is at approximately (>" + << expected_x_min << ", " << expected_y << ") with buttons " + << ButtonsToInt(expected_buttons) << "."; + + EXPECT_GT(pointer_data.local_x(), expected_x_min); + EXPECT_NEAR(pointer_data.local_y(), expected_y, 1); + EXPECT_EQ(pointer_data.buttons(), expected_buttons); + EXPECT_EQ(pointer_data.phase(), expected_phase); + EXPECT_EQ(pointer_data.component_name(), component_name); + } + + // Guaranteed to be initialized after SetUp(). + uint32_t display_width() const { return display_width_; } + uint32_t display_height() const { return display_height_; } + + private: + void ExtendRealm() override { + FML_LOG(INFO) << "Extending realm"; + mouse_input_listener_ = + std::make_unique(dispatcher()); + + // Key part of service setup: have this test component vend the + // |MouseInputListener| service in the constructed realm. + realm_builder()->AddLocalChild(kMouseInputListener, + mouse_input_listener_.get()); + + realm_builder()->AddChild(kMouseInputView, kMouseInputViewUrl, + component_testing::ChildOptions{ + .environment = kFlutterRunnerEnvironment, + }); + + realm_builder()->AddRoute( + Route{.capabilities = {Protocol{ + fuchsia::ui::test::input::MouseInputListener::Name_}}, + .source = kMouseInputListenerRef, + .targets = {kFlutterJitRunnerRef, kMouseInputViewRef}}); + + realm_builder()->AddRoute( + Route{.capabilities = {Protocol{fuchsia::ui::app::ViewProvider::Name_}}, + .source = kMouseInputViewRef, + .targets = {ParentRef()}}); + } + + ParamType GetTestUIStackUrl() override { return GetParam(); }; + + std::unique_ptr mouse_input_listener_; + + fuchsia::ui::scenic::ScenicPtr scenic_; + uint32_t display_width_ = 0; + uint32_t display_height_ = 0; +}; + +// Makes use of gtest's parameterized testing, allowing us +// to test different combinations of test-ui-stack + runners. Currently, there +// is just one combination. Documentation: +// http://go/gunitadvanced#value-parameterized-tests +INSTANTIATE_TEST_SUITE_P( + MouseInputTestParameterized, + MouseInputTest, + ::testing::Values( + "fuchsia-pkg://fuchsia.com/flatland-scene-manager-test-ui-stack#meta/" + "test-ui-stack.cm")); + +TEST_P(MouseInputTest, FlutterMouseMove) { + LaunchClient(); + + SimulateMouseEvent(/* pressed_buttons = */ {}, /* movement_x = */ 1, + /* movement_y = */ 2); + RunLoopUntil( + [this] { return this->mouse_input_listener()->SizeOfEvents() == 1; }); + + ASSERT_EQ(mouse_input_listener()->SizeOfEvents(), 1u); + + auto e = mouse_input_listener()->PopEvent(); + + // If the first mouse event is cursor movement, Flutter first sends an ADD + // event with updated location. + VerifyEvent(e, + /*expected_x=*/static_cast(display_width()) / 2.f + 1, + /*expected_y=*/static_cast(display_height()) / 2.f + 2, + /*expected_buttons=*/{}, + /*expected_type=*/fuchsia::ui::test::input::MouseEventPhase::ADD, + /*component_name=*/"mouse-input-view"); +} + +TEST_P(MouseInputTest, FlutterMouseDown) { + LaunchClient(); + + SimulateMouseEvent( + /* pressed_buttons = */ {fuchsia::ui::test::input::MouseButton::FIRST}, + /* movement_x = */ 0, /* movement_y = */ 0); + RunLoopUntil( + [this] { return this->mouse_input_listener()->SizeOfEvents() == 3; }); + + ASSERT_EQ(mouse_input_listener()->SizeOfEvents(), 3u); + + auto event_add = mouse_input_listener()->PopEvent(); + auto event_down = mouse_input_listener()->PopEvent(); + auto event_noop_move = mouse_input_listener()->PopEvent(); + + // If the first mouse event is a button press, Flutter first sends an ADD + // event with no buttons. + VerifyEvent(event_add, + /*expected_x=*/static_cast(display_width()) / 2.f, + /*expected_y=*/static_cast(display_height()) / 2.f, + /*expected_buttons=*/{}, + /*expected_type=*/fuchsia::ui::test::input::MouseEventPhase::ADD, + /*component_name=*/"mouse-input-view"); + + // Then Flutter sends a DOWN pointer event with the buttons we care about. + VerifyEvent( + event_down, + /*expected_x=*/static_cast(display_width()) / 2.f, + /*expected_y=*/static_cast(display_height()) / 2.f, + /*expected_buttons=*/{fuchsia::ui::test::input::MouseButton::FIRST}, + /*expected_type=*/fuchsia::ui::test::input::MouseEventPhase::DOWN, + /*component_name=*/"mouse-input-view"); + + // Then Flutter sends a MOVE pointer event with no new information. + VerifyEvent( + event_noop_move, + /*expected_x=*/static_cast(display_width()) / 2.f, + /*expected_y=*/static_cast(display_height()) / 2.f, + /*expected_buttons=*/{fuchsia::ui::test::input::MouseButton::FIRST}, + /*expected_type=*/fuchsia::ui::test::input::MouseEventPhase::MOVE, + /*component_name=*/"mouse-input-view"); +} + +TEST_P(MouseInputTest, FlutterMouseDownUp) { + LaunchClient(); + + SimulateMouseEvent( + /* pressed_buttons = */ {fuchsia::ui::test::input::MouseButton::FIRST}, + /* movement_x = */ 0, /* movement_y = */ 0); + RunLoopUntil( + [this] { return this->mouse_input_listener()->SizeOfEvents() == 3; }); + + ASSERT_EQ(mouse_input_listener()->SizeOfEvents(), 3u); + + auto event_add = mouse_input_listener()->PopEvent(); + auto event_down = mouse_input_listener()->PopEvent(); + auto event_noop_move = mouse_input_listener()->PopEvent(); + + // If the first mouse event is a button press, Flutter first sends an ADD + // event with no buttons. + VerifyEvent(event_add, + /*expected_x=*/static_cast(display_width()) / 2.f, + /*expected_y=*/static_cast(display_height()) / 2.f, + /*expected_buttons=*/{}, + /*expected_type=*/fuchsia::ui::test::input::MouseEventPhase::ADD, + /*component_name=*/"mouse-input-view"); + + // Then Flutter sends a DOWN pointer event with the buttons we care about. + VerifyEvent( + event_down, + /*expected_x=*/static_cast(display_width()) / 2.f, + /*expected_y=*/static_cast(display_height()) / 2.f, + /*expected_buttons=*/{fuchsia::ui::test::input::MouseButton::FIRST}, + /*expected_type=*/fuchsia::ui::test::input::MouseEventPhase::DOWN, + /*component_name=*/"mouse-input-view"); + + // Then Flutter sends a MOVE pointer event with no new information. + VerifyEvent( + event_noop_move, + /*expected_x=*/static_cast(display_width()) / 2.f, + /*expected_y=*/static_cast(display_height()) / 2.f, + /*expected_buttons=*/{fuchsia::ui::test::input::MouseButton::FIRST}, + /*expected_type=*/fuchsia::ui::test::input::MouseEventPhase::MOVE, + /*component_name=*/"mouse-input-view"); + + SimulateMouseEvent(/* pressed_buttons = */ {}, /* movement_x = */ 0, + /* movement_y = */ 0); + RunLoopUntil( + [this] { return this->mouse_input_listener()->SizeOfEvents() == 1; }); + + ASSERT_EQ(mouse_input_listener()->SizeOfEvents(), 1u); + + auto event_up = mouse_input_listener()->PopEvent(); + VerifyEvent(event_up, + /*expected_x=*/static_cast(display_width()) / 2.f, + /*expected_y=*/static_cast(display_height()) / 2.f, + /*expected_buttons=*/{}, + /*expected_type=*/fuchsia::ui::test::input::MouseEventPhase::UP, + /*component_name=*/"mouse-input-view"); +} + +TEST_P(MouseInputTest, FlutterMouseDownMoveUp) { + LaunchClient(); + + SimulateMouseEvent( + /* pressed_buttons = */ {fuchsia::ui::test::input::MouseButton::FIRST}, + /* movement_x = */ 0, /* movement_y = */ 0); + RunLoopUntil( + [this] { return this->mouse_input_listener()->SizeOfEvents() == 3; }); + + ASSERT_EQ(mouse_input_listener()->SizeOfEvents(), 3u); + + auto event_add = mouse_input_listener()->PopEvent(); + auto event_down = mouse_input_listener()->PopEvent(); + auto event_noop_move = mouse_input_listener()->PopEvent(); + + // If the first mouse event is a button press, Flutter first sends an ADD + // event with no buttons. + VerifyEvent(event_add, + /*expected_x=*/static_cast(display_width()) / 2.f, + /*expected_y=*/static_cast(display_height()) / 2.f, + /*expected_buttons=*/{}, + /*expected_type=*/fuchsia::ui::test::input::MouseEventPhase::ADD, + /*component_name=*/"mouse-input-view"); + + // Then Flutter sends a DOWN pointer event with the buttons we care about. + VerifyEvent( + event_down, + /*expected_x=*/static_cast(display_width()) / 2.f, + /*expected_y=*/static_cast(display_height()) / 2.f, + /*expected_buttons=*/{fuchsia::ui::test::input::MouseButton::FIRST}, + /*expected_type=*/fuchsia::ui::test::input::MouseEventPhase::DOWN, + /*component_name=*/"mouse-input-view"); + + // Then Flutter sends a MOVE pointer event with no new information. + VerifyEvent( + event_noop_move, + /*expected_x=*/static_cast(display_width()) / 2.f, + /*expected_y=*/static_cast(display_height()) / 2.f, + /*expected_buttons=*/{fuchsia::ui::test::input::MouseButton::FIRST}, + /*expected_type=*/fuchsia::ui::test::input::MouseEventPhase::MOVE, + /*component_name=*/"mouse-input-view"); + + SimulateMouseEvent( + /* pressed_buttons = */ {fuchsia::ui::test::input::MouseButton::FIRST}, + /* movement_x = */ kClickToDragThreshold, /* movement_y = */ 0); + RunLoopUntil( + [this] { return this->mouse_input_listener()->SizeOfEvents() == 1; }); + + ASSERT_EQ(mouse_input_listener()->SizeOfEvents(), 1u); + + auto event_move = mouse_input_listener()->PopEvent(); + + VerifyEventLocationOnTheRightOfExpectation( + event_move, + /*expected_x_min=*/static_cast(display_width()) / 2.f + 1, + /*expected_y=*/static_cast(display_height()) / 2.f, + /*expected_buttons=*/{fuchsia::ui::test::input::MouseButton::FIRST}, + /*expected_type=*/fuchsia::ui::test::input::MouseEventPhase::MOVE, + /*component_name=*/"mouse-input-view"); + + SimulateMouseEvent(/* pressed_buttons = */ {}, /* movement_x = */ 0, + /* movement_y = */ 0); + RunLoopUntil( + [this] { return this->mouse_input_listener()->SizeOfEvents() == 1; }); + + ASSERT_EQ(mouse_input_listener()->SizeOfEvents(), 1u); + + auto event_up = mouse_input_listener()->PopEvent(); + + VerifyEventLocationOnTheRightOfExpectation( + event_up, + /*expected_x_min=*/static_cast(display_width()) / 2.f + 1, + /*expected_y=*/static_cast(display_height()) / 2.f, + /*expected_buttons=*/{}, + /*expected_type=*/fuchsia::ui::test::input::MouseEventPhase::UP, + /*component_name=*/"mouse-input-view"); +} + +// TODO(fxbug.dev/103098): This test shows the issue when sending mouse wheel as +// the first event to Flutter. +// 1. expect Flutter app receive 2 events: ADD - Scroll, but got 3 events: Move +// - Scroll - Scroll. +// 2. the first event flutter app received has random value in buttons field +// Disabled until flutter rolls, since it changes the behavior of this issue. +TEST_P(MouseInputTest, DISABLED_FlutterMouseWheelIssue103098) { + LaunchClient(); + + SimulateMouseScroll(/* pressed_buttons = */ {}, /* scroll_x = */ 1, + /* scroll_y = */ 0); + // Here we expected 2 events, ADD - Scroll, but got 3, Move - Scroll - Scroll. + RunLoopUntil( + [this] { return this->mouse_input_listener()->SizeOfEvents() == 3; }); + + double initial_x = static_cast(display_width()) / 2.f; + double initial_y = static_cast(display_height()) / 2.f; + + auto event_1 = mouse_input_listener()->PopEvent(); + EXPECT_NEAR(event_1.local_x(), initial_x, 1); + EXPECT_NEAR(event_1.local_y(), initial_y, 1); + // Flutter will scale the count of ticks to pixel. + EXPECT_GT(event_1.wheel_x_physical_pixel(), 0); + EXPECT_EQ(event_1.wheel_y_physical_pixel(), 0); + EXPECT_EQ(event_1.phase(), fuchsia::ui::test::input::MouseEventPhase::MOVE); + + auto event_2 = mouse_input_listener()->PopEvent(); + VerifyEvent( + event_2, + /*expected_x=*/initial_x, + /*expected_y=*/initial_y, + /*expected_buttons=*/{}, + /*expected_phase=*/fuchsia::ui::test::input::MouseEventPhase::HOVER, + /*component_name=*/"mouse-input-view"); + // Flutter will scale the count of ticks to pixel. + EXPECT_GT(event_2.wheel_x_physical_pixel(), 0); + EXPECT_EQ(event_2.wheel_y_physical_pixel(), 0); + + auto event_3 = mouse_input_listener()->PopEvent(); + VerifyEvent( + event_3, + /*expected_x=*/initial_x, + /*expected_y=*/initial_y, + /*expected_buttons=*/{}, + /*expected_type=*/fuchsia::ui::test::input::MouseEventPhase::HOVER, + /*component_name=*/"mouse-input-view"); + // Flutter will scale the count of ticks to pixel. + EXPECT_GT(event_3.wheel_x_physical_pixel(), 0); + EXPECT_EQ(event_3.wheel_y_physical_pixel(), 0); +} + +TEST_P(MouseInputTest, FlutterMouseWheel) { + LaunchClient(); + + double initial_x = static_cast(display_width()) / 2.f + 1; + double initial_y = static_cast(display_height()) / 2.f + 2; + + // TODO(fxbug.dev/103098): Send a mouse move as the first event to workaround. + SimulateMouseEvent(/* pressed_buttons = */ {}, + /* movement_x = */ 1, /* movement_y = */ 2); + RunLoopUntil( + [this] { return this->mouse_input_listener()->SizeOfEvents() == 1; }); + + auto event_add = mouse_input_listener()->PopEvent(); + VerifyEvent(event_add, + /*expected_x=*/initial_x, + /*expected_y=*/initial_y, + /*expected_buttons=*/{}, + /*expected_type=*/fuchsia::ui::test::input::MouseEventPhase::ADD, + /*component_name=*/"mouse-input-view"); + + SimulateMouseScroll(/* pressed_buttons = */ {}, /* scroll_x = */ 1, + /* scroll_y = */ 0); + RunLoopUntil( + [this] { return this->mouse_input_listener()->SizeOfEvents() == 1; }); + + auto event_wheel_h = mouse_input_listener()->PopEvent(); + + VerifyEvent( + event_wheel_h, + /*expected_x=*/initial_x, + /*expected_y=*/initial_y, + /*expected_buttons=*/{}, + /*expected_phase=*/fuchsia::ui::test::input::MouseEventPhase::HOVER, + /*component_name=*/"mouse-input-view"); + // Flutter will scale the count of ticks to pixel. + EXPECT_GT(event_wheel_h.wheel_x_physical_pixel(), 0); + EXPECT_EQ(event_wheel_h.wheel_y_physical_pixel(), 0); + + SimulateMouseScroll(/* pressed_buttons = */ {}, /* scroll_x = */ 0, + /* scroll_y = */ 1); + RunLoopUntil( + [this] { return this->mouse_input_listener()->SizeOfEvents() == 1; }); + + auto event_wheel_v = mouse_input_listener()->PopEvent(); + + VerifyEvent( + event_wheel_v, + /*expected_x=*/initial_x, + /*expected_y=*/initial_y, + /*expected_buttons=*/{}, + /*expected_type=*/fuchsia::ui::test::input::MouseEventPhase::HOVER, + /*component_name=*/"mouse-input-view"); + // Flutter will scale the count of ticks to pixel. + EXPECT_LT(event_wheel_v.wheel_y_physical_pixel(), 0); + EXPECT_EQ(event_wheel_v.wheel_x_physical_pixel(), 0); +} + +} // namespace +} // namespace mouse_input_test::testing diff --git a/shell/platform/fuchsia/flutter/tests/integration/mouse-input/mouse-input-view/BUILD.gn b/shell/platform/fuchsia/flutter/tests/integration/mouse-input/mouse-input-view/BUILD.gn new file mode 100644 index 0000000000000..edb58ee0fd16f --- /dev/null +++ b/shell/platform/fuchsia/flutter/tests/integration/mouse-input/mouse-input-view/BUILD.gn @@ -0,0 +1,38 @@ +# Copyright 2013 The Flutter Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +import("//build/fuchsia/sdk.gni") +import("//flutter/tools/fuchsia/dart/dart_library.gni") +import("//flutter/tools/fuchsia/flutter/flutter_component.gni") +import("//flutter/tools/fuchsia/gn-sdk/component.gni") +import("//flutter/tools/fuchsia/gn-sdk/package.gni") + +dart_library("lib") { + package_name = "mouse-input-view" + sources = [ "mouse-input-view.dart" ] + + deps = [ + "//flutter/shell/platform/fuchsia/dart:args", + "//flutter/tools/fuchsia/dart:fuchsia_services", + "//flutter/tools/fuchsia/dart:zircon", + "//flutter/tools/fuchsia/fidl:fuchsia.ui.test.input", + ] +} + +flutter_component("component") { + testonly = true + component_name = "mouse-input-view" + manifest = rebase_path("meta/mouse-input-view.cml") + main_package = "mouse-input-view" + main_dart = "mouse-input-view.dart" + + deps = [ ":lib" ] +} + +fuchsia_package("package") { + testonly = true + package_name = "mouse-input-view" + + deps = [ ":component" ] +} diff --git a/shell/platform/fuchsia/flutter/tests/integration/mouse-input/mouse-input-view/lib/mouse-input-view.dart b/shell/platform/fuchsia/flutter/tests/integration/mouse-input/mouse-input-view/lib/mouse-input-view.dart new file mode 100644 index 0000000000000..9c657ff658f4e --- /dev/null +++ b/shell/platform/fuchsia/flutter/tests/integration/mouse-input/mouse-input-view/lib/mouse-input-view.dart @@ -0,0 +1,149 @@ +// Copyright 2020 The Fuchsia Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import 'dart:convert'; +import 'dart:typed_data'; +import 'dart:ui'; + +import 'package:fidl_fuchsia_ui_test_input/fidl_async.dart' as test_mouse; +import 'package:fuchsia_services/services.dart'; +import 'package:zircon/zircon.dart'; + +void main() { + print('Launching mouse-input-view'); + MyApp app = MyApp(); + app.run(); +} + +List getPressedButtons(int buttons) { + var pressed_buttons = []; + if (buttons & 0x1 != 0) { + pressed_buttons.add(test_mouse.MouseButton.first); + } + if (buttons & (0x1 >> 1) != 0) { + pressed_buttons.add(test_mouse.MouseButton.second); + } + if (buttons & (0x1 >> 2) != 0) { + pressed_buttons.add(test_mouse.MouseButton.third); + } + + return pressed_buttons; +} + +test_mouse.MouseEventPhase getPhase(String event_type) { + switch (event_type) { + case 'add': + return test_mouse.MouseEventPhase.add; + case 'hover': + return test_mouse.MouseEventPhase.hover; + case 'down': + return test_mouse.MouseEventPhase.down; + case 'move': + return test_mouse.MouseEventPhase.move; + case 'up': + return test_mouse.MouseEventPhase.up; + default: + print('Invalid event type: ${event_type}'); + } +} + +class MyApp { + static const _red = Color.fromARGB(255, 244, 67, 54); + static const _orange = Color.fromARGB(255, 255, 152, 0); + static const _yellow = Color.fromARGB(255, 255, 235, 59); + static const _green = Color.fromARGB(255, 76, 175, 80); + static const _blue = Color.fromARGB(255, 33, 150, 143); + static const _purple = Color.fromARGB(255, 156, 39, 176); + + final List _colors = [ + _red, + _orange, + _yellow, + _green, + _blue, + _purple, + ]; + + // Each tap will increment the counter, we then determine what color to choose + int _touchCounter = 0; + final _responseListener = test_mouse.MouseInputListenerProxy(); + + void run() { + Incoming.fromSvcPath() + ..connectToService(_responseListener); + // Set up window callbacks. + window.onPointerDataPacket = (PointerDataPacket packet) { + this.pointerDataPacket(packet); + }; + window.onMetricsChanged = () { + window.scheduleFrame(); + }; + window.onBeginFrame = (Duration duration) { + this.beginFrame(duration); + }; + + // The child view should be attached to Scenic now. + // Ready to build the scene. + window.scheduleFrame(); + } + + void beginFrame(Duration duration) { + // Convert physical screen size of device to values + final pixelRatio = window.devicePixelRatio; + final size = window.physicalSize / pixelRatio; + final physicalBounds = Offset.zero & size * pixelRatio; + // Set up Canvas that uses the screen size + final recorder = PictureRecorder(); + final canvas = Canvas(recorder, physicalBounds); + canvas.scale(pixelRatio, pixelRatio); + // Draw something + // Color of the screen is set initially to the first value in _colors + // Incrementing _touchCounter will change screen color + final paint = Paint()..color = _colors[_touchCounter % _colors.length]; + canvas.drawRect(Rect.fromLTWH(0, 0, size.width, size.height), paint); + // Build the scene + final picture = recorder.endRecording(); + final sceneBuilder = SceneBuilder() + ..pushClipRect(physicalBounds) + ..addPicture(Offset.zero, picture) + ..pop(); + window.render(sceneBuilder.build()); + } + + void pointerDataPacket(PointerDataPacket packet) async { + int nowNanos = System.clockGetMonotonic(); + + for (PointerData data in packet.data) { + print('mouse-input-view received input: ${data.toStringFull()}'); + + if (data.kind == PointerDeviceKind.mouse) { + if (data.change == PointerChange.down) { + _touchCounter++; + } + + // Incoming.fromSvcPath() + // ..connectToService(_responseListener) + // ..close(); + + _respond(test_mouse.MouseInputListenerReportMouseInputRequest( + localX: data.physicalX, + localY: data.physicalY, + buttons: getPressedButtons(data.buttons), + phase: getPhase(data.change.name), + timeReceived: nowNanos, + wheelXPhysicalPixel: data.scrollDeltaX, + wheelYPhysicalPixel: data.scrollDeltaY, + componentName: 'mouse-input-view', + )); + } + } + + window.scheduleFrame(); + } + + void _respond(test_mouse.MouseInputListenerReportMouseInputRequest request) async { + print('mouse-input-view reporting mouse input to MouseInputListener'); + await _responseListener.reportMouseInput(request); + } +} diff --git a/shell/platform/fuchsia/flutter/tests/integration/mouse-input/mouse-input-view/meta/mouse-input-view.cml b/shell/platform/fuchsia/flutter/tests/integration/mouse-input/mouse-input-view/meta/mouse-input-view.cml new file mode 100644 index 0000000000000..38d23643e4664 --- /dev/null +++ b/shell/platform/fuchsia/flutter/tests/integration/mouse-input/mouse-input-view/meta/mouse-input-view.cml @@ -0,0 +1,36 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. +{ + include: [ "syslog/client.shard.cml" ], + program: { + data: "data/mouse-input-view", + + // Always use the jit runner for now. + // TODO(fxbug.dev/106577): Implement manifest merging build rules for V2 components. + runner: "flutter_jit_runner", + }, + capabilities: [ + { + protocol: [ "fuchsia.ui.app.ViewProvider" ], + }, + ], + expose: [ + { + protocol: [ "fuchsia.ui.app.ViewProvider" ], + from: "self", + }, + ], + use: [ + { + protocol: [ + "fuchsia.sysmem.Allocator", + "fuchsia.tracing.provider.Registry", + "fuchsia.ui.scenic.Scenic", + "fuchsia.ui.composition.Flatland", + "fuchsia.ui.test.input.MouseInputListener", + "fuchsia.vulkan.loader.Loader", + ] + } + ] +} diff --git a/shell/platform/fuchsia/flutter/tests/integration/mouse-input/mouse-input-view/pubspec.yaml b/shell/platform/fuchsia/flutter/tests/integration/mouse-input/mouse-input-view/pubspec.yaml new file mode 100644 index 0000000000000..a557dbe433abd --- /dev/null +++ b/shell/platform/fuchsia/flutter/tests/integration/mouse-input/mouse-input-view/pubspec.yaml @@ -0,0 +1,8 @@ +# Copyright 2013 The Flutter Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +name: mouse-input-view + +environment: + sdk: '>=2.18.0 <3.0.0' diff --git a/shell/platform/fuchsia/flutter/tests/integration/text-input/text-input-test.cc b/shell/platform/fuchsia/flutter/tests/integration/text-input/text-input-test.cc index 5718a9e43c622..0fe3a47d5e78f 100644 --- a/shell/platform/fuchsia/flutter/tests/integration/text-input/text-input-test.cc +++ b/shell/platform/fuchsia/flutter/tests/integration/text-input/text-input-test.cc @@ -112,6 +112,9 @@ class TestResponseListenerServer return match; } + // KeyboardInputListener override + void ReportReady(ReportReadyCallback) override {} + private: // Not owned. async_dispatcher_t* dispatcher_ = nullptr; diff --git a/shell/platform/fuchsia/flutter/tests/integration/text-input/text-input-view/lib/text_input_view.dart b/shell/platform/fuchsia/flutter/tests/integration/text-input/text-input-view/lib/text_input_view.dart index 6df6b22f8beb0..83e70afac3631 100644 --- a/shell/platform/fuchsia/flutter/tests/integration/text-input/text-input-view/lib/text_input_view.dart +++ b/shell/platform/fuchsia/flutter/tests/integration/text-input/text-input-view/lib/text_input_view.dart @@ -2,9 +2,6 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// TODO(https://fxbug.dev/84961): Fix null safety and remove this language version. -// @dart=2.9 - // This is an instrumented test application. It has a single field, is // able to receive keyboard input from the test fixture, and is able to report // back the contents of its text field to the test fixture. diff --git a/shell/platform/fuchsia/flutter/tests/integration/text-input/text-input-view/pubspec.yaml b/shell/platform/fuchsia/flutter/tests/integration/text-input/text-input-view/pubspec.yaml index 5031e08688398..30c6e7096ef8c 100644 --- a/shell/platform/fuchsia/flutter/tests/integration/text-input/text-input-view/pubspec.yaml +++ b/shell/platform/fuchsia/flutter/tests/integration/text-input/text-input-view/pubspec.yaml @@ -5,4 +5,4 @@ name: text-input-view environment: - sdk: '>=2.12.0 <3.0.0' + sdk: '>=2.18.0 <3.0.0' diff --git a/shell/platform/fuchsia/flutter/tests/integration/touch-input/BUILD.gn b/shell/platform/fuchsia/flutter/tests/integration/touch-input/BUILD.gn new file mode 100644 index 0000000000000..83075b1a5cd54 --- /dev/null +++ b/shell/platform/fuchsia/flutter/tests/integration/touch-input/BUILD.gn @@ -0,0 +1,71 @@ +# Copyright 2013 The Flutter Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +assert(is_fuchsia) + +import("//build/fuchsia/sdk.gni") +import("//flutter/tools/fuchsia/fuchsia_archive.gni") +import("//flutter/tools/fuchsia/gn-sdk/package.gni") + +group("tests") { + testonly = true + deps = [ ":touch-input-test" ] +} + +executable("touch-input-test-bin") { + testonly = true + output_name = "touch-input-test" + sources = [ "touch-input-test.cc" ] + + # This is needed for //third_party/googletest for linking zircon symbols. + libs = [ "$fuchsia_sdk_path/arch/$target_cpu/sysroot/lib/libzircon.so" ] + + deps = [ + "$fuchsia_sdk_root/fidl:fuchsia.accessibility.semantics", + "$fuchsia_sdk_root/fidl:fuchsia.buildinfo", + "$fuchsia_sdk_root/fidl:fuchsia.component", + "$fuchsia_sdk_root/fidl:fuchsia.fonts", + "$fuchsia_sdk_root/fidl:fuchsia.intl", + "$fuchsia_sdk_root/fidl:fuchsia.kernel", + "$fuchsia_sdk_root/fidl:fuchsia.memorypressure", + "$fuchsia_sdk_root/fidl:fuchsia.metrics", + "$fuchsia_sdk_root/fidl:fuchsia.net.interfaces", + "$fuchsia_sdk_root/fidl:fuchsia.tracing.provider", + "$fuchsia_sdk_root/fidl:fuchsia.ui.app", + "$fuchsia_sdk_root/fidl:fuchsia.ui.input", + "$fuchsia_sdk_root/fidl:fuchsia.ui.pointerinjector", + "$fuchsia_sdk_root/fidl:fuchsia.ui.policy", + "$fuchsia_sdk_root/fidl:fuchsia.ui.scenic", + "$fuchsia_sdk_root/fidl:fuchsia.ui.test.input", + "$fuchsia_sdk_root/fidl:fuchsia.ui.test.scene", + "$fuchsia_sdk_root/fidl:fuchsia.web", + "$fuchsia_sdk_root/pkg:async", + "$fuchsia_sdk_root/pkg:async-loop-testing", + "$fuchsia_sdk_root/pkg:fidl_cpp", + "$fuchsia_sdk_root/pkg:scenic_cpp", + "$fuchsia_sdk_root/pkg:sys_component_cpp_testing", + "$fuchsia_sdk_root/pkg:zx", + "touch-input-view:package", + "//build/fuchsia/fidl:fuchsia.ui.gfx", + "//flutter/fml", + "//flutter/shell/platform/fuchsia/flutter/tests/integration/utils:portable_ui_test", + "//third_party/googletest:gtest", + "//third_party/googletest:gtest_main", + ] +} + +fuchsia_test_archive("touch-input-test") { + testonly = true + deps = [ + ":touch-input-test-bin", + + # "OOT" copies of the runners used by tests, to avoid conflicting with the + # runners in the base fuchsia image. + # TODO(fxbug.dev/106575): Fix this with subpackages. + "//flutter/shell/platform/fuchsia/flutter:oot_flutter_jit_runner", + ] + + binary = "$target_name" + cml_file = rebase_path("meta/$target_name.cml") +} diff --git a/shell/platform/fuchsia/flutter/tests/integration/touch-input/README.md b/shell/platform/fuchsia/flutter/tests/integration/touch-input/README.md new file mode 100644 index 0000000000000..828db8566346d --- /dev/null +++ b/shell/platform/fuchsia/flutter/tests/integration/touch-input/README.md @@ -0,0 +1,76 @@ +# touch-input + +`touch-input-test` exercises touch through a child view (in this case, the `touch-input-view` Dart component) and asserting +the precise location of the touch event. We do this by attaching the child view, injecting touch, and validating that the view +reports the touch event back with the correct coordinates. + +```shell +Injecting the tap event +[touch-input-test.cm] INFO: [portable_ui_test.cc(193)] Injecting tap at (-500, -500) + +View receives the event +[flutter_jit_runner] INFO: touch-input-view.cm(flutter): touch-input-view received tap: PointerData(embedderId: 0, timeStamp: 0:01:03.623259, +change: PointerChange.add, kind: PointerDeviceKind.touch, signalKind: PointerSignalKind.none, device: -4294967295, pointerIdentifier: 0, +physicalX: 319.99998331069946, physicalY: 199.99999284744263, physicalDeltaX: 0.0, physicalDeltaY: 0.0, buttons: 0, synthesized: false, +pressure: 0.0, pressureMin: 0.0, pressureMax: 0.0, distance: 0.0, distanceMax: 0.0, size: 0.0, radiusMajor: 0.0, radiusMinor: 0.0, +radiusMin: 0.0, radiusMax: 0.0, orientation: 0.0, tilt: 0.0, platformData: 0, scrollDeltaX: 0.0, scrollDeltaY: 0.0, panX: 0.0, panY: 0.0, +panDeltaX: 0.0, panDeltaY: 0.0, scale: 0.0, rotation: 0.0) + +Successfully received response from view +[touch-input-test.cm] INFO: [touch-input-test.cc(162)] Received ReportTouchInput event +[touch-input-test.cm] INFO: [touch-input-test.cc(255)] Expecting event for component touch-input-view at (320, 200) +[touch-input-test.cm] INFO: [touch-input-test.cc(257)] Received event for component touch-input-view at (320, 200), accounting for pixel scale of 1 +``` + +Some interesting details (thanks to abrusher@): + +There exists two coordinate spaces within our testing realm. The first is `touch-input-view`'s "logical" coordinate space. This +is determined based on `touch-input-view`'s size and is the space in which it sees incoming events. The second is the "injector" +coordinate space, which spans [-1000, 1000] on both axes. + +The size/position of a view doesn't always match the bounds of a display exactly. As a result, Scenic has a separate coordinate space +to specify the location at which to inject a touch event. This is always fixed to the display bounds. Scenic knows how to map this +coordinate space onto the client view's space. + +For example, if we inject at (-500, -500) `touch-input-view` will see a touch event at the middle of the upper-left quadrant of the screen. + +## Running the Test + +Reference the Flutter integration test [documentation](https://github.com/flutter/engine/blob/main/shell/platform/fuchsia/flutter/tests/integration/README.md) at //flutter/shell/platform/fuchsia/flutter/tests/integration/README.md + +## Playing around with `touch-input-view` + +Build Fuchsia with `workstation_eng.qemu-x64` +```shell +fx set workstation_eng.qemu-x64 && fx build +``` + +Build flutter/engine +```shell +$ENGINE_DIR/flutter/tools/gn --fuchsia --no-lto && ninja -C $ENGINE_DIR/out/fuchsia_debug_x64 flutter/shell/platform/fuchsia/flutter/tests/ +integration/touch_input:tests +``` + +Start a Fuchsia package server +```shell +cd "$FUCHSIA_DIR" +fx serve +``` + +Publish `touch-input-view` +```shell +$FUCHSIA_DIR/.jiri_root/bin/fx pm publish -a -repo $FUCHSIA_DIR/$(cat $FUCHSIA_DIR/.fx-build-dir)/amber-files -f $ENGINE_DIR/out/ +fuchsia_debug_x64/gen/flutter/shell/platform/fuchsia/flutter/tests/integration/touch-input/touch-input-view/touch-input-view/touch-input-view.far +``` + +Launch Fuchsia emulator in a graphical environment +```shell +ffx emu start +``` + +**Before proceeding, make sure you have successfully completed the "Set a Password" screen** + +Add `touch-input-view` +```shell +ffx session add fuchsia-pkg://fuchsia.com/touch-input-view#meta/touch-input-view.cm +``` diff --git a/shell/platform/fuchsia/flutter/tests/integration/touch-input/meta/gtest_runner.shard.cml b/shell/platform/fuchsia/flutter/tests/integration/touch-input/meta/gtest_runner.shard.cml new file mode 100644 index 0000000000000..d9871b70f3022 --- /dev/null +++ b/shell/platform/fuchsia/flutter/tests/integration/touch-input/meta/gtest_runner.shard.cml @@ -0,0 +1,17 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. +{ + program: { + runner: "gtest_runner", + }, + capabilities: [ + { protocol: "fuchsia.test.Suite" }, + ], + expose: [ + { + protocol: "fuchsia.test.Suite", + from: "self", + }, + ], +} diff --git a/shell/platform/fuchsia/flutter/tests/integration/touch-input/meta/touch-input-test.cml b/shell/platform/fuchsia/flutter/tests/integration/touch-input/meta/touch-input-test.cml new file mode 100644 index 0000000000000..ce02849484a52 --- /dev/null +++ b/shell/platform/fuchsia/flutter/tests/integration/touch-input/meta/touch-input-test.cml @@ -0,0 +1,53 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. +{ + include: [ + "gtest_runner.shard.cml", + "sys/component/realm_builder_absolute.shard.cml", + + // This test needs both the vulkan facet and the hermetic-tier-2 facet, + // so we are forced to make it a system test. + "sys/testing/system-test.shard.cml", + ], + program: { + binary: "bin/app", + }, + use: [ + { + protocol: [ + "fuchsia.ui.test.input.TouchInputListener", + ] + } + ], + offer: [ + { + // Offer capabilities needed by components in this test realm. + // Keep it minimal, describe only what's actually needed. + protocol: [ + "fuchsia.kernel.RootJobForInspect", + "fuchsia.kernel.Stats", + "fuchsia.logger.LogSink", + "fuchsia.scheduler.ProfileProvider", + "fuchsia.sysmem.Allocator", + "fuchsia.tracing.provider.Registry", + "fuchsia.ui.input.ImeService", + "fuchsia.vulkan.loader.Loader", + "fuchsia.ui.scenic.Scenic", + "fuchsia.ui.test.input.TouchInputListener", + "fuchsia.intl.PropertyProvider", + "fuchsia.posix.socket.Provider", + "fuchsia.ui.pointerinjector.Registry", + ], + from: "parent", + to: "#realm_builder", + }, + { + directory: "pkg", + subdir: "config", + as: "config-data", + from: "framework", + to: "#realm_builder", + }, + ], +} diff --git a/shell/platform/fuchsia/flutter/tests/integration/touch-input/touch-input-test.cc b/shell/platform/fuchsia/flutter/tests/integration/touch-input/touch-input-test.cc new file mode 100644 index 0000000000000..78137ac0f49fd --- /dev/null +++ b/shell/platform/fuchsia/flutter/tests/integration/touch-input/touch-input-test.cc @@ -0,0 +1,339 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#include + +#include "flutter/fml/logging.h" +#include "flutter/shell/platform/fuchsia/flutter/tests/integration/utils/portable_ui_test.h" + +// This test exercises the touch input dispatch path from Input Pipeline to a +// Scenic client. It is a multi-component test, and carefully avoids sleeping or +// polling for component coordination. +// - It runs real Root Presenter, Input Pipeline, and Scenic components. +// - It uses a fake display controller; the physical device is unused. +// +// Components involved +// - This test program +// - Input Pipeline +// - Root Presenter +// - Scenic +// - Child view, a Scenic client +// +// Touch dispatch path +// - Test program's injection -> Input Pipeline -> Scenic -> Child view +// +// Setup sequence +// - The test sets up this view hierarchy: +// - Top level scene, owned by Root Presenter. +// - Child view, owned by the ui client. +// - The test waits for a Scenic event that verifies the child has UI content in +// the scene graph. +// - The test injects input into Input Pipeline, emulating a display's touch +// report. +// - Input Pipeline dispatches the touch event to Scenic, which in turn +// dispatches it to the child. +// - The child receives the touch event and reports back to the test over a +// custom test-only FIDL. +// - Test waits for the child to report a touch; when the test receives the +// report, the test quits +// successfully. +// +// This test uses the realm_builder library to construct the topology of +// components and routes services between them. For v2 components, every test +// driver component sits as a child of test_manager in the topology. Thus, the +// topology of a test driver component such as this one looks like this: +// +// test_manager +// | +// touch-input-test.cml (this component) +// +// With the usage of the realm_builder library, we construct a realm during +// runtime and then extend the topology to look like: +// +// test_manager +// | +// touch-input-test.cml (this component) +// | +// +// / \ +// scenic input-pipeline +// +// For more information about testing v2 components and realm_builder, +// visit the following links: +// +// Testing: https://fuchsia.dev/fuchsia-src/concepts/testing/v2 +// Realm Builder: +// https://fuchsia.dev/fuchsia-src/development/components/v2/realm_builder + +namespace touch_input_test::testing { +namespace { +// Types imported for the realm_builder library. +using component_testing::ChildRef; +using component_testing::ConfigValue; +using component_testing::LocalComponent; +using component_testing::LocalComponentHandles; +using component_testing::ParentRef; +using component_testing::Protocol; +using component_testing::Realm; +using component_testing::RealmRoot; +using component_testing::Route; + +using fuchsia_test_utils::PortableUITest; + +using RealmBuilder = component_testing::RealmBuilder; + +// Max timeout in failure cases. +// Set this as low as you can that still works across all test platforms. +constexpr zx::duration kTimeout = zx::min(5); + +constexpr auto kMockTouchInputListener = "touch_input_listener"; +constexpr auto kMockTouchInputListenerRef = ChildRef{kMockTouchInputListener}; +constexpr auto kTouchInputView = "touch-input-view"; +constexpr auto kTouchInputViewRef = ChildRef{kTouchInputView}; +constexpr auto kTouchInputViewUrl = + "fuchsia-pkg://fuchsia.com/touch-input-view#meta/touch-input-view.cm"; + +bool CompareDouble(double f0, double f1, double epsilon) { + return std::abs(f0 - f1) <= epsilon; +} + +// This component implements the TouchInput protocol +// and the interface for a RealmBuilder LocalComponent. A LocalComponent +// is a component that is implemented here in the test, as opposed to +// elsewhere in the system. When it's inserted to the realm, it will act +// like a proper component. This is accomplished, in part, because the +// realm_builder library creates the necessary plumbing. It creates a manifest +// for the component and routes all capabilities to and from it. +// LocalComponent: +// https://fuchsia.dev/fuchsia-src/development/testing/components/realm_builder#mock-components +class TouchInputListenerServer + : public fuchsia::ui::test::input::TouchInputListener, + public LocalComponent { + public: + explicit TouchInputListenerServer(async_dispatcher_t* dispatcher) + : dispatcher_(dispatcher) {} + + // |fuchsia::ui::test::input::TouchInputListener| + void ReportTouchInput( + fuchsia::ui::test::input::TouchInputListenerReportTouchInputRequest + request) override { + FML_LOG(INFO) << "Received ReportTouchInput event"; + events_received_.push_back(std::move(request)); + } + + // |LocalComponent::Start| + // When the component framework requests for this component to start, this + // method will be invoked by the realm_builder library. + void Start(std::unique_ptr local_handles) override { + FML_LOG(INFO) << "Starting TouchInputListenerServer"; + // When this component starts, add a binding to the + // protocol to this component's outgoing directory. + ASSERT_EQ(ZX_OK, local_handles->outgoing()->AddPublicService( + fidl::InterfaceRequestHandler< + fuchsia::ui::test::input::TouchInputListener>( + [this](auto request) { + bindings_.AddBinding(this, std::move(request), + dispatcher_); + }))); + local_handles_.emplace_back(std::move(local_handles)); + } + + const std::vector< + fuchsia::ui::test::input::TouchInputListenerReportTouchInputRequest>& + events_received() { + return events_received_; + } + + private: + async_dispatcher_t* dispatcher_ = nullptr; + std::vector> local_handles_; + fidl::BindingSet bindings_; + std::vector< + fuchsia::ui::test::input::TouchInputListenerReportTouchInputRequest> + events_received_; +}; + +class FlutterTapTest : public PortableUITest, + public ::testing::Test, + public ::testing::WithParamInterface { + protected: + ~FlutterTapTest() override { + FML_CHECK(touch_injection_request_count() > 0) + << "Injection expected but didn't happen."; + } + + void SetUp() override { + PortableUITest::SetUp(); + + // Post a "just in case" quit task, if the test hangs. + async::PostDelayedTask( + dispatcher(), + [] { + FML_LOG(FATAL) + << "\n\n>> Test did not complete in time, terminating. <<\n\n"; + }, + kTimeout); + + // Get the display dimensions. + FML_LOG(INFO) << "Waiting for scenic display info"; + scenic_ = realm_root()->template Connect(); + scenic_->GetDisplayInfo([this](fuchsia::ui::gfx::DisplayInfo display_info) { + display_width_ = display_info.width_in_px; + display_height_ = display_info.height_in_px; + FML_LOG(INFO) << "Got display_width = " << display_width_ + << " and display_height = " << display_height_; + }); + RunLoopUntil( + [this] { return display_width_ != 0 && display_height_ != 0; }); + + // Register input injection device. + FML_LOG(INFO) << "Registering input injection device"; + RegisterTouchScreen(); + } + + bool LastEventReceivedMatches(float expected_x, + float expected_y, + std::string component_name) { + const auto& events_received = + touch_input_listener_server_->events_received(); + + if (events_received.empty()) { + return false; + } + + const auto& last_event = events_received.back(); + + auto pixel_scale = last_event.has_device_pixel_ratio() + ? last_event.device_pixel_ratio() + : 1; + + auto actual_x = pixel_scale * last_event.local_x(); + auto actual_y = pixel_scale * last_event.local_y(); + + FML_LOG(INFO) << "Expecting event for component " << component_name + << " at (" << expected_x << ", " << expected_y << ")"; + FML_LOG(INFO) << "Received event for component " << component_name + << " at (" << actual_x << ", " << actual_y + << "), accounting for pixel scale of " << pixel_scale; + + return CompareDouble(actual_x, expected_x, pixel_scale) && + CompareDouble(actual_y, expected_y, pixel_scale) && + last_event.component_name() == component_name; + } + + // Guaranteed to be initialized after SetUp(). + uint32_t display_width() const { return display_width_; } + uint32_t display_height() const { return display_height_; } + + private: + void ExtendRealm() override { + // Key part of service setup: have this test component vend the + // |TouchInputListener| service in the constructed realm. + touch_input_listener_server_ = + std::make_unique(dispatcher()); + realm_builder()->AddLocalChild(kMockTouchInputListener, + touch_input_listener_server_.get()); + + realm_builder()->AddChild(kTouchInputView, kTouchInputViewUrl, + component_testing::ChildOptions{ + .environment = kFlutterRunnerEnvironment, + }); + + // Route the TouchInput protocol capability to the Dart component + realm_builder()->AddRoute( + Route{.capabilities = {Protocol{ + fuchsia::ui::test::input::TouchInputListener::Name_}}, + .source = kMockTouchInputListenerRef, + .targets = {kFlutterJitRunnerRef, kTouchInputViewRef}}); + + realm_builder()->AddRoute( + Route{.capabilities = {Protocol{fuchsia::ui::app::ViewProvider::Name_}}, + .source = kTouchInputViewRef, + .targets = {ParentRef()}}); + } + + ParamType GetTestUIStackUrl() override { return GetParam(); }; + + std::unique_ptr touch_input_listener_server_; + + fuchsia::ui::scenic::ScenicPtr scenic_; + uint32_t display_width_ = 0; + uint32_t display_height_ = 0; +}; + +// Makes use of gtest's parameterized testing, allowing us +// to test different combinations of test-ui-stack + runners. Currently, there +// is just one combination. Documentation: +// http://go/gunitadvanced#value-parameterized-tests +INSTANTIATE_TEST_SUITE_P( + FlutterTapTestParameterized, + FlutterTapTest, + ::testing::Values( + "fuchsia-pkg://fuchsia.com/gfx-root-presenter-test-ui-stack#meta/" + "test-ui-stack.cm")); + +TEST_P(FlutterTapTest, FlutterTap) { + // Launch client view, and wait until it's rendering to proceed with the test. + FML_LOG(INFO) << "Initializing scene"; + LaunchClient(); + FML_LOG(INFO) << "Client launched"; + + // touch-input-view logical coordinate space doesn't match the fake touch + // screen injector's coordinate space, which spans [-1000, 1000] on both axes. + // Scenic handles figuring out where in the coordinate space + // to inject a touch event (this is fixed to a display's bounds). + InjectTap(-500, -500); + // For a (-500 [x], -500 [y]) tap, we expect a touch event in the middle of + // the upper-left quadrant of the screen. + RunLoopUntil([this] { + return LastEventReceivedMatches( + /*expected_x=*/static_cast(display_width() / 4.0f), + /*expected_y=*/static_cast(display_height() / 4.0f), + /*component_name=*/"touch-input-view"); + }); +} + +} // namespace +} // namespace touch_input_test::testing diff --git a/shell/platform/fuchsia/flutter/tests/integration/touch-input/touch-input-view/BUILD.gn b/shell/platform/fuchsia/flutter/tests/integration/touch-input/touch-input-view/BUILD.gn new file mode 100644 index 0000000000000..bbaf6ca65fc5a --- /dev/null +++ b/shell/platform/fuchsia/flutter/tests/integration/touch-input/touch-input-view/BUILD.gn @@ -0,0 +1,38 @@ +# Copyright 2013 The Flutter Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +import("//build/fuchsia/sdk.gni") +import("//flutter/tools/fuchsia/dart/dart_library.gni") +import("//flutter/tools/fuchsia/flutter/flutter_component.gni") +import("//flutter/tools/fuchsia/gn-sdk/component.gni") +import("//flutter/tools/fuchsia/gn-sdk/package.gni") + +dart_library("lib") { + package_name = "touch-input-view" + sources = [ "touch-input-view.dart" ] + + deps = [ + "//flutter/shell/platform/fuchsia/dart:args", + "//flutter/tools/fuchsia/dart:fuchsia_services", + "//flutter/tools/fuchsia/dart:zircon", + "//flutter/tools/fuchsia/fidl:fuchsia.ui.test.input", + ] +} + +flutter_component("component") { + testonly = true + component_name = "touch-input-view" + manifest = rebase_path("meta/touch-input-view.cml") + main_package = "touch-input-view" + main_dart = "touch-input-view.dart" + + deps = [ ":lib" ] +} + +fuchsia_package("package") { + testonly = true + package_name = "touch-input-view" + + deps = [ ":component" ] +} diff --git a/shell/platform/fuchsia/flutter/tests/integration/touch-input/touch-input-view/lib/touch-input-view.dart b/shell/platform/fuchsia/flutter/tests/integration/touch-input/touch-input-view/lib/touch-input-view.dart new file mode 100644 index 0000000000000..3578ae93a6a05 --- /dev/null +++ b/shell/platform/fuchsia/flutter/tests/integration/touch-input/touch-input-view/lib/touch-input-view.dart @@ -0,0 +1,111 @@ +// Copyright 2020 The Fuchsia Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import 'dart:convert'; +import 'dart:typed_data'; +import 'dart:ui'; + +import 'package:fidl_fuchsia_ui_test_input/fidl_async.dart' as test_touch; +import 'package:fuchsia_services/services.dart'; +import 'package:zircon/zircon.dart'; + +void main() { + print('Launching two-flutter view'); + MyApp app = MyApp(); + app.run(); +} + +class MyApp { + static const _red = Color.fromARGB(255, 244, 67, 54); + static const _orange = Color.fromARGB(255, 255, 152, 0); + static const _yellow = Color.fromARGB(255, 255, 235, 59); + static const _green = Color.fromARGB(255, 76, 175, 80); + static const _blue = Color.fromARGB(255, 33, 150, 143); + static const _purple = Color.fromARGB(255, 156, 39, 176); + + final List _colors = [ + _red, + _orange, + _yellow, + _green, + _blue, + _purple, + ]; + + // Each tap will increment the counter, we then determine what color to choose + int _touchCounter = 0; + final _responseListener = test_touch.TouchInputListenerProxy(); + + void run() { + // Set up window callbacks. + window.onPointerDataPacket = (PointerDataPacket packet) { + this.pointerDataPacket(packet); + }; + window.onMetricsChanged = () { + window.scheduleFrame(); + }; + window.onBeginFrame = (Duration duration) { + this.beginFrame(duration); + }; + + // The child view should be attached to Scenic now. + // Ready to build the scene. + window.scheduleFrame(); + } + + void beginFrame(Duration duration) { + // Convert physical screen size of device to values + final pixelRatio = window.devicePixelRatio; + final size = window.physicalSize / pixelRatio; + final physicalBounds = Offset.zero & size * pixelRatio; + // Set up Canvas that uses the screen size + final recorder = PictureRecorder(); + final canvas = Canvas(recorder, physicalBounds); + canvas.scale(pixelRatio, pixelRatio); + // Draw something + // Color of the screen is set initially to the first value in _colors + // Incrementing _touchCounter will change screen color + final paint = Paint()..color = _colors[_touchCounter % _colors.length]; + canvas.drawRect(Rect.fromLTWH(0, 0, size.width, size.height), paint); + // Build the scene + final picture = recorder.endRecording(); + final sceneBuilder = SceneBuilder() + ..pushClipRect(physicalBounds) + ..addPicture(Offset.zero, picture) + ..pop(); + window.render(sceneBuilder.build()); + } + + void pointerDataPacket(PointerDataPacket packet) async { + int nowNanos = System.clockGetMonotonic(); + + for (PointerData data in packet.data) { + print('touch-input-view received tap: ${data.toStringFull()}'); + + if (data.change == PointerChange.down) { + _touchCounter++; + } + + if (data.change == PointerChange.down || data.change == PointerChange.move) { + Incoming.fromSvcPath() + ..connectToService(_responseListener) + ..close(); + + _respond(test_touch.TouchInputListenerReportTouchInputRequest( + localX: data.physicalX, + localY: data.physicalY, + timeReceived: nowNanos, + componentName: 'touch-input-view', + )); + } + } + + window.scheduleFrame(); + } + + void _respond(test_touch.TouchInputListenerReportTouchInputRequest request) async { + print('touch-input-view reporting touch input to TouchInputListener'); + await _responseListener.reportTouchInput(request); + } +} diff --git a/shell/platform/fuchsia/flutter/tests/integration/touch-input/touch-input-view/meta/touch-input-view.cml b/shell/platform/fuchsia/flutter/tests/integration/touch-input/touch-input-view/meta/touch-input-view.cml new file mode 100644 index 0000000000000..bdd76ea1b30ee --- /dev/null +++ b/shell/platform/fuchsia/flutter/tests/integration/touch-input/touch-input-view/meta/touch-input-view.cml @@ -0,0 +1,35 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. +{ + include: [ "syslog/client.shard.cml" ], + program: { + data: "data/touch-input-view", + + // Always use the jit runner for now. + // TODO(fxbug.dev/106577): Implement manifest merging build rules for V2 components. + runner: "flutter_jit_runner", + }, + capabilities: [ + { + protocol: [ "fuchsia.ui.app.ViewProvider" ], + }, + ], + expose: [ + { + protocol: [ "fuchsia.ui.app.ViewProvider" ], + from: "self", + }, + ], + use: [ + { + protocol: [ + "fuchsia.sysmem.Allocator", + "fuchsia.tracing.provider.Registry", + "fuchsia.ui.scenic.Scenic", + "fuchsia.ui.test.input.TouchInputListener", + "fuchsia.vulkan.loader.Loader", + ] + } + ] +} diff --git a/shell/platform/fuchsia/flutter/tests/integration/touch-input/touch-input-view/pubspec.yaml b/shell/platform/fuchsia/flutter/tests/integration/touch-input/touch-input-view/pubspec.yaml new file mode 100644 index 0000000000000..cc78c78f090eb --- /dev/null +++ b/shell/platform/fuchsia/flutter/tests/integration/touch-input/touch-input-view/pubspec.yaml @@ -0,0 +1,8 @@ +# Copyright 2013 The Flutter Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +name: touch-input-view + +environment: + sdk: '>=2.18.0 <3.0.0' diff --git a/shell/platform/fuchsia/flutter/tests/integration/utils/BUILD.gn b/shell/platform/fuchsia/flutter/tests/integration/utils/BUILD.gn index 78b693d2edc04..dd4ae203bfd5c 100644 --- a/shell/platform/fuchsia/flutter/tests/integration/utils/BUILD.gn +++ b/shell/platform/fuchsia/flutter/tests/integration/utils/BUILD.gn @@ -40,3 +40,25 @@ source_set("screenshot") { "//flutter/fml", ] } + +source_set("portable_ui_test") { + testonly = true + sources = [ + "portable_ui_test.cc", + "portable_ui_test.h", + ] + + deps = [ + ":check_view", + "$fuchsia_sdk_root/fidl:fuchsia.ui.app", + "$fuchsia_sdk_root/fidl:fuchsia.ui.input", + "$fuchsia_sdk_root/fidl:fuchsia.ui.observation.geometry", + "$fuchsia_sdk_root/fidl:fuchsia.ui.policy", + "$fuchsia_sdk_root/fidl:fuchsia.ui.scenic", + "$fuchsia_sdk_root/fidl:fuchsia.ui.test.input", + "$fuchsia_sdk_root/fidl:fuchsia.ui.test.scene", + "$fuchsia_sdk_root/pkg:async-loop-testing", + "$fuchsia_sdk_root/pkg:sys_component_cpp_testing", + "//flutter/fml", + ] +} diff --git a/shell/platform/fuchsia/flutter/tests/integration/utils/portable_ui_test.cc b/shell/platform/fuchsia/flutter/tests/integration/utils/portable_ui_test.cc new file mode 100644 index 0000000000000..80aa700945294 --- /dev/null +++ b/shell/platform/fuchsia/flutter/tests/integration/utils/portable_ui_test.cc @@ -0,0 +1,250 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "portable_ui_test.h" + +#include +#include +#include +#include +#include +#include + +#include "check_view.h" +#include "flutter/fml/logging.h" + +namespace fuchsia_test_utils { +namespace { + +// Types imported for the realm_builder library. +using component_testing::ChildOptions; +using component_testing::ChildRef; +using component_testing::ParentRef; +using component_testing::Protocol; +using component_testing::RealmRoot; +using component_testing::Route; + +using fuchsia_test_utils::CheckViewExistsInSnapshot; + +} // namespace + +void PortableUITest::SetUp() { + SetUpRealmBase(); + + ExtendRealm(); + + realm_ = std::make_unique(realm_builder_.Build()); +} + +void PortableUITest::SetUpRealmBase() { + FML_LOG(INFO) << "Setting up realm base"; + + // Add Flutter JIT runner as a child of the RealmBuilder + realm_builder_.AddChild(kFlutterJitRunner, kFlutterJitRunnerUrl); + + // Add environment providing the Flutter JIT runner + fuchsia::component::decl::Environment flutter_runner_environment; + flutter_runner_environment.set_name(kFlutterRunnerEnvironment); + flutter_runner_environment.set_extends( + fuchsia::component::decl::EnvironmentExtends::REALM); + flutter_runner_environment.set_runners({}); + auto environment_runners = flutter_runner_environment.mutable_runners(); + + // Add Flutter JIT runner to the environment + fuchsia::component::decl::RunnerRegistration flutter_jit_runner_reg; + flutter_jit_runner_reg.set_source(fuchsia::component::decl::Ref::WithChild( + fuchsia::component::decl::ChildRef{.name = kFlutterJitRunner})); + flutter_jit_runner_reg.set_source_name(kFlutterJitRunner); + flutter_jit_runner_reg.set_target_name(kFlutterJitRunner); + environment_runners->push_back(std::move(flutter_jit_runner_reg)); + auto realm_decl = realm_builder_.GetRealmDecl(); + if (!realm_decl.has_environments()) { + realm_decl.set_environments({}); + } + auto realm_environments = realm_decl.mutable_environments(); + realm_environments->push_back(std::move(flutter_runner_environment)); + realm_builder_.ReplaceRealmDecl(std::move(realm_decl)); + + // Add test UI stack component. + realm_builder_.AddChild(kTestUIStack, GetTestUIStackUrl()); + + // // Route base system services to flutter and the test UI stack. + realm_builder_.AddRoute(Route{ + .capabilities = {Protocol{fuchsia::logger::LogSink::Name_}, + Protocol{fuchsia::sys::Environment::Name_}, + Protocol{fuchsia::sysmem::Allocator::Name_}, + Protocol{fuchsia::tracing::provider::Registry::Name_}, + Protocol{fuchsia::ui::input::ImeService::Name_}, + Protocol{kPointerInjectorRegistryName}, + Protocol{kPosixSocketProviderName}, + Protocol{kVulkanLoaderServiceName}, + component_testing::Directory{"config-data"}}, + .source = ParentRef(), + .targets = {kFlutterJitRunnerRef, kTestUIStackRef}}); + + // Route UI capabilities to test driver and Flutter runner + realm_builder_.AddRoute(Route{ + .capabilities = {Protocol{fuchsia::ui::composition::Allocator::Name_}, + Protocol{fuchsia::ui::composition::Flatland::Name_}, + Protocol{fuchsia::ui::scenic::Scenic::Name_}, + Protocol{fuchsia::ui::test::input::Registry::Name_}, + Protocol{fuchsia::ui::test::scene::Controller::Name_}}, + .source = kTestUIStackRef, + .targets = {ParentRef(), kFlutterJitRunnerRef}}); +} + +void PortableUITest::ProcessViewGeometryResponse( + fuchsia::ui::observation::geometry::WatchResponse response) { + // Process update if no error + if (!response.has_error()) { + std::vector* updates = + response.mutable_updates(); + if (updates && !updates->empty()) { + last_view_tree_snapshot_ = std::move(updates->back()); + } + } else { + // Otherwise process error + const auto& error = response.error(); + if (error | fuchsia::ui::observation::geometry::Error::CHANNEL_OVERFLOW) { + FML_LOG(INFO) << "View Tree watcher channel overflowed"; + } else if (error | + fuchsia::ui::observation::geometry::Error::BUFFER_OVERFLOW) { + FML_LOG(INFO) << "View Tree watcher buffer overflowed"; + } else if (error | + fuchsia::ui::observation::geometry::Error::VIEWS_OVERFLOW) { + // This one indicates some possible data loss, so we log with a high + // severity + FML_LOG(WARNING) + << "View Tree watcher attempted to report too many views"; + } + } +} + +void PortableUITest::WatchViewGeometry() { + FML_CHECK(view_tree_watcher_) + << "View Tree watcher must be registered before calling Watch()"; + + view_tree_watcher_->Watch([this](auto response) { + ProcessViewGeometryResponse(std::move(response)); + WatchViewGeometry(); + }); +} + +bool PortableUITest::HasViewConnected(zx_koid_t view_ref_koid) { + return last_view_tree_snapshot_.has_value() && + CheckViewExistsInSnapshot(*last_view_tree_snapshot_, view_ref_koid); +} + +void PortableUITest::LaunchClient() { + scene_provider_ = realm_->Connect(); + scene_provider_.set_error_handler([](auto) { + FML_LOG(ERROR) << "Error from test scene provider: " + << &zx_status_get_string; + }); + fuchsia::ui::test::scene::ControllerAttachClientViewRequest request; + request.set_view_provider(realm_->Connect()); + scene_provider_->RegisterViewTreeWatcher(view_tree_watcher_.NewRequest(), + []() {}); + scene_provider_->AttachClientView( + std::move(request), [this](auto client_view_ref_koid) { + client_root_view_ref_koid_ = client_view_ref_koid; + }); + + FML_LOG(INFO) << "Waiting for client view ref koid"; + RunLoopUntil([this] { return client_root_view_ref_koid_.has_value(); }); + + WatchViewGeometry(); + + FML_LOG(INFO) << "Waiting for client view to connect"; + RunLoopUntil( + [this] { return HasViewConnected(*client_root_view_ref_koid_); }); + FML_LOG(INFO) << "Client view has rendered"; +} + +void PortableUITest::RegisterTouchScreen() { + FML_LOG(INFO) << "Registering fake touch screen"; + input_registry_ = realm_->Connect(); + input_registry_.set_error_handler([](auto) { + FML_LOG(ERROR) << "Error from input helper: " << &zx_status_get_string; + }); + + bool touchscreen_registered = false; + fuchsia::ui::test::input::RegistryRegisterTouchScreenRequest request; + request.set_device(fake_touchscreen_.NewRequest()); + input_registry_->RegisterTouchScreen( + std::move(request), + [&touchscreen_registered]() { touchscreen_registered = true; }); + + RunLoopUntil([&touchscreen_registered] { return touchscreen_registered; }); + FML_LOG(INFO) << "Touchscreen registered"; +} + +void PortableUITest::RegisterMouse() { + FML_LOG(INFO) << "Registering fake mouse"; + input_registry_ = realm_->Connect(); + input_registry_.set_error_handler([](auto) { + FML_LOG(ERROR) << "Error from input helper: " << &zx_status_get_string; + }); + + bool mouse_registered = false; + fuchsia::ui::test::input::RegistryRegisterMouseRequest request; + request.set_device(fake_mouse_.NewRequest()); + input_registry_->RegisterMouse( + std::move(request), [&mouse_registered]() { mouse_registered = true; }); + + RunLoopUntil([&mouse_registered] { return mouse_registered; }); + FML_LOG(INFO) << "Mouse registered"; +} + +void PortableUITest::InjectTap(int32_t x, int32_t y) { + fuchsia::ui::test::input::TouchScreenSimulateTapRequest tap_request; + tap_request.mutable_tap_location()->x = x; + tap_request.mutable_tap_location()->y = y; + + FML_LOG(INFO) << "Injecting tap at (" << tap_request.tap_location().x << ", " + << tap_request.tap_location().y << ")"; + fake_touchscreen_->SimulateTap(std::move(tap_request), [this]() { + ++touch_injection_request_count_; + FML_LOG(INFO) << "*** Tap injected, count: " + << touch_injection_request_count_; + }); +} + +void PortableUITest::SimulateMouseEvent( + std::vector pressed_buttons, + int movement_x, + int movement_y) { + fuchsia::ui::test::input::MouseSimulateMouseEventRequest request; + request.set_pressed_buttons(std::move(pressed_buttons)); + request.set_movement_x(movement_x); + request.set_movement_y(movement_y); + + FML_LOG(INFO) << "Injecting mouse input"; + + fake_mouse_->SimulateMouseEvent( + std::move(request), [] { FML_LOG(INFO) << "Mouse event injected"; }); +} + +void PortableUITest::SimulateMouseScroll( + std::vector pressed_buttons, + int scroll_x, + int scroll_y, + bool use_physical_units) { + FML_LOG(INFO) << "Requesting mouse scroll"; + fuchsia::ui::test::input::MouseSimulateMouseEventRequest request; + request.set_pressed_buttons(std::move(pressed_buttons)); + if (use_physical_units) { + request.set_scroll_h_physical_pixel(scroll_x); + request.set_scroll_v_physical_pixel(scroll_y); + } else { + request.set_scroll_h_detent(scroll_x); + request.set_scroll_v_detent(scroll_y); + } + + fake_mouse_->SimulateMouseEvent(std::move(request), [] { + FML_LOG(INFO) << "Mouse scroll event injected"; + }); +} + +} // namespace fuchsia_test_utils diff --git a/shell/platform/fuchsia/flutter/tests/integration/utils/portable_ui_test.h b/shell/platform/fuchsia/flutter/tests/integration/utils/portable_ui_test.h new file mode 100644 index 0000000000000..ad39c125f120a --- /dev/null +++ b/shell/platform/fuchsia/flutter/tests/integration/utils/portable_ui_test.h @@ -0,0 +1,138 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef FLUTTER_SHELL_PLATFORM_FUCHSIA_FLUTTER_TESTS_INTEGRATION_UTILS_PORTABLE_UI_TEST_H_ +#define FLUTTER_SHELL_PLATFORM_FUCHSIA_FLUTTER_TESTS_INTEGRATION_UTILS_PORTABLE_UI_TEST_H_ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +namespace fuchsia_test_utils { +class PortableUITest : public ::loop_fixture::RealLoop { + public: + // The FIDL bindings for these services are not exposed in the Fuchsia SDK so + // we must encode the names manually here. + static constexpr auto kVulkanLoaderServiceName = + "fuchsia.vulkan.loader.Loader"; + static constexpr auto kPosixSocketProviderName = + "fuchsia.posix.socket.Provider"; + static constexpr auto kPointerInjectorRegistryName = + "fuchsia.ui.pointerinjector.Registry"; + + // The naming and references used by Realm Builder + static constexpr auto kTestUIStack = "ui"; + static constexpr auto kTestUIStackRef = + component_testing::ChildRef{kTestUIStack}; + static constexpr auto kFlutterJitRunner = "flutter_jit_runner"; + static constexpr auto kFlutterJitRunnerRef = + component_testing::ChildRef{kFlutterJitRunner}; + static constexpr auto kFlutterJitRunnerUrl = + "fuchsia-pkg://fuchsia.com/oot_flutter_jit_runner#meta/" + "flutter_jit_runner.cm"; + static constexpr auto kFlutterRunnerEnvironment = "flutter_runner_env"; + + void SetUp(); + + // Attaches a client view to the scene, and waits for it to render. + void LaunchClient(); + + // Returns true when the specified view is fully connected to the scene AND + // has presented at least one frame of content. + bool HasViewConnected(zx_koid_t view_ref_koid); + + // Registers a fake touch screen device with an injection coordinate space + // spanning [-1000, 1000] on both axes. + void RegisterTouchScreen(); + + // Registers a fake mouse device, for which mouse movement is measured on a + // scale of [-1000, 1000] on both axes and scroll is measured from [-100, 100] + // on both axes. + void RegisterMouse(); + + // Simulates a tap at location (x, y). + void InjectTap(int32_t x, int32_t y); + + // Helper method to simulate combinations of button presses/releases and/or + // mouse movements. + void SimulateMouseEvent( + std::vector pressed_buttons, + int movement_x, + int movement_y); + + // Helper method to simulate a mouse scroll event. + // + // Set `use_physical_units` to true to specify scroll in physical pixels and + // false to specify scroll in detents. + void SimulateMouseScroll( + std::vector pressed_buttons, + int scroll_x, + int scroll_y, + bool use_physical_units = false); + + protected: + component_testing::RealmBuilder* realm_builder() { return &realm_builder_; } + component_testing::RealmRoot* realm_root() { return realm_.get(); } + + int touch_injection_request_count() const { + return touch_injection_request_count_; + } + + private: + void SetUpRealmBase(); + + // Configures the test-specific component topology. + virtual void ExtendRealm() = 0; + + // Returns the test-specific test-ui-stack component url to use. + // Usually overriden to return a value from gtest GetParam() + virtual std::string GetTestUIStackUrl() = 0; + + // Helper method to watch watch for view geometry updates. + void WatchViewGeometry(); + + // Helper method to process a view geometry update. + void ProcessViewGeometryResponse( + fuchsia::ui::observation::geometry::WatchResponse response); + + fuchsia::ui::test::input::RegistryPtr input_registry_; + fuchsia::ui::test::input::TouchScreenPtr fake_touchscreen_; + fuchsia::ui::test::input::MousePtr fake_mouse_; + fuchsia::ui::test::scene::ControllerPtr scene_provider_; + fuchsia::ui::observation::geometry::ViewTreeWatcherPtr view_tree_watcher_; + + component_testing::RealmBuilder realm_builder_ = + component_testing::RealmBuilder::Create(); + std::unique_ptr realm_; + + // Counts the number of completed requests to inject touch reports into input + // pipeline. + int touch_injection_request_count_ = 0; + + // The KOID of the client root view's `ViewRef`. + std::optional client_root_view_ref_koid_; + + // Holds the most recent view tree snapshot received from the view tree + // watcher. + // + // From this snapshot, we can retrieve relevant view tree state on demand, + // e.g. if the client view is rendering content. + std::optional + last_view_tree_snapshot_; +}; + +} // namespace fuchsia_test_utils + +#endif // FLUTTER_SHELL_PLATFORM_FUCHSIA_FLUTTER_TESTS_INTEGRATION_UTILS_PORTABLE_UI_TEST_H_ diff --git a/shell/platform/fuchsia/flutter/vulkan_surface.h b/shell/platform/fuchsia/flutter/vulkan_surface.h index aa8c05da325e3..37db0c4fe35e5 100644 --- a/shell/platform/fuchsia/flutter/vulkan_surface.h +++ b/shell/platform/fuchsia/flutter/vulkan_surface.h @@ -14,9 +14,9 @@ #include #include "flutter/fml/macros.h" +#include "flutter/vulkan/procs/vulkan_handle.h" +#include "flutter/vulkan/procs/vulkan_proc_table.h" #include "flutter/vulkan/vulkan_command_buffer.h" -#include "flutter/vulkan/vulkan_handle.h" -#include "flutter/vulkan/vulkan_proc_table.h" #include "flutter/vulkan/vulkan_provider.h" #include "third_party/skia/include/core/SkColorType.h" #include "third_party/skia/include/core/SkRefCnt.h" diff --git a/shell/platform/fuchsia/flutter/vulkan_surface_producer.cc b/shell/platform/fuchsia/flutter/vulkan_surface_producer.cc index fe0213d68a246..55ccbda9c7ca8 100644 --- a/shell/platform/fuchsia/flutter/vulkan_surface_producer.cc +++ b/shell/platform/fuchsia/flutter/vulkan_surface_producer.cc @@ -12,6 +12,8 @@ #include #include "flutter/fml/trace_event.h" +#include "flutter/vulkan/vulkan_skia_proc_table.h" +#include "flutter_vma/flutter_skia_vma.h" #include "third_party/skia/include/gpu/GrBackendSemaphore.h" #include "third_party/skia/include/gpu/GrBackendSurface.h" #include "third_party/skia/include/gpu/vk/GrVkBackendContext.h" @@ -98,7 +100,7 @@ bool VulkanSurfaceProducer::Initialize(scenic::Session* scenic_session) { return false; } - auto getProc = vk_->CreateSkiaGetProc(); + auto getProc = CreateSkiaGetProc(vk_); if (getProc == nullptr) { FML_LOG(ERROR) << "VulkanSurfaceProducer: Failed to create skia getProc."; @@ -113,6 +115,11 @@ bool VulkanSurfaceProducer::Initialize(scenic::Session* scenic_session) { return false; } + memory_allocator_ = flutter::FlutterSkiaVulkanMemoryAllocator::Make( + application_->GetAPIVersion(), application_->GetInstance(), + logical_device_->GetPhysicalDeviceHandle(), logical_device_->GetHandle(), + vk_, true); + GrVkBackendContext backend_context; backend_context.fInstance = application_->GetInstance(); backend_context.fPhysicalDevice = logical_device_->GetPhysicalDeviceHandle(); @@ -125,6 +132,8 @@ bool VulkanSurfaceProducer::Initialize(scenic::Session* scenic_session) { backend_context.fFeatures = skia_features; backend_context.fGetProc = std::move(getProc); backend_context.fOwnsInstanceAndDevice = false; + backend_context.fMemoryAllocator = memory_allocator_; + // The memory_requirements_2 extension is required on Fuchsia as the AMD // memory allocator used by Skia benefit from it. const char* device_extensions[] = { diff --git a/shell/platform/fuchsia/flutter/vulkan_surface_producer.h b/shell/platform/fuchsia/flutter/vulkan_surface_producer.h index 3a87467d92a1e..10f025399b8b5 100644 --- a/shell/platform/fuchsia/flutter/vulkan_surface_producer.h +++ b/shell/platform/fuchsia/flutter/vulkan_surface_producer.h @@ -10,11 +10,12 @@ #include #include +#include "flutter/flutter_vma/flutter_skia_vma.h" #include "flutter/fml/macros.h" #include "flutter/fml/memory/weak_ptr.h" +#include "flutter/vulkan/procs/vulkan_proc_table.h" #include "flutter/vulkan/vulkan_application.h" #include "flutter/vulkan/vulkan_device.h" -#include "flutter/vulkan/vulkan_proc_table.h" #include "flutter/vulkan/vulkan_provider.h" #include "third_party/skia/include/gpu/GrDirectContext.h" @@ -76,6 +77,7 @@ class VulkanSurfaceProducer final : public SurfaceProducer, std::unique_ptr logical_device_; sk_sp context_; std::unique_ptr surface_pool_; + sk_sp memory_allocator_; bool valid_ = false; // WeakPtrFactory must be the last member. diff --git a/shell/platform/glfw/flutter_glfw.cc b/shell/platform/glfw/flutter_glfw.cc index a388d218f1823..50eb69ea70001 100644 --- a/shell/platform/glfw/flutter_glfw.cc +++ b/shell/platform/glfw/flutter_glfw.cc @@ -604,7 +604,7 @@ UniqueAotDataPtr LoadAotData(std::filesystem::path aot_data_path) { return nullptr; } if (!std::filesystem::exists(aot_data_path)) { - std::cerr << "Can't load AOT data from " << aot_data_path.u8string() + std::cerr << "Can't load AOT data from " << aot_data_path.string() << "; no such file." << std::endl; return nullptr; } @@ -664,10 +664,6 @@ static bool RunFlutterEngine( std::filesystem::path(executable_location) / aot_library_path; } } - std::string assets_path_string = assets_path.u8string(); - std::string icu_path_string = icu_path.u8string(); - std::string lib_path_string = aot_library_path.u8string(); - // Configure a task runner using the event loop. engine_state->event_loop = std::move(event_loop); FlutterTaskRunnerDescription platform_task_runner = {}; @@ -691,15 +687,15 @@ static bool RunFlutterEngine( } FlutterProjectArgs args = {}; args.struct_size = sizeof(FlutterProjectArgs); - args.assets_path = assets_path_string.c_str(); - args.icu_data_path = icu_path_string.c_str(); + args.assets_path = assets_path.c_str(); + args.icu_data_path = icu_path.c_str(); args.command_line_argc = static_cast(argv.size()); args.command_line_argv = &argv[0]; args.platform_message_callback = EngineOnFlutterPlatformMessage; args.custom_task_runners = &task_runners; if (FlutterEngineRunsAOTCompiledDartCode()) { - engine_state->aot_data = LoadAotData(lib_path_string); + engine_state->aot_data = LoadAotData(aot_library_path); if (!engine_state->aot_data) { std::cerr << "Unable to start engine without AOT data." << std::endl; return false; diff --git a/shell/platform/linux/fl_key_embedder_responder.cc b/shell/platform/linux/fl_key_embedder_responder.cc index 37bdc46c63eca..44fa1b36ac490 100644 --- a/shell/platform/linux/fl_key_embedder_responder.cc +++ b/shell/platform/linux/fl_key_embedder_responder.cc @@ -375,6 +375,15 @@ typedef struct { double timestamp; } SyncStateLoopContext; +// Context variables for the foreach call used to find the physical key from +// a modifier logical key. +typedef struct { + bool known_modifier_physical_key; + uint64_t logical_key; + uint64_t physical_key_from_event; + uint64_t corrected_physical_key; +} ModifierLogicalToPhysicalContext; + } // namespace // Update the pressing record. @@ -696,6 +705,69 @@ static void synchronize_lock_states_loop_body(gpointer key, } } +// Find if a given physical key is the primary physical of one of the known +// modifier keys. +// +// This is used as the body of a loop over #modifier_bit_to_checked_keys. +static void is_known_modifier_physical_key_loop_body(gpointer key, + gpointer value, + gpointer user_data) { + ModifierLogicalToPhysicalContext* context = + reinterpret_cast(user_data); + FlKeyEmbedderCheckedKey* checked_key = + reinterpret_cast(value); + + if (checked_key->primary_physical_key == context->physical_key_from_event) { + context->known_modifier_physical_key = true; + } +} + +// Return the primary physical key of a known modifier key which matches the +// given logical key. +// +// This is used as the body of a loop over #modifier_bit_to_checked_keys. +static void find_physical_from_logical_loop_body(gpointer key, + gpointer value, + gpointer user_data) { + ModifierLogicalToPhysicalContext* context = + reinterpret_cast(user_data); + FlKeyEmbedderCheckedKey* checked_key = + reinterpret_cast(value); + + if (checked_key->primary_logical_key == context->logical_key || + checked_key->secondary_logical_key == context->logical_key) { + context->corrected_physical_key = checked_key->primary_physical_key; + } +} + +static uint64_t corrected_modifier_physical_key( + GHashTable* modifier_bit_to_checked_keys, + uint64_t physical_key_from_event, + uint64_t logical_key) { + ModifierLogicalToPhysicalContext logical_to_physical_context; + logical_to_physical_context.known_modifier_physical_key = false; + logical_to_physical_context.physical_key_from_event = physical_key_from_event; + logical_to_physical_context.logical_key = logical_key; + // If no match is found, defaults to the physical key retrieved from the + // event. + logical_to_physical_context.corrected_physical_key = physical_key_from_event; + + // Check if the physical key is one of the known modifier physical key. + g_hash_table_foreach(modifier_bit_to_checked_keys, + is_known_modifier_physical_key_loop_body, + &logical_to_physical_context); + + // If the physical key matches a known modifier key, find the modifier + // physical key from the logical key. + if (logical_to_physical_context.known_modifier_physical_key) { + g_hash_table_foreach(modifier_bit_to_checked_keys, + find_physical_from_logical_loop_body, + &logical_to_physical_context); + } + + return logical_to_physical_context.corrected_physical_key; +} + static void fl_key_embedder_responder_handle_event_impl( FlKeyResponder* responder, FlKeyEvent* event, @@ -707,10 +779,12 @@ static void fl_key_embedder_responder_handle_event_impl( g_return_if_fail(event != nullptr); g_return_if_fail(callback != nullptr); - const uint64_t physical_key = event_to_physical_key(event); const uint64_t logical_key = specified_logical_key != 0 ? specified_logical_key : event_to_logical_key(event); + const uint64_t physical_key_from_event = event_to_physical_key(event); + const uint64_t physical_key = corrected_modifier_physical_key( + self->modifier_bit_to_checked_keys, physical_key_from_event, logical_key); const double timestamp = event_to_timestamp(event); const bool is_down_event = event->is_press; diff --git a/shell/platform/linux/fl_key_embedder_responder_test.cc b/shell/platform/linux/fl_key_embedder_responder_test.cc index 7806b9b1c6db0..67337b3f32fa2 100644 --- a/shell/platform/linux/fl_key_embedder_responder_test.cc +++ b/shell/platform/linux/fl_key_embedder_responder_test.cc @@ -23,6 +23,7 @@ constexpr guint16 kKeyCodeDigit1 = 0x0au; constexpr guint16 kKeyCodeKeyA = 0x26u; constexpr guint16 kKeyCodeShiftLeft = 0x32u; constexpr guint16 kKeyCodeShiftRight = 0x3Eu; +constexpr guint16 kKeyCodeAltLeft = 0x40u; constexpr guint16 kKeyCodeAltRight = 0x6Cu; constexpr guint16 kKeyCodeNumpad1 = 0x57u; constexpr guint16 kKeyCodeNumLock = 0x4Du; @@ -1734,3 +1735,73 @@ TEST(FlKeyEmbedderResponderTest, HandlesShiftAltVersusGroupNext) { clear_g_call_records(); g_object_unref(responder); } + +// Shift + AltLeft results in GDK event whose keyval is MetaLeft but whose +// keycode is either AltLeft or Shift keycode (depending on which one was +// released last). The physical key is usually deduced from the keycode, but in +// this case (Shift + AltLeft) a correction is needed otherwise the physical +// key won't be the MetaLeft one. +// Regression test for https://github.com/flutter/flutter/issues/96082 +TEST(FlKeyEmbedderResponderTest, HandlesShiftAltLeftIsMetaLeft) { + EXPECT_EQ(g_call_records, nullptr); + g_call_records = g_ptr_array_new_with_free_func(g_object_unref); + FlKeyResponder* responder = FL_KEY_RESPONDER( + fl_key_embedder_responder_new(record_calls_in(g_call_records))); + + g_expected_handled = true; + guint32 now_time = 1; + // A convenient shorthand to simulate events. + auto send_key_event = [responder, &now_time](bool is_press, guint keyval, + guint16 keycode, int state) { + now_time += 1; + int user_data = 123; // Arbitrary user data + fl_key_responder_handle_event( + responder, + fl_key_event_new_by_mock(now_time, is_press, keyval, keycode, state, + kIsModifier), + verify_response_handled, &user_data); + }; + + FlKeyEmbedderCallRecord* record; + + // ShiftLeft + AltLeft + send_key_event(kPress, GDK_KEY_Shift_L, kKeyCodeShiftLeft, 0x2000000); + EXPECT_EQ(g_call_records->len, 1u); + record = FL_KEY_EMBEDDER_CALL_RECORD(g_ptr_array_index(g_call_records, 0)); + EXPECT_EQ(record->event->type, kFlutterKeyEventTypeDown); + EXPECT_EQ(record->event->physical, kPhysicalShiftLeft); + EXPECT_EQ(record->event->logical, kLogicalShiftLeft); + EXPECT_EQ(record->event->synthesized, false); + + send_key_event(kPress, GDK_KEY_Meta_L, kKeyCodeAltLeft, 0x2000001); + EXPECT_EQ(g_call_records->len, 2u); + record = FL_KEY_EMBEDDER_CALL_RECORD(g_ptr_array_index(g_call_records, 1)); + EXPECT_EQ(record->event->type, kFlutterKeyEventTypeDown); + EXPECT_EQ(record->event->physical, kPhysicalMetaLeft); + EXPECT_EQ(record->event->logical, kLogicalMetaLeft); + EXPECT_EQ(record->event->synthesized, false); + + send_key_event(kRelease, GDK_KEY_Meta_L, kKeyCodeAltLeft, 0x2002000); + send_key_event(kRelease, GDK_KEY_Shift_L, kKeyCodeShiftLeft, 0x2000000); + g_ptr_array_clear(g_call_records); + + // ShiftRight + AltLeft + send_key_event(kPress, GDK_KEY_Shift_R, kKeyCodeShiftRight, 0x2000000); + EXPECT_EQ(g_call_records->len, 1u); + record = FL_KEY_EMBEDDER_CALL_RECORD(g_ptr_array_index(g_call_records, 0)); + EXPECT_EQ(record->event->type, kFlutterKeyEventTypeDown); + EXPECT_EQ(record->event->physical, kPhysicalShiftRight); + EXPECT_EQ(record->event->logical, kLogicalShiftRight); + EXPECT_EQ(record->event->synthesized, false); + + send_key_event(kPress, GDK_KEY_Meta_L, kKeyCodeAltLeft, 0x2000001); + EXPECT_EQ(g_call_records->len, 2u); + record = FL_KEY_EMBEDDER_CALL_RECORD(g_ptr_array_index(g_call_records, 1)); + EXPECT_EQ(record->event->type, kFlutterKeyEventTypeDown); + EXPECT_EQ(record->event->physical, kPhysicalMetaLeft); + EXPECT_EQ(record->event->logical, kLogicalMetaLeft); + EXPECT_EQ(record->event->synthesized, false); + + clear_g_call_records(); + g_object_unref(responder); +} diff --git a/shell/platform/windows/BUILD.gn b/shell/platform/windows/BUILD.gn index fd570feb1abae..1ed92aec50f1d 100644 --- a/shell/platform/windows/BUILD.gn +++ b/shell/platform/windows/BUILD.gn @@ -38,8 +38,12 @@ source_set("flutter_windows_headers") { source_set("flutter_windows_source") { # Common Windows sources. sources = [ + "accessibility_alert.cc", + "accessibility_alert.h", "accessibility_bridge_delegate_windows.cc", "accessibility_bridge_delegate_windows.h", + "accessibility_root_node.cc", + "accessibility_root_node.h", "angle_surface_manager.cc", "angle_surface_manager.h", "cursor_handler.cc", @@ -105,6 +109,8 @@ source_set("flutter_windows_source") { "window_state.h", "windows_proc_table.cc", "windows_proc_table.h", + "windows_registry.cc", + "windows_registry.h", ] libs = [ diff --git a/shell/platform/windows/accessibility_alert.cc b/shell/platform/windows/accessibility_alert.cc new file mode 100644 index 0000000000000..f0dc623e6f7cf --- /dev/null +++ b/shell/platform/windows/accessibility_alert.cc @@ -0,0 +1,187 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "flutter/shell/platform/windows/accessibility_alert.h" + +#include "flutter/shell/platform/windows/accessibility_root_node.h" + +namespace flutter { + +AccessibilityAlert::AccessibilityAlert() : text_(L""), parent_(nullptr) {} + +// IAccessible methods. + +IFACEMETHODIMP AccessibilityAlert::accHitTest(LONG screen_physical_pixel_x, + LONG screen_physical_pixel_y, + VARIANT* child) { + child->vt = VT_EMPTY; + return S_FALSE; +} + +// Performs the object's default action. +IFACEMETHODIMP AccessibilityAlert::accDoDefaultAction(VARIANT var_id) { + return E_FAIL; +} + +// Retrieves an IDispatch interface pointer for the specified child. +IFACEMETHODIMP AccessibilityAlert::get_accChild(VARIANT var_child, + IDispatch** disp_child) { + if (V_VT(&var_child) == VT_I4 && V_I4(&var_child) == CHILDID_SELF) { + *disp_child = this; + AddRef(); + return S_OK; + } + *disp_child = nullptr; + return E_FAIL; +} + +// Retrieves the number of accessible children. +IFACEMETHODIMP AccessibilityAlert::get_accChildCount(LONG* child_count) { + *child_count = 0; + return S_OK; +} + +// Retrieves the tooltip description. +IFACEMETHODIMP AccessibilityAlert::get_accDescription(VARIANT var_id, + BSTR* desc) { + *desc = SysAllocString(text_.c_str()); + return S_OK; +} + +// Retrieves the name of the specified object. +IFACEMETHODIMP AccessibilityAlert::get_accName(VARIANT var_id, BSTR* name) { + *name = SysAllocString(text_.c_str()); + return S_OK; +} + +// Retrieves the IDispatch interface of the object's parent. +IFACEMETHODIMP AccessibilityAlert::get_accParent(IDispatch** disp_parent) { + *disp_parent = parent_; + if (*disp_parent) { + (*disp_parent)->AddRef(); + return S_OK; + } + return S_FALSE; +} + +// Retrieves information describing the role of the specified object. +IFACEMETHODIMP AccessibilityAlert::get_accRole(VARIANT var_id, VARIANT* role) { + *role = {.vt = VT_I4, .lVal = ROLE_SYSTEM_ALERT}; + return S_OK; +} + +// Retrieves the current state of the specified object. +IFACEMETHODIMP AccessibilityAlert::get_accState(VARIANT var_id, + VARIANT* state) { + *state = {.vt = VT_I4, .lVal = STATE_SYSTEM_DEFAULT}; + return S_OK; +} + +// Gets the help string for the specified object. +IFACEMETHODIMP AccessibilityAlert::get_accHelp(VARIANT var_id, BSTR* help) { + *help = SysAllocString(L""); + return S_OK; +} + +// Retrieve or set the string value associated with the specified object. +// Setting the value is not typically used by screen readers, but it's +// used frequently by automation software. +IFACEMETHODIMP AccessibilityAlert::get_accValue(VARIANT var_id, BSTR* value) { + *value = SysAllocString(text_.c_str()); + return S_OK; +} + +// IAccessible methods not implemented. +IFACEMETHODIMP AccessibilityAlert::get_accSelection(VARIANT* selected) { + selected->vt = VT_EMPTY; + return E_NOTIMPL; +} + +IFACEMETHODIMP AccessibilityAlert::accSelect(LONG flags_sel, VARIANT var_id) { + return E_NOTIMPL; +} + +IFACEMETHODIMP AccessibilityAlert::put_accValue(VARIANT var_id, + BSTR new_value) { + return E_NOTIMPL; +} + +IFACEMETHODIMP AccessibilityAlert::get_accFocus(VARIANT* focus_child) { + focus_child->vt = VT_EMPTY; + return E_NOTIMPL; +} + +IFACEMETHODIMP AccessibilityAlert::get_accHelpTopic(BSTR* help_file, + VARIANT var_id, + LONG* topic_id) { + if (help_file) { + *help_file = nullptr; + } + if (topic_id) { + *topic_id = 0; + } + return E_NOTIMPL; +} + +IFACEMETHODIMP AccessibilityAlert::put_accName(VARIANT var_id, BSTR put_name) { + return E_NOTIMPL; +} + +IFACEMETHODIMP AccessibilityAlert::get_accKeyboardShortcut(VARIANT var_id, + BSTR* access_key) { + *access_key = nullptr; + return E_NOTIMPL; +} + +IFACEMETHODIMP AccessibilityAlert::accLocation(LONG* physical_pixel_left, + LONG* physical_pixel_top, + LONG* width, + LONG* height, + VARIANT var_id) { + return E_NOTIMPL; +} + +IFACEMETHODIMP AccessibilityAlert::accNavigate(LONG nav_dir, + VARIANT start, + VARIANT* end) { + end->vt = VT_EMPTY; + return E_NOTIMPL; +} + +IFACEMETHODIMP AccessibilityAlert::get_accDefaultAction(VARIANT var_id, + BSTR* default_action) { + *default_action = nullptr; + return E_NOTIMPL; +} + +// End of IAccessible methods. + +// +// IServiceProvider implementation. +// + +IFACEMETHODIMP AccessibilityAlert::QueryService(REFGUID guidService, + REFIID riid, + void** object) { + if (!object) { + return E_INVALIDARG; + } + + if (guidService == IID_IAccessible) { + return QueryInterface(riid, object); + } + + *object = nullptr; + return E_FAIL; +} + +void AccessibilityAlert::SetText(const std::wstring& text) { + text_ = text; +} + +void AccessibilityAlert::SetParent(AccessibilityRootNode* parent) { + parent_ = parent; +} + +} // namespace flutter diff --git a/shell/platform/windows/accessibility_alert.h b/shell/platform/windows/accessibility_alert.h new file mode 100644 index 0000000000000..cb5afba907ad6 --- /dev/null +++ b/shell/platform/windows/accessibility_alert.h @@ -0,0 +1,123 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef FLUTTER_SHELL_PLATFORM_WINDOWS_ACCESSIBILITY_ALERT_H_ +#define FLUTTER_SHELL_PLATFORM_WINDOWS_ACCESSIBILITY_ALERT_H_ + +#include +#include +#include + +#include + +namespace flutter { + +class AccessibilityRootNode; + +// An IAccessible node representing an alert read to the screen reader. +// When an announcement is requested by the framework, an instance of +// this class, if none exists already, is created and made a child of +// the root AccessibilityRootNode node, and is therefore also a sibling +// of the window's root node. +// This node is not interactable to the user. +class __declspec(uuid("778c1bd8-383f-4d49-b6be-8937e12b6a32")) + AccessibilityAlert : public CComObjectRootEx, + public IDispatchImpl, + public IServiceProvider { + public: + BEGIN_COM_MAP(AccessibilityAlert) + COM_INTERFACE_ENTRY(AccessibilityAlert) + COM_INTERFACE_ENTRY(IAccessible) + COM_INTERFACE_ENTRY(IDispatch) + COM_INTERFACE_ENTRY(IServiceProvider) + END_COM_MAP() + // + // IAccessible methods. + // + + // Retrieves the child element or child object at a given point on the screen. + IFACEMETHODIMP accHitTest(LONG screen_physical_pixel_x, + LONG screen_physical_pixel_y, + VARIANT* child) override; + + // Retrieves an IDispatch interface pointer for the specified child. + IFACEMETHODIMP get_accChild(VARIANT var_child, + IDispatch** disp_child) override; + + // Retrieves the number of accessible children. + IFACEMETHODIMP get_accChildCount(LONG* child_count) override; + + // Retrieves a string that describes the object's default action. + IFACEMETHODIMP get_accDefaultAction(VARIANT var_id, + BSTR* default_action) override; + + // Retrieves the tooltip description. + IFACEMETHODIMP get_accDescription(VARIANT var_id, BSTR* desc) override; + + // Retrieves the name of the specified object. + IFACEMETHODIMP get_accName(VARIANT var_id, BSTR* name) override; + + // Retrieves the IDispatch interface of the object's parent. + IFACEMETHODIMP get_accParent(IDispatch** disp_parent) override; + + // Retrieves information describing the role of the specified object. + IFACEMETHODIMP get_accRole(VARIANT var_id, VARIANT* role) override; + + // Retrieves the current state of the specified object. + IFACEMETHODIMP get_accState(VARIANT var_id, VARIANT* state) override; + + // Gets the help string for the specified object. + IFACEMETHODIMP get_accHelp(VARIANT var_id, BSTR* help) override; + + // Retrieve the string value associated with the specified object. + IFACEMETHODIMP get_accValue(VARIANT var_id, BSTR* value) override; + + // IAccessible methods not implemented. + IFACEMETHODIMP accLocation(LONG* physical_pixel_left, + LONG* physical_pixel_top, + LONG* width, + LONG* height, + VARIANT var_id) override; + IFACEMETHODIMP accNavigate(LONG nav_dir, + VARIANT start, + VARIANT* end) override; + IFACEMETHODIMP accDoDefaultAction(VARIANT var_id) override; + IFACEMETHODIMP get_accFocus(VARIANT* focus_child) override; + IFACEMETHODIMP get_accKeyboardShortcut(VARIANT var_id, + BSTR* access_key) override; + IFACEMETHODIMP get_accSelection(VARIANT* selected) override; + IFACEMETHODIMP accSelect(LONG flags_sel, VARIANT var_id) override; + IFACEMETHODIMP get_accHelpTopic(BSTR* help_file, + VARIANT var_id, + LONG* topic_id) override; + IFACEMETHODIMP put_accName(VARIANT var_id, BSTR put_name) override; + IFACEMETHODIMP put_accValue(VARIANT var_id, BSTR new_value) override; + + // End of IAccessible methods. + + // + // IServiceProvider method. + // + + IFACEMETHODIMP QueryService(REFGUID guidService, + REFIID riid, + void** object) override; + + AccessibilityAlert(); + ~AccessibilityAlert() = default; + + // Sets the text of this alert to the provided message. + void SetText(const std::wstring& text); + + void SetParent(AccessibilityRootNode* parent); + + private: + std::wstring text_; + + AccessibilityRootNode* parent_; +}; + +} // namespace flutter + +#endif // FLUTTER_SHELL_PLATFORM_WINDOWS_ACCESSIBILITY_ALERT_H_ diff --git a/shell/platform/windows/accessibility_root_node.cc b/shell/platform/windows/accessibility_root_node.cc new file mode 100644 index 0000000000000..caac7f76493b1 --- /dev/null +++ b/shell/platform/windows/accessibility_root_node.cc @@ -0,0 +1,306 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "flutter/shell/platform/windows/accessibility_root_node.h" + +#include "flutter/fml/logging.h" +#include "flutter/third_party/accessibility/base/win/atl_module.h" + +namespace flutter { + +static constexpr LONG kWindowChildId = 1; +static constexpr LONG kInvalidChildId = 3; + +AccessibilityRootNode::AccessibilityRootNode() : alert_accessible_(nullptr) {} + +AccessibilityRootNode::~AccessibilityRootNode() { + if (alert_accessible_) { + alert_accessible_->Release(); + alert_accessible_ = nullptr; + } +} + +IAccessible* AccessibilityRootNode::GetTargetAndChildID(VARIANT* var_id) { + LONG& child_id = var_id->lVal; + if (V_VT(var_id) != VT_I4) { + child_id = kInvalidChildId; + return nullptr; + } + child_id = V_I4(var_id); + if (!window_accessible_) { + return nullptr; + } + if (child_id == CHILDID_SELF || child_id == kWindowChildId) { + child_id = CHILDID_SELF; + return window_accessible_; + } + if (child_id == kAlertChildId && alert_accessible_) { + child_id = CHILDID_SELF; + return alert_accessible_; + } + // A negative child ID can be used to refer to an AX node directly by its ID. + if (child_id < 0) { + return window_accessible_; + } + return nullptr; +} + +IFACEMETHODIMP AccessibilityRootNode::accHitTest(LONG screen_physical_pixel_x, + LONG screen_physical_pixel_y, + VARIANT* child) { + if (window_accessible_) { + return window_accessible_->accHitTest(screen_physical_pixel_x, + screen_physical_pixel_y, child); + } + child->vt = VT_EMPTY; + return S_FALSE; +} + +IFACEMETHODIMP AccessibilityRootNode::accDoDefaultAction(VARIANT var_id) { + IAccessible* target; + if ((target = GetTargetAndChildID(&var_id))) { + return target->accDoDefaultAction(var_id); + } + return E_FAIL; +} + +IFACEMETHODIMP AccessibilityRootNode::accLocation(LONG* physical_pixel_left, + LONG* physical_pixel_top, + LONG* width, + LONG* height, + VARIANT var_id) { + IAccessible* target; + if ((target = GetTargetAndChildID(&var_id))) { + return target->accLocation(physical_pixel_left, physical_pixel_top, width, + height, var_id); + } + return S_FALSE; +} + +IFACEMETHODIMP AccessibilityRootNode::accNavigate(LONG nav_dir, + VARIANT start, + VARIANT* end) { + IAccessible* target; + if ((target = GetTargetAndChildID(&start))) { + return target->accNavigate(nav_dir, start, end); + } + return S_FALSE; +} + +IFACEMETHODIMP AccessibilityRootNode::get_accChild(VARIANT var_child, + IDispatch** disp_child) { + if (V_VT(&var_child) != VT_I4) { + return E_FAIL; + } + LONG child_id = V_I4(&var_child); + if (child_id == CHILDID_SELF) { + *disp_child = this; + } else if (!window_accessible_) { + return E_FAIL; + } else if (child_id == kWindowChildId) { + *disp_child = window_accessible_; + } else if (child_id == kAlertChildId && alert_accessible_) { + *disp_child = alert_accessible_; + } else if (child_id < 0) { + // A negative child ID can be used to refer to an AX node directly by its + // ID. + return window_accessible_->get_accChild(var_child, disp_child); + } else { + return E_FAIL; + } + (*disp_child)->AddRef(); + return S_OK; +} + +IFACEMETHODIMP AccessibilityRootNode::get_accChildCount(LONG* child_count) { + LONG children = 0; + if (window_accessible_) { + children++; + } + if (alert_accessible_) { + children++; + } + *child_count = children; + return S_OK; +} + +IFACEMETHODIMP AccessibilityRootNode::get_accDefaultAction(VARIANT var_id, + BSTR* def_action) { + IAccessible* target; + if ((target = GetTargetAndChildID(&var_id))) { + return target->get_accDefaultAction(var_id, def_action); + } + *def_action = nullptr; + return S_FALSE; +} + +IFACEMETHODIMP AccessibilityRootNode::get_accDescription(VARIANT var_id, + BSTR* desc) { + IAccessible* target; + if ((target = GetTargetAndChildID(&var_id))) { + return target->get_accDescription(var_id, desc); + } + return E_FAIL; +} + +IFACEMETHODIMP AccessibilityRootNode::get_accFocus(VARIANT* focus_child) { + if (window_accessible_) { + return window_accessible_->get_accFocus(focus_child); + } + focus_child->vt = VT_EMPTY; + return S_OK; +} + +IFACEMETHODIMP AccessibilityRootNode::get_accKeyboardShortcut(VARIANT var_id, + BSTR* acc_key) { + IAccessible* target; + if ((target = GetTargetAndChildID(&var_id))) { + return target->get_accKeyboardShortcut(var_id, acc_key); + } + return E_FAIL; +} + +IFACEMETHODIMP AccessibilityRootNode::get_accName(VARIANT var_id, + BSTR* name_bstr) { + if (V_I4(&var_id) == CHILDID_SELF) { + std::wstring name = L"ROOT_NODE_VIEW"; + *name_bstr = SysAllocString(name.c_str()); + return S_OK; + } + IAccessible* target; + if ((target = GetTargetAndChildID(&var_id))) { + return target->get_accName(var_id, name_bstr); + } + return S_FALSE; +} + +IFACEMETHODIMP AccessibilityRootNode::get_accParent(IDispatch** disp_parent) { + return S_FALSE; +} + +IFACEMETHODIMP AccessibilityRootNode::get_accRole(VARIANT var_id, + VARIANT* role) { + IAccessible* target; + if ((target = GetTargetAndChildID(&var_id))) { + return target->get_accRole(var_id, role); + } + return E_FAIL; +} + +IFACEMETHODIMP AccessibilityRootNode::get_accState(VARIANT var_id, + VARIANT* state) { + IAccessible* target; + if ((target = GetTargetAndChildID(&var_id))) { + return target->get_accState(var_id, state); + } + return E_FAIL; +} + +IFACEMETHODIMP AccessibilityRootNode::get_accHelp(VARIANT var_id, BSTR* help) { + if (!help) { + return E_INVALIDARG; + } + *help = {}; + return S_FALSE; +} + +IFACEMETHODIMP AccessibilityRootNode::get_accValue(VARIANT var_id, + BSTR* value) { + IAccessible* target; + if ((target = GetTargetAndChildID(&var_id))) { + return target->get_accValue(var_id, value); + } + return E_FAIL; +} + +IFACEMETHODIMP AccessibilityRootNode::put_accValue(VARIANT var_id, + BSTR new_value) { + IAccessible* target; + if ((target = GetTargetAndChildID(&var_id))) { + return target->put_accValue(var_id, new_value); + } + return E_FAIL; +} + +IFACEMETHODIMP AccessibilityRootNode::get_accSelection(VARIANT* selected) { + selected->vt = VT_EMPTY; + return S_OK; +} + +IFACEMETHODIMP AccessibilityRootNode::accSelect(LONG flagsSelect, + VARIANT var_id) { + IAccessible* target; + if ((target = GetTargetAndChildID(&var_id))) { + return target->accSelect(flagsSelect, var_id); + } + return E_FAIL; +} + +IFACEMETHODIMP AccessibilityRootNode::get_accHelpTopic(BSTR* help_file, + VARIANT var_id, + LONG* topic_id) { + if (help_file) { + *help_file = nullptr; + } + if (topic_id) { + *topic_id = -1; + } + return E_NOTIMPL; +} + +IFACEMETHODIMP AccessibilityRootNode::put_accName(VARIANT var_id, + BSTR put_name) { + return E_NOTIMPL; +} + +// +// IServiceProvider implementation. +// + +IFACEMETHODIMP AccessibilityRootNode::QueryService(REFGUID guidService, + REFIID riid, + void** object) { + if (!object) { + return E_INVALIDARG; + } + + if (guidService == IID_IAccessible) { + return QueryInterface(riid, object); + } + + *object = nullptr; + return E_FAIL; +} + +void AccessibilityRootNode::SetWindow(IAccessible* window) { + window_accessible_ = window; +} + +AccessibilityAlert* AccessibilityRootNode::GetOrCreateAlert() { + if (!alert_accessible_) { + CComObject* instance = nullptr; + HRESULT hr = CComObject::CreateInstance(&instance); + if (!SUCCEEDED(hr)) { + FML_LOG(FATAL) << "Failed to create alert accessible"; + } + instance->AddRef(); + instance->SetParent(this); + alert_accessible_ = instance; + } + return alert_accessible_; +} + +// static +AccessibilityRootNode* AccessibilityRootNode::Create() { + ui::win::CreateATLModuleIfNeeded(); + CComObject* instance = nullptr; + HRESULT hr = CComObject::CreateInstance(&instance); + if (!SUCCEEDED(hr) || !instance) { + FML_LOG(FATAL) << "Failed to create accessibility root node"; + } + instance->AddRef(); + return instance; +} + +} // namespace flutter diff --git a/shell/platform/windows/accessibility_root_node.h b/shell/platform/windows/accessibility_root_node.h new file mode 100644 index 0000000000000..5d01e83cfe4be --- /dev/null +++ b/shell/platform/windows/accessibility_root_node.h @@ -0,0 +1,137 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef FLUTTER_SHELL_PLATFORM_WINDOWS_ACCESSIBILITY_ROOT_NODE_H_ +#define FLUTTER_SHELL_PLATFORM_WINDOWS_ACCESSIBILITY_ROOT_NODE_H_ + +#include +#include +#include + +#include + +#include "flutter/shell/platform/windows/accessibility_alert.h" + +namespace flutter { + +// A parent node that wraps the window IAccessible node. +class __declspec(uuid("fedb8280-ea4f-47a9-98fe-5d1a557fe4b3")) + AccessibilityRootNode : public CComObjectRootEx, + public IDispatchImpl, + public IServiceProvider { + public: + static constexpr LONG kAlertChildId = 2; + + BEGIN_COM_MAP(AccessibilityRootNode) + COM_INTERFACE_ENTRY(AccessibilityRootNode) + COM_INTERFACE_ENTRY(IAccessible) + COM_INTERFACE_ENTRY(IDispatch) + COM_INTERFACE_ENTRY(IServiceProvider) + END_COM_MAP() + + // + // IAccessible methods. + // + + // Retrieves the child element or child object at a given point on the screen. + IFACEMETHODIMP accHitTest(LONG screen_physical_pixel_x, + LONG screen_physical_pixel_y, + VARIANT* child) override; + + // Performs the object's default action. + IFACEMETHODIMP accDoDefaultAction(VARIANT var_id) override; + + // Retrieves the specified object's current screen location. + IFACEMETHODIMP accLocation(LONG* physical_pixel_left, + LONG* physical_pixel_top, + LONG* width, + LONG* height, + VARIANT var_id) override; + + // Traverses to another UI element and retrieves the object. + IFACEMETHODIMP accNavigate(LONG nav_dir, + VARIANT start, + VARIANT* end) override; + + // Retrieves an IDispatch interface pointer for the specified child. + IFACEMETHODIMP get_accChild(VARIANT var_child, + IDispatch** disp_child) override; + + // Retrieves the number of accessible children. + IFACEMETHODIMP get_accChildCount(LONG* child_count) override; + + // Retrieves a string that describes the object's default action. + IFACEMETHODIMP get_accDefaultAction(VARIANT var_id, + BSTR* default_action) override; + + // Retrieves the tooltip description. + IFACEMETHODIMP get_accDescription(VARIANT var_id, BSTR* desc) override; + + // Retrieves the object that has the keyboard focus. + IFACEMETHODIMP get_accFocus(VARIANT* focus_child) override; + + // Retrieves the specified object's shortcut. + IFACEMETHODIMP get_accKeyboardShortcut(VARIANT var_id, + BSTR* access_key) override; + + // Retrieves the name of the specified object. + IFACEMETHODIMP get_accName(VARIANT var_id, BSTR* name) override; + + // Retrieves the IDispatch interface of the object's parent. + IFACEMETHODIMP get_accParent(IDispatch** disp_parent) override; + + // Retrieves information describing the role of the specified object. + IFACEMETHODIMP get_accRole(VARIANT var_id, VARIANT* role) override; + + // Retrieves the current state of the specified object. + IFACEMETHODIMP get_accState(VARIANT var_id, VARIANT* state) override; + + // Gets the help string for the specified object. + IFACEMETHODIMP get_accHelp(VARIANT var_id, BSTR* help) override; + + // Retrieve or set the string value associated with the specified object. + // Setting the value is not typically used by screen readers, but it's + // used frequently by automation software. + IFACEMETHODIMP get_accValue(VARIANT var_id, BSTR* value) override; + IFACEMETHODIMP put_accValue(VARIANT var_id, BSTR new_value) override; + + // IAccessible methods not implemented. + IFACEMETHODIMP get_accSelection(VARIANT* selected) override; + IFACEMETHODIMP accSelect(LONG flags_sel, VARIANT var_id) override; + IFACEMETHODIMP get_accHelpTopic(BSTR* help_file, + VARIANT var_id, + LONG* topic_id) override; + IFACEMETHODIMP put_accName(VARIANT var_id, BSTR put_name) override; + + // + // IServiceProvider method. + // + + IFACEMETHODIMP QueryService(REFGUID guidService, + REFIID riid, + void** object) override; + + AccessibilityRootNode(); + virtual ~AccessibilityRootNode(); + + void SetWindow(IAccessible* window); + + void SetAlert(AccessibilityAlert* alert); + + AccessibilityAlert* GetOrCreateAlert(); + + static AccessibilityRootNode* Create(); + + private: + // Helper method to redirect method calls to the contained window or alert. + IAccessible* GetTargetAndChildID(VARIANT* var_id); + + IAccessible* window_accessible_; + + AccessibilityAlert* alert_accessible_; +}; + +} // namespace flutter + +#endif // FLUTTER_SHELL_PLATFORM_WINDOWS_ACCESSIBILITY_ROOT_NODE_H_ diff --git a/shell/platform/windows/direct_manipulation.cc b/shell/platform/windows/direct_manipulation.cc index 02e0167fbf4e2..41ddf07b5acec 100644 --- a/shell/platform/windows/direct_manipulation.cc +++ b/shell/platform/windows/direct_manipulation.cc @@ -4,6 +4,8 @@ #include "flutter/fml/logging.h" +#include + #include "flutter/shell/platform/windows/direct_manipulation.h" #include "flutter/shell/platform/windows/window.h" #include "flutter/shell/platform/windows/window_binding_handler_delegate.h" @@ -24,6 +26,10 @@ namespace flutter { +int32_t DirectManipulationEventHandler::GetDeviceId() { + return (int32_t) reinterpret_cast(this); +} + STDMETHODIMP DirectManipulationEventHandler::QueryInterface(REFIID iid, void** ppv) { if ((iid == IID_IUnknown) || @@ -43,26 +49,39 @@ HRESULT DirectManipulationEventHandler::OnViewportStatusChanged( IDirectManipulationViewport* viewport, DIRECTMANIPULATION_STATUS current, DIRECTMANIPULATION_STATUS previous) { + during_inertia_ = current == DIRECTMANIPULATION_INERTIA; if (during_synthesized_reset_ && previous == DIRECTMANIPULATION_RUNNING) { during_synthesized_reset_ = false; } else if (current == DIRECTMANIPULATION_RUNNING) { if (!during_synthesized_reset_) { // Not a false event. if (owner_->binding_handler_delegate) { - owner_->binding_handler_delegate->OnPointerPanZoomStart( - (int32_t) reinterpret_cast(this)); + owner_->binding_handler_delegate->OnPointerPanZoomStart(GetDeviceId()); } } - } else if (previous == DIRECTMANIPULATION_RUNNING) { + } + if (previous == DIRECTMANIPULATION_RUNNING) { + // Reset deltas to ensure only inertia values will be compared later. + last_pan_delta_x_ = 0.0; + last_pan_delta_y_ = 0.0; if (owner_->binding_handler_delegate) { - owner_->binding_handler_delegate->OnPointerPanZoomEnd( - (int32_t) reinterpret_cast(this)); + owner_->binding_handler_delegate->OnPointerPanZoomEnd(GetDeviceId()); + } + } else if (previous == DIRECTMANIPULATION_INERTIA) { + if (owner_->binding_handler_delegate && + (std::max)(std::abs(last_pan_delta_x_), std::abs(last_pan_delta_y_)) > + 0.01) { + owner_->binding_handler_delegate->OnScrollInertiaCancel(GetDeviceId()); } // Need to reset the content transform to its original position // so that we are ready for the next gesture. // Use during_synthesized_reset_ flag to prevent sending reset also to the // framework. during_synthesized_reset_ = true; + last_pan_x_ = 0.0; + last_pan_y_ = 0.0; + last_pan_delta_x_ = 0.0; + last_pan_delta_y_ = 0.0; RECT rect; HRESULT hr = viewport->GetViewportRect(&rect); if (FAILED(hr)) { @@ -104,9 +123,13 @@ HRESULT DirectManipulationEventHandler::OnContentUpdated( float scale = c - (c - transform[0]); float pan_x = transform[4]; float pan_y = transform[5]; - if (owner_->binding_handler_delegate) { + last_pan_delta_x_ = pan_x - last_pan_x_; + last_pan_delta_y_ = pan_y - last_pan_y_; + last_pan_x_ = pan_x; + last_pan_y_ = pan_y; + if (owner_->binding_handler_delegate && !during_inertia_) { owner_->binding_handler_delegate->OnPointerPanZoomUpdate( - (int32_t) reinterpret_cast(this), pan_x, pan_y, scale, 0); + GetDeviceId(), pan_x, pan_y, scale, 0); } } return S_OK; @@ -144,7 +167,8 @@ int DirectManipulationOwner::Init(unsigned int width, unsigned int height) { DIRECTMANIPULATION_CONFIGURATION_INTERACTION | DIRECTMANIPULATION_CONFIGURATION_TRANSLATION_X | DIRECTMANIPULATION_CONFIGURATION_TRANSLATION_Y | - DIRECTMANIPULATION_CONFIGURATION_SCALING; + DIRECTMANIPULATION_CONFIGURATION_SCALING | + DIRECTMANIPULATION_CONFIGURATION_TRANSLATION_INERTIA; RETURN_IF_FAILED(viewport_->ActivateConfiguration(configuration)); RETURN_IF_FAILED(viewport_->SetViewportOptions( DIRECTMANIPULATION_VIEWPORT_OPTIONS_MANUALUPDATE)); diff --git a/shell/platform/windows/direct_manipulation.h b/shell/platform/windows/direct_manipulation.h index 40317333f6916..e9aef840fdafa 100644 --- a/shell/platform/windows/direct_manipulation.h +++ b/shell/platform/windows/direct_manipulation.h @@ -106,12 +106,23 @@ class DirectManipulationEventHandler DIRECTMANIPULATION_INTERACTION_TYPE interaction) override; private: + // Unique identifier to associate with all gesture event updates. + int32_t GetDeviceId(); // Parent object, used to store the target for gesture event updates. DirectManipulationOwner* owner_; // We need to reset some parts of DirectManipulation after each gesture // A flag is needed to ensure that false events created as the reset occurs // are not sent to the flutter framework. bool during_synthesized_reset_ = false; + // Store whether current events are from synthetic inertia rather than user + // input. + bool during_inertia_ = false; + // Store the difference between the last pan offsets to determine if inertia + // has been cancelled in the middle of an animation. + float last_pan_x_ = 0.0; + float last_pan_y_ = 0.0; + float last_pan_delta_x_ = 0.0; + float last_pan_delta_y_ = 0.0; }; } // namespace flutter diff --git a/shell/platform/windows/direct_manipulation_unittests.cc b/shell/platform/windows/direct_manipulation_unittests.cc index 5975103e849b8..1d03a0396ddde 100644 --- a/shell/platform/windows/direct_manipulation_unittests.cc +++ b/shell/platform/windows/direct_manipulation_unittests.cc @@ -259,5 +259,110 @@ TEST(DirectManipulationTest, TestRounding) { DIRECTMANIPULATION_INERTIA); } +TEST(DirectManipulationTest, TestInertiaCancelSentForUserCancel) { + MockIDirectManipulationContent content; + MockWindowBindingHandlerDelegate delegate; + MockIDirectManipulationViewport viewport; + const int DISPLAY_WIDTH = 800; + const int DISPLAY_HEIGHT = 600; + auto owner = std::make_unique(nullptr); + owner->SetBindingHandlerDelegate(&delegate); + auto handler = + fml::MakeRefCounted(owner.get()); + int32_t device_id = (int32_t) reinterpret_cast(handler.get()); + // No need to mock the actual gesture, just start at the end. + EXPECT_CALL(viewport, GetViewportRect(_)) + .WillOnce(::testing::Invoke([DISPLAY_WIDTH, DISPLAY_HEIGHT](RECT* rect) { + rect->left = 0; + rect->top = 0; + rect->right = DISPLAY_WIDTH; + rect->bottom = DISPLAY_HEIGHT; + return S_OK; + })); + EXPECT_CALL(viewport, ZoomToRect(0, 0, DISPLAY_WIDTH, DISPLAY_HEIGHT, false)) + .WillOnce(::testing::Return(S_OK)); + EXPECT_CALL(delegate, OnPointerPanZoomEnd(device_id)); + handler->OnViewportStatusChanged((IDirectManipulationViewport*)&viewport, + DIRECTMANIPULATION_INERTIA, + DIRECTMANIPULATION_RUNNING); + // Have pan_y change by 10 between inertia updates. + EXPECT_CALL(content, GetContentTransform(_, 6)) + .WillOnce(::testing::Invoke([](float* transform, DWORD size) { + transform[0] = 1; + transform[4] = 0; + transform[5] = 100; + return S_OK; + })); + handler->OnContentUpdated((IDirectManipulationViewport*)&viewport, + (IDirectManipulationContent*)&content); + EXPECT_CALL(content, GetContentTransform(_, 6)) + .WillOnce(::testing::Invoke([](float* transform, DWORD size) { + transform[0] = 1; + transform[4] = 0; + transform[5] = 110; + return S_OK; + })); + handler->OnContentUpdated((IDirectManipulationViewport*)&viewport, + (IDirectManipulationContent*)&content); + // This looks like an interruption in the middle of synthetic inertia because + // of user input. + EXPECT_CALL(delegate, OnScrollInertiaCancel(device_id)); + handler->OnViewportStatusChanged((IDirectManipulationViewport*)&viewport, + DIRECTMANIPULATION_READY, + DIRECTMANIPULATION_INERTIA); +} + +TEST(DirectManipulationTest, TestInertiaCamcelNotSentAtInertiaEnd) { + MockIDirectManipulationContent content; + MockWindowBindingHandlerDelegate delegate; + MockIDirectManipulationViewport viewport; + const int DISPLAY_WIDTH = 800; + const int DISPLAY_HEIGHT = 600; + auto owner = std::make_unique(nullptr); + owner->SetBindingHandlerDelegate(&delegate); + auto handler = + fml::MakeRefCounted(owner.get()); + int32_t device_id = (int32_t) reinterpret_cast(handler.get()); + // No need to mock the actual gesture, just start at the end. + EXPECT_CALL(viewport, GetViewportRect(_)) + .WillOnce(::testing::Invoke([DISPLAY_WIDTH, DISPLAY_HEIGHT](RECT* rect) { + rect->left = 0; + rect->top = 0; + rect->right = DISPLAY_WIDTH; + rect->bottom = DISPLAY_HEIGHT; + return S_OK; + })); + EXPECT_CALL(viewport, ZoomToRect(0, 0, DISPLAY_WIDTH, DISPLAY_HEIGHT, false)) + .WillOnce(::testing::Return(S_OK)); + EXPECT_CALL(delegate, OnPointerPanZoomEnd(device_id)); + handler->OnViewportStatusChanged((IDirectManipulationViewport*)&viewport, + DIRECTMANIPULATION_INERTIA, + DIRECTMANIPULATION_RUNNING); + // Have no change in pan between events. + EXPECT_CALL(content, GetContentTransform(_, 6)) + .WillOnce(::testing::Invoke([](float* transform, DWORD size) { + transform[0] = 1; + transform[4] = 0; + transform[5] = 140; + return S_OK; + })); + handler->OnContentUpdated((IDirectManipulationViewport*)&viewport, + (IDirectManipulationContent*)&content); + EXPECT_CALL(content, GetContentTransform(_, 6)) + .WillOnce(::testing::Invoke([](float* transform, DWORD size) { + transform[0] = 1; + transform[4] = 0; + transform[5] = 140; + return S_OK; + })); + handler->OnContentUpdated((IDirectManipulationViewport*)&viewport, + (IDirectManipulationContent*)&content); + // OnScrollInertiaCancel should not be called. + EXPECT_CALL(delegate, OnScrollInertiaCancel(device_id)).Times(0); + handler->OnViewportStatusChanged((IDirectManipulationViewport*)&viewport, + DIRECTMANIPULATION_READY, + DIRECTMANIPULATION_INERTIA); +} + } // namespace testing } // namespace flutter diff --git a/shell/platform/windows/fixtures/main.dart b/shell/platform/windows/fixtures/main.dart index 57ba615d984a7..1e8d5a9e278cc 100644 --- a/shell/platform/windows/fixtures/main.dart +++ b/shell/platform/windows/fixtures/main.dart @@ -2,31 +2,93 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +import 'dart:async'; import 'dart:io' as io; +import 'dart:typed_data' show ByteData, Uint8List; import 'dart:ui' as ui; // Signals a waiting latch in the native test. -void signal() native 'Signal'; +@pragma('vm:external-name', 'Signal') +external void signal(); // Signals a waiting latch in the native test, passing a boolean value. -void signalBoolValue(bool value) native 'SignalBoolValue'; +@pragma('vm:external-name', 'SignalBoolValue') +external void signalBoolValue(bool value); // Signals a waiting latch in the native test, passing a string value. -void signalStringValue(String value) native 'SignalStringValue'; +@pragma('vm:external-name', 'SignalStringValue') +external void signalStringValue(String value); // Signals a waiting latch in the native test, which returns a value to the fixture. -bool signalBoolReturn() native 'SignalBoolReturn'; +@pragma('vm:external-name', 'SignalBoolReturn') +external bool signalBoolReturn(); // Notify the native test that the first frame has been scheduled. -void notifyFirstFrameScheduled() native 'NotifyFirstFrameScheduled'; +@pragma('vm:external-name', 'NotifyFirstFrameScheduled') +external void notifyFirstFrameScheduled(); -void main() { +void main() {} + +@pragma('vm:entry-point') +void hiPlatformChannels() { + ui.channelBuffers.setListener('hi', + (ByteData? data, ui.PlatformMessageResponseCallback callback) async { + ui.PlatformDispatcher.instance.sendPlatformMessage('hi', data, + (ByteData? reply) { + ui.PlatformDispatcher.instance + .sendPlatformMessage('hi', reply, (ByteData? reply) {}); + }); + callback(data); + }); } @pragma('vm:entry-point') -void customEntrypoint() { +void alertPlatformChannel() async { + // Serializers for data types are in the framework, so this will be hardcoded. + const int valueMap = 13, valueString = 7; + // Corresponds to: + // Map data = + // {"type": "announce", "data": {"message": ""}}; + final Uint8List data = Uint8List.fromList([ + valueMap, // _valueMap + 2, // Size + // key: "type" + valueString, + 'type'.length, + ...'type'.codeUnits, + // value: "announce" + valueString, + 'announce'.length, + ...'announce'.codeUnits, + // key: "data" + valueString, + 'data'.length, + ...'data'.codeUnits, + // value: map + valueMap, // _valueMap + 1, // Size + // key: "message" + valueString, + 'message'.length, + ...'message'.codeUnits, + // value: "" + valueString, + 0, // Length of empty string == 0. + ]); + final ByteData byteData = data.buffer.asByteData(); + + final Completer enabled = Completer(); + ui.PlatformDispatcher.instance.sendPlatformMessage('semantics', ByteData(0), (ByteData? reply){ + enabled.complete(reply); + }); + await enabled.future; + + ui.PlatformDispatcher.instance.sendPlatformMessage('flutter/accessibility', byteData, (ByteData? _){}); } +@pragma('vm:entry-point') +void customEntrypoint() {} + @pragma('vm:entry-point') void verifyNativeFunction() { signal(); @@ -51,8 +113,8 @@ void readPlatformExecutable() { @pragma('vm:entry-point') void drawHelloWorld() { ui.PlatformDispatcher.instance.onBeginFrame = (Duration duration) { - final ui.ParagraphBuilder paragraphBuilder = ui.ParagraphBuilder(ui.ParagraphStyle()) - ..addText('Hello world'); + final ui.ParagraphBuilder paragraphBuilder = + ui.ParagraphBuilder(ui.ParagraphStyle())..addText('Hello world'); final ui.Paragraph paragraph = paragraphBuilder.build(); paragraph.layout(const ui.ParagraphConstraints(width: 800.0)); diff --git a/shell/platform/windows/flutter_window.cc b/shell/platform/windows/flutter_window.cc index 968744209f214..c8d3e6a23e673 100644 --- a/shell/platform/windows/flutter_window.cc +++ b/shell/platform/windows/flutter_window.cc @@ -291,4 +291,11 @@ void FlutterWindow::SendInitialAccessibilityFeatures() { OnThemeChange(); } +AccessibilityRootNode* FlutterWindow::GetAccessibilityRootNode() { + if (!accessibility_root_) { + CreateAccessibilityRootNode(); + } + return accessibility_root_; +} + } // namespace flutter diff --git a/shell/platform/windows/flutter_window.h b/shell/platform/windows/flutter_window.h index 29c9c69554638..5af03bad9c213 100644 --- a/shell/platform/windows/flutter_window.h +++ b/shell/platform/windows/flutter_window.h @@ -148,6 +148,9 @@ class FlutterWindow : public Window, public WindowBindingHandler { // |WindowBindingHandler| void SendInitialAccessibilityFeatures() override; + // |WindowBindingHandler| + AccessibilityRootNode* GetAccessibilityRootNode() override; + private: // A pointer to a FlutterWindowsView that can be used to update engine // windowing and input state. diff --git a/shell/platform/windows/flutter_window_unittests.cc b/shell/platform/windows/flutter_window_unittests.cc index 9044c601c3685..2d149b6294367 100644 --- a/shell/platform/windows/flutter_window_unittests.cc +++ b/shell/platform/windows/flutter_window_unittests.cc @@ -136,6 +136,7 @@ class MockFlutterWindow : public FlutterWindow { MOCK_METHOD3(Win32DispatchMessage, UINT(UINT, WPARAM, LPARAM)); MOCK_METHOD4(Win32PeekMessage, BOOL(LPMSG, UINT, UINT, UINT)); MOCK_METHOD1(Win32MapVkToChar, uint32_t(uint32_t)); + MOCK_METHOD0(GetPlatformWindow, HWND()); protected: // |KeyboardManager::WindowDelegate| @@ -153,10 +154,13 @@ class TestFlutterWindowsView : public FlutterWindowsView { public: TestFlutterWindowsView(std::unique_ptr window_binding) : FlutterWindowsView(std::move(window_binding)) {} + ~TestFlutterWindowsView() {} SpyKeyboardKeyHandler* key_event_handler; SpyTextInputPlugin* text_input_plugin; + MOCK_METHOD4(NotifyWinEventWrapper, void(DWORD, HWND, LONG, LONG)); + protected: std::unique_ptr CreateKeyboardKeyHandler( flutter::BinaryMessenger* messenger, @@ -400,5 +404,37 @@ TEST(FlutterWindowTest, InitialAccessibilityFeatures) { win32window.SendInitialAccessibilityFeatures(); } +// Ensure that announcing the alert propagates the message to the alert node. +// Different screen readers use different properties for alerts. +TEST(FlutterWindowTest, AlertNode) { + std::unique_ptr win32window = + std::make_unique(); + ON_CALL(*win32window, GetPlatformWindow()).WillByDefault(Return(nullptr)); + AccessibilityRootNode* root_node = win32window->GetAccessibilityRootNode(); + TestFlutterWindowsView view(std::move(win32window)); + EXPECT_CALL(view, + NotifyWinEventWrapper(EVENT_SYSTEM_ALERT, nullptr, OBJID_CLIENT, + AccessibilityRootNode::kAlertChildId)) + .Times(1); + std::wstring message = L"Test alert"; + view.AnnounceAlert(message); + IAccessible* alert = root_node->GetOrCreateAlert(); + VARIANT self{.vt = VT_I4, .lVal = CHILDID_SELF}; + BSTR strptr; + alert->get_accName(self, &strptr); + EXPECT_EQ(message, strptr); + + alert->get_accDescription(self, &strptr); + EXPECT_EQ(message, strptr); + + alert->get_accValue(self, &strptr); + EXPECT_EQ(message, strptr); + + VARIANT role; + alert->get_accRole(self, &role); + EXPECT_EQ(role.vt, VT_I4); + EXPECT_EQ(role.lVal, ROLE_SYSTEM_ALERT); +} + } // namespace testing } // namespace flutter diff --git a/shell/platform/windows/flutter_windows_engine.cc b/shell/platform/windows/flutter_windows_engine.cc index e862a94029b11..887a50145af5a 100644 --- a/shell/platform/windows/flutter_windows_engine.cc +++ b/shell/platform/windows/flutter_windows_engine.cc @@ -14,15 +14,19 @@ #include "flutter/fml/paths.h" #include "flutter/fml/platform/win/wstring_conversion.h" #include "flutter/shell/platform/common/client_wrapper/binary_messenger_impl.h" +#include "flutter/shell/platform/common/client_wrapper/include/flutter/standard_message_codec.h" #include "flutter/shell/platform/common/path_utils.h" #include "flutter/shell/platform/windows/accessibility_bridge_delegate_windows.h" #include "flutter/shell/platform/windows/flutter_windows_view.h" #include "flutter/shell/platform/windows/system_utils.h" #include "flutter/shell/platform/windows/task_runner.h" +#include "flutter/third_party/accessibility/ax/ax_node.h" // winbase.h defines GetCurrentTime as a macro. #undef GetCurrentTime +static constexpr char kAccessibilityChannelName[] = "flutter/accessibility"; + namespace flutter { namespace { @@ -152,9 +156,12 @@ FlutterLocale CovertToFlutterLocale(const LanguageInfo& info) { } // namespace -FlutterWindowsEngine::FlutterWindowsEngine(const FlutterProjectBundle& project) +FlutterWindowsEngine::FlutterWindowsEngine( + const FlutterProjectBundle& project, + std::unique_ptr registry) : project_(std::make_unique(project)), - aot_data_(nullptr, nullptr) { + aot_data_(nullptr, nullptr), + windows_registry_(std::move(registry)) { embedder_api_.struct_size = sizeof(FlutterEngineProcTable); FlutterEngineGetProcAddresses(&embedder_api_); @@ -180,6 +187,14 @@ FlutterWindowsEngine::FlutterWindowsEngine(const FlutterProjectBundle& project) messenger_wrapper_ = std::make_unique(messenger_.get()); message_dispatcher_ = std::make_unique(messenger_.get()); + message_dispatcher_->SetMessageCallback( + kAccessibilityChannelName, + [](FlutterDesktopMessengerRef messenger, + const FlutterDesktopMessage* message, void* data) { + FlutterWindowsEngine* engine = static_cast(data); + engine->HandleAccessibilityMessage(messenger, message); + }, + static_cast(this)); FlutterWindowsTextureRegistrar::ResolveGlFunctions(gl_procs_); texture_registrar_ = @@ -525,7 +540,8 @@ void FlutterWindowsEngine::SetNextFrameCallback(fml::closure callback) { } void FlutterWindowsEngine::SendSystemLocales() { - std::vector languages = GetPreferredLanguageInfo(); + std::vector languages = + GetPreferredLanguageInfo(*windows_registry_); std::vector flutter_locales; flutter_locales.reserve(languages.size()); for (const auto& info : languages) { @@ -656,4 +672,25 @@ int FlutterWindowsEngine::EnabledAccessibilityFeatures() const { return flags; } +void FlutterWindowsEngine::HandleAccessibilityMessage( + FlutterDesktopMessengerRef messenger, + const FlutterDesktopMessage* message) { + const auto& codec = StandardMessageCodec::GetInstance(); + auto data = codec.DecodeMessage(message->message, message->message_size); + EncodableMap map = std::get(*data); + std::string type = std::get(map.at(EncodableValue("type"))); + if (type.compare("announce") == 0) { + if (semantics_enabled_) { + EncodableMap data_map = + std::get(map.at(EncodableValue("data"))); + std::string text = + std::get(data_map.at(EncodableValue("message"))); + std::wstring wide_text = fml::Utf8ToWideString(text); + view_->AnnounceAlert(wide_text); + } + } + SendPlatformMessageResponse(message->response_handle, + reinterpret_cast(""), 0); +} + } // namespace flutter diff --git a/shell/platform/windows/flutter_windows_engine.h b/shell/platform/windows/flutter_windows_engine.h index 579212183d657..3cdee97e3cb92 100644 --- a/shell/platform/windows/flutter_windows_engine.h +++ b/shell/platform/windows/flutter_windows_engine.h @@ -27,6 +27,7 @@ #include "flutter/shell/platform/windows/task_runner.h" #include "flutter/shell/platform/windows/window_proc_delegate_manager.h" #include "flutter/shell/platform/windows/window_state.h" +#include "flutter/shell/platform/windows/windows_registry.h" #include "third_party/rapidjson/include/rapidjson/document.h" namespace flutter { @@ -66,8 +67,13 @@ static void WindowsPlatformThreadPrioritySetter( // run in headless mode. class FlutterWindowsEngine { public: + // Creates a new Flutter engine with an injectible windows registry. + FlutterWindowsEngine(const FlutterProjectBundle& project, + std::unique_ptr windows_registry); + // Creates a new Flutter engine object configured to run |project|. - explicit FlutterWindowsEngine(const FlutterProjectBundle& project); + explicit FlutterWindowsEngine(const FlutterProjectBundle& project) + : FlutterWindowsEngine(project, std::make_unique()) {} virtual ~FlutterWindowsEngine(); @@ -248,6 +254,9 @@ class FlutterWindowsEngine { // system changes. void SendSystemLocales(); + void HandleAccessibilityMessage(FlutterDesktopMessengerRef messenger, + const FlutterDesktopMessage* message); + // The handle to the embedder.h engine instance. FLUTTER_API_SYMBOL(FlutterEngine) engine_ = nullptr; @@ -320,6 +329,9 @@ class FlutterWindowsEngine { // The on frame drawn callback. fml::closure next_frame_callback_; + + // Wrapper providing Windows registry access. + std::unique_ptr windows_registry_; }; } // namespace flutter diff --git a/shell/platform/windows/flutter_windows_engine_unittests.cc b/shell/platform/windows/flutter_windows_engine_unittests.cc index 30a91f0e9959a..a89322f0c51b9 100644 --- a/shell/platform/windows/flutter_windows_engine_unittests.cc +++ b/shell/platform/windows/flutter_windows_engine_unittests.cc @@ -6,8 +6,13 @@ #include "flutter/shell/platform/embedder/embedder.h" #include "flutter/shell/platform/embedder/test_utils/proc_table_replacement.h" +#include "flutter/shell/platform/windows/flutter_windows_view.h" #include "flutter/shell/platform/windows/testing/engine_modifier.h" +#include "flutter/shell/platform/windows/testing/mock_window_binding_handler.h" #include "flutter/shell/platform/windows/testing/test_keyboard.h" +#include "flutter/shell/platform/windows/testing/windows_test.h" +#include "fml/synchronization/waitable_event.h" +#include "gmock/gmock.h" #include "gtest/gtest.h" // winbase.h defines GetCurrentTime as a macro. @@ -17,6 +22,7 @@ namespace flutter { namespace testing { namespace { + // Returns an engine instance configured with dummy project path values. std::unique_ptr GetTestEngine() { FlutterDesktopEngineProperties properties = {}; @@ -39,7 +45,9 @@ std::unique_ptr GetTestEngine() { } } // namespace -TEST(FlutterWindowsEngine, RunDoesExpectedInitialization) { +class FlutterWindowsEngineTest : public WindowsTest {}; + +TEST_F(FlutterWindowsEngineTest, RunDoesExpectedInitialization) { std::unique_ptr engine = GetTestEngine(); EngineModifier modifier(engine.get()); @@ -147,7 +155,7 @@ TEST(FlutterWindowsEngine, RunDoesExpectedInitialization) { modifier.ReleaseSurfaceManager(); } -TEST(FlutterWindowsEngine, ConfiguresFrameVsync) { +TEST_F(FlutterWindowsEngineTest, ConfiguresFrameVsync) { std::unique_ptr engine = GetTestEngine(); EngineModifier modifier(engine.get()); bool on_vsync_called = false; @@ -173,7 +181,7 @@ TEST(FlutterWindowsEngine, ConfiguresFrameVsync) { EXPECT_TRUE(on_vsync_called); } -TEST(FlutterWindowsEngine, RunWithoutANGLEUsesSoftware) { +TEST_F(FlutterWindowsEngineTest, RunWithoutANGLEUsesSoftware) { std::unique_ptr engine = GetTestEngine(); EngineModifier modifier(engine.get()); @@ -225,7 +233,7 @@ TEST(FlutterWindowsEngine, RunWithoutANGLEUsesSoftware) { modifier.embedder_api().Shutdown = [](auto engine) { return kSuccess; }; } -TEST(FlutterWindowsEngine, SendPlatformMessageWithoutResponse) { +TEST_F(FlutterWindowsEngineTest, SendPlatformMessageWithoutResponse) { std::unique_ptr engine = GetTestEngine(); EngineModifier modifier(engine.get()); @@ -251,7 +259,56 @@ TEST(FlutterWindowsEngine, SendPlatformMessageWithoutResponse) { EXPECT_TRUE(called); } -TEST(FlutterWindowsEngine, SendPlatformMessageWithResponse) { +TEST_F(FlutterWindowsEngineTest, PlatformMessageRoundTrip) { + FlutterDesktopEngineProperties properties = {}; + properties.assets_path = GetContext().GetAssetsPath().c_str(); + properties.icu_data_path = GetContext().GetIcuDataPath().c_str(); + properties.dart_entrypoint = "hiPlatformChannels"; + + FlutterProjectBundle project(properties); + auto engine = std::make_unique(project); + + EngineModifier modifier(engine.get()); + modifier.embedder_api().RunsAOTCompiledDartCode = []() { return false; }; + + auto binary_messenger = + std::make_unique(engine->messenger()); + + engine->Run(); + bool did_call_callback = false; + bool did_call_reply = false; + bool did_call_dart_reply = false; + std::string channel = "hi"; + binary_messenger->SetMessageHandler( + channel, + [&did_call_callback, &did_call_dart_reply]( + const uint8_t* message, size_t message_size, BinaryReply reply) { + if (message_size == 5) { + EXPECT_EQ(message[0], static_cast('h')); + char response[] = {'b', 'y', 'e'}; + reply(reinterpret_cast(response), 3); + did_call_callback = true; + } else { + EXPECT_EQ(message_size, 3); + EXPECT_EQ(message[0], static_cast('b')); + did_call_dart_reply = true; + } + }); + char payload[] = {'h', 'e', 'l', 'l', 'o'}; + binary_messenger->Send( + channel, reinterpret_cast(payload), 5, + [&did_call_reply](const uint8_t* reply, size_t reply_size) { + EXPECT_EQ(reply_size, 5); + EXPECT_EQ(reply[0], static_cast('h')); + did_call_reply = true; + }); + // Rely on timeout mechanism in CI. + while (!did_call_callback || !did_call_reply || !did_call_dart_reply) { + engine->task_runner()->ProcessTasks(); + } +} + +TEST_F(FlutterWindowsEngineTest, SendPlatformMessageWithResponse) { std::unique_ptr engine = GetTestEngine(); EngineModifier modifier(engine.get()); @@ -309,7 +366,7 @@ TEST(FlutterWindowsEngine, SendPlatformMessageWithResponse) { EXPECT_TRUE(send_message_called); } -TEST(FlutterWindowsEngine, DispatchSemanticsAction) { +TEST_F(FlutterWindowsEngineTest, DispatchSemanticsAction) { std::unique_ptr engine = GetTestEngine(); EngineModifier modifier(engine.get()); @@ -333,7 +390,7 @@ TEST(FlutterWindowsEngine, DispatchSemanticsAction) { EXPECT_TRUE(called); } -TEST(FlutterWindowsEngine, SetsThreadPriority) { +TEST_F(FlutterWindowsEngineTest, SetsThreadPriority) { WindowsPlatformThreadPrioritySetter(FlutterThreadPriority::kBackground); EXPECT_EQ(GetThreadPriority(GetCurrentThread()), THREAD_PRIORITY_BELOW_NORMAL); @@ -354,7 +411,7 @@ TEST(FlutterWindowsEngine, SetsThreadPriority) { EXPECT_EQ(GetThreadPriority(GetCurrentThread()), THREAD_PRIORITY_NORMAL); } -TEST(FlutterWindowsEngine, AddPluginRegistrarDestructionCallback) { +TEST_F(FlutterWindowsEngineTest, AddPluginRegistrarDestructionCallback) { std::unique_ptr engine = GetTestEngine(); EngineModifier modifier(engine.get()); @@ -384,7 +441,7 @@ TEST(FlutterWindowsEngine, AddPluginRegistrarDestructionCallback) { EXPECT_EQ(result2, 2); } -TEST(FlutterWindowsEngine, ScheduleFrame) { +TEST_F(FlutterWindowsEngineTest, ScheduleFrame) { std::unique_ptr engine = GetTestEngine(); EngineModifier modifier(engine.get()); @@ -399,7 +456,7 @@ TEST(FlutterWindowsEngine, ScheduleFrame) { EXPECT_TRUE(called); } -TEST(FlutterWindowsEngine, SetNextFrameCallback) { +TEST_F(FlutterWindowsEngineTest, SetNextFrameCallback) { std::unique_ptr engine = GetTestEngine(); EngineModifier modifier(engine.get()); @@ -414,14 +471,14 @@ TEST(FlutterWindowsEngine, SetNextFrameCallback) { EXPECT_TRUE(called); } -TEST(FlutterWindowsEngine, GetExecutableName) { +TEST_F(FlutterWindowsEngineTest, GetExecutableName) { std::unique_ptr engine = GetTestEngine(); EXPECT_EQ(engine->GetExecutableName(), "flutter_windows_unittests.exe"); } // Ensure that after setting or resetting the high contrast feature, // the corresponding status flag can be retrieved from the engine. -TEST(FlutterWindowsEngine, UpdateHighContrastFeature) { +TEST_F(FlutterWindowsEngineTest, UpdateHighContrastFeature) { std::unique_ptr engine = GetTestEngine(); EngineModifier modifier(engine.get()); @@ -446,7 +503,7 @@ TEST(FlutterWindowsEngine, UpdateHighContrastFeature) { EXPECT_FALSE(engine->high_contrast_enabled()); } -TEST(FlutterWindowsEngine, PostRasterThreadTask) { +TEST_F(FlutterWindowsEngineTest, PostRasterThreadTask) { std::unique_ptr engine = GetTestEngine(); EngineModifier modifier(engine.get()); @@ -462,5 +519,59 @@ TEST(FlutterWindowsEngine, PostRasterThreadTask) { EXPECT_TRUE(called); } +class MockFlutterWindowsView : public FlutterWindowsView { + public: + MockFlutterWindowsView(std::unique_ptr wbh) + : FlutterWindowsView(std::move(wbh)) {} + ~MockFlutterWindowsView() {} + + MOCK_METHOD4(NotifyWinEventWrapper, void(DWORD, HWND, LONG, LONG)); +}; + +TEST_F(FlutterWindowsEngineTest, AlertPlatformMessage) { + FlutterDesktopEngineProperties properties = {}; + properties.assets_path = GetContext().GetAssetsPath().c_str(); + properties.icu_data_path = GetContext().GetIcuDataPath().c_str(); + properties.dart_entrypoint = "alertPlatformChannel"; + + FlutterProjectBundle project(properties); + + auto window_binding_handler = + std::make_unique<::testing::NiceMock>(); + AccessibilityRootNode* root_node = AccessibilityRootNode::Create(); + ON_CALL(*window_binding_handler, GetAccessibilityRootNode) + .WillByDefault(::testing::Return(root_node)); + MockFlutterWindowsView view(std::move(window_binding_handler)); + view.SetEngine(std::make_unique(project)); + FlutterWindowsEngine* engine = view.GetEngine(); + + EngineModifier modifier(engine); + modifier.embedder_api().RunsAOTCompiledDartCode = []() { return false; }; + + auto binary_messenger = + std::make_unique(engine->messenger()); + binary_messenger->SetMessageHandler( + "semantics", [&engine](const uint8_t* message, size_t message_size, + BinaryReply reply) { + engine->UpdateSemanticsEnabled(true); + char response[] = ""; + reply(reinterpret_cast(response), 0); + }); + + bool did_call = false; + ON_CALL(view, NotifyWinEventWrapper) + .WillByDefault([&did_call](DWORD event, HWND hwnd, LONG obj, LONG child) { + did_call = true; + }); + + engine->UpdateSemanticsEnabled(true); + engine->Run(); + + // Rely on timeout mechanism in CI. + while (!did_call) { + engine->task_runner()->ProcessTasks(); + } +} + } // namespace testing } // namespace flutter diff --git a/shell/platform/windows/flutter_windows_view.cc b/shell/platform/windows/flutter_windows_view.cc index aefff5d522492..0f04f57bf7ee6 100644 --- a/shell/platform/windows/flutter_windows_view.cc +++ b/shell/platform/windows/flutter_windows_view.cc @@ -264,6 +264,11 @@ void FlutterWindowsView::OnScroll(double x, device_id); } +void FlutterWindowsView::OnScrollInertiaCancel(int32_t device_id) { + PointerLocation point = binding_handler_->GetPrimaryPointerLocation(); + SendScrollInertiaCancel(device_id, point.x, point.y); +} + void FlutterWindowsView::OnUpdateSemanticsEnabled(bool enabled) { engine_->UpdateSemanticsEnabled(enabled); } @@ -500,6 +505,21 @@ void FlutterWindowsView::SendScroll(double x, SendPointerEventWithData(event, state); } +void FlutterWindowsView::SendScrollInertiaCancel(int32_t device_id, + double x, + double y) { + auto state = + GetOrCreatePointerState(kFlutterPointerDeviceKindTrackpad, device_id); + + FlutterPointerEvent event = {}; + event.x = x; + event.y = y; + event.signal_kind = + FlutterPointerSignalKind::kFlutterPointerSignalKindScrollInertiaCancel; + SetEventPhaseFromCursorButtonState(&event, state); + SendPointerEventWithData(event, state); +} + void FlutterWindowsView::SendPointerEventWithData( const FlutterPointerEvent& event_data, PointerState* state) { @@ -636,4 +656,25 @@ FlutterWindowsEngine* FlutterWindowsView::GetEngine() { return engine_.get(); } +void FlutterWindowsView::AnnounceAlert(const std::wstring& text) { + AccessibilityRootNode* root_node = + binding_handler_->GetAccessibilityRootNode(); + AccessibilityAlert* alert = + binding_handler_->GetAccessibilityRootNode()->GetOrCreateAlert(); + alert->SetText(text); + HWND hwnd = GetPlatformWindow(); + NotifyWinEventWrapper(EVENT_SYSTEM_ALERT, hwnd, OBJID_CLIENT, + AccessibilityRootNode::kAlertChildId); +} + +void FlutterWindowsView::NotifyWinEventWrapper(DWORD event, + HWND hwnd, + LONG idObject, + LONG idChild) { + if (hwnd) { + NotifyWinEvent(EVENT_SYSTEM_ALERT, hwnd, OBJID_CLIENT, + AccessibilityRootNode::kAlertChildId); + } +} + } // namespace flutter diff --git a/shell/platform/windows/flutter_windows_view.h b/shell/platform/windows/flutter_windows_view.h index 45dc6fdb6a40c..f2b38ed22e724 100644 --- a/shell/platform/windows/flutter_windows_view.h +++ b/shell/platform/windows/flutter_windows_view.h @@ -90,6 +90,9 @@ class FlutterWindowsView : public WindowBindingHandlerDelegate, // Send the initial accessibility features to the window void SendInitialAccessibilityFeatures(); + // Set the text of the alert, and create it if it does not yet exist. + void AnnounceAlert(const std::wstring& text); + // |WindowBindingHandlerDelegate| void UpdateHighContrastEnabled(bool enabled) override; @@ -180,6 +183,9 @@ class FlutterWindowsView : public WindowBindingHandlerDelegate, FlutterPointerDeviceKind device_kind, int32_t device_id) override; + // |WindowBindingHandlerDelegate| + void OnScrollInertiaCancel(int32_t device_id) override; + // |WindowBindingHandlerDelegate| virtual void OnUpdateSemanticsEnabled(bool enabled) override; @@ -208,6 +214,11 @@ class FlutterWindowsView : public WindowBindingHandlerDelegate, virtual std::unique_ptr CreateTextInputPlugin( BinaryMessenger* messenger); + virtual void NotifyWinEventWrapper(DWORD event, + HWND hwnd, + LONG idObject, + LONG idChild); + private: // Struct holding the state of an individual pointer. The engine doesn't keep // track of which buttons have been pressed, so it's the embedding's @@ -331,6 +342,9 @@ class FlutterWindowsView : public WindowBindingHandlerDelegate, FlutterPointerDeviceKind device_kind, int32_t device_id); + // Reports scroll inertia cancel events to Flutter engine. + void SendScrollInertiaCancel(int32_t device_id, double x, double y); + // Creates a PointerState object unless it already exists. PointerState* GetOrCreatePointerState(FlutterPointerDeviceKind device_kind, int32_t device_id); diff --git a/shell/platform/windows/flutter_windows_view_unittests.cc b/shell/platform/windows/flutter_windows_view_unittests.cc index 766d36af8972b..f2699206f0daf 100644 --- a/shell/platform/windows/flutter_windows_view_unittests.cc +++ b/shell/platform/windows/flutter_windows_view_unittests.cc @@ -821,5 +821,48 @@ TEST(FlutterWindowsViewTest, SwitchNativeState) { } } +TEST(FlutterWindowsViewTest, TooltipNodeData) { + std::unique_ptr engine = GetTestEngine(); + EngineModifier modifier(engine.get()); + modifier.embedder_api().UpdateSemanticsEnabled = + [](FLUTTER_API_SYMBOL(FlutterEngine) engine, bool enabled) { + return kSuccess; + }; + + auto window_binding_handler = + std::make_unique<::testing::NiceMock>(); + FlutterWindowsView view(std::move(window_binding_handler)); + view.SetEngine(std::move(engine)); + + // Enable semantics to instantiate accessibility bridge. + view.OnUpdateSemanticsEnabled(true); + + auto bridge = view.GetEngine()->accessibility_bridge().lock(); + ASSERT_TRUE(bridge); + + FlutterSemanticsNode root{sizeof(FlutterSemanticsNode), 0}; + root.id = 0; + root.label = "root"; + root.hint = ""; + root.value = ""; + root.increased_value = ""; + root.decreased_value = ""; + root.tooltip = "tooltip"; + root.child_count = 0; + root.custom_accessibility_actions_count = 0; + root.flags = static_cast( + FlutterSemanticsFlag::kFlutterSemanticsFlagIsTextField); + bridge->AddFlutterSemanticsNodeUpdate(&root); + + bridge->CommitUpdates(); + auto root_node = bridge + ->GetFlutterPlatformNodeDelegateFromID( + AccessibilityBridge::kRootNodeId) + .lock(); + std::string tooltip = root_node->GetData().GetStringAttribute( + ax::mojom::StringAttribute::kTooltip); + EXPECT_EQ(tooltip, "tooltip"); +} + } // namespace testing } // namespace flutter diff --git a/shell/platform/windows/system_utils.cc b/shell/platform/windows/system_utils.cc index 018e3e641c5c4..538330f5226cf 100644 --- a/shell/platform/windows/system_utils.cc +++ b/shell/platform/windows/system_utils.cc @@ -12,8 +12,9 @@ namespace flutter { -std::vector GetPreferredLanguageInfo() { - std::vector languages = GetPreferredLanguages(); +std::vector GetPreferredLanguageInfo( + const WindowsRegistry& registry) { + std::vector languages = GetPreferredLanguages(registry); std::vector language_info; language_info.reserve(languages.size()); @@ -23,24 +24,64 @@ std::vector GetPreferredLanguageInfo() { return language_info; } -std::vector GetPreferredLanguages() { - std::vector languages; - DWORD flags = MUI_LANGUAGE_NAME | MUI_UI_FALLBACK; +std::wstring GetPreferredLanguagesFromRegistry(const WindowsRegistry& registry, + ULONG buffer_size) { + std::wstring buffer(buffer_size, '\0'); + if (registry.GetRegistryValue(HKEY_CURRENT_USER, kGetPreferredLanguageRegKey, + kGetPreferredLanguageRegValue, + RRF_RT_REG_MULTI_SZ, NULL, buffer.data(), + &buffer_size) != ERROR_SUCCESS) { + return std::wstring(); + } + return buffer; +} - // Get buffer length. +std::wstring GetPreferredLanguagesFromMUI() { + ULONG buffer_size; ULONG count = 0; + DWORD flags = MUI_LANGUAGE_NAME | MUI_UI_FALLBACK; + if (!GetThreadPreferredUILanguages(flags, &count, nullptr, &buffer_size)) { + return std::wstring(); + } + std::wstring buffer(buffer_size, '\0'); + if (!GetThreadPreferredUILanguages(flags, &count, buffer.data(), + &buffer_size)) { + return std::wstring(); + } + return buffer; +} + +std::vector GetPreferredLanguages( + const WindowsRegistry& registry) { + std::vector languages; + BOOL languages_from_registry = TRUE; ULONG buffer_size = 0; - if (!::GetThreadPreferredUILanguages(flags, &count, nullptr, &buffer_size)) { - return languages; + ULONG count = 0; + DWORD flags = MUI_LANGUAGE_NAME | MUI_UI_FALLBACK; + + // Determine where languages are defined and get buffer length + if (registry.GetRegistryValue(HKEY_CURRENT_USER, kGetPreferredLanguageRegKey, + kGetPreferredLanguageRegValue, + RRF_RT_REG_MULTI_SZ, NULL, NULL, + &buffer_size) != ERROR_SUCCESS) { + languages_from_registry = FALSE; } - // Get the list of null-separated languages. - std::wstring buffer(buffer_size, '\0'); - if (!::GetThreadPreferredUILanguages(flags, &count, buffer.data(), - &buffer_size)) { - return languages; + // Multi-string must be at least 3-long if non-empty, + // as a multi-string is terminated with 2 nulls. + // + // See: + // https://learn.microsoft.com/windows/win32/sysinfo/registry-value-types + if (languages_from_registry && buffer_size < 3) { + languages_from_registry = FALSE; } + // Initialize the buffer + std::wstring buffer = + languages_from_registry + ? GetPreferredLanguagesFromRegistry(registry, buffer_size) + : GetPreferredLanguagesFromMUI(); + // Extract the individual languages from the buffer. size_t start = 0; while (true) { diff --git a/shell/platform/windows/system_utils.h b/shell/platform/windows/system_utils.h index 60137d964bbc3..d4072912da2c1 100644 --- a/shell/platform/windows/system_utils.h +++ b/shell/platform/windows/system_utils.h @@ -10,8 +10,15 @@ #include #include +#include "flutter/shell/platform/windows/windows_registry.h" + namespace flutter { +// Registry key for user-preferred languages. +constexpr const wchar_t kGetPreferredLanguageRegKey[] = + L"Control panel\\International\\User Profile"; +constexpr const wchar_t kGetPreferredLanguageRegValue[] = L"Languages"; + // Components of a system language/locale. struct LanguageInfo { std::string language; @@ -21,12 +28,21 @@ struct LanguageInfo { // Returns the list of user-preferred languages, in preference order, // parsed into LanguageInfo structures. -std::vector GetPreferredLanguageInfo(); +std::vector GetPreferredLanguageInfo( + const WindowsRegistry& registry); + +// Retrieve the preferred languages from the registry. +std::wstring GetPreferredLanguagesFromRegistry(const WindowsRegistry& registry, + ULONG buffer_size); + +// Retrieve the preferred languages from the MUI API. +std::wstring GetPreferredLanguagesFromMUI(); // Returns the list of user-preferred languages, in preference order. // The language names are as described at: // https://docs.microsoft.com/en-us/windows/win32/intl/language-names -std::vector GetPreferredLanguages(); +std::vector GetPreferredLanguages( + const WindowsRegistry& registry); // Parses a Windows language name into its components. LanguageInfo ParseLanguageName(std::wstring language_name); diff --git a/shell/platform/windows/system_utils_unittests.cc b/shell/platform/windows/system_utils_unittests.cc index 6fecfbcc1134c..dad4bf729c702 100644 --- a/shell/platform/windows/system_utils_unittests.cc +++ b/shell/platform/windows/system_utils_unittests.cc @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +#include #include #include "flutter/shell/platform/windows/system_utils.h" @@ -10,8 +11,37 @@ namespace flutter { namespace testing { +class MockWindowsRegistry : public WindowsRegistry { + public: + virtual ~MockWindowsRegistry() {} + + virtual LSTATUS GetRegistryValue(HKEY hkey, + LPCWSTR key, + LPCWSTR value, + DWORD flags, + LPDWORD type, + PVOID data, + LPDWORD data_size) const { + using namespace std::string_literals; + static const std::wstring locales = + L"en-US\0zh-Hans-CN\0ja\0zh-Hant-TW\0he\0\0"s; + static DWORD locales_len = locales.size() * sizeof(wchar_t); + if (data != nullptr) { + if (*data_size < locales_len) { + return ERROR_MORE_DATA; + } + std::memcpy(data, locales.data(), locales_len); + *data_size = locales_len; + } else if (data_size != NULL) { + *data_size = locales_len; + } + return ERROR_SUCCESS; + } +}; + TEST(SystemUtils, GetPreferredLanguageInfo) { - std::vector languages = GetPreferredLanguageInfo(); + WindowsRegistry registry; + std::vector languages = GetPreferredLanguageInfo(registry); // There should be at least one language. ASSERT_GE(languages.size(), 1); // The info should have a valid languge. @@ -19,13 +49,24 @@ TEST(SystemUtils, GetPreferredLanguageInfo) { } TEST(SystemUtils, GetPreferredLanguages) { - std::vector languages = GetPreferredLanguages(); + WindowsRegistry registry; + std::vector languages = GetPreferredLanguages(registry); // There should be at least one language. ASSERT_GE(languages.size(), 1); // The language should be non-empty. EXPECT_FALSE(languages[0].empty()); // There should not be a trailing null from the parsing step. EXPECT_EQ(languages[0].size(), wcslen(languages[0].c_str())); + + // Test mock results + MockWindowsRegistry mock_registry; + languages = GetPreferredLanguages(mock_registry); + ASSERT_EQ(languages.size(), 5); + ASSERT_EQ(languages[0], std::wstring(L"en-US")); + ASSERT_EQ(languages[1], std::wstring(L"zh-Hans-CN")); + ASSERT_EQ(languages[2], std::wstring(L"ja")); + ASSERT_EQ(languages[3], std::wstring(L"zh-Hant-TW")); + ASSERT_EQ(languages[4], std::wstring(L"he")); } TEST(SystemUtils, ParseLanguageNameGeneric) { diff --git a/shell/platform/windows/testing/mock_window_binding_handler.h b/shell/platform/windows/testing/mock_window_binding_handler.h index dc8ea7433fa17..6a191b0e1817b 100644 --- a/shell/platform/windows/testing/mock_window_binding_handler.h +++ b/shell/platform/windows/testing/mock_window_binding_handler.h @@ -37,6 +37,7 @@ class MockWindowBindingHandler : public WindowBindingHandler { bool(const void* allocation, size_t row_bytes, size_t height)); MOCK_METHOD0(GetPrimaryPointerLocation, PointerLocation()); MOCK_METHOD0(SendInitialAccessibilityFeatures, void()); + MOCK_METHOD0(GetAccessibilityRootNode, AccessibilityRootNode*()); }; } // namespace testing diff --git a/shell/platform/windows/testing/mock_window_binding_handler_delegate.h b/shell/platform/windows/testing/mock_window_binding_handler_delegate.h index a7ad72cbe2623..03534b2e5ecfd 100644 --- a/shell/platform/windows/testing/mock_window_binding_handler_delegate.h +++ b/shell/platform/windows/testing/mock_window_binding_handler_delegate.h @@ -60,6 +60,7 @@ class MockWindowBindingHandlerDelegate : public WindowBindingHandlerDelegate { int, FlutterPointerDeviceKind, int32_t)); + MOCK_METHOD1(OnScrollInertiaCancel, void(int32_t)); MOCK_METHOD0(OnPlatformBrightnessChanged, void()); MOCK_METHOD1(UpdateHighContrastEnabled, void(bool enabled)); }; diff --git a/shell/platform/windows/testing/windows_test_context.h b/shell/platform/windows/testing/windows_test_context.h index 813aa44126623..689a6a98ac393 100644 --- a/shell/platform/windows/testing/windows_test_context.h +++ b/shell/platform/windows/testing/windows_test_context.h @@ -35,7 +35,8 @@ class WindowsTestContext { // Registers a native function callable from Dart code in test fixtures. In // the Dart test fixture, the associated function can be declared as: // - // ReturnType functionName() native 'IdentifyingName'; + // @pragma('vm:external-name', 'IdentifyingName') + // external ReturnType functionName(); // // where `IdentifyingName` matches the |name| parameter to this method. void AddNativeFunction(std::string_view name, Dart_NativeFunction function); diff --git a/shell/platform/windows/window.cc b/shell/platform/windows/window.cc index 913a3f85fef07..9581d05ab9d51 100644 --- a/shell/platform/windows/window.cc +++ b/shell/platform/windows/window.cc @@ -58,7 +58,8 @@ Window::Window(std::unique_ptr windows_proc_table, std::unique_ptr text_input_manager) : touch_id_generator_(kMinTouchDeviceId, kMaxTouchDeviceId), windows_proc_table_(std::move(windows_proc_table)), - text_input_manager_(std::move(text_input_manager)) { + text_input_manager_(std::move(text_input_manager)), + accessibility_root_(nullptr) { // Get the DPI of the primary monitor as the initial DPI. If Per-Monitor V2 is // supported, |current_dpi_| should be updated in the // kWmDpiChangedBeforeParent message. @@ -210,8 +211,14 @@ LRESULT Window::OnGetObject(UINT const message, // TODO(cbracken): https://github.com/flutter/flutter/issues/94782 // Implement when we adopt UIA support. } else if (is_msaa_request && root_view) { + // Create the accessibility root if it does not already exist. + if (!accessibility_root_) { + CreateAccessibilityRootNode(); + } // Return the IAccessible for the root view. - Microsoft::WRL::ComPtr root(root_view); + // Microsoft::WRL::ComPtr root(root_view); + accessibility_root_->SetWindow(root_view); + Microsoft::WRL::ComPtr root(accessibility_root_); LRESULT lresult = LresultFromObject(IID_IAccessible, wparam, root.Get()); return lresult; } @@ -596,6 +603,11 @@ void Window::Destroy() { window_handle_ = nullptr; } + if (accessibility_root_) { + accessibility_root_->Release(); + accessibility_root_ = nullptr; + } + UnregisterClass(window_class_name_.c_str(), nullptr); } @@ -648,4 +660,11 @@ bool Window::GetHighContrastEnabled() { } } +void Window::CreateAccessibilityRootNode() { + if (accessibility_root_) { + accessibility_root_->Release(); + } + accessibility_root_ = AccessibilityRootNode::Create(); +} + } // namespace flutter diff --git a/shell/platform/windows/window.h b/shell/platform/windows/window.h index e31be30f1619d..95784d0eff986 100644 --- a/shell/platform/windows/window.h +++ b/shell/platform/windows/window.h @@ -14,6 +14,7 @@ #include #include "flutter/shell/platform/embedder/embedder.h" +#include "flutter/shell/platform/windows/accessibility_root_node.h" #include "flutter/shell/platform/windows/direct_manipulation.h" #include "flutter/shell/platform/windows/keyboard_manager.h" #include "flutter/shell/platform/windows/sequential_id_generator.h" @@ -223,6 +224,9 @@ class Window : public KeyboardManager::WindowDelegate { // Returns the root view accessibility node, or nullptr if none. virtual gfx::NativeViewAccessible GetNativeViewAccessible() = 0; + // Create the wrapper node. + void CreateAccessibilityRootNode(); + // Handles running DirectManipulation on the window to receive trackpad // gestures. std::unique_ptr direct_manipulation_owner_; @@ -230,6 +234,9 @@ class Window : public KeyboardManager::WindowDelegate { // Called when a theme change message is issued virtual void OnThemeChange() = 0; + // A parent node wrapping the window root, used for siblings. + AccessibilityRootNode* accessibility_root_; + private: // Release OS resources associated with window. void Destroy(); diff --git a/shell/platform/windows/window_binding_handler.h b/shell/platform/windows/window_binding_handler.h index abde74e59822f..13d04eb604b1f 100644 --- a/shell/platform/windows/window_binding_handler.h +++ b/shell/platform/windows/window_binding_handler.h @@ -11,6 +11,7 @@ #include #include "flutter/shell/platform/common/geometry.h" +#include "flutter/shell/platform/windows/accessibility_root_node.h" #include "flutter/shell/platform/windows/public/flutter_windows.h" #include "flutter/shell/platform/windows/window_binding_handler_delegate.h" @@ -92,6 +93,9 @@ class WindowBindingHandler { // Called to set the initial state of accessibility features virtual void SendInitialAccessibilityFeatures() = 0; + + // Returns the wrapper parent accessibility node. + virtual AccessibilityRootNode* GetAccessibilityRootNode() = 0; }; } // namespace flutter diff --git a/shell/platform/windows/window_binding_handler_delegate.h b/shell/platform/windows/window_binding_handler_delegate.h index 38569fda296bb..485fe4384f3cc 100644 --- a/shell/platform/windows/window_binding_handler_delegate.h +++ b/shell/platform/windows/window_binding_handler_delegate.h @@ -122,6 +122,10 @@ class WindowBindingHandlerDelegate { FlutterPointerDeviceKind device_kind, int32_t device_id) = 0; + // Notifies delegate that scroll inertia should be cancelled. + // Typically called by DirectManipulationEventHandler + virtual void OnScrollInertiaCancel(int32_t device_id) = 0; + // Notifies delegate that the Flutter semantics tree should be enabled or // disabled. virtual void OnUpdateSemanticsEnabled(bool enabled) = 0; diff --git a/shell/platform/windows/window_proc_delegate_manager_unittests.cc b/shell/platform/windows/window_proc_delegate_manager_unittests.cc index 9177638c62155..195fb5b88cd0e 100644 --- a/shell/platform/windows/window_proc_delegate_manager_unittests.cc +++ b/shell/platform/windows/window_proc_delegate_manager_unittests.cc @@ -10,11 +10,18 @@ namespace testing { namespace { +#ifdef _WIN32 +#define FLUTTER_NOINLINE __declspec(noinline) +#else +#define FLUTTER_NOINLINE __attribute__((noinline)) +#endif + using TestWindowProcDelegate = std::function(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam)>; // A FlutterDesktopWindowProcCallback that forwards to a std::function provided // as user_data. +FLUTTER_NOINLINE bool TestWindowProcCallback(HWND hwnd, UINT message, WPARAM wparam, diff --git a/shell/platform/windows/windows_registry.cc b/shell/platform/windows/windows_registry.cc new file mode 100644 index 0000000000000..0b929981f88b5 --- /dev/null +++ b/shell/platform/windows/windows_registry.cc @@ -0,0 +1,19 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "flutter/shell/platform/windows/windows_registry.h" + +namespace flutter { + +LSTATUS WindowsRegistry::GetRegistryValue(HKEY hkey, + LPCWSTR key, + LPCWSTR value, + DWORD flags, + LPDWORD type, + PVOID data, + LPDWORD data_size) const { + return RegGetValue(hkey, key, value, flags, type, data, data_size); +} + +} // namespace flutter diff --git a/shell/platform/windows/windows_registry.h b/shell/platform/windows/windows_registry.h new file mode 100644 index 0000000000000..b46fbc2be6268 --- /dev/null +++ b/shell/platform/windows/windows_registry.h @@ -0,0 +1,39 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef FLUTTER_SHELL_PLATFORM_WINDOWS_WINDOWS_REGISTRY_H_ +#define FLUTTER_SHELL_PLATFORM_WINDOWS_WINDOWS_REGISTRY_H_ + +#include + +#include "flutter/fml/macros.h" + +namespace flutter { + +/// A utility class to encapsulate interaction with the Windows registry. +/// By encapsulating this in a class, we can mock out this functionality +/// for unit testing. +class WindowsRegistry { + public: + WindowsRegistry() = default; + virtual ~WindowsRegistry() = default; + + // Parameters and return values of this method match those of RegGetValue + // See: + // https://learn.microsoft.com/windows/win32/api/winreg/nf-winreg-reggetvaluew + virtual LSTATUS GetRegistryValue(HKEY hkey, + LPCWSTR key, + LPCWSTR value, + DWORD flags, + LPDWORD type, + PVOID data, + LPDWORD data_size) const; + + private: + FML_DISALLOW_COPY_AND_ASSIGN(WindowsRegistry); +}; + +} // namespace flutter + +#endif // FLUTTER_SHELL_PLATFORM_WINDOWS_WINDOWS_REGISTRY_H_ diff --git a/shell/testing/tester_main.cc b/shell/testing/tester_main.cc index 9aec07a52e1d8..443e22b3a5b93 100644 --- a/shell/testing/tester_main.cc +++ b/shell/testing/tester_main.cc @@ -372,7 +372,7 @@ int main(int argc, char* argv[]) { dart::bin::SetExecutableName(argv[0]); dart::bin::SetExecutableArguments(argc - 1, argv); - auto command_line = fml::CommandLineFromArgcArgv(argc, argv); + auto command_line = fml::CommandLineFromPlatformOrArgcArgv(argc, argv); if (command_line.HasOption(flutter::FlagForSwitch(flutter::Switch::Help))) { flutter::PrintUsage("flutter_tester"); diff --git a/sky/packages/sky_engine/LICENSE b/sky/packages/sky_engine/LICENSE index aa452a7548f7d..01a1433110b9f 100644 --- a/sky/packages/sky_engine/LICENSE +++ b/sky/packages/sky_engine/LICENSE @@ -1,62 +1,198 @@ -StackWalker +smhasher -Copyright (c) 2005-2009, Jochen Kalmbach -All rights reserved. +All MurmurHash source files are placed in the public domain. -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: +The license below applies to all other code in SMHasher: -Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. -Redistributions in binary form must reproduce the above copyright notice, -this list of conditions and the following disclaimer in the documentation -and/or other materials provided with the distribution. -Neither the name of Jochen Kalmbach nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +Copyright (c) 2011 Google, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. -------------------------------------------------------------------------------- -StackWalker +etc1 -Copyright (c) 2005-2013, Jochen Kalmbach -All rights reserved. +Apache License -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: +Version 2.0, January 2004 -Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. -Redistributions in binary form must reproduce the above copyright notice, -this list of conditions and the following disclaimer in the documentation -and/or other materials provided with the distribution. -Neither the name of Jochen Kalmbach nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +http://www.apache.org/licenses + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + +"License" shall mean the terms and conditions for use, reproduction, and +distribution as defined by Sections 1 through 9 of this document. + +"Licensor" shall mean the copyright owner or entity authorized by the +copyright owner that is granting the License. + +"Legal Entity" shall mean the union of the acting entity and all other +entities that control, are controlled by, or are under common control with +that entity. For the purposes of this definition, "control" means (i) the +power, direct or indirect, to cause the direction or management of such +entity, whether by contract or otherwise, or (ii) ownership of fifty +percent (50%) or more of the outstanding shares, or (iii) beneficial +ownership of such entity. + +"You" (or "Your") shall mean an individual or Legal Entity exercising +permissions granted by this License. + +"Source" form shall mean the preferred form for making modifications, +including but not limited to software source code, documentation +source, and configuration files. + +"Object" form shall mean any form resulting from mechanical transformation +or translation of a Source form, including but not limited to compiled +object code, generated documentation, and conversions to other media types. + +"Work" shall mean the work of authorship, whether in Source or Object +form, made available under the License, as indicated by a copyright +notice that is included in or attached to the work (an example is +provided in the Appendix below). + +"Derivative Works" shall mean any work, whether in Source or Object +form, that is based on (or derived from) the Work and for which the +editorial revisions, annotations, elaborations, or other modifications +represent, as a whole, an original work of authorship. For the purposes +of this License, Derivative Works shall not include works that remain +separable from, or merely link (or bind by name) to the interfaces of, +the Work and Derivative Works thereof. + +"Contribution" shall mean any work of authorship, including the original +version of the Work and any modifications or additions to that Work or +Derivative Works thereof, that is intentionally submitted to Licensor +for inclusion in the Work by the copyright owner or by an individual or +Legal Entity authorized to submit on behalf of the copyright owner. For +the purposes of this definition, "submitted" means any form of electronic, +verbal, or written communication sent to the Licensor or its +representatives, including but not limited to communication on electronic +mailing lists, source code control systems, and issue tracking systems that +are managed by, or on behalf of, the Licensor for the purpose of discussing +and improving the Work, but excluding communication that is conspicuously +marked or otherwise designated in writing by the copyright owner as "Not +a Contribution." + +"Contributor" shall mean Licensor and any individual or Legal Entity on +behalf of whom a Contribution has been received by Licensor and subsequently +incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of this +License, each Contributor hereby grants to You a perpetual, worldwide, +non-exclusive, no-charge, royalty-free, irrevocable copyright license to +reproduce, prepare Derivative Works of, publicly display, publicly perform, +sublicense, and distribute the Work and such Derivative Works in Source or +Object form. + +3. Grant of Patent License. Subject to the terms and conditions of this +License, each Contributor hereby grants to You a perpetual, worldwide, +non-exclusive, no-charge, royalty-free, irrevocable (except as stated in +this section) patent license to make, have made, use, offer to sell, sell, +import, and otherwise transfer the Work, where such license applies only to +those patent claims licensable by such Contributor that are necessarily +infringed by their Contribution(s) alone or by combination of their +Contribution(s) with the Work to which such Contribution(s) was submitted. +If You institute patent litigation against any entity (including a cross-claim +or counterclaim in a lawsuit) alleging that the Work or a Contribution +incorporated within the Work constitutes direct or contributory patent +infringement, then any patent licenses granted to You under this License +for that Work shall terminate as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the Work or +Derivative Works thereof in any medium, with or without modifications, and +in Source or Object form, provided that You meet the following conditions: + +You must give any other recipients of the Work or Derivative Works a copy of +this License; and +You must cause any modified files to carry prominent notices stating that +You changed the files; and +You must retain, in the Source form of any Derivative Works that You +distribute, all copyright, patent, trademark, and attribution notices +from the Source form of the Work, excluding those notices that do not +pertain to any part of the Derivative Works; and +If the Work includes a "NOTICE" text file as part of its distribution, +then any Derivative Works that You distribute must include a readable +copy of the attribution notices contained within such NOTICE file, excluding +those notices that do not pertain to any part of the Derivative Works, in +at least one of the following places: within a NOTICE text file distributed +as part of the Derivative Works; within the Source form or documentation, if +provided along with the Derivative Works; or, within a display generated by +the Derivative Works, if and wherever such third-party notices normally +appear. The contents of the NOTICE file are for informational purposes +only and do not modify the License. You may add Your own attribution +notices within Derivative Works that You distribute, alongside or as +an addendum to the NOTICE text from the Work, provided that such additional +attribution notices cannot be construed as modifying the License. + +You may add Your own copyright statement to Your modifications and may provide +additional or different license terms and conditions for use, reproduction, or +distribution of Your modifications, or for any such Derivative Works as a +whole, provided Your use, reproduction, and distribution of the Work otherwise +complies with the conditions stated in this License. +5. Submission of Contributions. Unless You explicitly state otherwise, any +Contribution intentionally submitted for inclusion in the Work by You to the +Licensor shall be under the terms and conditions of this License, without any +additional terms or conditions. Notwithstanding the above, nothing herein +shall supersede or modify the terms of any separate license agreement you +may have executed with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade names, +trademarks, service marks, or product names of the Licensor, except as +required for reasonable and customary use in describing the origin of the +Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or agreed to +in writing, Licensor provides the Work (and each Contributor provides its +Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +ANY KIND, either express or implied, including, without limitation, any +warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or +FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining +the appropriateness of using or redistributing the Work and assume any risks +associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, whether in +tort (including negligence), contract, or otherwise, unless required by +applicable law (such as deliberate and grossly negligent acts) or agreed to +in writing, shall any Contributor be liable to You for damages, including +any direct, indirect, special, incidental, or consequential damages of any +character arising as a result of this License or out of the use or inability +to use the Work (including but not limited to damages for loss of goodwill, +work stoppage, computer failure or malfunction, or any and all other +commercial damages or losses), even if such Contributor has been advised +of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing the +Work or Derivative Works thereof, You may choose to offer, and charge a +fee for, acceptance of support, warranty, indemnity, or other liability +obligations and/or rights consistent with this License. However, in accepting +such obligations, You may act only on Your own behalf and on Your sole +responsibility, not on behalf of any other Contributor, and only if You +agree to indemnify, defend, and hold each Contributor harmless for any +liability incurred by, or claims asserted against, such Contributor by +reason of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS -------------------------------------------------------------------------------- -abseil-cpp +flatbuffers Apache License Version 2.0, January 2004 -https://www.apache.org/licenses +http://www.apache.org/licenses TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION @@ -242,13 +378,13 @@ APPENDIX: How to apply the Apache License to your work. same "printed page" as the copyright notice for easier identification within third-party archives. -Copyright [yyyy] [name of copyright owner] +Copyright 2014 Google Inc. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - https://www.apache.org/licenses/LICENSE-2.0 + http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, @@ -257,55 +393,23 @@ See the License for the specific language governing permissions and limitations under the License. -------------------------------------------------------------------------------- abseil-cpp -accessibility -skia +angle +boringssl +etc1 +expat +flatbuffers +fuchsia-vulkan +khronos +libwebp +pkg +txt +vulkan +vulkan-deps +wuffs -Copyright 2020 The Chromium Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -abseil-cpp -angle -boringssl -etc1 -expat -flatbuffers -fuchsia-vulkan -khronos -libwebp -pkg -txt -vulkan -vulkan-deps -wuffs - -Apache License -Version 2.0, January 2004 -http://www.apache.org/licenses +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION @@ -505,1185 +609,1019 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. -------------------------------------------------------------------------------- -accessibility +libcxx +libcxxabi -Copyright (c) 2009 The Chromium Authors. All rights reserved. +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. +1. Definitions. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -accessibility + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. -Copyright (c) 2010 The Chromium Authors. All rights reserved. + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -accessibility + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. -Copyright (c) 2014 The Chromium Authors. All rights reserved. + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -accessibility + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." -Copyright 2013 The Chromium Authors. All rights reserved. + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -accessibility -angle +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: -Copyright (c) 2013 The Chromium Authors. All rights reserved. + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -accessibility -base -engine -icu -zlib + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. -Copyright 2014 The Chromium Authors. All rights reserved. + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -accessibility -base -fuchsia_sdk -skia -zlib +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. -Copyright 2018 The Chromium Authors. All rights reserved. +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. +END OF TERMS AND CONDITIONS -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -accessibility -base -zlib +APPENDIX: How to apply the Apache License to your work. -Copyright (c) 2011 The Chromium Authors. All rights reserved. + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +Copyright [yyyy] [name of copyright owner] - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -accessibility -base -zlib + http://www.apache.org/licenses/LICENSE-2.0 -Copyright 2017 The Chromium Authors. All rights reserved. +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +--- LLVM Exceptions to the Apache 2.0 License ---- - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. +As an exception, if, as a result of your compiling your source code, portions +of this Software are embedded into an Object form of such source code, you +may redistribute such embedded portions in such Object form without complying +with the conditions of Sections 4(a), 4(b) and 4(d) of the License. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +In addition, if you combine or link compiled forms of this Software with +software that is licensed under the GPLv2 ("Combined Software") and if a +court of competent jurisdiction determines that the patent provision (Section +3), the indemnity provision (Section 9) or other Section of the License +conflicts with the conditions of the GPLv2, you may retroactively and +prospectively choose to deem waived or otherwise exclude such Section(s) of +the License, but only in their entirety and only with respect to the Combined +Software. -------------------------------------------------------------------------------- -accessibility -engine -gpu -tonic -txt +abseil-cpp -Copyright 2013 The Flutter Authors. All rights reserved. +Apache License +Version 2.0, January 2004 +https://www.apache.org/licenses -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - * Neither the name of Google Inc. nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. +1. Definitions. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -accessibility -fuchsia_sdk -skia -zlib + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. -Copyright 2019 The Chromium Authors. All rights reserved. + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -accessibility -icu -skia + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. -Copyright 2016 The Chromium Authors. All rights reserved. + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -accessibility -icu -skia -vulkan-deps + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." -Copyright 2015 The Chromium Authors. All rights reserved. + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -accessibility -zlib +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: -Copyright (c) 2012 The Chromium Authors. All rights reserved. + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -angle + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. -Copyright (C) 2009 Apple Inc. All Rights Reserved. + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. -THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY -EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR -CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY -OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -angle +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. -Copyright (c) 2008 NVIDIA, Corporation +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice (including the next -paragraph) shall be included in all copies or substantial portions of the -Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. --------------------------------------------------------------------------------- -angle +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. -Copyright (c) 2008-2018 The Khronos Group Inc. +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and/or associated documentation files (the -"Materials"), to deal in the Materials without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Materials, and to -permit persons to whom the Materials are furnished to do so, subject to -the following conditions: +END OF TERMS AND CONDITIONS -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Materials. +APPENDIX: How to apply the Apache License to your work. -THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. --------------------------------------------------------------------------------- -angle + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. -Copyright (c) 2010 NVIDIA, Corporation +Copyright [yyyy] [name of copyright owner] -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at -The above copyright notice and this permission notice (including the next -paragraph) shall be included in all copies or substantial portions of the -Software. + https://www.apache.org/licenses/LICENSE-2.0 -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. -------------------------------------------------------------------------------- -angle - -Copyright (c) 2013-2017 The Khronos Group Inc. +boringssl -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and/or associated documentation files (the -"Materials"), to deal in the Materials without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Materials, and to -permit persons to whom the Materials are furnished to do so, subject to -the following conditions: +Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com) +All rights reserved. -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Materials. +This package is an SSL implementation written +by Eric Young (eay@cryptsoft.com). +The implementation was written so as to conform with Netscapes SSL. -THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. --------------------------------------------------------------------------------- -angle +This library is free for commercial and non-commercial use as long as +the following conditions are aheared to. The following conditions +apply to all code found in this distribution, be it the RC4, RSA, +lhash, DES, etc., code; not just the SSL code. The SSL documentation +included with this distribution is covered by the same copyright terms +except that the holder is Tim Hudson (tjh@cryptsoft.com). -Copyright (c) 2020 The ANGLE Project Authors. All rights reserved. +Copyright remains Eric Young's, and as such any Copyright notices in +the code are not to be removed. +If this package is used in a product, Eric Young should be given attribution +as the author of the parts of the library used. +This can be in the form of a textual message at program startup or +in documentation (online or textual) provided with the package. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: +1. Redistributions of source code must retain the copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +3. All advertising materials mentioning features or use of this software + must display the following acknowledgement: + "This product includes cryptographic software written by + Eric Young (eay@cryptsoft.com)" + The word 'cryptographic' can be left out if the rouines from the library + being used are not cryptographic related :-). +4. If you include any Windows specific code (or a derivative thereof) from + the apps directory (application code) you must include an acknowledgement: + "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. - Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. +The licence and distribution terms for any publically available version or +derivative of this code cannot be changed. i.e. this code cannot simply be +copied and put under another distribution licence +[including the GNU Public Licence.] +-------------------------------------------------------------------------------- +boringssl - Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. - Ltd., nor the names of their contributors may be used to endorse - or promote products derived from this software without specific - prior written permission. +Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) +All rights reserved. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -angle +This package is an SSL implementation written +by Eric Young (eay@cryptsoft.com). +The implementation was written so as to conform with Netscapes SSL. -Copyright 2002 The ANGLE Project Authors. All rights reserved. +This library is free for commercial and non-commercial use as long as +the following conditions are aheared to. The following conditions +apply to all code found in this distribution, be it the RC4, RSA, +lhash, DES, etc., code; not just the SSL code. The SSL documentation +included with this distribution is covered by the same copyright terms +except that the holder is Tim Hudson (tjh@cryptsoft.com). + +Copyright remains Eric Young's, and as such any Copyright notices in +the code are not to be removed. +If this package is used in a product, Eric Young should be given attribution +as the author of the parts of the library used. +This can be in the form of a textual message at program startup or +in documentation (online or textual) provided with the package. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: +1. Redistributions of source code must retain the copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +3. All advertising materials mentioning features or use of this software + must display the following acknowledgement: + "This product includes cryptographic software written by + Eric Young (eay@cryptsoft.com)" + The word 'cryptographic' can be left out if the rouines from the library + being used are not cryptographic related :-). +4. If you include any Windows specific code (or a derivative thereof) from + the apps directory (application code) you must include an acknowledgement: + "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. - Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. +The licence and distribution terms for any publically available version or +derivative of this code cannot be changed. i.e. this code cannot simply be +copied and put under another distribution licence +[including the GNU Public Licence.] +-------------------------------------------------------------------------------- +freetype2 +zlib - Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. - Ltd., nor the names of their contributors may be used to endorse - or promote products derived from this software without specific - prior written permission. +Copyright (C) 1995-2003, 2010 Mark Adler -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -angle +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. -Copyright 2010 The ANGLE Project Authors. All rights reserved. +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +-------------------------------------------------------------------------------- +zlib - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +Copyright (C) 1995-2003, 2010 Mark Adler +Copyright (C) 2017 ARM, Inc. - Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. - Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. - Ltd., nor the names of their contributors may be used to endorse - or promote products derived from this software without specific - prior written permission. +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- -angle +zlib -Copyright 2011 The ANGLE Project Authors. All rights reserved. +Copyright (C) 1995-2003, 2010, 2014, 2016 Jean-loup Gailly, Mark Adler -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: - Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +-------------------------------------------------------------------------------- +freetype2 +zlib - Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. - Ltd., nor the names of their contributors may be used to endorse - or promote products derived from this software without specific - prior written permission. +Copyright (C) 1995-2005, 2010 Mark Adler -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -angle +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. -Copyright 2012 The ANGLE Project Authors. All rights reserved. +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +-------------------------------------------------------------------------------- +zlib - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +Copyright (C) 1995-2005, 2014, 2016 Jean-loup Gailly, Mark Adler - Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. - Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. - Ltd., nor the names of their contributors may be used to endorse - or promote products derived from this software without specific - prior written permission. +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- -angle +freetype2 -Copyright 2013 The ANGLE Project Authors. All rights reserved. +Copyright (C) 1995-2006, 2010, 2011, 2012, 2016 Mark Adler -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: - Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +-------------------------------------------------------------------------------- +freetype2 +zlib - Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. - Ltd., nor the names of their contributors may be used to endorse - or promote products derived from this software without specific - prior written permission. +Copyright (C) 1995-2011, 2016 Mark Adler -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -angle +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. -Copyright 2014 The ANGLE Project Authors. All rights reserved. +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +-------------------------------------------------------------------------------- +freetype2 +zlib - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +Copyright (C) 1995-2016 Jean-loup Gailly, Mark Adler - Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. - Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. - Ltd., nor the names of their contributors may be used to endorse - or promote products derived from this software without specific - prior written permission. +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- -angle +freetype2 -Copyright 2015 The ANGLE Project Authors. All rights reserved. +Copyright (C) 1995-2016 Mark Adler -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: - Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +-------------------------------------------------------------------------------- +freetype2 +zlib - Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. - Ltd., nor the names of their contributors may be used to endorse - or promote products derived from this software without specific - prior written permission. +Copyright (C) 1995-2017 Jean-loup Gailly -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -angle +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. -Copyright 2018 The ANGLE Project Authors. -All rights reserved. +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +-------------------------------------------------------------------------------- +freetype2 - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler - Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. - Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. - Ltd., nor the names of their contributors may be used to endorse - or promote products derived from this software without specific - prior written permission. +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- -angle +freetype2 +zlib -Copyright 2018 The ANGLE Project Authors. All rights reserved. +Copyright (C) 1995-2017 Mark Adler -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: - Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +-------------------------------------------------------------------------------- +zlib - Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. - Ltd., nor the names of their contributors may be used to endorse - or promote products derived from this software without specific - prior written permission. +Copyright (C) 1995-2018 Jean-loup Gailly -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -angle +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. -Copyright 2019 The ANGLE Project. All rights reserved. +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +-------------------------------------------------------------------------------- +zlib - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +Copyright (C) 1995-2019 Mark Adler - Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. - Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. - Ltd., nor the names of their contributors may be used to endorse - or promote products derived from this software without specific - prior written permission. +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- -angle +zlib -Copyright 2020 The ANGLE Project Authors. All rights reserved. +Copyright (C) 1995-2021 Jean-loup Gailly +detect_data_type() function provided freely by Cosmin Truta, 2006 -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: - Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +-------------------------------------------------------------------------------- +zlib - Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. - Ltd., nor the names of their contributors may be used to endorse - or promote products derived from this software without specific - prior written permission. +Copyright (C) 1995-2022 Jean-loup Gailly and Mark Adler -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -angle +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. -Copyright 2020 The ANGLE Project. All rights reserved. +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +-------------------------------------------------------------------------------- +zlib - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +Copyright (C) 1995-2022 Jean-loup Gailly, Mark Adler - Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. - Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. - Ltd., nor the names of their contributors may be used to endorse - or promote products derived from this software without specific - prior written permission. +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- -angle - -Copyright 2021 The ANGLE Project Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: +zlib - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +Copyright (C) 1995-2022 Mark Adler - Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. - Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. - Ltd., nor the names of their contributors may be used to endorse - or promote products derived from this software without specific - prior written permission. +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- -angle +zlib -Copyright 2021 The ANGLE Project. All rights reserved. +Copyright (C) 1998-2010 Gilles Vollant (minizip) ( http://www.winimage.com/zLibDll/minizip.html ) -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: +Modifications for Zip64 support +Copyright (C) 2009-2010 Mathias Svensson ( http://result42.com ) - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +For more info read MiniZip_info.txt - Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. +Condition of use and distribution are the same than zlib : - Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. - Ltd., nor the names of their contributors may be used to endorse - or promote products derived from this software without specific - prior written permission. +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- -angle +zlib -Copyright 2021-2022 The ANGLE Project Authors. All rights reserved. +Copyright (C) 1998-2010 Gilles Vollant (minizip) ( http://www.winimage.com/zLibDll/minizip.html ) -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: +Modifications of Unzip for Zip64 +Copyright (C) 2007-2008 Even Rouault - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +Modifications for Zip64 support on both zip and unzip +Copyright (C) 2009-2010 Mathias Svensson ( http://result42.com ) - Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. +For more info read MiniZip_info.txt - Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. - Ltd., nor the names of their contributors may be used to endorse - or promote products derived from this software without specific - prior written permission. +Condition of use and distribution are the same than zlib : -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -angle +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. -Copyright 2022 The ANGLE Project Authors. All rights reserved. +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +-------------------------------------------------------------------------------- +libjpeg-turbo - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +Copyright (C) 1999-2006, MIYASAKA Masaru. - Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. - Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. - Ltd., nor the names of their contributors may be used to endorse - or promote products derived from this software without specific - prior written permission. +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- -angle - -Copyright The ANGLE Project Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: +freetype2 - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +Copyright (C) 2000, 2001, 2002, 2003, 2006, 2010 by +Francesco Zappa Nardelli - Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: - Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. - Ltd., nor the names of their contributors may be used to endorse - or promote products derived from this software without specific - prior written permission. +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. -------------------------------------------------------------------------------- -angle - -MIT License +freetype2 -Copyright (c) 2021 e_t +Copyright (C) 2000-2004, 2006-2011, 2013, 2014 by +Francesco Zappa Nardelli Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -1692,1343 +1630,1658 @@ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. -------------------------------------------------------------------------------- -angle -base +freetype2 -Copyright 2016 The ANGLE Project Authors. All rights reserved. +Copyright (C) 2001, 2002 by +Francesco Zappa Nardelli -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. - Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +-------------------------------------------------------------------------------- +freetype2 - Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. - Ltd., nor the names of their contributors may be used to endorse - or promote products derived from this software without specific - prior written permission. +Copyright (C) 2001, 2002, 2003, 2004 by +Francesco Zappa Nardelli -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -angle -base +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: -Copyright 2017 The ANGLE Project Authors. All rights reserved. +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +-------------------------------------------------------------------------------- +freetype2 - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +Copyright (C) 2001-2008, 2011, 2013, 2014 by +Francesco Zappa Nardelli - Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: - Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. - Ltd., nor the names of their contributors may be used to endorse - or promote products derived from this software without specific - prior written permission. +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. -------------------------------------------------------------------------------- -angle -fuchsia_sdk +freetype2 -Copyright 2019 The Fuchsia Authors. All rights reserved. +Copyright (C) 2004, 2005, 2010, 2011, 2012, 2013, 2016 Mark Adler -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- -angle -fuchsia_sdk -json -rapidjson +zlib -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +Copyright (C) 2004, 2010 Mark Adler -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- -angle -fuchsia_sdk -libjxl -skia +zlib -Copyright 2021 The Chromium Authors. All rights reserved. +Copyright (C) 2004-2017 Mark Adler -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -angle -khronos - -Copyright (c) 2013-2014 The Khronos Group Inc. - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and/or associated documentation files (the -"Materials"), to deal in the Materials without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Materials, and to -permit persons to whom the Materials are furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Materials. +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: -THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- -angle -khronos +zlib -Copyright (c) 2013-2018 The Khronos Group Inc. +Copyright (C) 2004-2019 Mark Adler -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and/or associated documentation files (the -"Materials"), to deal in the Materials without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Materials, and to -permit persons to whom the Materials are furnished to do so, subject to -the following conditions: +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Materials. +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: -THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- angle -xxhash -Copyright 2019 The ANGLE Project Authors. All rights reserved. +Copyright (C) 2009 Apple Inc. All Rights Reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY +EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +libjpeg-turbo - Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. +Copyright (C) 2009, D. R. Commander. - Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. - Ltd., nor the names of their contributors may be used to endorse - or promote products derived from this software without specific - prior written permission. +Based on the x86 SIMD extension for IJG JPEG library +Copyright (C) 1999-2006, MIYASAKA Masaru. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -boringssl +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. -Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com) -All rights reserved. +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: -This package is an SSL implementation written -by Eric Young (eay@cryptsoft.com). -The implementation was written so as to conform with Netscapes SSL. +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +-------------------------------------------------------------------------------- +libjpeg-turbo -This library is free for commercial and non-commercial use as long as -the following conditions are aheared to. The following conditions -apply to all code found in this distribution, be it the RC4, RSA, -lhash, DES, etc., code; not just the SSL code. The SSL documentation -included with this distribution is covered by the same copyright terms -except that the holder is Tim Hudson (tjh@cryptsoft.com). +Copyright (C) 2009-2011, 2014-2016, D. R. Commander. +Copyright (C) 2015, Matthieu Darbois. -Copyright remains Eric Young's, and as such any Copyright notices in -the code are not to be removed. -If this package is used in a product, Eric Young should be given attribution -as the author of the parts of the library used. -This can be in the form of a textual message at program startup or -in documentation (online or textual) provided with the package. +Based on the x86 SIMD extension for IJG JPEG library +Copyright (C) 1999-2006, MIYASAKA Masaru. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: -1. Redistributions of source code must retain the copyright - notice, this list of conditions and the following disclaimer. -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. -3. All advertising materials mentioning features or use of this software - must display the following acknowledgement: - "This product includes cryptographic software written by - Eric Young (eay@cryptsoft.com)" - The word 'cryptographic' can be left out if the rouines from the library - being used are not cryptographic related :-). -4. If you include any Windows specific code (or a derivative thereof) from - the apps directory (application code) you must include an acknowledgement: - "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. -THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -SUCH DAMAGE. +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: -The licence and distribution terms for any publically available version or -derivative of this code cannot be changed. i.e. this code cannot simply be -copied and put under another distribution licence -[including the GNU Public Licence.] +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- -boringssl +libjpeg-turbo -Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) -All rights reserved. +Copyright (C) 2009-2011, Nokia Corporation and/or its subsidiary(-ies). +All Rights Reserved. +Author: Siarhei Siamashka +Copyright (C) 2013-2014, Linaro Limited. All Rights Reserved. +Author: Ragesh Radhakrishnan +Copyright (C) 2014-2016, D. R. Commander. All Rights Reserved. +Copyright (C) 2015-2016, Matthieu Darbois. All Rights Reserved. +Copyright (C) 2016, Siarhei Siamashka. All Rights Reserved. -This package is an SSL implementation written -by Eric Young (eay@cryptsoft.com). -The implementation was written so as to conform with Netscapes SSL. +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. -This library is free for commercial and non-commercial use as long as -the following conditions are aheared to. The following conditions -apply to all code found in this distribution, be it the RC4, RSA, -lhash, DES, etc., code; not just the SSL code. The SSL documentation -included with this distribution is covered by the same copyright terms -except that the holder is Tim Hudson (tjh@cryptsoft.com). +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: -Copyright remains Eric Young's, and as such any Copyright notices in -the code are not to be removed. -If this package is used in a product, Eric Young should be given attribution -as the author of the parts of the library used. -This can be in the form of a textual message at program startup or -in documentation (online or textual) provided with the package. +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +-------------------------------------------------------------------------------- +libjpeg-turbo -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: -1. Redistributions of source code must retain the copyright - notice, this list of conditions and the following disclaimer. -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. -3. All advertising materials mentioning features or use of this software - must display the following acknowledgement: - "This product includes cryptographic software written by - Eric Young (eay@cryptsoft.com)" - The word 'cryptographic' can be left out if the rouines from the library - being used are not cryptographic related :-). -4. If you include any Windows specific code (or a derivative thereof) from - the apps directory (application code) you must include an acknowledgement: - "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" +Copyright (C) 2009-2011, Nokia Corporation and/or its subsidiary(-ies). +All Rights Reserved. +Author: Siarhei Siamashka +Copyright (C) 2014, Siarhei Siamashka. All Rights Reserved. +Copyright (C) 2014, Linaro Limited. All Rights Reserved. +Copyright (C) 2015, D. R. Commander. All Rights Reserved. +Copyright (C) 2015-2016, Matthieu Darbois. All Rights Reserved. -THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -SUCH DAMAGE. +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. -The licence and distribution terms for any publically available version or -derivative of this code cannot be changed. i.e. this code cannot simply be -copied and put under another distribution licence -[including the GNU Public Licence.] +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- -boringssl +harfbuzz -Copyright (c) 1998-2000 The OpenSSL Project. All rights reserved. +Copyright (C) 2011 Google, Inc. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: + This is part of HarfBuzz, a text shaping library. -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -3. All advertising materials mentioning features or use of this - software must display the following acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit. (http://www.openssl.org/)" +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +libjpeg-turbo -4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - endorse or promote products derived from this software without - prior written permission. For written permission, please contact - openssl-core@openssl.org. +Copyright (C) 2011, D. R. Commander. -5. Products derived from this software may not be called "OpenSSL" - nor may "OpenSSL" appear in their names without prior written - permission of the OpenSSL Project. +Based on the x86 SIMD extension for IJG JPEG library +Copyright (C) 1999-2006, MIYASAKA Masaru. -6. Redistributions of any form whatsoever must retain the following - acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit (http://www.openssl.org/)" +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. -THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY -EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR -ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED -OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -boringssl +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: -Copyright (c) 1998-2001 The OpenSSL Project. All rights reserved. +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +-------------------------------------------------------------------------------- +harfbuzz -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: +Copyright (C) 2012 Grigori Goronzy -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +-------------------------------------------------------------------------------- +xxhash -3. All advertising materials mentioning features or use of this - software must display the following acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit. (http://www.openssl.org/)" +Copyright (C) 2012-2016, Yann Collet -4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - endorse or promote products derived from this software without - prior written permission. For written permission, please contact - openssl-core@openssl.org. +BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php) -5. Products derived from this software may not be called "OpenSSL" - nor may "OpenSSL" appear in their names without prior written - permission of the OpenSSL Project. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -6. Redistributions of any form whatsoever must retain the following - acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit (http://www.openssl.org/)" +* Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. +* Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. -THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY -EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR -ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED -OF THE POSSIBILITY OF SUCH DAMAGE. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -boringssl +xxhash -Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved. +Copyright (C) 2012-2016, Yann Collet. + +BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php) Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: +modification, are permitted provided that the following conditions are +met: -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +harfbuzz -3. All advertising materials mentioning features or use of this - software must display the following acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit. (http://www.openssl.org/)" +Copyright (C) 2013 Google, Inc. -4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - endorse or promote products derived from this software without - prior written permission. For written permission, please contact - openssl-core@openssl.org. + This is part of HarfBuzz, a text shaping library. -5. Products derived from this software may not be called "OpenSSL" - nor may "OpenSSL" appear in their names without prior written - permission of the OpenSSL Project. +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -6. Redistributions of any form whatsoever must retain the following - acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit (http://www.openssl.org/)" +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY -EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR -ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED -OF THE POSSIBILITY OF SUCH DAMAGE. +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- -boringssl +zlib -Copyright (c) 1998-2003 The OpenSSL Project. All rights reserved. +Copyright (C) 2013 Intel Corporation. All rights reserved. +Authors: + Wajdi Feghali + Jim Guilford + Vinodh Gopal + Erdinc Ozturk + Jim Kukunas -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +-------------------------------------------------------------------------------- +libjpeg-turbo -3. All advertising materials mentioning features or use of this - software must display the following acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit. (http://www.openssl.org/)" +Copyright (C) 2013, MIPS Technologies, Inc., California. +All Rights Reserved. +Authors: Teodora Novkovic (teodora.novkovic@imgtec.com) + Darko Laus (darko.laus@imgtec.com) +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. -4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - endorse or promote products derived from this software without - prior written permission. For written permission, please contact - openssl-core@openssl.org. +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: -5. Products derived from this software may not be called "OpenSSL" - nor may "OpenSSL" appear in their names without prior written - permission of the OpenSSL Project. +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +-------------------------------------------------------------------------------- +libjpeg-turbo -6. Redistributions of any form whatsoever must retain the following - acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit (http://www.openssl.org/)" +Copyright (C) 2013-2014, MIPS Technologies, Inc., California. +All Rights Reserved. +Authors: Teodora Novkovic (teodora.novkovic@imgtec.com) + Darko Laus (darko.laus@imgtec.com) +Copyright (C) 2015, D. R. Commander. All Rights Reserved. +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. -THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY -EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR -ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED -OF THE POSSIBILITY OF SUCH DAMAGE. +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- -boringssl +skia -Copyright (c) 1998-2004 The OpenSSL Project. All rights reserved. +Copyright (C) 2014 Google Inc. All rights reserved. Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: +modification, are permitted provided that the following conditions are +met: -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. -3. All advertising materials mentioning features or use of this - software must display the following acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. -4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - endorse or promote products derived from this software without - prior written permission. For written permission, please contact - openssl-core@openssl.org. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +libjpeg-turbo -5. Products derived from this software may not be called "OpenSSL" - nor may "OpenSSL" appear in their names without prior written - permission of the OpenSSL Project. +Copyright (C) 2014, D. R. Commander. All Rights Reserved. -6. Redistributions of any form whatsoever must retain the following - acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit (http://www.openssl.org/)" +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. -THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY -EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR -ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED -OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -boringssl +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: -Copyright (c) 1998-2005 The OpenSSL Project. All rights reserved. +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +-------------------------------------------------------------------------------- +libjpeg-turbo -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: +Copyright (C) 2014-2015, D. R. Commander. All Rights Reserved. -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: -3. All advertising materials mentioning features or use of this - software must display the following acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +-------------------------------------------------------------------------------- +libjpeg-turbo -4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - endorse or promote products derived from this software without - prior written permission. For written permission, please contact - openssl-core@OpenSSL.org. +Copyright (C) 2014-2015, D. R. Commander. All Rights Reserved. +Copyright (C) 2014, Jay Foad. All Rights Reserved. -5. Products derived from this software may not be called "OpenSSL" - nor may "OpenSSL" appear in their names without prior written - permission of the OpenSSL Project. +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. -6. Redistributions of any form whatsoever must retain the following - acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: -THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY -EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR -ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED -OF THE POSSIBILITY OF SUCH DAMAGE. +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- -boringssl +libjpeg-turbo -Copyright (c) 1998-2005 The OpenSSL Project. All rights reserved. +Copyright (C) 2015, D. R. Commander. All Rights Reserved. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +-------------------------------------------------------------------------------- +icu -3. All advertising materials mentioning features or use of this - software must display the following acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit. (http://www.openssl.org/)" +Copyright (C) 2016 and later: Unicode, Inc. and others. +License & terms of use: http://www.unicode.org/copyright.html +Copyright (c) 2015 International Business Machines Corporation +and others. All Rights Reserved. -4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - endorse or promote products derived from this software without - prior written permission. For written permission, please contact - openssl-core@openssl.org. +Project: https://github.com/rober42539/lao-dictionary +Dictionary: https://github.com/rober42539/lao-dictionary/laodict.txt +License: https://github.com/rober42539/lao-dictionary/LICENSE.txt + (copied below) -5. Products derived from this software may not be called "OpenSSL" - nor may "OpenSSL" appear in their names without prior written - permission of the OpenSSL Project. + This file is derived from the above dictionary version of Nov 22, 2020 -6. Redistributions of any form whatsoever must retain the following - acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit (http://www.openssl.org/)" + Copyright (C) 2013 Brian Eugene Wilson, Robert Martin Campbell. + All rights reserved. -THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY -EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR -ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. Redistributions in binary + form must reproduce the above copyright notice, this list of conditions and + the following disclaimer in the documentation and/or other materials + provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -boringssl +zlib -Copyright (c) 1998-2006 The OpenSSL Project. All rights reserved. +Copyright (C) 2017 ARM, Inc. +Copyright 2017 The Chromium Authors. All rights reserved. Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: +modification, are permitted provided that the following conditions are +met: -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +libtess2 -3. All advertising materials mentioning features or use of this - software must display the following acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit. (http://www.openssl.org/)" +Copyright (C) [dates of first publication] Silicon Graphics, Inc. +All Rights Reserved. -4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - endorse or promote products derived from this software without - prior written permission. For written permission, please contact - openssl-core@openssl.org. +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: -5. Products derived from this software may not be called "OpenSSL" - nor may "OpenSSL" appear in their names without prior written - permission of the OpenSSL Project. +The above copyright notice including the dates of first publication and either this +permission notice or a reference to http://oss.sgi.com/projects/FreeB/ shall be +included in all copies or substantial portions of the Software. -6. Redistributions of any form whatsoever must retain the following - acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit (http://www.openssl.org/)" +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL SILICON GRAPHICS, INC. +BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE +OR OTHER DEALINGS IN THE SOFTWARE. -THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY -EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR -ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED -OF THE POSSIBILITY OF SUCH DAMAGE. +Except as contained in this notice, the name of Silicon Graphics, Inc. shall not +be used in advertising or otherwise to promote the sale, use or other dealings in +this Software without prior written authorization from Silicon Graphics, Inc. -------------------------------------------------------------------------------- -boringssl +libjpeg-turbo -Copyright (c) 1998-2007 The OpenSSL Project. All rights reserved. +Copyright (C)2009-2014 D. R. Commander. All Rights Reserved. Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - -3. All advertising materials mentioning features or use of this - software must display the following acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit. (http://www.openssl.org/)" - -4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - endorse or promote products derived from this software without - prior written permission. For written permission, please contact - openssl-core@openssl.org. - -5. Products derived from this software may not be called "OpenSSL" - nor may "OpenSSL" appear in their names without prior written - permission of the OpenSSL Project. +modification, are permitted provided that the following conditions are met: -6. Redistributions of any form whatsoever must retain the following - acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit (http://www.openssl.org/)" +- Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. +- Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. +- Neither the name of the libjpeg-turbo Project nor the names of its + contributors may be used to endorse or promote products derived from this + software without specific prior written permission. -THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY -EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR -ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED -OF THE POSSIBILITY OF SUCH DAMAGE. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS", +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -boringssl +libjpeg-turbo -Copyright (c) 1998-2011 The OpenSSL Project. All rights reserved. +Copyright (C)2009-2015 D. R. Commander. All Rights Reserved. Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +modification, are permitted provided that the following conditions are met: -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. +- Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. +- Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. +- Neither the name of the libjpeg-turbo Project nor the names of its + contributors may be used to endorse or promote products derived from this + software without specific prior written permission. -3. All advertising materials mentioning features or use of this - software must display the following acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit. (http://www.openssl.org/)" +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS", +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +libjpeg-turbo -4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - endorse or promote products derived from this software without - prior written permission. For written permission, please contact - openssl-core@openssl.org. +Copyright (C)2009-2016 D. R. Commander. All Rights Reserved. -5. Products derived from this software may not be called "OpenSSL" - nor may "OpenSSL" appear in their names without prior written - permission of the OpenSSL Project. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: -6. Redistributions of any form whatsoever must retain the following - acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit (http://www.openssl.org/)" +- Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. +- Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. +- Neither the name of the libjpeg-turbo Project nor the names of its + contributors may be used to endorse or promote products derived from this + software without specific prior written permission. -THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY -EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR -ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED -OF THE POSSIBILITY OF SUCH DAMAGE. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS", +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -boringssl +libjpeg-turbo -Copyright (c) 1999 The OpenSSL Project. All rights reserved. +Copyright (C)2011 D. R. Commander. All Rights Reserved. Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +modification, are permitted provided that the following conditions are met: -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. +- Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. +- Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. +- Neither the name of the libjpeg-turbo Project nor the names of its + contributors may be used to endorse or promote products derived from this + software without specific prior written permission. -3. All advertising materials mentioning features or use of this - software must display the following acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS", +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +libjpeg-turbo -4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - endorse or promote products derived from this software without - prior written permission. For written permission, please contact - licensing@OpenSSL.org. +Copyright (C)2011, 2015 D. R. Commander. All Rights Reserved. -5. Products derived from this software may not be called "OpenSSL" - nor may "OpenSSL" appear in their names without prior written - permission of the OpenSSL Project. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: -6. Redistributions of any form whatsoever must retain the following - acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" +- Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. +- Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. +- Neither the name of the libjpeg-turbo Project nor the names of its + contributors may be used to endorse or promote products derived from this + software without specific prior written permission. -THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY -EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR -ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED -OF THE POSSIBILITY OF SUCH DAMAGE. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS", +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -boringssl +libjpeg-turbo -Copyright (c) 1999-2002 The OpenSSL Project. All rights reserved. +Copyright (C)2011-2016 D. R. Commander. All Rights Reserved. Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: +modification, are permitted provided that the following conditions are met: -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +- Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. +- Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. +- Neither the name of the libjpeg-turbo Project nor the names of its + contributors may be used to endorse or promote products derived from this + software without specific prior written permission. -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS", +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +icu -3. All advertising materials mentioning features or use of this - software must display the following acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" +Copyright (c) 1995-2016 International Business Machines Corporation and others +All rights reserved. -4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - endorse or promote products derived from this software without - prior written permission. For written permission, please contact - licensing@OpenSSL.org. +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, and/or sell copies of the Software, and to permit persons +to whom the Software is furnished to do so, provided that the above +copyright notice(s) and this permission notice appear in all copies of +the Software and that both the above copyright notice(s) and this +permission notice appear in supporting documentation. -5. Products derived from this software may not be called "OpenSSL" - nor may "OpenSSL" appear in their names without prior written - permission of the OpenSSL Project. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY +SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER +RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF +CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN +CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -6. Redistributions of any form whatsoever must retain the following - acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" +Except as contained in this notice, the name of a copyright holder +shall not be used in advertising or otherwise to promote the sale, use +or other dealings in this Software without prior written authorization +of the copyright holder. -THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY -EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR -ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED -OF THE POSSIBILITY OF SUCH DAMAGE. +All trademarks and registered trademarks mentioned herein are the +property of their respective owners. -------------------------------------------------------------------------------- -boringssl +expat -Copyright (c) 1999-2003 The OpenSSL Project. All rights reserved. +Copyright (c) 1997-2000 Thai Open Source Software Center Ltd +Copyright (c) 2000 Clark Cooper +Copyright (c) 2000-2004 Fred L. Drake, Jr. +Copyright (c) 2001-2002 Greg Stein +Copyright (c) 2002-2006 Karl Waclawek +Copyright (c) 2016 Cristian Rodríguez +Copyright (c) 2016-2019 Sebastian Pipping +Copyright (c) 2017 Rhodri James +Copyright (c) 2018 Yury Gribov +Licensed under the MIT license: -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the +following conditions: -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. -3. All advertising materials mentioning features or use of this - software must display the following acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. +-------------------------------------------------------------------------------- +expat -4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - endorse or promote products derived from this software without - prior written permission. For written permission, please contact - licensing@OpenSSL.org. +Copyright (c) 1997-2000 Thai Open Source Software Center Ltd +Copyright (c) 2000 Clark Cooper +Copyright (c) 2000-2005 Fred L. Drake, Jr. +Copyright (c) 2001-2002 Greg Stein +Copyright (c) 2002-2016 Karl Waclawek +Copyright (c) 2016-2021 Sebastian Pipping +Copyright (c) 2016 Cristian Rodríguez +Copyright (c) 2016 Thomas Beutlich +Copyright (c) 2017 Rhodri James +Licensed under the MIT license: -5. Products derived from this software may not be called "OpenSSL" - nor may "OpenSSL" appear in their names without prior written - permission of the OpenSSL Project. +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the +following conditions: -6. Redistributions of any form whatsoever must retain the following - acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. -THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY -EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR -ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED -OF THE POSSIBILITY OF SUCH DAMAGE. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- -boringssl - -Copyright (c) 1999-2004 The OpenSSL Project. All rights reserved. +expat -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: +Copyright (c) 1997-2000 Thai Open Source Software Center Ltd +Copyright (c) 2000 Clark Cooper +Copyright (c) 2000-2006 Fred L. Drake, Jr. +Copyright (c) 2001-2002 Greg Stein +Copyright (c) 2002-2016 Karl Waclawek +Copyright (c) 2005-2009 Steven Solie +Copyright (c) 2016 Eric Rahm +Copyright (c) 2016-2021 Sebastian Pipping +Copyright (c) 2016 Gaurav +Copyright (c) 2016 Thomas Beutlich +Copyright (c) 2016 Gustavo Grieco +Copyright (c) 2016 Pascal Cuoq +Copyright (c) 2016 Ed Schouten +Copyright (c) 2017-2018 Rhodri James +Copyright (c) 2017 Václav Slavík +Copyright (c) 2017 Viktor Szakats +Copyright (c) 2017 Chanho Park +Copyright (c) 2017 Rolf Eike Beer +Copyright (c) 2017 Hans Wennborg +Copyright (c) 2018 Anton Maklakov +Copyright (c) 2018 Benjamin Peterson +Copyright (c) 2018 Marco Maggi +Copyright (c) 2018 Mariusz Zaborski +Copyright (c) 2019 David Loffredo +Copyright (c) 2019-2020 Ben Wagner +Copyright (c) 2019 Vadim Zeitlin +Licensed under the MIT license: -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the +following conditions: -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. -3. All advertising materials mentioning features or use of this - software must display the following acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. +-------------------------------------------------------------------------------- +expat -4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - endorse or promote products derived from this software without - prior written permission. For written permission, please contact - licensing@OpenSSL.org. +Copyright (c) 1997-2000 Thai Open Source Software Center Ltd +Copyright (c) 2000 Clark Cooper +Copyright (c) 2001-2002 Fred L. Drake, Jr. +Copyright (c) 2006 Karl Waclawek +Copyright (c) 2016-2017 Sebastian Pipping +Copyright (c) 2017 Rhodri James +Licensed under the MIT license: -5. Products derived from this software may not be called "OpenSSL" - nor may "OpenSSL" appear in their names without prior written - permission of the OpenSSL Project. +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the +following conditions: -6. Redistributions of any form whatsoever must retain the following - acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. -THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY -EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR -ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED -OF THE POSSIBILITY OF SUCH DAMAGE. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- -boringssl - -Copyright (c) 1999-2005 The OpenSSL Project. All rights reserved. +expat -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: +Copyright (c) 1997-2000 Thai Open Source Software Center Ltd +Copyright (c) 2000 Clark Cooper +Copyright (c) 2001-2003 Fred L. Drake, Jr. +Copyright (c) 2002 Greg Stein +Copyright (c) 2002-2016 Karl Waclawek +Copyright (c) 2005-2009 Steven Solie +Copyright (c) 2016-2021 Sebastian Pipping +Copyright (c) 2016 Pascal Cuoq +Copyright (c) 2016 Don Lewis +Copyright (c) 2017 Rhodri James +Copyright (c) 2017 Alexander Bluhm +Copyright (c) 2017 Benbuck Nason +Copyright (c) 2017 José Gutiérrez de la Concha +Copyright (c) 2019 David Loffredo +Licensed under the MIT license: -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the +following conditions: -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. -3. All advertising materials mentioning features or use of this - software must display the following acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. +-------------------------------------------------------------------------------- +expat -4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - endorse or promote products derived from this software without - prior written permission. For written permission, please contact - openssl-core@OpenSSL.org. +Copyright (c) 1997-2000 Thai Open Source Software Center Ltd +Copyright (c) 2000 Clark Cooper +Copyright (c) 2001-2003 Fred L. Drake, Jr. +Copyright (c) 2004-2009 Karl Waclawek +Copyright (c) 2005-2007 Steven Solie +Copyright (c) 2016-2021 Sebastian Pipping +Copyright (c) 2017 Rhodri James +Copyright (c) 2019 David Loffredo +Copyright (c) 2020 Joe Orton +Copyright (c) 2020 Kleber Tarcísio +Copyright (c) 2021 Tim Bray +Licensed under the MIT license: -5. Products derived from this software may not be called "OpenSSL" - nor may "OpenSSL" appear in their names without prior written - permission of the OpenSSL Project. +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the +following conditions: -6. Redistributions of any form whatsoever must retain the following - acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. -THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY -EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR -ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED -OF THE POSSIBILITY OF SUCH DAMAGE. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- -boringssl - -Copyright (c) 1999-2007 The OpenSSL Project. All rights reserved. +expat -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: +Copyright (c) 1997-2000 Thai Open Source Software Center Ltd +Copyright (c) 2000 Clark Cooper +Copyright (c) 2001-2004 Fred L. Drake, Jr. +Copyright (c) 2002-2009 Karl Waclawek +Copyright (c) 2016-2017 Sebastian Pipping +Copyright (c) 2017 Rhodri James +Copyright (c) 2017 Franek Korta +Licensed under the MIT license: -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the +following conditions: -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. -3. All advertising materials mentioning features or use of this - software must display the following acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. +-------------------------------------------------------------------------------- +expat -4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - endorse or promote products derived from this software without - prior written permission. For written permission, please contact - licensing@OpenSSL.org. +Copyright (c) 1997-2000 Thai Open Source Software Center Ltd +Copyright (c) 2000 Clark Cooper +Copyright (c) 2002 Fred L. Drake, Jr. +Copyright (c) 2002-2005 Karl Waclawek +Copyright (c) 2016-2017 Sebastian Pipping +Copyright (c) 2017 Rhodri James +Licensed under the MIT license: -5. Products derived from this software may not be called "OpenSSL" - nor may "OpenSSL" appear in their names without prior written - permission of the OpenSSL Project. +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the +following conditions: -6. Redistributions of any form whatsoever must retain the following - acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. -THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY -EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR -ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED -OF THE POSSIBILITY OF SUCH DAMAGE. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- -boringssl - -Copyright (c) 1999-2008 The OpenSSL Project. All rights reserved. +expat -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: +Copyright (c) 1997-2000 Thai Open Source Software Center Ltd +Copyright (c) 2000 Clark Cooper +Copyright (c) 2002 Fred L. Drake, Jr. +Copyright (c) 2002-2016 Karl Waclawek +Copyright (c) 2016-2021 Sebastian Pipping +Copyright (c) 2017 Rhodri James +Copyright (c) 2018 Benjamin Peterson +Copyright (c) 2018 Anton Maklakov +Copyright (c) 2019 David Loffredo +Copyright (c) 2020 Boris Kolpackov +Licensed under the MIT license: -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the +following conditions: -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. -3. All advertising materials mentioning features or use of this - software must display the following acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. +-------------------------------------------------------------------------------- +expat -4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - endorse or promote products derived from this software without - prior written permission. For written permission, please contact - licensing@OpenSSL.org. +Copyright (c) 1997-2000 Thai Open Source Software Center Ltd +Copyright (c) 2000 Clark Cooper +Copyright (c) 2002 Fred L. Drake, Jr. +Copyright (c) 2005 Karl Waclawek +Copyright (c) 2016-2019 Sebastian Pipping +Licensed under the MIT license: -5. Products derived from this software may not be called "OpenSSL" - nor may "OpenSSL" appear in their names without prior written - permission of the OpenSSL Project. +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the +following conditions: -6. Redistributions of any form whatsoever must retain the following - acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. -THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY -EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR -ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED -OF THE POSSIBILITY OF SUCH DAMAGE. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- -boringssl - -Copyright (c) 2000 The OpenSSL Project. All rights reserved. +expat -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: +Copyright (c) 1997-2000 Thai Open Source Software Center Ltd +Copyright (c) 2000 Clark Cooper +Copyright (c) 2002 Fred L. Drake, Jr. +Copyright (c) 2005-2006 Karl Waclawek +Copyright (c) 2016-2019 Sebastian Pipping +Copyright (c) 2019 David Loffredo +Licensed under the MIT license: -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the +following conditions: -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. -3. All advertising materials mentioning features or use of this - software must display the following acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. +-------------------------------------------------------------------------------- +expat -4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - endorse or promote products derived from this software without - prior written permission. For written permission, please contact - licensing@OpenSSL.org. +Copyright (c) 1997-2000 Thai Open Source Software Center Ltd +Copyright (c) 2000 Clark Cooper +Copyright (c) 2002 Fred L. Drake, Jr. +Copyright (c) 2016-2017 Sebastian Pipping +Licensed under the MIT license: -5. Products derived from this software may not be called "OpenSSL" - nor may "OpenSSL" appear in their names without prior written - permission of the OpenSSL Project. +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the +following conditions: -6. Redistributions of any form whatsoever must retain the following - acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. -THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY -EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR -ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED -OF THE POSSIBILITY OF SUCH DAMAGE. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- -boringssl - -Copyright (c) 2000-2002 The OpenSSL Project. All rights reserved. +expat -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: +Copyright (c) 1997-2000 Thai Open Source Software Center Ltd +Copyright (c) 2000 Clark Cooper +Copyright (c) 2002 Fred L. Drake, Jr. +Copyright (c) 2017 Sebastian Pipping +Licensed under the MIT license: -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the +following conditions: -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. -3. All advertising materials mentioning features or use of this - software must display the following acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. +-------------------------------------------------------------------------------- +expat -4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - endorse or promote products derived from this software without - prior written permission. For written permission, please contact - licensing@OpenSSL.org. +Copyright (c) 1997-2000 Thai Open Source Software Center Ltd +Copyright (c) 2000 Clark Cooper +Copyright (c) 2002 Greg Stein +Copyright (c) 2002 Fred L. Drake, Jr. +Copyright (c) 2002-2006 Karl Waclawek +Copyright (c) 2017 Sebastian Pipping +Licensed under the MIT license: -5. Products derived from this software may not be called "OpenSSL" - nor may "OpenSSL" appear in their names without prior written - permission of the OpenSSL Project. +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the +following conditions: -6. Redistributions of any form whatsoever must retain the following - acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. -THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY -EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR -ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED -OF THE POSSIBILITY OF SUCH DAMAGE. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- -boringssl - -Copyright (c) 2000-2003 The OpenSSL Project. All rights reserved. +expat -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: +Copyright (c) 1997-2000 Thai Open Source Software Center Ltd +Copyright (c) 2000 Clark Cooper +Copyright (c) 2002 Greg Stein +Copyright (c) 2002-2006 Karl Waclawek +Copyright (c) 2002-2003 Fred L. Drake, Jr. +Copyright (c) 2005-2009 Steven Solie +Copyright (c) 2016-2021 Sebastian Pipping +Copyright (c) 2017 Rhodri James +Copyright (c) 2019 David Loffredo +Licensed under the MIT license: -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the +following conditions: -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. -3. All advertising materials mentioning features or use of this - software must display the following acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. +-------------------------------------------------------------------------------- +expat -4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - endorse or promote products derived from this software without - prior written permission. For written permission, please contact - licensing@OpenSSL.org. +Copyright (c) 1997-2000 Thai Open Source Software Center Ltd +Copyright (c) 2000 Clark Cooper +Copyright (c) 2002 Karl Waclawek +Copyright (c) 2002 Fred L. Drake, Jr. +Copyright (c) 2017 Sebastian Pipping +Licensed under the MIT license: -5. Products derived from this software may not be called "OpenSSL" - nor may "OpenSSL" appear in their names without prior written - permission of the OpenSSL Project. +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the +following conditions: -6. Redistributions of any form whatsoever must retain the following - acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. -THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY -EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR -ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED -OF THE POSSIBILITY OF SUCH DAMAGE. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- -boringssl - -Copyright (c) 2000-2005 The OpenSSL Project. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: +expat -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +Copyright (c) 1997-2000 Thai Open Source Software Center Ltd +Copyright (c) 2000 Clark Cooper +Copyright (c) 2002-2003 Fred L. Drake, Jr. +Copyright (c) 2004-2006 Karl Waclawek +Copyright (c) 2005-2007 Steven Solie +Copyright (c) 2016-2021 Sebastian Pipping +Copyright (c) 2017 Rhodri James +Copyright (c) 2019 David Loffredo +Licensed under the MIT license: -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the +following conditions: -3. All advertising materials mentioning features or use of this - software must display the following acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. -4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. +-------------------------------------------------------------------------------- +expat + +Copyright (c) 1997-2000 Thai Open Source Software Center Ltd +Copyright (c) 2000 Clark Cooper +Copyright (c) 2017-2019 Sebastian Pipping +Licensed under the MIT license: + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the +following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. +-------------------------------------------------------------------------------- +expat + +Copyright (c) 1997-2000 Thai Open Source Software Center Ltd +Copyright (c) 2001-2003 Fred L. Drake, Jr. +Copyright (c) 2004-2006 Karl Waclawek +Copyright (c) 2005-2007 Steven Solie +Copyright (c) 2016-2019 Sebastian Pipping +Copyright (c) 2017 Rhodri James +Copyright (c) 2019 Zhongyuan Zhou +Licensed under the MIT license: + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the +following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. +-------------------------------------------------------------------------------- +expat + +Copyright (c) 1997-2000 Thai Open Source Software Center Ltd +Copyright (c) 2002 Fred L. Drake, Jr. +Copyright (c) 2016-2017 Sebastian Pipping +Licensed under the MIT license: + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the +following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. +-------------------------------------------------------------------------------- +expat + +Copyright (c) 1997-2000 Thai Open Source Software Center Ltd +Copyright (c) 2002 Fred L. Drake, Jr. +Copyright (c) 2016-2018 Sebastian Pipping +Copyright (c) 2018 Marco Maggi +Licensed under the MIT license: + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the +following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. +-------------------------------------------------------------------------------- +expat + +Copyright (c) 1997-2000 Thai Open Source Software Center Ltd +Copyright (c) 2016-2021 Sebastian Pipping +Copyright (c) 2017 Rhodri James +Licensed under the MIT license: + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the +following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. +-------------------------------------------------------------------------------- +icu + +Copyright (c) 1998 - 1999 Unicode, Inc. All Rights reserved. + Copyright (C) 2002-2005, International Business Machines + Corporation and others. All Rights Reserved. + +This file is provided as-is by Unicode, Inc. (The Unicode Consortium). +No claims are made as to fitness for any particular purpose. No +warranties of any kind are expressed or implied. The recipient +agrees to determine applicability of information provided. If this +file has been provided on optical media by Unicode, Inc., the sole +remedy for any claim will be exchange of defective media within 90 +days of receipt. + +Unicode, Inc. hereby grants the right to freely use the information +supplied in this file in the creation of products supporting the +Unicode Standard, and to make copies of this file in any form for +internal or external distribution as long as this notice remains +attached. +-------------------------------------------------------------------------------- +expat + +Copyright (c) 1998-2000 Thai Open Source Software Center Ltd and Clark Cooper +Copyright (c) 2001-2019 Expat maintainers + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +-------------------------------------------------------------------------------- +boringssl + +Copyright (c) 1998-2000 The OpenSSL Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact - licensing@OpenSSL.org. + openssl-core@openssl.org. 5. Products derived from this software may not be called "OpenSSL" nor may "OpenSSL" appear in their names without prior written @@ -3037,7 +3290,7 @@ are met: 6. Redistributions of any form whatsoever must retain the following acknowledgment: "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + for use in the OpenSSL Toolkit (http://www.openssl.org/)" THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE @@ -3054,7 +3307,7 @@ OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- boringssl -Copyright (c) 2001 The OpenSSL Project. All rights reserved. +Copyright (c) 1998-2001 The OpenSSL Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions @@ -3071,12 +3324,12 @@ are met: 3. All advertising materials mentioning features or use of this software must display the following acknowledgment: "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact - licensing@OpenSSL.org. + openssl-core@openssl.org. 5. Products derived from this software may not be called "OpenSSL" nor may "OpenSSL" appear in their names without prior written @@ -3085,7 +3338,7 @@ are met: 6. Redistributions of any form whatsoever must retain the following acknowledgment: "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + for use in the OpenSSL Toolkit (http://www.openssl.org/)" THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE @@ -3102,7 +3355,7 @@ OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- boringssl -Copyright (c) 2001-2011 The OpenSSL Project. All rights reserved. +Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions @@ -3150,7 +3403,7 @@ OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- boringssl -Copyright (c) 2002-2006 The OpenSSL Project. All rights reserved. +Copyright (c) 1998-2003 The OpenSSL Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions @@ -3198,7 +3451,7 @@ OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- boringssl -Copyright (c) 2003 The OpenSSL Project. All rights reserved. +Copyright (c) 1998-2004 The OpenSSL Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions @@ -3215,12 +3468,12 @@ are met: 3. All advertising materials mentioning features or use of this software must display the following acknowledgment: "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact - licensing@OpenSSL.org. + openssl-core@openssl.org. 5. Products derived from this software may not be called "OpenSSL" nor may "OpenSSL" appear in their names without prior written @@ -3229,7 +3482,7 @@ are met: 6. Redistributions of any form whatsoever must retain the following acknowledgment: "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + for use in the OpenSSL Toolkit (http://www.openssl.org/)" THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE @@ -3246,9 +3499,7 @@ OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- boringssl -Copyright (c) 2004 Kungliga Tekniska Högskolan -(Royal Institute of Technology, Stockholm, Sweden). -All rights reserved. +Copyright (c) 1998-2005 The OpenSSL Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions @@ -3258,50 +3509,19 @@ are met: notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. -3. Neither the name of the Institute nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -SUCH DAMAGE. --------------------------------------------------------------------------------- -boringssl - -Copyright (c) 2004 The OpenSSL Project. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - -3. All advertising materials mentioning features or use of this - software must display the following acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact - licensing@OpenSSL.org. + openssl-core@OpenSSL.org. 5. Products derived from this software may not be called "OpenSSL" nor may "OpenSSL" appear in their names without prior written @@ -3327,7 +3547,7 @@ OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- boringssl -Copyright (c) 2005 The OpenSSL Project. All rights reserved. +Copyright (c) 1998-2005 The OpenSSL Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions @@ -3344,12 +3564,12 @@ are met: 3. All advertising materials mentioning features or use of this software must display the following acknowledgment: "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact - licensing@OpenSSL.org. + openssl-core@openssl.org. 5. Products derived from this software may not be called "OpenSSL" nor may "OpenSSL" appear in their names without prior written @@ -3358,7 +3578,7 @@ are met: 6. Redistributions of any form whatsoever must retain the following acknowledgment: "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + for use in the OpenSSL Toolkit (http://www.openssl.org/)" THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE @@ -3375,7 +3595,7 @@ OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- boringssl -Copyright (c) 2006 The OpenSSL Project. All rights reserved. +Copyright (c) 1998-2006 The OpenSSL Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions @@ -3392,12 +3612,12 @@ are met: 3. All advertising materials mentioning features or use of this software must display the following acknowledgment: "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact - licensing@OpenSSL.org. + openssl-core@openssl.org. 5. Products derived from this software may not be called "OpenSSL" nor may "OpenSSL" appear in their names without prior written @@ -3406,7 +3626,7 @@ are met: 6. Redistributions of any form whatsoever must retain the following acknowledgment: "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + for use in the OpenSSL Toolkit (http://www.openssl.org/)" THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE @@ -3423,7 +3643,7 @@ OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- boringssl -Copyright (c) 2006,2007 The OpenSSL Project. All rights reserved. +Copyright (c) 1998-2007 The OpenSSL Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions @@ -3440,12 +3660,12 @@ are met: 3. All advertising materials mentioning features or use of this software must display the following acknowledgment: "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact - licensing@OpenSSL.org. + openssl-core@openssl.org. 5. Products derived from this software may not be called "OpenSSL" nor may "OpenSSL" appear in their names without prior written @@ -3454,7 +3674,7 @@ are met: 6. Redistributions of any form whatsoever must retain the following acknowledgment: "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + for use in the OpenSSL Toolkit (http://www.openssl.org/)" THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE @@ -3471,7 +3691,7 @@ OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- boringssl -Copyright (c) 2008 The OpenSSL Project. All rights reserved. +Copyright (c) 1998-2011 The OpenSSL Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions @@ -3517,9 +3737,76 @@ STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- +icu + +Copyright (c) 1999 Computer Systems and Communication Lab, + Institute of Information Science, Academia + * Sinica. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. +. Neither the name of the Computer Systems and Communication Lab + nor the names of its contributors may be used to endorse or + promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +icu + +Copyright (c) 1999 TaBE Project. +Copyright (c) 1999 Pai-Hsiang Hsiao. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. +. Neither the name of the TaBE Project nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- boringssl -Copyright (c) 2010 The OpenSSL Project. All rights reserved. +Copyright (c) 1999 The OpenSSL Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions @@ -3565,9 +3852,57 @@ STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- +icu + +Copyright (c) 1999 Unicode, Inc. All Rights reserved. + Copyright (C) 2002-2005, International Business Machines + Corporation and others. All Rights Reserved. + +This file is provided as-is by Unicode, Inc. (The Unicode Consortium). +No claims are made as to fitness for any particular purpose. No +warranties of any kind are expressed or implied. The recipient +agrees to determine applicability of information provided. If this +file has been provided on optical media by Unicode, Inc., the sole +remedy for any claim will be exchange of defective media within 90 +days of receipt. + +Unicode, Inc. hereby grants the right to freely use the information +supplied in this file in the creation of products supporting the +Unicode Standard, and to make copies of this file in any form for +internal or external distribution as long as this notice remains +attached. +-------------------------------------------------------------------------------- +expat + +Copyright (c) 1999-2000 Thai Open Source Software Center Ltd +Copyright (c) 2000 Clark Cooper +Copyright (c) 2002 Fred L. Drake, Jr. +Copyright (c) 2007 Karl Waclawek +Copyright (c) 2017 Sebastian Pipping +Licensed under the MIT license: + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the +following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. +-------------------------------------------------------------------------------- boringssl -Copyright (c) 2011 The OpenSSL Project. All rights reserved. +Copyright (c) 1999-2002 The OpenSSL Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions @@ -3615,7 +3950,7 @@ OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- boringssl -Copyright (c) 2011 The OpenSSL Project. All rights reserved. +Copyright (c) 1999-2003 The OpenSSL Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions @@ -3632,12 +3967,12 @@ are met: 3. All advertising materials mentioning features or use of this software must display the following acknowledgment: "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact - openssl-core@openssl.org. + licensing@OpenSSL.org. 5. Products derived from this software may not be called "OpenSSL" nor may "OpenSSL" appear in their names without prior written @@ -3646,7 +3981,7 @@ are met: 6. Redistributions of any form whatsoever must retain the following acknowledgment: "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit (http://www.openssl.org/)" + for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE @@ -3663,7 +3998,7 @@ OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- boringssl -Copyright (c) 2012 The OpenSSL Project. All rights reserved. +Copyright (c) 1999-2004 The OpenSSL Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions @@ -3680,12 +4015,12 @@ are met: 3. All advertising materials mentioning features or use of this software must display the following acknowledgment: "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact - openssl-core@openssl.org. + licensing@OpenSSL.org. 5. Products derived from this software may not be called "OpenSSL" nor may "OpenSSL" appear in their names without prior written @@ -3694,7 +4029,7 @@ are met: 6. Redistributions of any form whatsoever must retain the following acknowledgment: "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit (http://www.openssl.org/)" + for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE @@ -3711,7 +4046,7 @@ OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- boringssl -Copyright (c) 2013 The OpenSSL Project. All rights reserved. +Copyright (c) 1999-2005 The OpenSSL Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions @@ -3733,7 +4068,7 @@ are met: 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact - licensing@OpenSSL.org. + openssl-core@OpenSSL.org. 5. Products derived from this software may not be called "OpenSSL" nor may "OpenSSL" appear in their names without prior written @@ -3759,62 +4094,7 @@ OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- boringssl -Copyright (c) 2014 The OpenSSL Project. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: -1. Redistributions of source code must retain the copyright - notice, this list of conditions and the following disclaimer. -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. -3. All advertising materials mentioning features or use of this software - must display the following acknowledgement: - "This product includes cryptographic software written by - Eric Young (eay@cryptsoft.com)" - The word 'cryptographic' can be left out if the rouines from the library - being used are not cryptographic related :-). -4. If you include any Windows specific code (or a derivative thereof) from - the apps directory (application code) you must include an acknowledgement: - "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - -THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -SUCH DAMAGE. - -The licence and distribution terms for any publically available version or -derivative of this code cannot be changed. i.e. this code cannot simply be -copied and put under another distribution licence -[including the GNU Public Licence.] --------------------------------------------------------------------------------- -boringssl - -Copyright (c) 2014, Google Inc. - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY -SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION -OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN -CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. --------------------------------------------------------------------------------- -boringssl - -Copyright (c) 2015 The OpenSSL Project. All rights reserved. +Copyright (c) 1999-2007 The OpenSSL Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions @@ -3862,186 +4142,136 @@ OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- boringssl -Copyright (c) 2015, Google Inc. - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. +Copyright (c) 1999-2008 The OpenSSL Project. All rights reserved. -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY -SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION -OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN -CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. --------------------------------------------------------------------------------- -boringssl - -Copyright (c) 2016, Google Inc. - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY -SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION -OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN -CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. --------------------------------------------------------------------------------- -boringssl - -Copyright (c) 2017, Google Inc. - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY -SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION -OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN -CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. --------------------------------------------------------------------------------- -boringssl - -Copyright (c) 2017, the HRSS authors. - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY -SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION -OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN -CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. --------------------------------------------------------------------------------- -boringssl +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -Copyright (c) 2018, Google Inc. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY -SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION -OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN -CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. --------------------------------------------------------------------------------- -boringssl +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + licensing@OpenSSL.org. -Copyright (c) 2018, Google Inc. -Copyright (c) 2020, Arm Ltd. +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY -SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION -OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN -CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -boringssl - -Copyright (c) 2019, Google Inc. - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. +expat -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY -SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION -OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN -CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. --------------------------------------------------------------------------------- -boringssl +Copyright (c) 2000 Clark Cooper +Copyright (c) 2001-2003 Fred L. Drake, Jr. +Copyright (c) 2005-2007 Steven Solie +Copyright (c) 2005-2006 Karl Waclawek +Copyright (c) 2016-2019 Sebastian Pipping +Copyright (c) 2017 Rhodri James +Licensed under the MIT license: -Copyright (c) 2020 Google Inc. +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the +following conditions: -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY -SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION -OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN -CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- -boringssl - -Copyright (c) 2020, Google Inc. - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. +expat -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY -SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION -OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN -CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. --------------------------------------------------------------------------------- -boringssl +Copyright (c) 2000 Clark Cooper +Copyright (c) 2002 Greg Stein +Copyright (c) 2005 Karl Waclawek +Copyright (c) 2017-2021 Sebastian Pipping +Licensed under the MIT license: -Copyright (c) 2021, Google Inc. +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the +following conditions: -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY -SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION -OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN -CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- -boringssl +expat -Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. +Copyright (c) 2000 Clark Cooper +Copyright (c) 2017 Sebastian Pipping +Licensed under the MIT license: -Licensed under the OpenSSL license (the "License"). You may not use -this file except in compliance with the License. You can obtain a copy -in the file LICENSE in the source distribution or at -https://www.openssl.org/source/license.html --------------------------------------------------------------------------------- -boringssl +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the +following conditions: -Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved. +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. -Licensed under the OpenSSL license (the "License"). You may not use -this file except in compliance with the License. You can obtain a copy -in the file LICENSE in the source distribution or at -https://www.openssl.org/source/license.html +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- boringssl -Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. +Copyright (c) 2000 The OpenSSL Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions @@ -4089,7 +4319,7 @@ OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- boringssl -Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. +Copyright (c) 2000-2002 The OpenSSL Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions @@ -4106,12 +4336,12 @@ are met: 3. All advertising materials mentioning features or use of this software must display the following acknowledgment: "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact - openssl-core@openssl.org. + licensing@OpenSSL.org. 5. Products derived from this software may not be called "OpenSSL" nor may "OpenSSL" appear in their names without prior written @@ -4120,7 +4350,7 @@ are met: 6. Redistributions of any form whatsoever must retain the following acknowledgment: "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit (http://www.openssl.org/)" + for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE @@ -4137,519 +4367,433 @@ OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- boringssl -Copyright 2005 Nokia. All rights reserved. +Copyright (c) 2000-2003 The OpenSSL Project. All rights reserved. -The portions of the attached software ("Contribution") is developed by -Nokia Corporation and is licensed pursuant to the OpenSSL open source -license. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: -The Contribution, originally written by Mika Kousa and Pasi Eronen of -Nokia Corporation, consists of the "PSK" (Pre-Shared Key) ciphersuites -support (see RFC 4279) to OpenSSL. +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -No patent licenses or other rights except those expressly stated in -the OpenSSL open source license shall be deemed granted or received -expressly, by implication, estoppel, or otherwise. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. -No assurances are provided by Nokia that the Contribution does not -infringe the patent or other intellectual property rights of any third -party or that the license provides you with all the necessary rights -to make use of the Contribution. +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" -THE SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. IN -ADDITION TO THE DISCLAIMERS INCLUDED IN THE LICENSE, NOKIA -SPECIFICALLY DISCLAIMS ANY LIABILITY FOR CLAIMS BROUGHT BY YOU OR ANY -OTHER ENTITY BASED ON INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS OR -OTHERWISE. +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + licensing@OpenSSL.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- boringssl -Copyright 2005, Google Inc. -All rights reserved. +Copyright (c) 2000-2005 The OpenSSL Project. All rights reserved. Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +modification, are permitted provided that the following conditions +are met: - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -boringssl +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. -Copyright 2006, Google Inc. -All rights reserved. +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + licensing@OpenSSL.org. - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -boringssl +expat -Copyright 2006-2017 The OpenSSL Project Authors. All Rights Reserved. +Copyright (c) 2001 Tim Peters +Copyright (c) 2001-2005 Fred L. Drake, Jr. +Copyright (c) 2006-2017 Karl Waclawek +Copyright (c) 2007-2021 Sebastian Pipping +Licensed under the MIT license: -Licensed under the OpenSSL license (the "License"). You may not use -this file except in compliance with the License. You can obtain a copy -in the file LICENSE in the source distribution or at -https://www.openssl.org/source/license.html +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the +following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- boringssl -Copyright 2007, Google Inc. -All rights reserved. +Copyright (c) 2001 The OpenSSL Project. All rights reserved. Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +modification, are permitted provided that the following conditions +are met: - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -boringssl +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. -Copyright 2007-2016 The OpenSSL Project Authors. All Rights Reserved. +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" -Licensed under the OpenSSL license (the "License"). You may not use -this file except in compliance with the License. You can obtain a copy -in the file LICENSE in the source distribution or at -https://www.openssl.org/source/license.html +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + licensing@OpenSSL.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- boringssl -Copyright 2008 Google Inc. -All Rights Reserved. +Copyright (c) 2001-2011 The OpenSSL Project. All rights reserved. Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +modification, are permitted provided that the following conditions +are met: - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -boringssl +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. -Copyright 2008, Google Inc. -All rights reserved. +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.openssl.org/)" -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + openssl-core@openssl.org. - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -boringssl +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.openssl.org/)" -Copyright 2009 Google Inc. All Rights Reserved. +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +icu -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +Copyright (c) 2002 Unicode, Inc. All Rights reserved. + Copyright (C) 2002-2005, International Business Machines + Corporation and others. All Rights Reserved. - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. +This file is provided as-is by Unicode, Inc. (The Unicode Consortium). +No claims are made as to fitness for any particular purpose. No +warranties of any kind are expressed or implied. The recipient +agrees to determine applicability of information provided. If this +file has been provided on optical media by Unicode, Inc., the sole +remedy for any claim will be exchange of defective media within 90 +days of receipt. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +Unicode, Inc. hereby grants the right to freely use the information +supplied in this file in the creation of products supporting the +Unicode Standard, and to make copies of this file in any form for +internal or external distribution as long as this notice remains +attached. -------------------------------------------------------------------------------- -boringssl +expat -Copyright 2012-2016 The OpenSSL Project Authors. All Rights Reserved. +Copyright (c) 2002-2003 Fred L. Drake, Jr. +Copyright (c) 2002-2006 Karl Waclawek +Copyright (c) 2003 Greg Stein +Copyright (c) 2016-2021 Sebastian Pipping +Copyright (c) 2018 Yury Gribov +Copyright (c) 2019 David Loffredo +Licensed under the MIT license: -Licensed under the OpenSSL license (the "License"). You may not use -this file except in compliance with the License. You can obtain a copy -in the file LICENSE in the source distribution or at -https://www.openssl.org/source/license.html --------------------------------------------------------------------------------- -boringssl +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the +following conditions: -Copyright 2013-2016 The OpenSSL Project Authors. All Rights Reserved. -Copyright (c) 2012, Intel Corporation. All Rights Reserved. +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. -Licensed under the OpenSSL license (the "License"). You may not use -this file except in compliance with the License. You can obtain a copy -in the file LICENSE in the source distribution or at -https://www.openssl.org/source/license.html +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- -boringssl +glfw -Copyright 2014-2016 The OpenSSL Project Authors. All Rights Reserved. +Copyright (c) 2002-2006 Marcus Geelnard +Copyright (c) 2006-2016 Camilla Löwy -Licensed under the OpenSSL license (the "License"). You may not use -this file except in compliance with the License. You can obtain a copy -in the file LICENSE in the source distribution or at -https://www.openssl.org/source/license.html --------------------------------------------------------------------------------- -boringssl +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. -Copyright 2014-2016 The OpenSSL Project Authors. All Rights Reserved. -Copyright (c) 2014, Intel Corporation. All Rights Reserved. +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: -Licensed under the OpenSSL license (the "License"). You may not use -this file except in compliance with the License. You can obtain a copy -in the file LICENSE in the source distribution or at -https://www.openssl.org/source/license.html --------------------------------------------------------------------------------- -boringssl +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would + be appreciated but is not required. -Copyright 2014-2016 The OpenSSL Project Authors. All Rights Reserved. -Copyright (c) 2015, Intel Inc. +2. Altered source versions must be plainly marked as such, and must not + be misrepresented as being the original software. -Licensed under the OpenSSL license (the "License"). You may not use -this file except in compliance with the License. You can obtain a copy -in the file LICENSE in the source distribution or at -https://www.openssl.org/source/license.html +3. This notice may not be removed or altered from any source + distribution. -------------------------------------------------------------------------------- -boringssl +glfw -Copyright 2015, Google Inc. -All rights reserved. +Copyright (c) 2002-2006 Marcus Geelnard +Copyright (c) 2006-2016 Camilla Löwy +Copyright (c) 2012 Torsten Walluhn -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -boringssl +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would + be appreciated but is not required. -Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved. +2. Altered source versions must be plainly marked as such, and must not + be misrepresented as being the original software. -Licensed under the OpenSSL license (the "License"). You may not use -this file except in compliance with the License. You can obtain a copy -in the file LICENSE in the source distribution or at -https://www.openssl.org/source/license.html +3. This notice may not be removed or altered from any source + distribution. -------------------------------------------------------------------------------- boringssl -Copyright 2016 Brian Smith. +Copyright (c) 2002-2006 The OpenSSL Project. All rights reserved. -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY -SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION -OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN -CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. --------------------------------------------------------------------------------- -boringssl - -Copyright 2017 The OpenSSL Project Authors. All Rights Reserved. - -Licensed under the OpenSSL license (the "License"). You may not use -this file except in compliance with the License. You can obtain a copy -in the file LICENSE in the source distribution or at -https://www.openssl.org/source/license.html --------------------------------------------------------------------------------- -boringssl - -OpenSSL License - - ==================================================================== - Copyright (c) 1998-2011 The OpenSSL Project. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - - 3. All advertising materials mentioning features or use of this - software must display the following acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit. (http://www.openssl.org/)" - - 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - endorse or promote products derived from this software without - prior written permission. For written permission, please contact - openssl-core@openssl.org. - - 5. Products derived from this software may not be called "OpenSSL" - nor may "OpenSSL" appear in their names without prior written - permission of the OpenSSL Project. - - 6. Redistributions of any form whatsoever must retain the following - acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit (http://www.openssl.org/)" - - THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - OF THE POSSIBILITY OF SUCH DAMAGE. - ==================================================================== - - This product includes cryptographic software written by Eric Young - (eay@cryptsoft.com). This product includes software written by Tim - Hudson (tjh@cryptsoft.com). - -Original SSLeay License - -* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) -* All rights reserved. - -* This package is an SSL implementation written -* by Eric Young (eay@cryptsoft.com). -* The implementation was written so as to conform with Netscapes SSL. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: -* This library is free for commercial and non-commercial use as long as -* the following conditions are aheared to. The following conditions -* apply to all code found in this distribution, be it the RC4, RSA, -* lhash, DES, etc., code; not just the SSL code. The SSL documentation -* included with this distribution is covered by the same copyright terms -* except that the holder is Tim Hudson (tjh@cryptsoft.com). +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -* Copyright remains Eric Young's, and as such any Copyright notices in -* the code are not to be removed. -* If this package is used in a product, Eric Young should be given attribution -* as the author of the parts of the library used. -* This can be in the form of a textual message at program startup or -* in documentation (online or textual) provided with the package. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* 1. Redistributions of source code must retain the copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in the -* documentation and/or other materials provided with the distribution. -* 3. All advertising materials mentioning features or use of this software -* must display the following acknowledgement: -* "This product includes cryptographic software written by -* Eric Young (eay@cryptsoft.com)" -* The word 'cryptographic' can be left out if the rouines from the library -* being used are not cryptographic related :-). -* 4. If you include any Windows specific code (or a derivative thereof) from -* the apps directory (application code) you must include an acknowledgement: -* "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.openssl.org/)" -* THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND -* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -* SUCH DAMAGE. +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + openssl-core@openssl.org. -* The licence and distribution terms for any publically available version or -* derivative of this code cannot be changed. i.e. this code cannot simply be -* copied and put under another distribution licence -* [including the GNU Public Licence.] +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. -ISC license used for completely new code in BoringSSL: +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.openssl.org/)" -/* Copyright (c) 2015, Google Inc. +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +boringssl - * Permission to use, copy, modify, and/or distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. +Copyright (c) 2003 The OpenSSL Project. All rights reserved. - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION - * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: -The code in third_party/fiat carries the MIT license: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -Copyright (c) 2015-2016 the fiat-crypto authors (see -https://github.com/mit-plv/fiat-crypto/blob/master/AUTHORS). +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + licensing@OpenSSL.org. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. -Licenses for support code +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" -Parts of the TLS test suite are under the Go license. This code is not included -in BoringSSL (i.e. libcrypto and libssl) when compiled, however, so -distributing code linked against BoringSSL does not trigger this license: +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +tcmalloc -Copyright (c) 2009 The Go Authors. All rights reserved. +Copyright (c) 2003, Google Inc. +All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright + * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above + * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - * Neither the name of Google Inc. nor the names of its + * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. @@ -4665,66 +4809,11 @@ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -boringssl +dart -The MIT License (MIT) - -Copyright (c) 2015-2016 the fiat-crypto authors (see -https://github.com/mit-plv/fiat-crypto/blob/master/AUTHORS). - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. --------------------------------------------------------------------------------- -colorama - -Copyright (c) 2010 Jonathan Hartley -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -* Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -* Neither the name of the copyright holders, nor those of its contributors - may be used to endorse or promote products derived from this software without - specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -dart - -Copyright (c) 2003-2005 Tom Wu -Copyright (c) 2012 Adam Singer (adam@solvr.io) -All Rights Reserved. +Copyright (c) 2003-2005 Tom Wu +Copyright (c) 2012 Adam Singer (adam@solvr.io) +All Rights Reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the @@ -4752,83 +4841,153 @@ In addition, the following condition applies: All redistributions must retain an intact copy of this copyright notice and disclaimer. -------------------------------------------------------------------------------- -dart +boringssl -Copyright (c) 2010, the Dart project authors. Please see the AUTHORS file -for details. All rights reserved. +Copyright (c) 2004 Kungliga Tekniska Högskolan +(Royal Institute of Technology, Stockholm, Sweden). +All rights reserved. Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - * Neither the name of Google LLC nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. +modification, are permitted provided that the following conditions +are met: -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +3. Neither the name of the Institute nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. -------------------------------------------------------------------------------- -dart +boringssl -Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file -for details. All rights reserved. +Copyright (c) 2004 The OpenSSL Project. All rights reserved. Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - * Neither the name of Google LLC nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. +modification, are permitted provided that the following conditions +are met: -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + licensing@OpenSSL.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -dart +boringssl -Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file -for details. All rights reserved. +Copyright (c) 2005 The OpenSSL Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + licensing@OpenSSL.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +tcmalloc + +Copyright (c) 2005, Google Inc. +All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - * Neither the name of Google LLC nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT @@ -4842,1592 +5001,1066 @@ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -dart +StackWalker -Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file -for details. All rights reserved. +Copyright (c) 2005-2009, Jochen Kalmbach +All rights reserved. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - * Neither the name of Google LLC nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +Redistributions of source code must retain the above copyright notice, +this list of conditions and the following disclaimer. +Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. +Neither the name of Jochen Kalmbach nor the names of its contributors may be +used to endorse or promote products derived from this software without +specific prior written permission. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -dart - -Copyright (c) 2014 The Polymer Authors. All rights reserved. +StackWalker -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +Copyright (c) 2005-2013, Jochen Kalmbach +All rights reserved. - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +Redistributions of source code must retain the above copyright notice, +this list of conditions and the following disclaimer. +Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. +Neither the name of Jochen Kalmbach nor the names of its contributors may be +used to endorse or promote products derived from this software without +specific prior written permission. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -dart +boringssl -Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file -for details. All rights reserved. +Copyright (c) 2006 The OpenSSL Project. All rights reserved. Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - * Neither the name of Google LLC nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. +modification, are permitted provided that the following conditions +are met: -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -dart +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file -for details. All rights reserved. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - * Neither the name of Google LLC nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -dart +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + licensing@OpenSSL.org. -Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file -for details. All rights reserved. +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - * Neither the name of Google LLC nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -dart +boringssl -Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file -for details. All rights reserved. +Copyright (c) 2006,2007 The OpenSSL Project. All rights reserved. Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - * Neither the name of Google LLC nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -dart +modification, are permitted provided that the following conditions +are met: -Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file -for details. All rights reserved. +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - * Neither the name of Google LLC nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -dart +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" -Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file -for details. All rights reserved. +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + licensing@OpenSSL.org. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - * Neither the name of Google LLC nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -dart +rapidjson -Copyright (c) 2019, the Dart project authors. Please see the AUTHORS file -for details. All rights reserved. +Copyright (c) 2006-2013 Alexander Chemeris Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - * Neither the name of Google LLC nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. +modification, are permitted provided that the following conditions are met: -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -dart + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. -Copyright (c) 2019, the Dart project authors. Please see the AUTHORS file -for details. All rights reserved. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - * Neither the name of Google LLC nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. + 3. Neither the name of the product nor the names of its contributors may + be used to endorse or promote products derived from this software + without specific prior written permission. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -dart +glfw -Copyright (c) 2020, the Dart project authors. Please see the AUTHORS file -for details. All rights reserved. +Copyright (c) 2006-2016 Camilla Löwy -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - * Neither the name of Google LLC nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -dart +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: -Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file -for details. All rights reserved. +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would + be appreciated but is not required. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - * Neither the name of Google LLC nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. +2. Altered source versions must be plainly marked as such, and must not + be misrepresented as being the original software. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +3. This notice may not be removed or altered from any source + distribution. -------------------------------------------------------------------------------- -dart +khronos -Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file -for details. All rights reserved. +Copyright (c) 2007-2010 The Khronos Group Inc. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - * Neither the name of Google LLC nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and/or associated documentation files (the +"Materials"), to deal in the Materials without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Materials, and to +permit persons to whom the Materials are furnished to do so, subject to +the following conditions: -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -dart +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Materials. -Copyright 2012, the Dart project authors. +THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - * Neither the name of Google LLC nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. +SGI FREE SOFTWARE LICENSE B (Version 2.0, Sept. 18, 2008) -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -double-conversion -icu +Copyright (C) 1992 Silicon Graphics, Inc. All Rights Reserved. -Copyright 2006-2008 the V8 project authors. All rights reserved. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - * Neither the name of Google Inc. nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. +The above copyright notice including the dates of first publication and either +this permission notice or a reference to http://oss.sgi.com/projects/FreeB +shall be included in all copies or substantial portions of the Software. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL SILICON +GRAPHICS, INC. BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of Silicon Graphics, Inc. shall +not be used in advertising or otherwise to promote the sale, use or other +dealings in this Software without prior written authorization from Silicon +Graphics, Inc. -------------------------------------------------------------------------------- -double-conversion -icu +khronos -Copyright 2010 the V8 project authors. All rights reserved. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +Copyright (c) 2007-2012 The Khronos Group Inc. - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - * Neither the name of Google Inc. nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and/or associated documentation files (the +"Materials"), to deal in the Materials without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Materials, and to +permit persons to whom the Materials are furnished to do so, subject to +the following conditions: -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Materials. + +THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. -------------------------------------------------------------------------------- -double-conversion -icu +angle -Copyright 2012 the V8 project authors. All rights reserved. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +Copyright (c) 2008 NVIDIA, Corporation - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - * Neither the name of Google Inc. nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +The above copyright notice and this permission notice (including the next +paragraph) shall be included in all copies or substantial portions of the +Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. -------------------------------------------------------------------------------- -etc1 +boringssl -Apache License +Copyright (c) 2008 The OpenSSL Project. All rights reserved. -Version 2.0, January 2004 +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: -http://www.apache.org/licenses +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. -1. Definitions. +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.openssl.org/)" -"License" shall mean the terms and conditions for use, reproduction, and -distribution as defined by Sections 1 through 9 of this document. +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + openssl-core@openssl.org. -"Licensor" shall mean the copyright owner or entity authorized by the -copyright owner that is granting the License. +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. -"Legal Entity" shall mean the union of the acting entity and all other -entities that control, are controlled by, or are under common control with -that entity. For the purposes of this definition, "control" means (i) the -power, direct or indirect, to cause the direction or management of such -entity, whether by contract or otherwise, or (ii) ownership of fifty -percent (50%) or more of the outstanding shares, or (iii) beneficial -ownership of such entity. +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.openssl.org/)" -"You" (or "Your") shall mean an individual or Legal Entity exercising -permissions granted by this License. +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +khronos -"Source" form shall mean the preferred form for making modifications, -including but not limited to software source code, documentation -source, and configuration files. +Copyright (c) 2008-2009 The Khronos Group Inc. -"Object" form shall mean any form resulting from mechanical transformation -or translation of a Source form, including but not limited to compiled -object code, generated documentation, and conversions to other media types. +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and/or associated documentation files (the +"Materials"), to deal in the Materials without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Materials, and to +permit persons to whom the Materials are furnished to do so, subject to +the following conditions: -"Work" shall mean the work of authorship, whether in Source or Object -form, made available under the License, as indicated by a copyright -notice that is included in or attached to the work (an example is -provided in the Appendix below). +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Materials. -"Derivative Works" shall mean any work, whether in Source or Object -form, that is based on (or derived from) the Work and for which the -editorial revisions, annotations, elaborations, or other modifications -represent, as a whole, an original work of authorship. For the purposes -of this License, Derivative Works shall not include works that remain -separable from, or merely link (or bind by name) to the interfaces of, -the Work and Derivative Works thereof. +THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. +-------------------------------------------------------------------------------- +angle -"Contribution" shall mean any work of authorship, including the original -version of the Work and any modifications or additions to that Work or -Derivative Works thereof, that is intentionally submitted to Licensor -for inclusion in the Work by the copyright owner or by an individual or -Legal Entity authorized to submit on behalf of the copyright owner. For -the purposes of this definition, "submitted" means any form of electronic, -verbal, or written communication sent to the Licensor or its -representatives, including but not limited to communication on electronic -mailing lists, source code control systems, and issue tracking systems that -are managed by, or on behalf of, the Licensor for the purpose of discussing -and improving the Work, but excluding communication that is conspicuously -marked or otherwise designated in writing by the copyright owner as "Not -a Contribution." - -"Contributor" shall mean Licensor and any individual or Legal Entity on -behalf of whom a Contribution has been received by Licensor and subsequently -incorporated within the Work. - -2. Grant of Copyright License. Subject to the terms and conditions of this -License, each Contributor hereby grants to You a perpetual, worldwide, -non-exclusive, no-charge, royalty-free, irrevocable copyright license to -reproduce, prepare Derivative Works of, publicly display, publicly perform, -sublicense, and distribute the Work and such Derivative Works in Source or -Object form. +Copyright (c) 2008-2018 The Khronos Group Inc. -3. Grant of Patent License. Subject to the terms and conditions of this -License, each Contributor hereby grants to You a perpetual, worldwide, -non-exclusive, no-charge, royalty-free, irrevocable (except as stated in -this section) patent license to make, have made, use, offer to sell, sell, -import, and otherwise transfer the Work, where such license applies only to -those patent claims licensable by such Contributor that are necessarily -infringed by their Contribution(s) alone or by combination of their -Contribution(s) with the Work to which such Contribution(s) was submitted. -If You institute patent litigation against any entity (including a cross-claim -or counterclaim in a lawsuit) alleging that the Work or a Contribution -incorporated within the Work constitutes direct or contributory patent -infringement, then any patent licenses granted to You under this License -for that Work shall terminate as of the date such litigation is filed. +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and/or associated documentation files (the +"Materials"), to deal in the Materials without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Materials, and to +permit persons to whom the Materials are furnished to do so, subject to +the following conditions: -4. Redistribution. You may reproduce and distribute copies of the Work or -Derivative Works thereof in any medium, with or without modifications, and -in Source or Object form, provided that You meet the following conditions: +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Materials. -You must give any other recipients of the Work or Derivative Works a copy of -this License; and -You must cause any modified files to carry prominent notices stating that -You changed the files; and -You must retain, in the Source form of any Derivative Works that You -distribute, all copyright, patent, trademark, and attribution notices -from the Source form of the Work, excluding those notices that do not -pertain to any part of the Derivative Works; and -If the Work includes a "NOTICE" text file as part of its distribution, -then any Derivative Works that You distribute must include a readable -copy of the attribution notices contained within such NOTICE file, excluding -those notices that do not pertain to any part of the Derivative Works, in -at least one of the following places: within a NOTICE text file distributed -as part of the Derivative Works; within the Source form or documentation, if -provided along with the Derivative Works; or, within a display generated by -the Derivative Works, if and wherever such third-party notices normally -appear. The contents of the NOTICE file are for informational purposes -only and do not modify the License. You may add Your own attribution -notices within Derivative Works that You distribute, alongside or as -an addendum to the NOTICE text from the Work, provided that such additional -attribution notices cannot be construed as modifying the License. +THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. +-------------------------------------------------------------------------------- +libtess2 -You may add Your own copyright statement to Your modifications and may provide -additional or different license terms and conditions for use, reproduction, or -distribution of Your modifications, or for any such Derivative Works as a -whole, provided Your use, reproduction, and distribution of the Work otherwise -complies with the conditions stated in this License. -5. Submission of Contributions. Unless You explicitly state otherwise, any -Contribution intentionally submitted for inclusion in the Work by You to the -Licensor shall be under the terms and conditions of this License, without any -additional terms or conditions. Notwithstanding the above, nothing herein -shall supersede or modify the terms of any separate license agreement you -may have executed with Licensor regarding such Contributions. +Copyright (c) 2009 Mikko Mononen memon@inside.org -6. Trademarks. This License does not grant permission to use the trade names, -trademarks, service marks, or product names of the Licensor, except as -required for reasonable and customary use in describing the origin of the -Work and reproducing the content of the NOTICE file. +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +-------------------------------------------------------------------------------- +accessibility -7. Disclaimer of Warranty. Unless required by applicable law or agreed to -in writing, Licensor provides the Work (and each Contributor provides its -Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF -ANY KIND, either express or implied, including, without limitation, any -warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or -FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining -the appropriateness of using or redistributing the Work and assume any risks -associated with Your exercise of permissions under this License. +Copyright (c) 2009 The Chromium Authors. All rights reserved. -8. Limitation of Liability. In no event and under no legal theory, whether in -tort (including negligence), contract, or otherwise, unless required by -applicable law (such as deliberate and grossly negligent acts) or agreed to -in writing, shall any Contributor be liable to You for damages, including -any direct, indirect, special, incidental, or consequential damages of any -character arising as a result of this License or out of the use or inability -to use the Work (including but not limited to damages for loss of goodwill, -work stoppage, computer failure or malfunction, or any and all other -commercial damages or losses), even if such Contributor has been advised -of the possibility of such damages. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -9. Accepting Warranty or Additional Liability. While redistributing the -Work or Derivative Works thereof, You may choose to offer, and charge a -fee for, acceptance of support, warranty, indemnity, or other liability -obligations and/or rights consistent with this License. However, in accepting -such obligations, You may act only on Your own behalf and on Your sole -responsibility, not on behalf of any other Contributor, and only if You -agree to indemnify, defend, and hold each Contributor harmless for any -liability incurred by, or claims asserted against, such Contributor by -reason of your accepting any such warranty or additional liability. + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. -END OF TERMS AND CONDITIONS +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -expat +libcxx +libcxxabi -Copyright (c) 1997-2000 Thai Open Source Software Center Ltd -Copyright (c) 2000 Clark Cooper -Copyright (c) 2000-2004 Fred L. Drake, Jr. -Copyright (c) 2001-2002 Greg Stein -Copyright (c) 2002-2006 Karl Waclawek -Copyright (c) 2016 Cristian Rodríguez -Copyright (c) 2016-2019 Sebastian Pipping -Copyright (c) 2017 Rhodri James -Copyright (c) 2018 Yury Gribov -Licensed under the MIT license: +Copyright (c) 2009-2014 by the contributors listed in CREDITS.TXT -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the -following conditions: +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -USE OR OTHER DEALINGS IN THE SOFTWARE. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. -------------------------------------------------------------------------------- -expat +glfw -Copyright (c) 1997-2000 Thai Open Source Software Center Ltd -Copyright (c) 2000 Clark Cooper -Copyright (c) 2000-2005 Fred L. Drake, Jr. -Copyright (c) 2001-2002 Greg Stein -Copyright (c) 2002-2016 Karl Waclawek -Copyright (c) 2016-2021 Sebastian Pipping -Copyright (c) 2016 Cristian Rodríguez -Copyright (c) 2016 Thomas Beutlich -Copyright (c) 2017 Rhodri James -Licensed under the MIT license: +Copyright (c) 2009-2016 Camilla Löwy -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the -following conditions: +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -USE OR OTHER DEALINGS IN THE SOFTWARE. +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would + be appreciated but is not required. + +2. Altered source versions must be plainly marked as such, and must not + be misrepresented as being the original software. + +3. This notice may not be removed or altered from any source + distribution. -------------------------------------------------------------------------------- -expat +glfw -Copyright (c) 1997-2000 Thai Open Source Software Center Ltd -Copyright (c) 2000 Clark Cooper -Copyright (c) 2000-2006 Fred L. Drake, Jr. -Copyright (c) 2001-2002 Greg Stein -Copyright (c) 2002-2016 Karl Waclawek -Copyright (c) 2005-2009 Steven Solie -Copyright (c) 2016 Eric Rahm -Copyright (c) 2016-2021 Sebastian Pipping -Copyright (c) 2016 Gaurav -Copyright (c) 2016 Thomas Beutlich -Copyright (c) 2016 Gustavo Grieco -Copyright (c) 2016 Pascal Cuoq -Copyright (c) 2016 Ed Schouten -Copyright (c) 2017-2018 Rhodri James -Copyright (c) 2017 Václav Slavík -Copyright (c) 2017 Viktor Szakats -Copyright (c) 2017 Chanho Park -Copyright (c) 2017 Rolf Eike Beer -Copyright (c) 2017 Hans Wennborg -Copyright (c) 2018 Anton Maklakov -Copyright (c) 2018 Benjamin Peterson -Copyright (c) 2018 Marco Maggi -Copyright (c) 2018 Mariusz Zaborski -Copyright (c) 2019 David Loffredo -Copyright (c) 2019-2020 Ben Wagner -Copyright (c) 2019 Vadim Zeitlin -Licensed under the MIT license: +Copyright (c) 2009-2016 Camilla Löwy +Copyright (c) 2012 Torsten Walluhn -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the -following conditions: +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -USE OR OTHER DEALINGS IN THE SOFTWARE. --------------------------------------------------------------------------------- -expat +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would + be appreciated but is not required. -Copyright (c) 1997-2000 Thai Open Source Software Center Ltd -Copyright (c) 2000 Clark Cooper -Copyright (c) 2001-2002 Fred L. Drake, Jr. -Copyright (c) 2006 Karl Waclawek -Copyright (c) 2016-2017 Sebastian Pipping -Copyright (c) 2017 Rhodri James -Licensed under the MIT license: +2. Altered source versions must be plainly marked as such, and must not + be misrepresented as being the original software. -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the -following conditions: +3. This notice may not be removed or altered from any source + distribution. +-------------------------------------------------------------------------------- +colorama -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. +Copyright (c) 2010 Jonathan Hartley +All rights reserved. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -USE OR OTHER DEALINGS IN THE SOFTWARE. --------------------------------------------------------------------------------- -expat +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: -Copyright (c) 1997-2000 Thai Open Source Software Center Ltd -Copyright (c) 2000 Clark Cooper -Copyright (c) 2001-2003 Fred L. Drake, Jr. -Copyright (c) 2002 Greg Stein -Copyright (c) 2002-2016 Karl Waclawek -Copyright (c) 2005-2009 Steven Solie -Copyright (c) 2016-2021 Sebastian Pipping -Copyright (c) 2016 Pascal Cuoq -Copyright (c) 2016 Don Lewis -Copyright (c) 2017 Rhodri James -Copyright (c) 2017 Alexander Bluhm -Copyright (c) 2017 Benbuck Nason -Copyright (c) 2017 José Gutiérrez de la Concha -Copyright (c) 2019 David Loffredo -Licensed under the MIT license: +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the -following conditions: +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. +* Neither the name of the copyright holders, nor those of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -USE OR OTHER DEALINGS IN THE SOFTWARE. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -expat +angle -Copyright (c) 1997-2000 Thai Open Source Software Center Ltd -Copyright (c) 2000 Clark Cooper -Copyright (c) 2001-2003 Fred L. Drake, Jr. -Copyright (c) 2004-2009 Karl Waclawek -Copyright (c) 2005-2007 Steven Solie -Copyright (c) 2016-2021 Sebastian Pipping -Copyright (c) 2017 Rhodri James -Copyright (c) 2019 David Loffredo -Copyright (c) 2020 Joe Orton -Copyright (c) 2020 Kleber Tarcísio -Copyright (c) 2021 Tim Bray -Licensed under the MIT license: +Copyright (c) 2010 NVIDIA, Corporation -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the -following conditions: +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. +The above copyright notice and this permission notice (including the next +paragraph) shall be included in all copies or substantial portions of the +Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -USE OR OTHER DEALINGS IN THE SOFTWARE. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. -------------------------------------------------------------------------------- -expat +accessibility -Copyright (c) 1997-2000 Thai Open Source Software Center Ltd -Copyright (c) 2000 Clark Cooper -Copyright (c) 2001-2004 Fred L. Drake, Jr. -Copyright (c) 2002-2009 Karl Waclawek -Copyright (c) 2016-2017 Sebastian Pipping -Copyright (c) 2017 Rhodri James -Copyright (c) 2017 Franek Korta -Licensed under the MIT license: +Copyright (c) 2010 The Chromium Authors. All rights reserved. -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the -following conditions: +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -USE OR OTHER DEALINGS IN THE SOFTWARE. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -expat +boringssl -Copyright (c) 1997-2000 Thai Open Source Software Center Ltd -Copyright (c) 2000 Clark Cooper -Copyright (c) 2002 Fred L. Drake, Jr. -Copyright (c) 2002-2005 Karl Waclawek -Copyright (c) 2016-2017 Sebastian Pipping -Copyright (c) 2017 Rhodri James -Licensed under the MIT license: +Copyright (c) 2010 The OpenSSL Project. All rights reserved. -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the -following conditions: +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -USE OR OTHER DEALINGS IN THE SOFTWARE. --------------------------------------------------------------------------------- -expat +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -Copyright (c) 1997-2000 Thai Open Source Software Center Ltd -Copyright (c) 2000 Clark Cooper -Copyright (c) 2002 Fred L. Drake, Jr. -Copyright (c) 2002-2016 Karl Waclawek -Copyright (c) 2016-2021 Sebastian Pipping -Copyright (c) 2017 Rhodri James -Copyright (c) 2018 Benjamin Peterson -Copyright (c) 2018 Anton Maklakov -Copyright (c) 2019 David Loffredo -Copyright (c) 2020 Boris Kolpackov -Licensed under the MIT license: +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the -following conditions: +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + licensing@OpenSSL.org. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -USE OR OTHER DEALINGS IN THE SOFTWARE. --------------------------------------------------------------------------------- -expat +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. -Copyright (c) 1997-2000 Thai Open Source Software Center Ltd -Copyright (c) 2000 Clark Cooper -Copyright (c) 2002 Fred L. Drake, Jr. -Copyright (c) 2005 Karl Waclawek -Copyright (c) 2016-2019 Sebastian Pipping -Licensed under the MIT license: +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the -following conditions: +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +libwebp -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. +Copyright (c) 2010, Google Inc. All rights reserved. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -USE OR OTHER DEALINGS IN THE SOFTWARE. --------------------------------------------------------------------------------- -expat +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -Copyright (c) 1997-2000 Thai Open Source Software Center Ltd -Copyright (c) 2000 Clark Cooper -Copyright (c) 2002 Fred L. Drake, Jr. -Copyright (c) 2005-2006 Karl Waclawek -Copyright (c) 2016-2019 Sebastian Pipping -Copyright (c) 2019 David Loffredo -Licensed under the MIT license: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the -following conditions: + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. + * Neither the name of Google nor the names of its contributors may + be used to endorse or promote products derived from this software + without specific prior written permission. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -USE OR OTHER DEALINGS IN THE SOFTWARE. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -expat - -Copyright (c) 1997-2000 Thai Open Source Software Center Ltd -Copyright (c) 2000 Clark Cooper -Copyright (c) 2002 Fred L. Drake, Jr. -Copyright (c) 2016-2017 Sebastian Pipping -Licensed under the MIT license: +dart -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the -following conditions: +Copyright (c) 2010, the Dart project authors. Please see the AUTHORS file +for details. All rights reserved. -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -USE OR OTHER DEALINGS IN THE SOFTWARE. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -expat +glfw -Copyright (c) 1997-2000 Thai Open Source Software Center Ltd -Copyright (c) 2000 Clark Cooper -Copyright (c) 2002 Fred L. Drake, Jr. -Copyright (c) 2017 Sebastian Pipping -Licensed under the MIT license: +Copyright (c) 2010-2016 Camilla Löwy -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the -following conditions: +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -USE OR OTHER DEALINGS IN THE SOFTWARE. --------------------------------------------------------------------------------- -expat +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would + be appreciated but is not required. -Copyright (c) 1997-2000 Thai Open Source Software Center Ltd -Copyright (c) 2000 Clark Cooper -Copyright (c) 2002 Greg Stein -Copyright (c) 2002 Fred L. Drake, Jr. -Copyright (c) 2002-2006 Karl Waclawek -Copyright (c) 2017 Sebastian Pipping -Licensed under the MIT license: +2. Altered source versions must be plainly marked as such, and must not + be misrepresented as being the original software. -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the -following conditions: +3. This notice may not be removed or altered from any source + distribution. +-------------------------------------------------------------------------------- +skia +vulkanmemoryallocator -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. +Copyright (c) 2011 Google Inc. All rights reserved. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -USE OR OTHER DEALINGS IN THE SOFTWARE. --------------------------------------------------------------------------------- -expat +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -Copyright (c) 1997-2000 Thai Open Source Software Center Ltd -Copyright (c) 2000 Clark Cooper -Copyright (c) 2002 Greg Stein -Copyright (c) 2002-2006 Karl Waclawek -Copyright (c) 2002-2003 Fred L. Drake, Jr. -Copyright (c) 2005-2009 Steven Solie -Copyright (c) 2016-2021 Sebastian Pipping -Copyright (c) 2017 Rhodri James -Copyright (c) 2019 David Loffredo -Licensed under the MIT license: + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the -following conditions: +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +skia -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. +Copyright (c) 2011 Google Inc. All rights reserved. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -USE OR OTHER DEALINGS IN THE SOFTWARE. --------------------------------------------------------------------------------- -expat +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -Copyright (c) 1997-2000 Thai Open Source Software Center Ltd -Copyright (c) 2000 Clark Cooper -Copyright (c) 2002 Karl Waclawek -Copyright (c) 2002 Fred L. Drake, Jr. -Copyright (c) 2017 Sebastian Pipping -Licensed under the MIT license: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the -following conditions: + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -USE OR OTHER DEALINGS IN THE SOFTWARE. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -expat +accessibility +base +zlib -Copyright (c) 1997-2000 Thai Open Source Software Center Ltd -Copyright (c) 2000 Clark Cooper -Copyright (c) 2002-2003 Fred L. Drake, Jr. -Copyright (c) 2004-2006 Karl Waclawek -Copyright (c) 2005-2007 Steven Solie -Copyright (c) 2016-2021 Sebastian Pipping -Copyright (c) 2017 Rhodri James -Copyright (c) 2019 David Loffredo -Licensed under the MIT license: +Copyright (c) 2011 The Chromium Authors. All rights reserved. -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the -following conditions: +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -USE OR OTHER DEALINGS IN THE SOFTWARE. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -expat +boringssl -Copyright (c) 1997-2000 Thai Open Source Software Center Ltd -Copyright (c) 2000 Clark Cooper -Copyright (c) 2017-2019 Sebastian Pipping -Licensed under the MIT license: +Copyright (c) 2011 The OpenSSL Project. All rights reserved. -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the -following conditions: +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -USE OR OTHER DEALINGS IN THE SOFTWARE. --------------------------------------------------------------------------------- -expat +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. -Copyright (c) 1997-2000 Thai Open Source Software Center Ltd -Copyright (c) 2001-2003 Fred L. Drake, Jr. -Copyright (c) 2004-2006 Karl Waclawek -Copyright (c) 2005-2007 Steven Solie -Copyright (c) 2016-2019 Sebastian Pipping -Copyright (c) 2017 Rhodri James -Copyright (c) 2019 Zhongyuan Zhou -Licensed under the MIT license: +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the -following conditions: +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + licensing@OpenSSL.org. -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -USE OR OTHER DEALINGS IN THE SOFTWARE. +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -expat +boringssl -Copyright (c) 1997-2000 Thai Open Source Software Center Ltd -Copyright (c) 2002 Fred L. Drake, Jr. -Copyright (c) 2016-2017 Sebastian Pipping -Licensed under the MIT license: +Copyright (c) 2011 The OpenSSL Project. All rights reserved. -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the -following conditions: +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -USE OR OTHER DEALINGS IN THE SOFTWARE. --------------------------------------------------------------------------------- -expat +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. -Copyright (c) 1997-2000 Thai Open Source Software Center Ltd -Copyright (c) 2002 Fred L. Drake, Jr. -Copyright (c) 2016-2018 Sebastian Pipping -Copyright (c) 2018 Marco Maggi -Licensed under the MIT license: +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.openssl.org/)" -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the -following conditions: +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + openssl-core@openssl.org. -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -USE OR OTHER DEALINGS IN THE SOFTWARE. --------------------------------------------------------------------------------- -expat +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.openssl.org/)" -Copyright (c) 1997-2000 Thai Open Source Software Center Ltd -Copyright (c) 2016-2021 Sebastian Pipping -Copyright (c) 2017 Rhodri James -Licensed under the MIT license: +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +dart -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the -following conditions: +Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file +for details. All rights reserved. -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -USE OR OTHER DEALINGS IN THE SOFTWARE. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -expat +accessibility +zlib -Copyright (c) 1998-2000 Thai Open Source Software Center Ltd and Clark Cooper -Copyright (c) 2001-2019 Expat maintainers +Copyright (c) 2012 The Chromium Authors. All rights reserved. -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -expat +boringssl -Copyright (c) 1999-2000 Thai Open Source Software Center Ltd -Copyright (c) 2000 Clark Cooper -Copyright (c) 2002 Fred L. Drake, Jr. -Copyright (c) 2007 Karl Waclawek -Copyright (c) 2017 Sebastian Pipping -Licensed under the MIT license: +Copyright (c) 2012 The OpenSSL Project. All rights reserved. -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the -following conditions: +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -USE OR OTHER DEALINGS IN THE SOFTWARE. --------------------------------------------------------------------------------- -expat +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. -Copyright (c) 2000 Clark Cooper -Copyright (c) 2001-2003 Fred L. Drake, Jr. -Copyright (c) 2005-2007 Steven Solie -Copyright (c) 2005-2006 Karl Waclawek -Copyright (c) 2016-2019 Sebastian Pipping -Copyright (c) 2017 Rhodri James -Licensed under the MIT license: +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.openssl.org/)" -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the -following conditions: +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + openssl-core@openssl.org. -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -USE OR OTHER DEALINGS IN THE SOFTWARE. +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.openssl.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -expat +dart -Copyright (c) 2000 Clark Cooper -Copyright (c) 2002 Greg Stein -Copyright (c) 2005 Karl Waclawek -Copyright (c) 2017-2021 Sebastian Pipping -Licensed under the MIT license: - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the -following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -USE OR OTHER DEALINGS IN THE SOFTWARE. --------------------------------------------------------------------------------- -expat - -Copyright (c) 2000 Clark Cooper -Copyright (c) 2017 Sebastian Pipping -Licensed under the MIT license: - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the -following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -USE OR OTHER DEALINGS IN THE SOFTWARE. --------------------------------------------------------------------------------- -expat - -Copyright (c) 2001 Tim Peters -Copyright (c) 2001-2005 Fred L. Drake, Jr. -Copyright (c) 2006-2017 Karl Waclawek -Copyright (c) 2007-2021 Sebastian Pipping -Licensed under the MIT license: - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the -following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -USE OR OTHER DEALINGS IN THE SOFTWARE. --------------------------------------------------------------------------------- -expat - -Copyright (c) 2002-2003 Fred L. Drake, Jr. -Copyright (c) 2002-2006 Karl Waclawek -Copyright (c) 2003 Greg Stein -Copyright (c) 2016-2021 Sebastian Pipping -Copyright (c) 2018 Yury Gribov -Copyright (c) 2019 David Loffredo -Licensed under the MIT license: - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the -following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -USE OR OTHER DEALINGS IN THE SOFTWARE. --------------------------------------------------------------------------------- -expat - -Copyright (c) 2017 José Gutiérrez de la Concha -Copyright (c) 2017-2021 Sebastian Pipping -Copyright (c) 2017 Franek Korta -Licensed under the MIT license: - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the -following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -USE OR OTHER DEALINGS IN THE SOFTWARE. --------------------------------------------------------------------------------- -expat - -Copyright (c) 2019 Expat development team -Licensed under the MIT license: - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the -following conditions: +Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file +for details. All rights reserved. -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -USE OR OTHER DEALINGS IN THE SOFTWARE. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -expat +accessibility +angle -Copyright 2021 Google Inc. +Copyright (c) 2013 The Chromium Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are @@ -6455,251 +6088,254 @@ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -ffx_spd +boringssl -Copyright (c) 2017-2019 Advanced Micro Devices, Inc. All rights reserved. -Copyright (c) <2014> +Copyright (c) 2013 The OpenSSL Project. All rights reserved. -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation -files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, -modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the -Software is furnished to do so, subject to the following conditions: +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the -Software. +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE -WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --------------------------------------------------------------------------------- -ffx_spd +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. -Copyright (c) 2017-2020 Advanced Micro Devices, Inc. All rights reserved. +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation -files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, -modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the -Software is furnished to do so, subject to the following conditions: +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + licensing@OpenSSL.org. -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the -Software. +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE -WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -flatbuffers +dart -Apache License -Version 2.0, January 2004 -http://www.apache.org/licenses +Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file +for details. All rights reserved. -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - -1. Definitions. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +angle +khronos - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. +Copyright (c) 2013-2014 The Khronos Group Inc. - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and/or associated documentation files (the +"Materials"), to deal in the Materials without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Materials, and to +permit persons to whom the Materials are furnished to do so, subject to +the following conditions: - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Materials. - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. +THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. +-------------------------------------------------------------------------------- +khronos - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. +Copyright (c) 2013-2016 The Khronos Group Inc. - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and/or associated documentation files (the +"Materials"), to deal in the Materials without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Materials, and to +permit persons to whom the Materials are furnished to do so, subject to +the following conditions: - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Materials. - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." +THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. +-------------------------------------------------------------------------------- +angle - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. +Copyright (c) 2013-2017 The Khronos Group Inc. -2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and/or associated documentation files (the +"Materials"), to deal in the Materials without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Materials, and to +permit persons to whom the Materials are furnished to do so, subject to +the following conditions: -3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Materials. -4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: +THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. +-------------------------------------------------------------------------------- +angle +khronos - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and +Copyright (c) 2013-2018 The Khronos Group Inc. - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and/or associated documentation files (the +"Materials"), to deal in the Materials without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Materials, and to +permit persons to whom the Materials are furnished to do so, subject to +the following conditions: - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Materials. - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. +THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. +-------------------------------------------------------------------------------- +skia - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. +Copyright (c) 2014 Google Inc. -5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. -8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. -9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - -END OF TERMS AND CONDITIONS +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +icu -APPENDIX: How to apply the Apache License to your work. +Copyright (c) 2014 International Business Machines Corporation +and others. All Rights Reserved. - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. +This list is part of a project hosted at: + github.com/kanyawtech/myanmar-karen-word-lists -Copyright 2014 Google Inc. +Copyright (c) 2013, LeRoy Benjamin Sharon +All rights reserved. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: Redistributions of source code must retain the above +copyright notice, this list of conditions and the following +disclaimer. Redistributions in binary form must reproduce the +above copyright notice, this list of conditions and the following +disclaimer in the documentation and/or other materials provided +with the distribution. - http://www.apache.org/licenses/LICENSE-2.0 + Neither the name Myanmar Karen Word Lists, nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND +CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS +BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED +TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR +TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF +THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. -------------------------------------------------------------------------------- -freetype2 +glfw -Copyright (C) 1995-2006, 2010, 2011, 2012, 2016 Mark Adler +Copyright (c) 2014 Jonas Ådahl This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages +warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, @@ -6708,173 +6344,275 @@ freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. --------------------------------------------------------------------------------- -freetype2 - -Copyright (C) 1995-2016 Mark Adler - -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. + in a product, an acknowledgment in the product documentation would + be appreciated but is not required. -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +2. Altered source versions must be plainly marked as such, and must not + be misrepresented as being the original software. -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. +3. This notice may not be removed or altered from any source + distribution. -------------------------------------------------------------------------------- -freetype2 +accessibility -Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler +Copyright (c) 2014 The Chromium Authors. All rights reserved. -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -freetype2 +boringssl -Copyright (C) 2000, 2001, 2002, 2003, 2006, 2010 by -Francesco Zappa Nardelli +Copyright (c) 2014 The OpenSSL Project. All rights reserved. -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +3. All advertising materials mentioning features or use of this software + must display the following acknowledgement: + "This product includes cryptographic software written by + Eric Young (eay@cryptsoft.com)" + The word 'cryptographic' can be left out if the rouines from the library + being used are not cryptographic related :-). +4. If you include any Windows specific code (or a derivative thereof) from + the apps directory (application code) you must include an acknowledgement: + "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. +THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. +The licence and distribution terms for any publically available version or +derivative of this code cannot be changed. i.e. this code cannot simply be +copied and put under another distribution licence +[including the GNU Public Licence.] -------------------------------------------------------------------------------- -freetype2 +dart -Copyright (C) 2000-2004, 2006-2011, 2013, 2014 by -Francesco Zappa Nardelli +Copyright (c) 2014 The Polymer Authors. All rights reserved. -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -freetype2 +boringssl -Copyright (C) 2001, 2002 by -Francesco Zappa Nardelli +Copyright (c) 2014, Google Inc. -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY +SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION +OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN +CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +-------------------------------------------------------------------------------- +dart -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. +Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file +for details. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -freetype2 +skia -Copyright (C) 2001, 2002, 2003, 2004 by -Francesco Zappa Nardelli +Copyright (c) 2014-2016 The Khronos Group Inc. Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: +of this software and/or associated documentation files (the "Materials"), +to deal in the Materials without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Materials, and to permit persons to whom the +Materials are furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. +all copies or substantial portions of the Materials. +-------------------------------------------------------------------------------- +boringssl -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. +Copyright (c) 2015 The OpenSSL Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + licensing@OpenSSL.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -freetype2 +boringssl -Copyright (C) 2001-2008, 2011, 2013, 2014 by -Francesco Zappa Nardelli +Copyright (c) 2015, Google Inc. -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY +SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION +OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN +CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +-------------------------------------------------------------------------------- +dart -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. +Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file +for details. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -freetype2 +glfw -Copyright (C) 2004, 2005, 2010, 2011, 2012, 2013, 2016 Mark Adler +Copyright (c) 2016 Google Inc. +Copyright (c) 2006-2016 Camilla Löwy This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages +warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, @@ -6883,225 +6621,187 @@ freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. --------------------------------------------------------------------------------- -freetype2 - -Copyright 1990, 1994, 1998 The Open Group - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. + in a product, an acknowledgment in the product documentation would + be appreciated but is not required. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +2. Altered source versions must be plainly marked as such, and must not + be misrepresented as being the original software. -Except as contained in this notice, the name of The Open Group shall not be -used in advertising or otherwise to promote the sale, use or other dealings -in this Software without prior written authorization from The Open Group. +3. This notice may not be removed or altered from any source + distribution. -------------------------------------------------------------------------------- -freetype2 - -Copyright 2000 Computing Research Labs, New Mexico State University -Copyright 2001-2004, 2011 Francesco Zappa Nardelli +boringssl -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the "Software"), -to deal in the Software without restriction, including without limitation -the rights to use, copy, modify, merge, publish, distribute, sublicense, -and/or sell copies of the Software, and to permit persons to whom the -Software is furnished to do so, subject to the following conditions: +Copyright (c) 2016, Google Inc. -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -THE COMPUTING RESEARCH LAB OR NEW MEXICO STATE UNIVERSITY BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT -OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR -THE USE OR OTHER DEALINGS IN THE SOFTWARE. +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY +SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION +OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN +CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -------------------------------------------------------------------------------- -freetype2 +dart -Copyright 2000 Computing Research Labs, New Mexico State University -Copyright 2001-2014 - Francesco Zappa Nardelli +Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file +for details. All rights reserved. -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the "Software"), -to deal in the Software without restriction, including without limitation -the rights to use, copy, modify, merge, publish, distribute, sublicense, -and/or sell copies of the Software, and to permit persons to whom the -Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -THE COMPUTING RESEARCH LAB OR NEW MEXICO STATE UNIVERSITY BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT -OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR -THE USE OR OTHER DEALINGS IN THE SOFTWARE. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -freetype2 +expat -Copyright 2000 Computing Research Labs, New Mexico State University -Copyright 2001-2015 - Francesco Zappa Nardelli +Copyright (c) 2017 José Gutiérrez de la Concha +Copyright (c) 2017-2021 Sebastian Pipping +Copyright (c) 2017 Franek Korta +Licensed under the MIT license: -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the "Software"), -to deal in the Software without restriction, including without limitation -the rights to use, copy, modify, merge, publish, distribute, sublicense, -and/or sell copies of the Software, and to permit persons to whom the -Software is furnished to do so, subject to the following conditions: +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the +following conditions: -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -THE COMPUTING RESEARCH LAB OR NEW MEXICO STATE UNIVERSITY BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT -OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR -THE USE OR OTHER DEALINGS IN THE SOFTWARE. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- -freetype2 - -Copyright 2000, 2001, 2004 by -Francesco Zappa Nardelli +boringssl -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: +Copyright (c) 2017, Google Inc. -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY +SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION +OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN +CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -------------------------------------------------------------------------------- -freetype2 - -Copyright 2000-2001, 2002 by -Francesco Zappa Nardelli +dart -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: +Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file +for details. All rights reserved. -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -freetype2 - -Copyright 2000-2001, 2003 by -Francesco Zappa Nardelli +boringssl -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: +Copyright (c) 2017, the HRSS authors. -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY +SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION +OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN +CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -------------------------------------------------------------------------------- -freetype2 +ffx_spd -Copyright 2000-2010, 2012-2014 by -Francesco Zappa Nardelli +Copyright (c) 2017-2019 Advanced Micro Devices, Inc. All rights reserved. +Copyright (c) <2014> -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation +files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, +modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the +Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE +WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- -freetype2 +ffx_spd -Copyright 2001, 2002, 2012 Francesco Zappa Nardelli +Copyright (c) 2017-2020 Advanced Micro Devices, Inc. All rights reserved. -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the "Software"), -to deal in the Software without restriction, including without limitation -the rights to use, copy, modify, merge, publish, distribute, sublicense, -and/or sell copies of the Software, and to permit persons to whom the +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation +files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, +modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the +Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -THE COMPUTING RESEARCH LAB OR NEW MEXICO STATE UNIVERSITY BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT -OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR -THE USE OR OTHER DEALINGS IN THE SOFTWARE. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE +WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- -freetype2 +vulkan_memory_allocator -Copyright 2003 by -Francesco Zappa Nardelli +Copyright (c) 2017-2022 Advanced Micro Devices, Inc. All rights reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -7121,305 +6821,312 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- -freetype2 - -The FreeType Project LICENSE +vulkan - 2006-Jan-27 +Copyright (c) 2018 Google Inc. All rights reserved. -Copyright 1996-2002, 2006 by -David Turner, Robert Wilhelm, and Werner Lemberg +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -Introduction -============ - - The FreeType Project is distributed in several archive packages; - some of them may contain, in addition to the FreeType font engine, - various tools and contributions which rely on, or relate to, the - FreeType Project. + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. - This license applies to all files found in such packages, and - which do not fall under their own explicit license. The license - affects thus the FreeType font engine, the test programs, - documentation and makefiles, at the very least. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +boringssl - This license was inspired by the BSD, Artistic, and IJG - (Independent JPEG Group) licenses, which all encourage inclusion - and use of free software in commercial and freeware products - alike. As a consequence, its main points are that: +Copyright (c) 2018, Google Inc. - o We don't promise that this software works. However, we will be - interested in any kind of bug reports. (`as is' distribution) +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. - o You can use this software for whatever you want, in parts or - full form, without having to pay us. (`royalty-free' usage) +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY +SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION +OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN +CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +-------------------------------------------------------------------------------- +boringssl - o You may not pretend that you wrote this software. If you use - it, or only parts of it, in a program, you must acknowledge - somewhere in your documentation that you have used the - FreeType code. (`credits') +Copyright (c) 2018, Google Inc. +Copyright (c) 2020, Arm Ltd. - We specifically permit and encourage the inclusion of this - software, with or without modifications, in commercial products. - We disclaim all warranties covering The FreeType Project and - assume no liability related to The FreeType Project. +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. - Finally, many people asked us for a preferred form for a - credit/disclaimer to use in compliance with this license. We thus - encourage you to use the following text: +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY +SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION +OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN +CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +-------------------------------------------------------------------------------- +dart - Portions of this software are copyright © The FreeType - Project (www.freetype.org). All rights reserved. +Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file +for details. All rights reserved. - Please replace with the value from the FreeType version you - actually use. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. -Legal Terms -=========== +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +dart -0. Definitions +Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file +for details. All rights reserved. - Throughout this license, the terms `package', `FreeType Project', - and `FreeType archive' refer to the set of files originally - distributed by the authors (David Turner, Robert Wilhelm, and - Werner Lemberg) as the `FreeType Project', be they named as alpha, - beta or final release. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. - `You' refers to the licensee, or person using the project, where - `using' is a generic term including compiling the project's source - code as well as linking it to form a `program' or `executable'. - This program is referred to as `a program using the FreeType - engine'. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +expat - This license applies to all files distributed in the original - FreeType Project, including all source code, binaries and - documentation, unless otherwise stated in the file in its - original, unmodified form as distributed in the original archive. - If you are unsure whether or not a particular file is covered by - this license, you must contact us to verify this. +Copyright (c) 2019 Expat development team +Licensed under the MIT license: - The FreeType Project is copyright (C) 1996-2000 by David Turner, - Robert Wilhelm, and Werner Lemberg. All rights reserved except as - specified below. +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the +following conditions: -1. No Warranty +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. - THE FREETYPE PROJECT IS PROVIDED `AS IS' WITHOUT WARRANTY OF ANY - KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - PURPOSE. IN NO EVENT WILL ANY OF THE AUTHORS OR COPYRIGHT HOLDERS - BE LIABLE FOR ANY DAMAGES CAUSED BY THE USE OR THE INABILITY TO - USE, OF THE FREETYPE PROJECT. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. +-------------------------------------------------------------------------------- +boringssl -2. Redistribution +Copyright (c) 2019, Google Inc. - This license grants a worldwide, royalty-free, perpetual and - irrevocable right and license to use, execute, perform, compile, - display, copy, create derivative works of, distribute and - sublicense the FreeType Project (in both source and object code - forms) and derivative works thereof for any purpose; and to - authorize others to exercise some or all of the rights granted - herein, subject to the following conditions: +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. - o Redistribution of source code must retain this license file - (`FTL.TXT') unaltered; any additions, deletions or changes to - the original files must be clearly indicated in accompanying - documentation. The copyright notices of the unaltered, - original files must be preserved in all copies of source - files. +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY +SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION +OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN +CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +-------------------------------------------------------------------------------- +dart - o Redistribution in binary form must provide a disclaimer that - states that the software is based in part of the work of the - FreeType Team, in the distribution documentation. We also - encourage you to put an URL to the FreeType web page in your - documentation, though this isn't mandatory. +Copyright (c) 2019, the Dart project authors. Please see the AUTHORS file +for details. All rights reserved. - These conditions apply to any software derived from or based on - the FreeType Project, not just the unmodified files. If you use - our work, you must acknowledge us. However, no fee need be paid - to us. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. -3. Advertising +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +dart - Neither the FreeType authors and contributors nor you shall use - the name of the other for commercial, advertising, or promotional - purposes without specific prior written permission. +Copyright (c) 2019, the Dart project authors. Please see the AUTHORS file +for details. All rights reserved. - We suggest, but do not require, that you use one or more of the - following phrases to refer to this software in your documentation - or advertising materials: `FreeType Project', `FreeType Engine', - `FreeType library', or `FreeType Distribution'. - - As you have not signed this license, you are not required to - accept it. However, as the FreeType Project is copyrighted - material, only this license, or another one contracted with the - authors, grants you the right to use, distribute, and modify it. - Therefore, by using, distributing, or modifying the FreeType - Project, you indicate that you understand and accept all the terms - of this license. - -4. Contacts - - There are two mailing lists related to FreeType: - - o freetype@nongnu.org - - Discusses general use and applications of FreeType, as well as - future and wanted additions to the library and distribution. - If you are looking for support, start in this list if you - haven't found anything to help you in the documentation. - - o freetype-devel@nongnu.org - - Discusses bugs, as well as engine internals, design issues, - specific licenses, porting, etc. - - Our home page can be found at - - https://www.freetype.org - ---- end of FTL.TXT --- --------------------------------------------------------------------------------- -freetype2 -zlib - -Copyright (C) 1995-2003, 2010 Mark Adler - -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. - -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: - -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. --------------------------------------------------------------------------------- -freetype2 -zlib - -Copyright (C) 1995-2005, 2010 Mark Adler - -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. - -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -freetype2 -zlib - -Copyright (C) 1995-2011, 2016 Mark Adler +boringssl -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +Copyright (c) 2020 Google Inc. -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY +SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION +OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN +CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -------------------------------------------------------------------------------- -freetype2 -zlib - -Copyright (C) 1995-2016 Jean-loup Gailly, Mark Adler - -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +angle -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +Copyright (c) 2020 The ANGLE Project Authors. All rights reserved. -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. --------------------------------------------------------------------------------- -freetype2 -zlib +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: -Copyright (C) 1995-2017 Jean-loup Gailly + Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. + Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: + Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. + Ltd., nor the names of their contributors may be used to endorse + or promote products derived from this software without specific + prior written permission. -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -freetype2 -zlib - -Copyright (C) 1995-2017 Mark Adler +boringssl -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +Copyright (c) 2020, Google Inc. -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY +SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION +OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN +CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -------------------------------------------------------------------------------- -fuchsia_sdk +dart -Copyright 2014 The Fuchsia Authors. All rights reserved. +Copyright (c) 2020, the Dart project authors. Please see the AUTHORS file +for details. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT @@ -7433,9 +7140,9 @@ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -fuchsia_sdk +harfbuzz -Copyright 2016 The Fuchsia Authors. All rights reserved. +Copyright (c) 2021 Google Inc. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are @@ -7447,6 +7154,9 @@ notice, this list of conditions and the following disclaimer. copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT @@ -7460,47 +7170,39 @@ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -fuchsia_sdk +boringssl -Copyright 2017 The Fuchsia Authors. All rights reserved. +Copyright (c) 2021, Google Inc. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY +SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION +OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN +CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -------------------------------------------------------------------------------- -fuchsia_sdk +dart -Copyright 2018 The Fuchsia Authors. All rights reserved. +Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file +for details. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT @@ -7514,9 +7216,9 @@ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -fuchsia_sdk +zlib -Copyright 2019 The Fuchsia Authors. +Copyright (c) 2022 The Chromium Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are @@ -7528,6 +7230,9 @@ notice, this list of conditions and the following disclaimer. copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT @@ -7541,20 +7246,23 @@ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -fuchsia_sdk +dart -Copyright 2020 The Fuchsia Authors. All rights reserved. +Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file +for details. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT @@ -7568,12 +7276,13 @@ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -fuchsia_sdk +icu -Copyright 2021 The Flutter Authors. All rights reserved. +Copyright (c) IBM Corporation, 2000-2010. All rights reserved. -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. @@ -7585,32 +7294,6 @@ are permitted provided that the following conditions are met: contributors may be used to endorse or promote products derived from this software without specific prior written permission. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -fuchsia_sdk - -Copyright 2021 The Fuchsia Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR @@ -7623,20 +7306,23 @@ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -fuchsia_sdk +icu -Copyright 2022 The Fuchsia Authors. All rights reserved. +Copyright (c) IBM Corporation, 2000-2011. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT @@ -7647,3053 +7333,3432 @@ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -fuchsia_sdk - -The majority of files in this project use the Apache 2.0 License. -There are a few exceptions and their license can be found in the source. -Any license deviations from Apache 2.0 are "more permissive" licenses. - -=========================================================================================== - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. --------------------------------------------------------------------------------- -fuchsia_sdk - -musl as a whole is licensed under the following standard MIT license: - -Copyright © 2005-2014 Rich Felker, et al. - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -Authors/contributors include: - -Alex Dowad -Alexander Monakov -Anthony G. Basile -Arvid Picciani -Bobby Bingham -Boris Brezillon -Brent Cook -Chris Spiegel -Clément Vasseur -Daniel Micay -Denys Vlasenko -Emil Renner Berthing -Felix Fietkau -Felix Janda -Gianluca Anzolin -Hauke Mehrtens -Hiltjo Posthuma -Isaac Dunham -Jaydeep Patil -Jens Gustedt -Jeremy Huntwork -Jo-Philipp Wich -Joakim Sindholt -John Spencer -Josiah Worcester -Justin Cormack -Khem Raj -Kylie McClain -Luca Barbato -Luka Perkov -M Farkas-Dyck (Strake) -Mahesh Bodapati -Michael Forney -Natanael Copa -Nicholas J. Kain -orc -Pascal Cuoq -Petr Hosek -Pierre Carrier -Rich Felker -Richard Pennington -Shiz -sin -Solar Designer -Stefan Kristiansson -Szabolcs Nagy -Timo Teräs -Trutz Behn -Valentin Ochs -William Haddon +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +icu -Portions of this software are derived from third-party works licensed -under terms compatible with the above MIT license: +Copyright (c) IBM Corporation, 2000-2012. All rights reserved. -Much of the math library code (third_party/math/* and -third_party/complex/*, and third_party/include/libm.h) is -Copyright © 1993,2004 Sun Microsystems or -Copyright © 2003-2011 David Schultz or -Copyright © 2003-2009 Steven G. Kargl or -Copyright © 2003-2009 Bruce D. Evans or -Copyright © 2008 Stephen L. Moshier -and labelled as such in comments in the individual source files. All -have been licensed under extremely permissive terms. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -The smoothsort implementation (third_party/smoothsort/qsort.c) is -Copyright © 2011 Valentin Ochs and is licensed under an MIT-style -license. + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. -The x86_64 files in third_party/arch were written by Nicholas J. Kain -and is licensed under the standard MIT terms. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +icu -All other files which have no copyright comments are original works -produced specifically for use as part of this library, written either -by Rich Felker, the main author of the library, or by one or more -contibutors listed above. Details on authorship of individual files -can be found in the git version control history of the project. The -omission of copyright and license comments in each file is in the -interest of source tree size. +Copyright (c) IBM Corporation, 2000-2014. All rights reserved. -In addition, permission is hereby granted for all public header files -(include/* and arch/*/bits/*) and crt files intended to be linked into -applications (crt/*, ldso/dlstart.c, and arch/*/crt_arch.h) to omit -the copyright notice and permission notice otherwise required by the -license, and to use these files without any requirement of -attribution. These files include substantial contributions from: +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -Bobby Bingham -John Spencer -Nicholas J. Kain -Rich Felker -Richard Pennington -Stefan Kristiansson -Szabolcs Nagy + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. -all of whom have explicitly granted such permission. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +icu -This file previously contained text expressing a belief that most of -the files covered by the above exception were sufficiently trivial not -to be subject to copyright, resulting in confusion over whether it -negated the permissions granted in the license. In the spirit of -permissive licensing, and of not having licensing issues being an -obstacle to adoption, that text has been removed. +Copyright (c) IBM Corporation, 2000-2016. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -glfw +freetype2 -Copyright (c) 2002-2006 Marcus Geelnard -Copyright (c) 2006-2016 Camilla Löwy +Copyright 1990, 1994, 1998 The Open Group -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that +copyright notice and this permission notice appear in supporting +documentation. -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would - be appreciated but is not required. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -2. Altered source versions must be plainly marked as such, and must not - be misrepresented as being the original software. +Except as contained in this notice, the name of The Open Group shall not be +used in advertising or otherwise to promote the sale, use or other dealings +in this Software without prior written authorization from The Open Group. +-------------------------------------------------------------------------------- +icu -3. This notice may not be removed or altered from any source - distribution. +Copyright 1991 by the Massachusetts Institute of Technology -------------------------------------------------------------------------------- -glfw +boringssl -Copyright (c) 2002-2006 Marcus Geelnard -Copyright (c) 2006-2016 Camilla Löwy -Copyright (c) 2012 Torsten Walluhn +Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +Licensed under the OpenSSL license (the "License"). You may not use +this file except in compliance with the License. You can obtain a copy +in the file LICENSE in the source distribution or at +https://www.openssl.org/source/license.html +-------------------------------------------------------------------------------- +icu -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +Copyright 1996 Chih-Hao Tsai @ Beckman Institute, + University of Illinois +c-tsai4@uiuc.edu http://casper.beckman.uiuc.edu/~c-tsai4 +-------------------------------------------------------------------------------- +freetype2 -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would - be appreciated but is not required. +Copyright 2000 Computing Research Labs, New Mexico State University +Copyright 2001-2004, 2011 Francesco Zappa Nardelli -2. Altered source versions must be plainly marked as such, and must not - be misrepresented as being the original software. +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: -3. This notice may not be removed or altered from any source - distribution. +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +THE COMPUTING RESEARCH LAB OR NEW MEXICO STATE UNIVERSITY BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT +OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR +THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- -glfw +freetype2 -Copyright (c) 2006-2016 Camilla Löwy +Copyright 2000 Computing Research Labs, New Mexico State University +Copyright 2001-2014 + Francesco Zappa Nardelli -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would - be appreciated but is not required. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +THE COMPUTING RESEARCH LAB OR NEW MEXICO STATE UNIVERSITY BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT +OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR +THE USE OR OTHER DEALINGS IN THE SOFTWARE. +-------------------------------------------------------------------------------- +freetype2 + +Copyright 2000 Computing Research Labs, New Mexico State University +Copyright 2001-2015 + Francesco Zappa Nardelli + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: -2. Altered source versions must be plainly marked as such, and must not - be misrepresented as being the original software. +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. -3. This notice may not be removed or altered from any source - distribution. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +THE COMPUTING RESEARCH LAB OR NEW MEXICO STATE UNIVERSITY BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT +OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR +THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- -glfw - -Copyright (c) 2009-2016 Camilla Löwy - -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +icu -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +Copyright 2000, 2001, 2002, 2003 Nara Institute of Science +and Technology. All Rights Reserved. -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would - be appreciated but is not required. +Use, reproduction, and distribution of this software is permitted. +Any copy of this software, whether in its original form or modified, +must include both the above copyright notice and the following +paragraphs. -2. Altered source versions must be plainly marked as such, and must not - be misrepresented as being the original software. +Nara Institute of Science and Technology (NAIST), +the copyright holders, disclaims all warranties with regard to this +software, including all implied warranties of merchantability and +fitness, in no event shall NAIST be liable for +any special, indirect or consequential damages or any damages +whatsoever resulting from loss of use, data or profits, whether in an +action of contract, negligence or other tortuous action, arising out +of or in connection with the use or performance of this software. -3. This notice may not be removed or altered from any source - distribution. --------------------------------------------------------------------------------- -glfw +A large portion of the dictionary entries +originate from ICOT Free Software. The following conditions for ICOT +Free Software applies to the current dictionary as well. -Copyright (c) 2009-2016 Camilla Löwy -Copyright (c) 2012 Torsten Walluhn +Each User may also freely distribute the Program, whether in its +original form or modified, to any third party or parties, PROVIDED +that the provisions of Section 3 ("NO WARRANTY") will ALWAYS appear +on, or be attached to, the Program, which is distributed substantially +in the same form as set out herein and that such intended +distribution, if actually made, will neither violate or otherwise +contravene any of the laws and regulations of the countries having +jurisdiction over the User or the intended distribution itself. -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +NO WARRANTY -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +The program was produced on an experimental basis in the course of the +research and development conducted during the project and is provided +to users as so produced on an experimental basis. Accordingly, the +program is provided without any warranty whatsoever, whether express, +implied, statutory or otherwise. The term "warranty" used herein +includes, but is not limited to, any warranty of the quality, +performance, merchantability and fitness for a particular purpose of +the program and the nonexistence of any infringement or violation of +any right of any third party. -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would - be appreciated but is not required. +Each user of the program will agree and understand, and be deemed to +have agreed and understood, that there is no warranty whatsoever for +the program and, accordingly, the entire risk arising from or +otherwise connected with the program is assumed by the user. -2. Altered source versions must be plainly marked as such, and must not - be misrepresented as being the original software. +Therefore, neither ICOT, the copyright holder, or any other +organization that participated in or was otherwise related to the +development of the program and their respective officials, directors, +officers and other employees shall be held liable for any and all +damages, including, without limitation, general, special, incidental +and consequential damages, arising out of or otherwise in connection +with the use or inability to use the program or any product, material +or result produced or otherwise obtained by using the program, +regardless of whether they have been advised of, or otherwise had +knowledge of, the possibility of such damages at any time during the +project or thereafter. Each user will be deemed to have agreed to the +foregoing by his or her commencement of use of the program. The term +"use" as used herein includes, but is not limited to, the use, +modification, copying and distribution of the program and the +production of secondary products from the program. -3. This notice may not be removed or altered from any source - distribution. +In the case where the program, whether in its original form or +modified, was distributed or delivered to or received by a user from +any person, organization or entity other than ICOT, unless it makes or +grants independently of ICOT any specific warranty to the user in +writing, such person, organization or entity, will also be exempted +from and not be held liable to the user for any such damages as noted +above as far as the program is concerned. -------------------------------------------------------------------------------- -glfw +freetype2 -Copyright (c) 2010-2016 Camilla Löwy +Copyright 2000, 2001, 2004 by +Francesco Zappa Nardelli -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would - be appreciated but is not required. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +-------------------------------------------------------------------------------- +freetype2 -2. Altered source versions must be plainly marked as such, and must not - be misrepresented as being the original software. +Copyright 2000-2001, 2002 by +Francesco Zappa Nardelli -3. This notice may not be removed or altered from any source - distribution. --------------------------------------------------------------------------------- -glfw +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: -Copyright (c) 2014 Jonas Ådahl +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +-------------------------------------------------------------------------------- +freetype2 -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +Copyright 2000-2001, 2003 by +Francesco Zappa Nardelli -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would - be appreciated but is not required. +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: -2. Altered source versions must be plainly marked as such, and must not - be misrepresented as being the original software. +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. -3. This notice may not be removed or altered from any source - distribution. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. -------------------------------------------------------------------------------- -glfw +freetype2 -Copyright (c) 2016 Google Inc. -Copyright (c) 2006-2016 Camilla Löwy +Copyright 2000-2010, 2012-2014 by +Francesco Zappa Nardelli -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would - be appreciated but is not required. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +-------------------------------------------------------------------------------- +boringssl -2. Altered source versions must be plainly marked as such, and must not - be misrepresented as being the original software. +Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved. -3. This notice may not be removed or altered from any source - distribution. +Licensed under the OpenSSL license (the "License"). You may not use +this file except in compliance with the License. You can obtain a copy +in the file LICENSE in the source distribution or at +https://www.openssl.org/source/license.html -------------------------------------------------------------------------------- -harfbuzz - -Copyright (C) 2011 Google, Inc. +freetype2 - This is part of HarfBuzz, a text shaping library. +Copyright 2001, 2002, 2012 Francesco Zappa Nardelli -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +THE COMPUTING RESEARCH LAB OR NEW MEXICO STATE UNIVERSITY BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT +OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR +THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- -harfbuzz +boringssl -Copyright (C) 2012 Grigori Goronzy +Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. --------------------------------------------------------------------------------- -harfbuzz +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -Copyright (C) 2013 Google, Inc. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. - This is part of HarfBuzz, a text shaping library. +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + licensing@OpenSSL.org. -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -harfbuzz +boringssl -Copyright (c) 2021 Google Inc. All rights reserved. +Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +modification, are permitted provided that the following conditions +are met: - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -harfbuzz +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. -Copyright © 1998-2004 David Turner and Werner Lemberg -Copyright © 2004,2007,2009 Red Hat, Inc. -Copyright © 2011,2012 Google, Inc. +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.openssl.org/)" - This is part of HarfBuzz, a text shaping library. +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + openssl-core@openssl.org. -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.openssl.org/)" -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -harfbuzz +angle -Copyright © 1998-2004 David Turner and Werner Lemberg -Copyright © 2004,2007,2009,2010 Red Hat, Inc. -Copyright © 2011,2012 Google, Inc. +Copyright 2002 The ANGLE Project Authors. All rights reserved. - This is part of HarfBuzz, a text shaping library. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. + Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. + Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. --------------------------------------------------------------------------------- -harfbuzz + Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. + Ltd., nor the names of their contributors may be used to endorse + or promote products derived from this software without specific + prior written permission. -Copyright © 1998-2004 David Turner and Werner Lemberg -Copyright © 2006 Behdad Esfahbod -Copyright © 2007,2008,2009 Red Hat, Inc. -Copyright © 2012,2013 Google, Inc. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +freetype2 - This is part of HarfBuzz, a text shaping library. +Copyright 2003 by +Francesco Zappa Nardelli -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. -------------------------------------------------------------------------------- -harfbuzz +boringssl -Copyright © 2007 Chris Wilson -Copyright © 2009,2010 Red Hat, Inc. -Copyright © 2011,2012 Google, Inc. +Copyright 2005 Nokia. All rights reserved. - This is part of HarfBuzz, a text shaping library. +The portions of the attached software ("Contribution") is developed by +Nokia Corporation and is licensed pursuant to the OpenSSL open source +license. -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. +The Contribution, originally written by Mika Kousa and Pasi Eronen of +Nokia Corporation, consists of the "PSK" (Pre-Shared Key) ciphersuites +support (see RFC 4279) to OpenSSL. -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. +No patent licenses or other rights except those expressly stated in +the OpenSSL open source license shall be deemed granted or received +expressly, by implication, estoppel, or otherwise. -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +No assurances are provided by Nokia that the Contribution does not +infringe the patent or other intellectual property rights of any third +party or that the license provides you with all the necessary rights +to make use of the Contribution. + +THE SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. IN +ADDITION TO THE DISCLAIMERS INCLUDED IN THE LICENSE, NOKIA +SPECIFICALLY DISCLAIMS ANY LIABILITY FOR CLAIMS BROUGHT BY YOU OR ANY +OTHER ENTITY BASED ON INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS OR +OTHERWISE. -------------------------------------------------------------------------------- -harfbuzz +skia -Copyright © 2007,2008,2009 Red Hat, Inc. +Copyright 2005 The Android Open Source Project - This is part of HarfBuzz, a text shaping library. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. --------------------------------------------------------------------------------- -harfbuzz + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. -Copyright © 2007,2008,2009 Red Hat, Inc. -Copyright © 2010,2011,2012 Google, Inc. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +boringssl - This is part of HarfBuzz, a text shaping library. +Copyright 2005, Google Inc. +All rights reserved. -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -harfbuzz +skia -Copyright © 2007,2008,2009 Red Hat, Inc. -Copyright © 2010,2012 Google, Inc. +Copyright 2006 The Android Open Source Project - This is part of HarfBuzz, a text shaping library. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. --------------------------------------------------------------------------------- -harfbuzz + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. -Copyright © 2007,2008,2009 Red Hat, Inc. -Copyright © 2011,2012 Google, Inc. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +boringssl - This is part of HarfBuzz, a text shaping library. +Copyright 2006, Google Inc. +All rights reserved. -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -harfbuzz - -Copyright © 2007,2008,2009 Red Hat, Inc. -Copyright © 2012 Google, Inc. - - This is part of HarfBuzz, a text shaping library. +double-conversion +icu -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. +Copyright 2006-2008 the V8 project authors. All rights reserved. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -harfbuzz +icu -Copyright © 2007,2008,2009 Red Hat, Inc. -Copyright © 2012,2013 Google, Inc. +Copyright 2006-2011, the V8 project authors. All rights reserved. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: - This is part of HarfBuzz, a text shaping library. + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +skia -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. +Copyright 2006-2012 The Android Open Source Project +Copyright 2012 Mozilla Foundation -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. --------------------------------------------------------------------------------- -harfbuzz +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -Copyright © 2007,2008,2009 Red Hat, Inc. -Copyright © 2012,2013 Google, Inc. -Copyright © 2019, Facebook Inc. + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. - This is part of HarfBuzz, a text shaping library. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +boringssl -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +Copyright 2006-2017 The OpenSSL Project Authors. All Rights Reserved. + +Licensed under the OpenSSL license (the "License"). You may not use +this file except in compliance with the License. You can obtain a copy +in the file LICENSE in the source distribution or at +https://www.openssl.org/source/license.html -------------------------------------------------------------------------------- -harfbuzz +skia -Copyright © 2007,2008,2009 Red Hat, Inc. -Copyright © 2018,2019,2020 Ebrahim Byagowi -Copyright © 2018 Khaled Hosny +Copyright 2007 The Android Open Source Project - This is part of HarfBuzz, a text shaping library. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -harfbuzz +boringssl -Copyright © 2007,2008,2009,2010 Red Hat, Inc. -Copyright © 2010,2012 Google, Inc. +Copyright 2007, Google Inc. +All rights reserved. - This is part of HarfBuzz, a text shaping library. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +boringssl -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +Copyright 2007-2016 The OpenSSL Project Authors. All Rights Reserved. + +Licensed under the OpenSSL license (the "License"). You may not use +this file except in compliance with the License. You can obtain a copy +in the file LICENSE in the source distribution or at +https://www.openssl.org/source/license.html -------------------------------------------------------------------------------- -harfbuzz +skia -Copyright © 2007,2008,2009,2010 Red Hat, Inc. -Copyright © 2010,2012,2013 Google, Inc. +Copyright 2008 Google Inc. - This is part of HarfBuzz, a text shaping library. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -harfbuzz - -Copyright © 2007,2008,2009,2010 Red Hat, Inc. -Copyright © 2012 Google, Inc. +boringssl - This is part of HarfBuzz, a text shaping library. +Copyright 2008 Google Inc. +All Rights Reserved. -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -harfbuzz +skia -Copyright © 2007,2008,2009,2010 Red Hat, Inc. -Copyright © 2012,2018 Google, Inc. +Copyright 2008 The Android Open Source Project - This is part of HarfBuzz, a text shaping library. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. --------------------------------------------------------------------------------- -harfbuzz + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. -Copyright © 2007,2008,2009,2010 Red Hat, Inc. -Copyright © 2012,2018 Google, Inc. -Copyright © 2019 Facebook, Inc. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +boringssl - This is part of HarfBuzz, a text shaping library. +Copyright 2008, Google Inc. +All rights reserved. -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -harfbuzz - -Copyright © 2009 Red Hat, Inc. +boringssl - This is part of HarfBuzz, a text shaping library. +Copyright 2009 Google Inc. All Rights Reserved. -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -harfbuzz +libjpeg-turbo -Copyright © 2009 Red Hat, Inc. -Copyright © 2009 Keith Stribley -Copyright © 2011 Google, Inc. +Copyright 2009 Pierre Ossman for Cendio AB - This is part of HarfBuzz, a text shaping library. +Based on the x86 SIMD extension for IJG JPEG library +Copyright (C) 1999-2006, MIYASAKA Masaru. -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- -harfbuzz - -Copyright © 2009 Red Hat, Inc. -Copyright © 2009 Keith Stribley -Copyright © 2015 Google, Inc. +libjpeg-turbo - This is part of HarfBuzz, a text shaping library. +Copyright 2009 Pierre Ossman for Cendio AB -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. +Based on the x86 SIMD extension for IJG JPEG library, +Copyright (C) 1999-2006, MIYASAKA Masaru. -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- -harfbuzz +libjpeg-turbo -Copyright © 2009 Red Hat, Inc. -Copyright © 2011 Codethink Limited -Copyright © 2010,2011,2012 Google, Inc. +Copyright 2009 Pierre Ossman for Cendio AB +Copyright (C) 2009, D. R. Commander. - This is part of HarfBuzz, a text shaping library. +Based on the x86 SIMD extension for IJG JPEG library +Copyright (C) 1999-2006, MIYASAKA Masaru. -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- -harfbuzz +libjpeg-turbo -Copyright © 2009 Red Hat, Inc. -Copyright © 2011 Codethink Limited -Copyright © 2011,2012 Google, Inc. +Copyright 2009 Pierre Ossman for Cendio AB +Copyright (C) 2009-2011, 2013-2014, 2016, D. R. Commander. +Copyright (C) 2015, Matthieu Darbois. - This is part of HarfBuzz, a text shaping library. +Based on the x86 SIMD extension for IJG JPEG library, +Copyright (C) 1999-2006, MIYASAKA Masaru. -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- -harfbuzz +libjpeg-turbo -Copyright © 2009 Red Hat, Inc. -Copyright © 2011 Google, Inc. +Copyright 2009 Pierre Ossman for Cendio AB +Copyright (C) 2009-2011, 2013-2014, 2016, D. R. Commander. +Copyright (C) 2015-2016, Matthieu Darbois. - This is part of HarfBuzz, a text shaping library. +Based on the x86 SIMD extension for IJG JPEG library, +Copyright (C) 1999-2006, MIYASAKA Masaru. -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- -harfbuzz +libjpeg-turbo -Copyright © 2009 Red Hat, Inc. -Copyright © 2012 Google, Inc. +Copyright 2009 Pierre Ossman for Cendio AB +Copyright (C) 2009-2011, 2014, 2016, D. R. Commander. +Copyright (C) 2015, Matthieu Darbois. - This is part of HarfBuzz, a text shaping library. +Based on the x86 SIMD extension for IJG JPEG library, +Copyright (C) 1999-2006, MIYASAKA Masaru. -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- -harfbuzz +libjpeg-turbo -Copyright © 2009 Red Hat, Inc. -Copyright © 2015 Google, Inc. +Copyright 2009 Pierre Ossman for Cendio AB +Copyright (C) 2009-2011, 2014, D. R. Commander. +Copyright (C) 2013-2014, MIPS Technologies, Inc., California. +Copyright (C) 2015, Matthieu Darbois. - This is part of HarfBuzz, a text shaping library. +Based on the x86 SIMD extension for IJG JPEG library, +Copyright (C) 1999-2006, MIYASAKA Masaru. -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- -harfbuzz +libjpeg-turbo -Copyright © 2009 Red Hat, Inc. -Copyright © 2018 Ebrahim Byagowi +Copyright 2009 Pierre Ossman for Cendio AB +Copyright (C) 2009-2011, 2014, D. R. Commander. +Copyright (C) 2015, Matthieu Darbois. - This is part of HarfBuzz, a text shaping library. +Based on the x86 SIMD extension for IJG JPEG library, +Copyright (C) 1999-2006, MIYASAKA Masaru. -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- -harfbuzz - -Copyright © 2009 Red Hat, Inc. -Copyright © 2018 Google, Inc. +libjpeg-turbo - This is part of HarfBuzz, a text shaping library. +Copyright 2009 Pierre Ossman for Cendio AB +Copyright (C) 2009-2011, 2014-2015, D. R. Commander. +Copyright (C) 2015, Matthieu Darbois. -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. +Based on the x86 SIMD extension for IJG JPEG library, +Copyright (C) 1999-2006, MIYASAKA Masaru. -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- -harfbuzz +libjpeg-turbo -Copyright © 2009,2010 Red Hat, Inc. -Copyright © 2010,2011,2012 Google, Inc. +Copyright 2009 Pierre Ossman for Cendio AB +Copyright (C) 2010, D. R. Commander. - This is part of HarfBuzz, a text shaping library. +Based on the x86 SIMD extension for IJG JPEG library - version 1.02 -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. +Copyright (C) 1999-2006, MIYASAKA Masaru. -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- -harfbuzz +libjpeg-turbo -Copyright © 2009,2010 Red Hat, Inc. -Copyright © 2010,2011,2012,2013 Google, Inc. +Copyright 2009 Pierre Ossman for Cendio AB +Copyright (C) 2011, 2014, D. R. Commander. +Copyright (C) 2015, Matthieu Darbois. - This is part of HarfBuzz, a text shaping library. +Based on the x86 SIMD extension for IJG JPEG library, +Copyright (C) 1999-2006, MIYASAKA Masaru. -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- -harfbuzz +libjpeg-turbo -Copyright © 2009,2010 Red Hat, Inc. -Copyright © 2010,2011,2013 Google, Inc. +Copyright 2009 Pierre Ossman for Cendio AB +Copyright (C) 2011, 2014-2016, D. R. Commander. +Copyright (C) 2013-2014, MIPS Technologies, Inc., California. +Copyright (C) 2014, Linaro Limited. +Copyright (C) 2015-2016, Matthieu Darbois. - This is part of HarfBuzz, a text shaping library. +Based on the x86 SIMD extension for IJG JPEG library, +Copyright (C) 1999-2006, MIYASAKA Masaru. -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- -harfbuzz +libjpeg-turbo -Copyright © 2009,2010 Red Hat, Inc. -Copyright © 2011,2012 Google, Inc. +Copyright 2009 Pierre Ossman for Cendio AB +Copyright (C) 2011, D. R. Commander. - This is part of HarfBuzz, a text shaping library. +Based on the x86 SIMD extension for IJG JPEG library +Copyright (C) 1999-2006, MIYASAKA Masaru. -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- -harfbuzz +skia -Copyright © 2010 Google, Inc. +Copyright 2009 The Android Open Source Project - This is part of HarfBuzz, a text shaping library. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -harfbuzz +libjpeg-turbo -Copyright © 2010 Red Hat, Inc. -Copyright © 2012 Google, Inc. +Copyright 2009, 2012 Pierre Ossman for Cendio AB +Copyright (C) 2009, 2012, D. R. Commander. - This is part of HarfBuzz, a text shaping library. +Based on the x86 SIMD extension for IJG JPEG library +Copyright (C) 1999-2006, MIYASAKA Masaru. -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- -harfbuzz +libjpeg-turbo -Copyright © 2010,2011 Google, Inc. +Copyright 2009, 2012 Pierre Ossman for Cendio AB +Copyright (C) 2012, D. R. Commander. - This is part of HarfBuzz, a text shaping library. +Based on the x86 SIMD extension for IJG JPEG library +Copyright (C) 1999-2006, MIYASAKA Masaru. -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- -harfbuzz +skia -Copyright © 2010,2011,2012 Google, Inc. +Copyright 2009-2015 Google Inc. - This is part of HarfBuzz, a text shaping library. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -harfbuzz +skia -Copyright © 2010,2011,2013 Google, Inc. +Copyright 2010 Google Inc. - This is part of HarfBuzz, a text shaping library. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -harfbuzz +libwebp -Copyright © 2010,2012 Google, Inc. +Copyright 2010 Google Inc. All Rights Reserved. - This is part of HarfBuzz, a text shaping library. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * Neither the name of Google nor the names of its contributors may + be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -harfbuzz +angle -Copyright © 2011 Google, Inc. +Copyright 2010 The ANGLE Project Authors. All rights reserved. - This is part of HarfBuzz, a text shaping library. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. + Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. + Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. + Ltd., nor the names of their contributors may be used to endorse + or promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -harfbuzz +skia -Copyright © 2011 Martin Hosken -Copyright © 2011 SIL International +Copyright 2010 The Android Open Source Project - This is part of HarfBuzz, a text shaping library. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +double-conversion +icu -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. +Copyright 2010 the V8 project authors. All rights reserved. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -harfbuzz +skia -Copyright © 2011 Martin Hosken -Copyright © 2011 SIL International -Copyright © 2011,2012 Google, Inc. +Copyright 2011 Google Inc. - This is part of HarfBuzz, a text shaping library. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -harfbuzz +skia -Copyright © 2011,2012 Google, Inc. +Copyright 2011 Google Inc. +Copyright 2012 Mozilla Foundation - This is part of HarfBuzz, a text shaping library. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -harfbuzz +libwebp -Copyright © 2011,2012 Google, Inc. -Copyright © 2018 Ebrahim Byagowi +Copyright 2011 Google Inc. All Rights Reserved. - This is part of HarfBuzz, a text shaping library. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * Neither the name of Google nor the names of its contributors may + be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -harfbuzz +angle -Copyright © 2011,2012,2013 Google, Inc. +Copyright 2011 The ANGLE Project Authors. All rights reserved. - This is part of HarfBuzz, a text shaping library. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. + Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. + Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. + Ltd., nor the names of their contributors may be used to endorse + or promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -harfbuzz +skia -Copyright © 2011,2012,2013 Google, Inc. -Copyright © 2021 Khaled Hosny +Copyright 2011 The Android Open Source Project - This is part of HarfBuzz, a text shaping library. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -harfbuzz +skia -Copyright © 2011,2012,2014 Google, Inc. +Copyright 2012 Google Inc. - This is part of HarfBuzz, a text shaping library. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -harfbuzz +libwebp -Copyright © 2011,2014 Google, Inc. +Copyright 2012 Google Inc. All Rights Reserved. - This is part of HarfBuzz, a text shaping library. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * Neither the name of Google nor the names of its contributors may + be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -harfbuzz +angle -Copyright © 2012 Google, Inc. +Copyright 2012 The ANGLE Project Authors. All rights reserved. - This is part of HarfBuzz, a text shaping library. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. + Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. + Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. --------------------------------------------------------------------------------- -harfbuzz + Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. + Ltd., nor the names of their contributors may be used to endorse + or promote products derived from this software without specific + prior written permission. -Copyright © 2012 Mozilla Foundation. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +skia - This is part of HarfBuzz, a text shaping library. +Copyright 2012 The Android Open Source Project -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. --------------------------------------------------------------------------------- -harfbuzz + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. -Copyright © 2012,2013 Google, Inc. + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. - This is part of HarfBuzz, a text shaping library. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +double-conversion +icu -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. +Copyright 2012 the V8 project authors. All rights reserved. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -harfbuzz +dart -Copyright © 2012,2013 Mozilla Foundation. -Copyright © 2012,2013 Google, Inc. +Copyright 2012, the Dart project authors. - This is part of HarfBuzz, a text shaping library. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +boringssl -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. +Copyright 2012-2016 The OpenSSL Project Authors. All Rights Reserved. -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +Licensed under the OpenSSL license (the "License"). You may not use +this file except in compliance with the License. You can obtain a copy +in the file LICENSE in the source distribution or at +https://www.openssl.org/source/license.html -------------------------------------------------------------------------------- -harfbuzz +skia -Copyright © 2012,2017 Google, Inc. -Copyright © 2021 Behdad Esfahbod +Copyright 2013 Google Inc. - This is part of HarfBuzz, a text shaping library. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -harfbuzz +libwebp -Copyright © 2012,2018 Google, Inc. +Copyright 2013 Google Inc. All Rights Reserved. - This is part of HarfBuzz, a text shaping library. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * Neither the name of Google nor the names of its contributors may + be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -harfbuzz +angle -Copyright © 2013 Google, Inc. +Copyright 2013 The ANGLE Project Authors. All rights reserved. - This is part of HarfBuzz, a text shaping library. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. + Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. + Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. + Ltd., nor the names of their contributors may be used to endorse + or promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -harfbuzz +skia -Copyright © 2013 Red Hat, Inc. +Copyright 2013 The Android Open Source Project - This is part of HarfBuzz, a text shaping library. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. --------------------------------------------------------------------------------- -harfbuzz + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. -Copyright © 2014 Google, Inc. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +accessibility - This is part of HarfBuzz, a text shaping library. +Copyright 2013 The Chromium Authors. All rights reserved. -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -harfbuzz - -Copyright © 2015 Google, Inc. -Copyright © 2019 Adobe Inc. -Copyright © 2019 Ebrahim Byagowi +accessibility +engine +gpu +tonic +txt - This is part of HarfBuzz, a text shaping library. +Copyright 2013 The Flutter Authors. All rights reserved. -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -harfbuzz - -Copyright © 2015 Mozilla Foundation. -Copyright © 2015 Google, Inc. - - This is part of HarfBuzz, a text shaping library. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. +boringssl -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. +Copyright 2013-2016 The OpenSSL Project Authors. All Rights Reserved. +Copyright (c) 2012, Intel Corporation. All Rights Reserved. -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +Licensed under the OpenSSL license (the "License"). You may not use +this file except in compliance with the License. You can obtain a copy +in the file LICENSE in the source distribution or at +https://www.openssl.org/source/license.html -------------------------------------------------------------------------------- -harfbuzz +skia -Copyright © 2015-2019 Ebrahim Byagowi +Copyright 2014 Google Inc. - This is part of HarfBuzz, a text shaping library. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -harfbuzz +skia -Copyright © 2016 Elie Roux -Copyright © 2018 Google, Inc. -Copyright © 2018-2019 Ebrahim Byagowi +Copyright 2014 Google Inc. +Copyright 2017 ARM Ltd. - This is part of HarfBuzz, a text shaping library. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -harfbuzz +libwebp -Copyright © 2016 Google, Inc. +Copyright 2014 Google Inc. All Rights Reserved. - This is part of HarfBuzz, a text shaping library. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * Neither the name of Google nor the names of its contributors may + be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -harfbuzz +angle -Copyright © 2016 Google, Inc. -Copyright © 2018 Ebrahim Byagowi +Copyright 2014 The ANGLE Project Authors. All rights reserved. - This is part of HarfBuzz, a text shaping library. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. + Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. + Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. + Ltd., nor the names of their contributors may be used to endorse + or promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -harfbuzz +skia -Copyright © 2016 Google, Inc. -Copyright © 2018 Khaled Hosny -Copyright © 2018 Ebrahim Byagowi +Copyright 2014 The Android Open Source Project - This is part of HarfBuzz, a text shaping library. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. --------------------------------------------------------------------------------- -harfbuzz + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. -Copyright © 2016 Igalia S.L. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +accessibility +base +icu +zlib - This is part of HarfBuzz, a text shaping library. +Copyright 2014 The Chromium Authors. All rights reserved. -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -harfbuzz - -Copyright © 2017 Google, Inc. +fuchsia_sdk - This is part of HarfBuzz, a text shaping library. +Copyright 2014 The Fuchsia Authors. All rights reserved. -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -harfbuzz +boringssl -Copyright © 2017 Google, Inc. -Copyright © 2018 Ebrahim Byagowi +Copyright 2014-2016 The OpenSSL Project Authors. All Rights Reserved. - This is part of HarfBuzz, a text shaping library. +Licensed under the OpenSSL license (the "License"). You may not use +this file except in compliance with the License. You can obtain a copy +in the file LICENSE in the source distribution or at +https://www.openssl.org/source/license.html +-------------------------------------------------------------------------------- +boringssl -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. +Copyright 2014-2016 The OpenSSL Project Authors. All Rights Reserved. +Copyright (c) 2014, Intel Corporation. All Rights Reserved. -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. +Licensed under the OpenSSL license (the "License"). You may not use +this file except in compliance with the License. You can obtain a copy +in the file LICENSE in the source distribution or at +https://www.openssl.org/source/license.html +-------------------------------------------------------------------------------- +boringssl -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +Copyright 2014-2016 The OpenSSL Project Authors. All Rights Reserved. +Copyright (c) 2015, Intel Inc. + +Licensed under the OpenSSL license (the "License"). You may not use +this file except in compliance with the License. You can obtain a copy +in the file LICENSE in the source distribution or at +https://www.openssl.org/source/license.html -------------------------------------------------------------------------------- -harfbuzz +skia -Copyright © 2017 Google, Inc. -Copyright © 2019 Facebook, Inc. +Copyright 2015 Google Inc. - This is part of HarfBuzz, a text shaping library. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -harfbuzz +libwebp -Copyright © 2017,2018 Google, Inc. +Copyright 2015 Google Inc. All Rights Reserved. - This is part of HarfBuzz, a text shaping library. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * Neither the name of Google nor the names of its contributors may + be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -harfbuzz +angle -Copyright © 2018 Ebrahim Byagowi +Copyright 2015 The ANGLE Project Authors. All rights reserved. - This is part of HarfBuzz, a text shaping library. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. + Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. + Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. + Ltd., nor the names of their contributors may be used to endorse + or promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -harfbuzz +skia -Copyright © 2018 Ebrahim Byagowi -Copyright © 2018 Google, Inc. +Copyright 2015 The Android Open Source Project - This is part of HarfBuzz, a text shaping library. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -harfbuzz +accessibility +icu +skia +vulkan-deps -Copyright © 2018 Ebrahim Byagowi -Copyright © 2020 Google, Inc. +Copyright 2015 The Chromium Authors. All rights reserved. - This is part of HarfBuzz, a text shaping library. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +boringssl -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +Copyright 2015, Google Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -harfbuzz +boringssl -Copyright © 2018 Ebrahim Byagowi. +Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved. - This is part of HarfBuzz, a text shaping library. +Licensed under the OpenSSL license (the "License"). You may not use +this file except in compliance with the License. You can obtain a copy +in the file LICENSE in the source distribution or at +https://www.openssl.org/source/license.html +-------------------------------------------------------------------------------- +boringssl -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. +Copyright 2016 Brian Smith. -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY +SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION +OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN +CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -------------------------------------------------------------------------------- -harfbuzz +skia -Copyright © 2018 Google, Inc. +Copyright 2016 Google Inc. - This is part of HarfBuzz, a text shaping library. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -harfbuzz +libwebp + +Copyright 2016 Google Inc. All Rights Reserved. -Copyright © 2018 Google, Inc. -Copyright © 2019 Facebook, Inc. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: - This is part of HarfBuzz, a text shaping library. + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. + * Neither the name of Google nor the names of its contributors may + be used to endorse or promote products derived from this software + without specific prior written permission. -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -harfbuzz +skia -Copyright © 2018 Adobe Inc. +Copyright 2016 Mozilla Foundation - This is part of HarfBuzz, a text shaping library. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -harfbuzz +angle +base -Copyright © 2018-2019 Ebrahim Byagowi +Copyright 2016 The ANGLE Project Authors. All rights reserved. - This is part of HarfBuzz, a text shaping library. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. + Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. + Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. + Ltd., nor the names of their contributors may be used to endorse + or promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -harfbuzz +skia -Copyright © 2019 Adobe Inc. -Copyright © 2019 Ebrahim Byagowi +Copyright 2016 The Android Open Source Project - This is part of HarfBuzz, a text shaping library. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. --------------------------------------------------------------------------------- -harfbuzz + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. -Copyright © 2019 Adobe, Inc. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +accessibility +icu +skia - This is part of HarfBuzz, a text shaping library. +Copyright 2016 The Chromium Authors. All rights reserved. -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -harfbuzz - -Copyright © 2019 Ebrahim Byagowi +fuchsia_sdk - This is part of HarfBuzz, a text shaping library. +Copyright 2016 The Fuchsia Authors. All rights reserved. -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -harfbuzz +skia -Copyright © 2019 Facebook, Inc. +Copyright 2017 ARM Ltd. - This is part of HarfBuzz, a text shaping library. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -harfbuzz +skia -Copyright © 2019 Adobe Inc. +Copyright 2017 Google Inc. - This is part of HarfBuzz, a text shaping library. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -harfbuzz +libwebp -Copyright © 2019-2020 Ebrahim Byagowi +Copyright 2017 Google Inc. All Rights Reserved. - This is part of HarfBuzz, a text shaping library. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * Neither the name of Google nor the names of its contributors may + be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -harfbuzz +angle +base -Copyright © 2020 Ebrahim Byagowi +Copyright 2017 The ANGLE Project Authors. All rights reserved. - This is part of HarfBuzz, a text shaping library. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. + Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. + Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. --------------------------------------------------------------------------------- -harfbuzz + Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. + Ltd., nor the names of their contributors may be used to endorse + or promote products derived from this software without specific + prior written permission. -Copyright © 2020 Google, Inc. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +accessibility +base +zlib - This is part of HarfBuzz, a text shaping library. +Copyright 2017 The Chromium Authors. All rights reserved. -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -harfbuzz - -Copyright © 2021 Behdad Esfahbod +fuchsia_sdk - This is part of HarfBuzz, a text shaping library. +Copyright 2017 The Fuchsia Authors. All rights reserved. -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -harfbuzz +boringssl -Copyright © 2021 Behdad Esfahbod. +Copyright 2017 The OpenSSL Project Authors. All Rights Reserved. - This is part of HarfBuzz, a text shaping library. +Licensed under the OpenSSL license (the "License"). You may not use +this file except in compliance with the License. You can obtain a copy +in the file LICENSE in the source distribution or at +https://www.openssl.org/source/license.html +-------------------------------------------------------------------------------- +vulkanmemoryallocator -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. +Copyright 2018 Google Inc. -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -harfbuzz +skia -Copyright © 2021 Google, Inc. +Copyright 2018 Google Inc. - This is part of HarfBuzz, a text shaping library. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -harfbuzz +libwebp -HarfBuzz is licensed under the so-called "Old MIT" license. Details follow. -For parts of HarfBuzz that are licensed under different licenses see individual -files names COPYING in subdirectories where applicable. +Copyright 2018 Google Inc. All Rights Reserved. -Copyright © 2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020 Google, Inc. -Copyright © 2018,2019,2020 Ebrahim Byagowi -Copyright © 2019,2020 Facebook, Inc. -Copyright © 2012 Mozilla Foundation -Copyright © 2011 Codethink Limited -Copyright © 2008,2010 Nokia Corporation and/or its subsidiary(-ies) -Copyright © 2009 Keith Stribley -Copyright © 2009 Martin Hosken and SIL International -Copyright © 2007 Chris Wilson -Copyright © 2005,2006,2020,2021 Behdad Esfahbod -Copyright © 2005 David Turner -Copyright © 2004,2007,2008,2009,2010 Red Hat, Inc. -Copyright © 1998-2004 David Turner and Werner Lemberg +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -For full copyright notices consult the individual files in the package. + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. + * Neither the name of Google nor the names of its contributors may + be used to endorse or promote products derived from this software + without specific prior written permission. -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -icu - -Copyright (C) 2016 and later: Unicode, Inc. and others. -License & terms of use: http://www.unicode.org/copyright.html -Copyright (c) 2015 International Business Machines Corporation -and others. All Rights Reserved. +skia -Project: https://github.com/rober42539/lao-dictionary -Dictionary: https://github.com/rober42539/lao-dictionary/laodict.txt -License: https://github.com/rober42539/lao-dictionary/LICENSE.txt - (copied below) +Copyright 2018 Google LLC - This file is derived from the above dictionary version of Nov 22, 2020 +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: - Copyright (C) 2013 Brian Eugene Wilson, Robert Martin Campbell. - All rights reserved. + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. - Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. Redistributions in binary - form must reproduce the above copyright notice, this list of conditions and - the following disclaimer in the documentation and/or other materials - provided with the distribution. + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, -INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED -OF THE POSSIBILITY OF SUCH DAMAGE. +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -icu +skia -Copyright (c) 1995-2016 International Business Machines Corporation and others -All rights reserved. +Copyright 2018 Google LLC. -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, and/or sell copies of the Software, and to permit persons -to whom the Software is furnished to do so, provided that the above -copyright notice(s) and this permission notice appear in all copies of -the Software and that both the above copyright notice(s) and this -permission notice appear in supporting documentation. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT -OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR -HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY -SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER -RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF -CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN -CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. -Except as contained in this notice, the name of a copyright holder -shall not be used in advertising or otherwise to promote the sale, use -or other dealings in this Software without prior written authorization -of the copyright holder. + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. -All trademarks and registered trademarks mentioned herein are the -property of their respective owners. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -icu +skia -Copyright (c) 1998 - 1999 Unicode, Inc. All Rights reserved. - Copyright (C) 2002-2005, International Business Machines - Corporation and others. All Rights Reserved. +Copyright 2018 Google, LLC -This file is provided as-is by Unicode, Inc. (The Unicode Consortium). -No claims are made as to fitness for any particular purpose. No -warranties of any kind are expressed or implied. The recipient -agrees to determine applicability of information provided. If this -file has been provided on optical media by Unicode, Inc., the sole -remedy for any claim will be exchange of defective media within 90 -days of receipt. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -Unicode, Inc. hereby grants the right to freely use the information -supplied in this file in the creation of products supporting the -Unicode Standard, and to make copies of this file in any form for -internal or external distribution as long as this notice remains -attached. + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -icu +angle -Copyright (c) 1999 Computer Systems and Communication Lab, - Institute of Information Science, Academia - * Sinica. All rights reserved. +Copyright 2018 The ANGLE Project Authors. +All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: -. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. -. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. -. Neither the name of the Computer Systems and Communication Lab - nor the names of its contributors may be used to endorse or - promote products derived from this software without specific - prior written permission. + Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. + Ltd., nor the names of their contributors may be used to endorse + or promote products derived from this software without specific + prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED -OF THE POSSIBILITY OF SUCH DAMAGE. +COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -icu +angle -Copyright (c) 1999 TaBE Project. -Copyright (c) 1999 Pai-Hsiang Hsiao. -All rights reserved. +Copyright 2018 The ANGLE Project Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: -. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. -. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. -. Neither the name of the TaBE Project nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. + Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. + Ltd., nor the names of their contributors may be used to endorse + or promote products derived from this software without specific + prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED -OF THE POSSIBILITY OF SUCH DAMAGE. +COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -icu +skia -Copyright (c) 1999 Unicode, Inc. All Rights reserved. - Copyright (C) 2002-2005, International Business Machines - Corporation and others. All Rights Reserved. +Copyright 2018 The Android Open Source Project -This file is provided as-is by Unicode, Inc. (The Unicode Consortium). -No claims are made as to fitness for any particular purpose. No -warranties of any kind are expressed or implied. The recipient -agrees to determine applicability of information provided. If this -file has been provided on optical media by Unicode, Inc., the sole -remedy for any claim will be exchange of defective media within 90 -days of receipt. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -Unicode, Inc. hereby grants the right to freely use the information -supplied in this file in the creation of products supporting the -Unicode Standard, and to make copies of this file in any form for -internal or external distribution as long as this notice remains -attached. --------------------------------------------------------------------------------- -icu + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -Copyright (c) 2002 Unicode, Inc. All Rights reserved. - Copyright (C) 2002-2005, International Business Machines - Corporation and others. All Rights Reserved. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. -This file is provided as-is by Unicode, Inc. (The Unicode Consortium). -No claims are made as to fitness for any particular purpose. No -warranties of any kind are expressed or implied. The recipient -agrees to determine applicability of information provided. If this -file has been provided on optical media by Unicode, Inc., the sole -remedy for any claim will be exchange of defective media within 90 -days of receipt. + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. -Unicode, Inc. hereby grants the right to freely use the information -supplied in this file in the creation of products supporting the -Unicode Standard, and to make copies of this file in any form for -internal or external distribution as long as this notice remains -attached. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -icu - -Copyright (c) 2014 International Business Machines Corporation -and others. All Rights Reserved. - -This list is part of a project hosted at: - github.com/kanyawtech/myanmar-karen-word-lists +accessibility +base +fuchsia_sdk +skia +zlib -Copyright (c) 2013, LeRoy Benjamin Sharon -All rights reserved. +Copyright 2018 The Chromium Authors. All rights reserved. Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: Redistributions of source code must retain the above -copyright notice, this list of conditions and the following -disclaimer. Redistributions in binary form must reproduce the -above copyright notice, this list of conditions and the following -disclaimer in the documentation and/or other materials provided -with the distribution. - - Neither the name Myanmar Karen Word Lists, nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. +modification, are permitted provided that the following conditions are +met: -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND -CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS -BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED -TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR -TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF -THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -SUCH DAMAGE. + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -icu +fuchsia_sdk -Copyright (c) IBM Corporation, 2000-2010. All rights reserved. +Copyright 2018 The Fuchsia Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - * Neither the name of Google Inc. nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT @@ -10707,23 +10772,25 @@ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -icu +skia -Copyright (c) IBM Corporation, 2000-2011. All rights reserved. +Copyright 2019 Google Inc. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - * Neither the name of Google Inc. nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT @@ -10737,23 +10804,25 @@ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -icu +skia -Copyright (c) IBM Corporation, 2000-2012. All rights reserved. +Copyright 2019 Google Inc. and Adobe Inc. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - * Neither the name of Google Inc. nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT @@ -10767,23 +10836,25 @@ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -icu +skia -Copyright (c) IBM Corporation, 2000-2014. All rights reserved. +Copyright 2019 Google LLC Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - * Neither the name of Google Inc. nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT @@ -10797,23 +10868,25 @@ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -icu +skia -Copyright (c) IBM Corporation, 2000-2016. All rights reserved. +Copyright 2019 Google LLC. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - * Neither the name of Google Inc. nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT @@ -10827,105 +10900,126 @@ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -icu +skia -Copyright 1991 by the Massachusetts Institute of Technology --------------------------------------------------------------------------------- -icu +Copyright 2019 Google, LLC -Copyright 1996 Chih-Hao Tsai @ Beckman Institute, - University of Illinois -c-tsai4@uiuc.edu http://casper.beckman.uiuc.edu/~c-tsai4 --------------------------------------------------------------------------------- -icu +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -Copyright 2000, 2001, 2002, 2003 Nara Institute of Science -and Technology. All Rights Reserved. + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -Use, reproduction, and distribution of this software is permitted. -Any copy of this software, whether in its original form or modified, -must include both the above copyright notice and the following -paragraphs. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. -Nara Institute of Science and Technology (NAIST), -the copyright holders, disclaims all warranties with regard to this -software, including all implied warranties of merchantability and -fitness, in no event shall NAIST be liable for -any special, indirect or consequential damages or any damages -whatsoever resulting from loss of use, data or profits, whether in an -action of contract, negligence or other tortuous action, arising out -of or in connection with the use or performance of this software. + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. -A large portion of the dictionary entries -originate from ICOT Free Software. The following conditions for ICOT -Free Software applies to the current dictionary as well. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +angle +xxhash -Each User may also freely distribute the Program, whether in its -original form or modified, to any third party or parties, PROVIDED -that the provisions of Section 3 ("NO WARRANTY") will ALWAYS appear -on, or be attached to, the Program, which is distributed substantially -in the same form as set out herein and that such intended -distribution, if actually made, will neither violate or otherwise -contravene any of the laws and regulations of the countries having -jurisdiction over the User or the intended distribution itself. +Copyright 2019 The ANGLE Project Authors. All rights reserved. -NO WARRANTY +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: -The program was produced on an experimental basis in the course of the -research and development conducted during the project and is provided -to users as so produced on an experimental basis. Accordingly, the -program is provided without any warranty whatsoever, whether express, -implied, statutory or otherwise. The term "warranty" used herein -includes, but is not limited to, any warranty of the quality, -performance, merchantability and fitness for a particular purpose of -the program and the nonexistence of any infringement or violation of -any right of any third party. + Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -Each user of the program will agree and understand, and be deemed to -have agreed and understood, that there is no warranty whatsoever for -the program and, accordingly, the entire risk arising from or -otherwise connected with the program is assumed by the user. + Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. -Therefore, neither ICOT, the copyright holder, or any other -organization that participated in or was otherwise related to the -development of the program and their respective officials, directors, -officers and other employees shall be held liable for any and all -damages, including, without limitation, general, special, incidental -and consequential damages, arising out of or otherwise in connection -with the use or inability to use the program or any product, material -or result produced or otherwise obtained by using the program, -regardless of whether they have been advised of, or otherwise had -knowledge of, the possibility of such damages at any time during the -project or thereafter. Each user will be deemed to have agreed to the -foregoing by his or her commencement of use of the program. The term -"use" as used herein includes, but is not limited to, the use, -modification, copying and distribution of the program and the -production of secondary products from the program. + Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. + Ltd., nor the names of their contributors may be used to endorse + or promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +angle + +Copyright 2019 The ANGLE Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: -In the case where the program, whether in its original form or -modified, was distributed or delivered to or received by a user from -any person, organization or entity other than ICOT, unless it makes or -grants independently of ICOT any specific warranty to the user in -writing, such person, organization or entity, will also be exempted -from and not be held liable to the user for any such damages as noted -above as far as the program is concerned. + Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. + Ltd., nor the names of their contributors may be used to endorse + or promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -icu +skia + +Copyright 2019 The Android Open Source Project -Copyright 2006-2011, the V8 project authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - * Neither the name of Google Inc. nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT @@ -10939,23 +11033,26 @@ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -icu +accessibility +fuchsia_sdk +skia +zlib -Copyright 2019 the V8 project authors. All rights reserved. +Copyright 2019 The Chromium Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - * Neither the name of Google LLC nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT @@ -10969,3868 +11066,3890 @@ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -icu - -See Terms of Use -for definitions of Unicode Inc.’s Data Files and Software. - -NOTICE TO USER: Carefully read the following legal agreement. -BY DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING UNICODE INC.'S -DATA FILES ("DATA FILES"), AND/OR SOFTWARE ("SOFTWARE"), -YOU UNEQUIVOCALLY ACCEPT, AND AGREE TO BE BOUND BY, ALL OF THE -TERMS AND CONDITIONS OF THIS AGREEMENT. -IF YOU DO NOT AGREE, DO NOT DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE -THE DATA FILES OR SOFTWARE. - -COPYRIGHT AND PERMISSION NOTICE - -Copyright © 1991-2022 Unicode, Inc. All rights reserved. -Distributed under the Terms of Use in https://www.unicode.org/copyright.html. - -Permission is hereby granted, free of charge, to any person obtaining -a copy of the Unicode data files and any associated documentation -(the "Data Files") or Unicode software and any associated documentation -(the "Software") to deal in the Data Files or Software -without restriction, including without limitation the rights to use, -copy, modify, merge, publish, distribute, and/or sell copies of -the Data Files or Software, and to permit persons to whom the Data Files -or Software are furnished to do so, provided that either -(a) this copyright and permission notice appear with all copies -of the Data Files or Software, or -(b) this copyright and permission notice appear in associated -Documentation. - -THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF -ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE -WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT OF THIRD PARTY RIGHTS. -IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS -NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL -DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, -DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER -TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THE DATA FILES OR SOFTWARE. - -Except as contained in this notice, the name of a copyright holder -shall not be used in advertising or otherwise to promote the sale, -use or other dealings in these Data Files or Software without prior -written authorization of the copyright holder. --------------------------------------------------------------------------------- -icu - -The BSD License -http://opensource.org/licenses/bsd-license.php -Copyright (C) 2006-2008, Google Inc. +fuchsia_sdk -All rights reserved. +Copyright 2019 The Fuchsia Authors. Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: +modification, are permitted provided that the following conditions are +met: - Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following -disclaimer in the documentation and/or other materials provided with -the distribution. - Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND -CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR -BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -icu - -Unicode® Copyright and Terms of Use -For the general privacy policy governing access to this site, see the Unicode Privacy Policy. - -A. Unicode Copyright -1. Copyright © 1991-2022 Unicode, Inc. All rights reserved. -B. Definitions -Unicode Data Files ("DATA FILES") include all data files under the directories: -https://www.unicode.org/Public -https://www.unicode.org/reports -https://www.unicode.org/ivd/data - -Unicode Data Files do not include PDF online code charts under the directory: -https://www.unicode.org/Public - -Unicode Software ("SOFTWARE") includes any source code published in the Unicode Standard -or any source code or compiled code under the directories: -https://www.unicode.org/Public/PROGRAMS -https://www.unicode.org/Public/cldr -http://site.icu-project.org/download -C. Terms of Use -1. Certain documents and files on this website contain a legend indicating that "Modification is permitted." Any person is hereby authorized, without fee, to modify such documents and files to create derivative works conforming to the Unicode® Standard, subject to Terms and Conditions herein. -2. Any person is hereby authorized, without fee, to view, use, reproduce, and distribute all documents and files, subject to the Terms and Conditions herein. -3. Further specifications of rights and restrictions pertaining to the use of the Unicode DATA FILES and SOFTWARE can be found in the Unicode Data Files and Software License. -4. Each version of the Unicode Standard has further specifications of rights and restrictions of use. For the book editions (Unicode 5.0 and earlier), these are found on the back of the title page. -5. The Unicode PDF online code charts carry specific restrictions. Those restrictions are incorporated as the first page of each PDF code chart. -6. All other files, including online documentation of the core specification for Unicode 6.0 and later, are covered under these general Terms of Use. -7. No license is granted to "mirror" the Unicode website where a fee is charged for access to the "mirror" site. -8. Modification is not permitted with respect to this document. All copies of this document must be verbatim. -D. Restricted Rights Legend -1. Any technical data or software which is licensed to the United States of America, its agencies and/or instrumentalities under this Agreement is commercial technical data or commercial computer software developed exclusively at private expense as defined in FAR 2.101, or DFARS 252.227-7014 (June 1995), as applicable. For technical data, use, duplication, or disclosure by the Government is subject to restrictions as set forth in DFARS 202.227-7015 Technical Data, Commercial and Items (Nov 1995) and this Agreement. For Software, in accordance with FAR 12-212 or DFARS 227-7202, as applicable, use, duplication or disclosure by the Government is subject to the restrictions set forth in this Agreement. -E.Warranties and Disclaimers -1. This publication and/or website may include technical or typographical errors or other inaccuracies. Changes are periodically added to the information herein; these changes will be incorporated in new editions of the publication and/or website. Unicode, Inc. may make improvements and/or changes in the product(s) and/or program(s) described in this publication and/or website at any time. -2. If this file has been purchased on magnetic or optical media from Unicode, Inc. the sole and exclusive remedy for any claim will be exchange of the defective media within ninety (90) days of original purchase. -3. EXCEPT AS PROVIDED IN SECTION E.2, THIS PUBLICATION AND/OR SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND EITHER EXPRESS, IMPLIED, OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT. UNICODE, INC. AND ITS LICENSORS ASSUME NO RESPONSIBILITY FOR ERRORS OR OMISSIONS IN THIS PUBLICATION AND/OR SOFTWARE OR OTHER DOCUMENTS WHICH ARE REFERENCED BY OR LINKED TO THIS PUBLICATION OR THE UNICODE WEBSITE. -F. Waiver of Damages -1. In no event shall Unicode, Inc. or its licensors be liable for any special, incidental, indirect or consequential damages of any kind, or any damages whatsoever, whether or not Unicode, Inc. was advised of the possibility of the damage, including, without limitation, those resulting from the following: loss of use, data or profits, in connection with the use, modification or distribution of this information or its derivatives. -G. Trademarks & Logos -1. The Unicode Word Mark and the Unicode Logo are trademarks of Unicode, Inc. “The Unicode Consortium” and “Unicode, Inc.” are trade names of Unicode, Inc. Use of the information and materials found on this website indicates your acknowledgement of Unicode, Inc.’s exclusive worldwide rights in the Unicode Word Mark, the Unicode Logo, and the Unicode trade names. -3. The Unicode Consortium Name and Trademark Usage Policy (“Trademark Policy”) are incorporated herein by reference and you agree to abide by the provisions of the Trademark Policy, which may be changed from time to time in the sole discretion of Unicode, Inc. -4. All third party trademarks referenced herein are the property of their respective owners. -H. Miscellaneous -1. Jurisdiction and Venue. This website is operated from a location in the State of California, United States of America. Unicode, Inc. makes no representation that the materials are appropriate for use in other locations. If you access this website from other locations, you are responsible for compliance with local laws. This Agreement, all use of this website and any claims and damages resulting from use of this website are governed solely by the laws of the State of California without regard to any principles which would apply the laws of a different jurisdiction. The user agrees that any disputes regarding this website shall be resolved solely in the courts located in Santa Clara County, California. The user agrees said courts have personal jurisdiction and agree to waive any right to transfer the dispute to any other forum. -2. Modification by Unicode, Inc. Unicode, Inc. shall have the right to modify this Agreement at any time by posting it to this website. The user may not assign any part of this Agreement without Unicode, Inc.’s prior written consent. -3. Taxes. The user agrees to pay any taxes arising from access to this website or use of the information herein, except for those based on Unicode’s net income. -4. Severability. If any provision of this Agreement is declared invalid or unenforceable, the remaining provisions of this Agreement shall remain in effect. -5. Entire Agreement. This Agreement constitutes the entire agreement between the parties. +angle +fuchsia_sdk -EXHIBIT 1 -UNICODE, INC. LICENSE AGREEMENT - DATA FILES AND SOFTWARE +Copyright 2019 The Fuchsia Authors. All rights reserved. -See Terms of Use -for definitions of Unicode Inc.’s Data Files and Software. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -NOTICE TO USER: Carefully read the following legal agreement. -BY DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING UNICODE INC.'S -DATA FILES ("DATA FILES"), AND/OR SOFTWARE ("SOFTWARE"), -YOU UNEQUIVOCALLY ACCEPT, AND AGREE TO BE BOUND BY, ALL OF THE -TERMS AND CONDITIONS OF THIS AGREEMENT. -IF YOU DO NOT AGREE, DO NOT DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE -THE DATA FILES OR SOFTWARE. + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. -COPYRIGHT AND PERMISSION NOTICE +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +icu -Copyright © 1991-2022 Unicode, Inc. All rights reserved. -Distributed under the Terms of Use in https://www.unicode.org/copyright.html. +Copyright 2019 the V8 project authors. All rights reserved. -Permission is hereby granted, free of charge, to any person obtaining -a copy of the Unicode data files and any associated documentation -(the "Data Files") or Unicode software and any associated documentation -(the "Software") to deal in the Data Files or Software -without restriction, including without limitation the rights to use, -copy, modify, merge, publish, distribute, and/or sell copies of -the Data Files or Software, and to permit persons to whom the Data Files -or Software are furnished to do so, provided that either -(a) this copyright and permission notice appear with all copies -of the Data Files or Software, or -(b) this copyright and permission notice appear in associated -Documentation. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF -ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE -WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT OF THIRD PARTY RIGHTS. -IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS -NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL -DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, -DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER -TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THE DATA FILES OR SOFTWARE. + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. -Except as contained in this notice, the name of a copyright holder -shall not be used in advertising or otherwise to promote the sale, -use or other dealings in these Data Files or Software without prior -written authorization of the copyright holder. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -json +skia -MIT License +Copyright 2020 Google Inc. -Copyright (c) 2013-2022 Niels Lohmann +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -khronos +skia -Copyright (c) 2007-2010 The Khronos Group Inc. +Copyright 2020 Google LLC -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and/or associated documentation files (the -"Materials"), to deal in the Materials without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Materials, and to -permit persons to whom the Materials are furnished to do so, subject to -the following conditions: +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Materials. + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. -SGI FREE SOFTWARE LICENSE B (Version 2.0, Sept. 18, 2008) + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. -Copyright (C) 1992 Silicon Graphics, Inc. All Rights Reserved. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +skia -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: +Copyright 2020 Google LLC. -The above copyright notice including the dates of first publication and either -this permission notice or a reference to http://oss.sgi.com/projects/FreeB -shall be included in all copies or substantial portions of the Software. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL SILICON -GRAPHICS, INC. BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -Except as contained in this notice, the name of Silicon Graphics, Inc. shall -not be used in advertising or otherwise to promote the sale, use or other -dealings in this Software without prior written authorization from Silicon -Graphics, Inc. --------------------------------------------------------------------------------- -khronos + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. -Copyright (c) 2007-2012 The Khronos Group Inc. + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and/or associated documentation files (the -"Materials"), to deal in the Materials without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Materials, and to -permit persons to whom the Materials are furnished to do so, subject to -the following conditions: +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +skia -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Materials. +Copyright 2020 Google, LLC -THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. --------------------------------------------------------------------------------- -khronos +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -Copyright (c) 2008-2009 The Khronos Group Inc. + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and/or associated documentation files (the -"Materials"), to deal in the Materials without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Materials, and to -permit persons to whom the Materials are furnished to do so, subject to -the following conditions: + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Materials. + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. -THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -khronos +angle -Copyright (c) 2013-2016 The Khronos Group Inc. +Copyright 2020 The ANGLE Project Authors. All rights reserved. -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and/or associated documentation files (the -"Materials"), to deal in the Materials without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Materials, and to -permit persons to whom the Materials are furnished to do so, subject to -the following conditions: +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Materials. + Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. --------------------------------------------------------------------------------- -libcxx -libcxxabi + Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. -Apache License -Version 2.0, January 2004 -http://www.apache.org/licenses + Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. + Ltd., nor the names of their contributors may be used to endorse + or promote products derived from this software without specific + prior written permission. -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +angle -1. Definitions. +Copyright 2020 The ANGLE Project. All rights reserved. - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. + Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. + Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. + Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. + Ltd., nor the names of their contributors may be used to endorse + or promote products derived from this software without specific + prior written permission. - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +abseil-cpp +accessibility +skia - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. +Copyright 2020 The Chromium Authors. All rights reserved. - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +fuchsia_sdk - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. +Copyright 2020 The Fuchsia Authors. All rights reserved. -2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. -4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +expat - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and +Copyright 2021 Google Inc. - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +skia - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. +Copyright 2021 Google Inc. -5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. -8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. -9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +skia -END OF TERMS AND CONDITIONS +Copyright 2021 Google LLC -APPENDIX: How to apply the Apache License to your work. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -Copyright [yyyy] [name of copyright owner] + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. - http://www.apache.org/licenses/LICENSE-2.0 +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +skia -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +Copyright 2021 Google LLC. ---- LLVM Exceptions to the Apache 2.0 License ---- +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -As an exception, if, as a result of your compiling your source code, portions -of this Software are embedded into an Object form of such source code, you -may redistribute such embedded portions in such Object form without complying -with the conditions of Sections 4(a), 4(b) and 4(d) of the License. + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -In addition, if you combine or link compiled forms of this Software with -software that is licensed under the GPLv2 ("Combined Software") and if a -court of competent jurisdiction determines that the patent provision (Section -3), the indemnity provision (Section 9) or other Section of the License -conflicts with the conditions of the GPLv2, you may retroactively and -prospectively choose to deem waived or otherwise exclude such Section(s) of -the License, but only in their entirety and only with respect to the Combined -Software. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -libcxx -libcxxabi +skia -Copyright (c) 2009-2014 by the contributors listed in CREDITS.TXT +Copyright 2021 Google, LLC -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -libcxx -libcxxabi +angle -University of Illinois/NCSA -Open Source License +Copyright 2021 The ANGLE Project Authors. All rights reserved. -Copyright (c) 2009-2019 by the contributors listed in CREDITS.TXT +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: -All rights reserved. + Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -Developed by: + Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. - LLVM Team + Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. + Ltd., nor the names of their contributors may be used to endorse + or promote products derived from this software without specific + prior written permission. - University of Illinois at Urbana-Champaign +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +angle - http://llvm.org +Copyright 2021 The ANGLE Project. All rights reserved. -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal with -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimers. + Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimers in the - documentation and/or other materials provided with the distribution. + Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. - * Neither the names of the LLVM Team, University of Illinois at - Urbana-Champaign, nor the names of its contributors may be used to - endorse or promote products derived from this Software without specific - prior written permission. + Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. + Ltd., nor the names of their contributors may be used to endorse + or promote products derived from this software without specific + prior written permission. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE -SOFTWARE. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -libjpeg-turbo +angle +fuchsia_sdk +libjxl +skia -Copyright (C) 1999-2006, MIYASAKA Masaru. +Copyright 2021 The Chromium Authors. All rights reserved. -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -libjpeg-turbo - -Copyright (C) 2009, D. R. Commander. +fuchsia_sdk -Based on the x86 SIMD extension for IJG JPEG library -Copyright (C) 1999-2006, MIYASAKA Masaru. +Copyright 2021 The Flutter Authors. All rights reserved. -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -libjpeg-turbo - -Copyright (C) 2009-2011, 2014-2016, D. R. Commander. -Copyright (C) 2015, Matthieu Darbois. +fuchsia_sdk -Based on the x86 SIMD extension for IJG JPEG library -Copyright (C) 1999-2006, MIYASAKA Masaru. +Copyright 2021 The Fuchsia Authors. All rights reserved. -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -libjpeg-turbo +angle -Copyright (C) 2009-2011, Nokia Corporation and/or its subsidiary(-ies). -All Rights Reserved. -Author: Siarhei Siamashka -Copyright (C) 2013-2014, Linaro Limited. All Rights Reserved. -Author: Ragesh Radhakrishnan -Copyright (C) 2014-2016, D. R. Commander. All Rights Reserved. -Copyright (C) 2015-2016, Matthieu Darbois. All Rights Reserved. -Copyright (C) 2016, Siarhei Siamashka. All Rights Reserved. +Copyright 2021-2022 The ANGLE Project Authors. All rights reserved. -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: + Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. + Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. + Ltd., nor the names of their contributors may be used to endorse + or promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -libjpeg-turbo +skia -Copyright (C) 2009-2011, Nokia Corporation and/or its subsidiary(-ies). -All Rights Reserved. -Author: Siarhei Siamashka -Copyright (C) 2014, Siarhei Siamashka. All Rights Reserved. -Copyright (C) 2014, Linaro Limited. All Rights Reserved. -Copyright (C) 2015, D. R. Commander. All Rights Reserved. -Copyright (C) 2015-2016, Matthieu Darbois. All Rights Reserved. +Copyright 2022 Google Inc. -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -libjpeg-turbo +skia -Copyright (C) 2011, D. R. Commander. +Copyright 2022 Google LLC -Based on the x86 SIMD extension for IJG JPEG library -Copyright (C) 1999-2006, MIYASAKA Masaru. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -libjpeg-turbo +skia -Copyright (C) 2013, MIPS Technologies, Inc., California. -All Rights Reserved. -Authors: Teodora Novkovic (teodora.novkovic@imgtec.com) - Darko Laus (darko.laus@imgtec.com) -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +Copyright 2022 Google LLC. -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. --------------------------------------------------------------------------------- -libjpeg-turbo + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -Copyright (C) 2013-2014, MIPS Technologies, Inc., California. -All Rights Reserved. -Authors: Teodora Novkovic (teodora.novkovic@imgtec.com) - Darko Laus (darko.laus@imgtec.com) -Copyright (C) 2015, D. R. Commander. All Rights Reserved. -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -libjpeg-turbo +skia -Copyright (C) 2014, D. R. Commander. All Rights Reserved. +Copyright 2022 Google, LLC -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -libjpeg-turbo +angle -Copyright (C) 2014-2015, D. R. Commander. All Rights Reserved. +Copyright 2022 The ANGLE Project Authors. All rights reserved. -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: + Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. + Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. + Ltd., nor the names of their contributors may be used to endorse + or promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -libjpeg-turbo +skia +zlib -Copyright (C) 2014-2015, D. R. Commander. All Rights Reserved. -Copyright (C) 2014, Jay Foad. All Rights Reserved. +Copyright 2022 The Chromium Authors. All rights reserved. -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -libjpeg-turbo +fuchsia_sdk -Copyright (C) 2015, D. R. Commander. All Rights Reserved. +Copyright 2022 The Fuchsia Authors. All rights reserved. -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -libjpeg-turbo +angle -Copyright (C)2009-2014 D. R. Commander. All Rights Reserved. +Copyright The ANGLE Project Authors. All rights reserved. Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: +modification, are permitted provided that the following conditions +are met: -- Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. -- Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. -- Neither the name of the libjpeg-turbo Project nor the names of its - contributors may be used to endorse or promote products derived from this - software without specific prior written permission. + Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS", -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. + Ltd., nor the names of their contributors may be used to endorse + or promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -libjpeg-turbo +harfbuzz -Copyright (C)2009-2015 D. R. Commander. All Rights Reserved. +Copyright © 1998-2004 David Turner and Werner Lemberg +Copyright © 2004,2007,2009 Red Hat, Inc. +Copyright © 2011,2012 Google, Inc. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: + This is part of HarfBuzz, a text shaping library. -- Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. -- Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. -- Neither the name of the libjpeg-turbo Project nor the names of its - contributors may be used to endorse or promote products derived from this - software without specific prior written permission. +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS", -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- -libjpeg-turbo +harfbuzz -Copyright (C)2009-2016 D. R. Commander. All Rights Reserved. +Copyright © 1998-2004 David Turner and Werner Lemberg +Copyright © 2004,2007,2009,2010 Red Hat, Inc. +Copyright © 2011,2012 Google, Inc. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: + This is part of HarfBuzz, a text shaping library. -- Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. -- Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. -- Neither the name of the libjpeg-turbo Project nor the names of its - contributors may be used to endorse or promote products derived from this - software without specific prior written permission. +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS", -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- -libjpeg-turbo +harfbuzz -Copyright (C)2011 D. R. Commander. All Rights Reserved. +Copyright © 1998-2004 David Turner and Werner Lemberg +Copyright © 2006 Behdad Esfahbod +Copyright © 2007,2008,2009 Red Hat, Inc. +Copyright © 2012,2013 Google, Inc. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: + This is part of HarfBuzz, a text shaping library. -- Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. -- Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. -- Neither the name of the libjpeg-turbo Project nor the names of its - contributors may be used to endorse or promote products derived from this - software without specific prior written permission. +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS", -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- -libjpeg-turbo +harfbuzz -Copyright (C)2011, 2015 D. R. Commander. All Rights Reserved. +Copyright © 2007 Chris Wilson +Copyright © 2009,2010 Red Hat, Inc. +Copyright © 2011,2012 Google, Inc. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: + This is part of HarfBuzz, a text shaping library. -- Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. -- Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. -- Neither the name of the libjpeg-turbo Project nor the names of its - contributors may be used to endorse or promote products derived from this - software without specific prior written permission. +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS", -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- -libjpeg-turbo +harfbuzz -Copyright (C)2011-2016 D. R. Commander. All Rights Reserved. +Copyright © 2007,2008,2009 Red Hat, Inc. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -- Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. -- Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. -- Neither the name of the libjpeg-turbo Project nor the names of its - contributors may be used to endorse or promote products derived from this - software without specific prior written permission. +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS", -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- -libjpeg-turbo +harfbuzz -Copyright 2009 Pierre Ossman for Cendio AB +Copyright © 2007,2008,2009 Red Hat, Inc. +Copyright © 2010,2011,2012 Google, Inc. -Based on the x86 SIMD extension for IJG JPEG library -Copyright (C) 1999-2006, MIYASAKA Masaru. + This is part of HarfBuzz, a text shaping library. -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- -libjpeg-turbo +harfbuzz -Copyright 2009 Pierre Ossman for Cendio AB +Copyright © 2007,2008,2009 Red Hat, Inc. +Copyright © 2010,2012 Google, Inc. -Based on the x86 SIMD extension for IJG JPEG library, -Copyright (C) 1999-2006, MIYASAKA Masaru. + This is part of HarfBuzz, a text shaping library. -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- -libjpeg-turbo +harfbuzz -Copyright 2009 Pierre Ossman for Cendio AB -Copyright (C) 2009, D. R. Commander. +Copyright © 2007,2008,2009 Red Hat, Inc. +Copyright © 2011,2012 Google, Inc. -Based on the x86 SIMD extension for IJG JPEG library -Copyright (C) 1999-2006, MIYASAKA Masaru. + This is part of HarfBuzz, a text shaping library. -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- -libjpeg-turbo +harfbuzz -Copyright 2009 Pierre Ossman for Cendio AB -Copyright (C) 2009-2011, 2013-2014, 2016, D. R. Commander. -Copyright (C) 2015, Matthieu Darbois. +Copyright © 2007,2008,2009 Red Hat, Inc. +Copyright © 2012 Google, Inc. -Based on the x86 SIMD extension for IJG JPEG library, -Copyright (C) 1999-2006, MIYASAKA Masaru. + This is part of HarfBuzz, a text shaping library. -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- -libjpeg-turbo +harfbuzz -Copyright 2009 Pierre Ossman for Cendio AB -Copyright (C) 2009-2011, 2013-2014, 2016, D. R. Commander. -Copyright (C) 2015-2016, Matthieu Darbois. +Copyright © 2007,2008,2009 Red Hat, Inc. +Copyright © 2012,2013 Google, Inc. -Based on the x86 SIMD extension for IJG JPEG library, -Copyright (C) 1999-2006, MIYASAKA Masaru. + This is part of HarfBuzz, a text shaping library. -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- -libjpeg-turbo +harfbuzz -Copyright 2009 Pierre Ossman for Cendio AB -Copyright (C) 2009-2011, 2014, 2016, D. R. Commander. -Copyright (C) 2015, Matthieu Darbois. +Copyright © 2007,2008,2009 Red Hat, Inc. +Copyright © 2012,2013 Google, Inc. +Copyright © 2019, Facebook Inc. -Based on the x86 SIMD extension for IJG JPEG library, -Copyright (C) 1999-2006, MIYASAKA Masaru. + This is part of HarfBuzz, a text shaping library. -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- -libjpeg-turbo +harfbuzz -Copyright 2009 Pierre Ossman for Cendio AB -Copyright (C) 2009-2011, 2014, D. R. Commander. -Copyright (C) 2013-2014, MIPS Technologies, Inc., California. -Copyright (C) 2015, Matthieu Darbois. +Copyright © 2007,2008,2009 Red Hat, Inc. +Copyright © 2018,2019,2020 Ebrahim Byagowi +Copyright © 2018 Khaled Hosny -Based on the x86 SIMD extension for IJG JPEG library, -Copyright (C) 1999-2006, MIYASAKA Masaru. + This is part of HarfBuzz, a text shaping library. -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- -libjpeg-turbo +harfbuzz -Copyright 2009 Pierre Ossman for Cendio AB -Copyright (C) 2009-2011, 2014, D. R. Commander. -Copyright (C) 2015, Matthieu Darbois. +Copyright © 2007,2008,2009,2010 Red Hat, Inc. +Copyright © 2010,2012 Google, Inc. -Based on the x86 SIMD extension for IJG JPEG library, -Copyright (C) 1999-2006, MIYASAKA Masaru. + This is part of HarfBuzz, a text shaping library. -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- -libjpeg-turbo +harfbuzz -Copyright 2009 Pierre Ossman for Cendio AB -Copyright (C) 2009-2011, 2014-2015, D. R. Commander. -Copyright (C) 2015, Matthieu Darbois. +Copyright © 2007,2008,2009,2010 Red Hat, Inc. +Copyright © 2010,2012,2013 Google, Inc. -Based on the x86 SIMD extension for IJG JPEG library, -Copyright (C) 1999-2006, MIYASAKA Masaru. + This is part of HarfBuzz, a text shaping library. -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- -libjpeg-turbo - -Copyright 2009 Pierre Ossman for Cendio AB -Copyright (C) 2010, D. R. Commander. +harfbuzz -Based on the x86 SIMD extension for IJG JPEG library - version 1.02 +Copyright © 2007,2008,2009,2010 Red Hat, Inc. +Copyright © 2012 Google, Inc. -Copyright (C) 1999-2006, MIYASAKA Masaru. + This is part of HarfBuzz, a text shaping library. -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- -libjpeg-turbo +harfbuzz -Copyright 2009 Pierre Ossman for Cendio AB -Copyright (C) 2011, 2014, D. R. Commander. -Copyright (C) 2015, Matthieu Darbois. +Copyright © 2007,2008,2009,2010 Red Hat, Inc. +Copyright © 2012,2018 Google, Inc. -Based on the x86 SIMD extension for IJG JPEG library, -Copyright (C) 1999-2006, MIYASAKA Masaru. + This is part of HarfBuzz, a text shaping library. -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- -libjpeg-turbo +harfbuzz -Copyright 2009 Pierre Ossman for Cendio AB -Copyright (C) 2011, 2014-2016, D. R. Commander. -Copyright (C) 2013-2014, MIPS Technologies, Inc., California. -Copyright (C) 2014, Linaro Limited. -Copyright (C) 2015-2016, Matthieu Darbois. +Copyright © 2007,2008,2009,2010 Red Hat, Inc. +Copyright © 2012,2018 Google, Inc. +Copyright © 2019 Facebook, Inc. -Based on the x86 SIMD extension for IJG JPEG library, -Copyright (C) 1999-2006, MIYASAKA Masaru. + This is part of HarfBuzz, a text shaping library. -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- -libjpeg-turbo +harfbuzz -Copyright 2009 Pierre Ossman for Cendio AB -Copyright (C) 2011, D. R. Commander. +Copyright © 2009 Red Hat, Inc. -Based on the x86 SIMD extension for IJG JPEG library -Copyright (C) 1999-2006, MIYASAKA Masaru. + This is part of HarfBuzz, a text shaping library. -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- -libjpeg-turbo +harfbuzz -Copyright 2009, 2012 Pierre Ossman for Cendio AB -Copyright (C) 2009, 2012, D. R. Commander. +Copyright © 2009 Red Hat, Inc. +Copyright © 2009 Keith Stribley +Copyright © 2011 Google, Inc. -Based on the x86 SIMD extension for IJG JPEG library -Copyright (C) 1999-2006, MIYASAKA Masaru. + This is part of HarfBuzz, a text shaping library. -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- -libjpeg-turbo +harfbuzz -Copyright 2009, 2012 Pierre Ossman for Cendio AB -Copyright (C) 2012, D. R. Commander. +Copyright © 2009 Red Hat, Inc. +Copyright © 2009 Keith Stribley +Copyright © 2015 Google, Inc. -Based on the x86 SIMD extension for IJG JPEG library -Copyright (C) 1999-2006, MIYASAKA Masaru. + This is part of HarfBuzz, a text shaping library. -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- -libjpeg-turbo +harfbuzz -libjpeg-turbo note: This file has been modified by The libjpeg-turbo Project -to include only information relevant to libjpeg-turbo, to wordsmith certain -sections, and to remove impolitic language that existed in the libjpeg v8 -README. It is included only for reference. Please see README.md for -information specific to libjpeg-turbo. +Copyright © 2009 Red Hat, Inc. +Copyright © 2011 Codethink Limited +Copyright © 2010,2011,2012 Google, Inc. -The Independent JPEG Group's JPEG software -========================================== + This is part of HarfBuzz, a text shaping library. -This distribution contains a release of the Independent JPEG Group's free JPEG -software. You are welcome to redistribute this software and to use it for any -purpose, subject to the conditions under LEGAL ISSUES, below. +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -This software is the work of Tom Lane, Guido Vollbeding, Philip Gladstone, -Bill Allombert, Jim Boucher, Lee Crocker, Bob Friesenhahn, Ben Jackson, -Julian Minguillon, Luis Ortiz, George Phillips, Davide Rossi, Ge' Weijers, -and other members of the Independent JPEG Group. +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -IJG is not affiliated with the ISO/IEC JTC1/SC29/WG1 standards committee -(also known as JPEG, together with ITU-T SG16). +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz -DOCUMENTATION ROADMAP -===================== +Copyright © 2009 Red Hat, Inc. +Copyright © 2011 Codethink Limited +Copyright © 2011,2012 Google, Inc. -This file contains the following sections: + This is part of HarfBuzz, a text shaping library. -OVERVIEW General description of JPEG and the IJG software. -LEGAL ISSUES Copyright, lack of warranty, terms of distribution. -REFERENCES Where to learn more about JPEG. -ARCHIVE LOCATIONS Where to find newer versions of this software. -FILE FORMAT WARS Software *not* to get. -TO DO Plans for future IJG releases. +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -Other documentation files in the distribution are: +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -User documentation: - usage.txt Usage instructions for cjpeg, djpeg, jpegtran, - rdjpgcom, and wrjpgcom. - *.1 Unix-style man pages for programs (same info as usage.txt). - wizard.txt Advanced usage instructions for JPEG wizards only. - change.log Version-to-version change highlights. -Programmer and internal documentation: - libjpeg.txt How to use the JPEG library in your own programs. - example.c Sample code for calling the JPEG library. - structure.txt Overview of the JPEG library's internal structure. - coderules.txt Coding style rules --- please read if you contribute code. +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz -Please read at least usage.txt. Some information can also be found in the JPEG -FAQ (Frequently Asked Questions) article. See ARCHIVE LOCATIONS below to find -out where to obtain the FAQ article. +Copyright © 2009 Red Hat, Inc. +Copyright © 2011 Google, Inc. -If you want to understand how the JPEG code works, we suggest reading one or -more of the REFERENCES, then looking at the documentation files (in roughly -the order listed) before diving into the code. + This is part of HarfBuzz, a text shaping library. -OVERVIEW -======== +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -This package contains C software to implement JPEG image encoding, decoding, -and transcoding. JPEG (pronounced "jay-peg") is a standardized compression -method for full-color and grayscale images. JPEG's strong suit is compressing -photographic images or other types of images that have smooth color and -brightness transitions between neighboring pixels. Images with sharp lines or -other abrupt features may not compress well with JPEG, and a higher JPEG -quality may have to be used to avoid visible compression artifacts with such -images. +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -JPEG is lossy, meaning that the output pixels are not necessarily identical to -the input pixels. However, on photographic content and other "smooth" images, -very good compression ratios can be obtained with no visible compression -artifacts, and extremely high compression ratios are possible if you are -willing to sacrifice image quality (by reducing the "quality" setting in the -compressor.) +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz -This software implements JPEG baseline, extended-sequential, and progressive -compression processes. Provision is made for supporting all variants of these -processes, although some uncommon parameter settings aren't implemented yet. -We have made no provision for supporting the hierarchical or lossless -processes defined in the standard. +Copyright © 2009 Red Hat, Inc. +Copyright © 2012 Google, Inc. -We provide a set of library routines for reading and writing JPEG image files, -plus two sample applications "cjpeg" and "djpeg", which use the library to -perform conversion between JPEG and some other popular image file formats. -The library is intended to be reused in other applications. + This is part of HarfBuzz, a text shaping library. -In order to support file conversion and viewing software, we have included -considerable functionality beyond the bare JPEG coding/decoding capability; -for example, the color quantization modules are not strictly part of JPEG -decoding, but they are essential for output to colormapped file formats or -colormapped displays. These extra functions can be compiled out of the -library if not required for a particular application. +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -We have also included "jpegtran", a utility for lossless transcoding between -different JPEG processes, and "rdjpgcom" and "wrjpgcom", two simple -applications for inserting and extracting textual comments in JFIF files. +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -The emphasis in designing this software has been on achieving portability and -flexibility, while also making it fast enough to be useful. In particular, -the software is not intended to be read as a tutorial on JPEG. (See the -REFERENCES section for introductory material.) Rather, it is intended to -be reliable, portable, industrial-strength code. We do not claim to have -achieved that goal in every aspect of the software, but we strive for it. +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz -We welcome the use of this software as a component of commercial products. -No royalty is required, but we do ask for an acknowledgement in product -documentation, as described under LEGAL ISSUES. +Copyright © 2009 Red Hat, Inc. +Copyright © 2015 Google, Inc. -LEGAL ISSUES -============ + This is part of HarfBuzz, a text shaping library. -In plain English: +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -1. We don't promise that this software works. (But if you find any bugs, - please let us know!) -2. You can use this software for whatever you want. You don't have to pay us. -3. You may not pretend that you wrote this software. If you use it in a - program, you must acknowledge somewhere in your documentation that - you've used the IJG code. +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -In legalese: +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz -The authors make NO WARRANTY or representation, either express or implied, -with respect to this software, its quality, accuracy, merchantability, or -fitness for a particular purpose. This software is provided "AS IS", and you, -its user, assume the entire risk as to its quality and accuracy. +Copyright © 2009 Red Hat, Inc. +Copyright © 2018 Ebrahim Byagowi -This software is copyright (C) 1991-2016, Thomas G. Lane, Guido Vollbeding. -All Rights Reserved except as specified below. + This is part of HarfBuzz, a text shaping library. -Permission is hereby granted to use, copy, modify, and distribute this -software (or portions thereof) for any purpose, without fee, subject to these -conditions: -(1) If any part of the source code for this software is distributed, then this -README file must be included, with this copyright and no-warranty notice -unaltered; and any additions, deletions, or changes to the original files -must be clearly indicated in accompanying documentation. -(2) If only executable code is distributed, then the accompanying -documentation must state that "this software is based in part on the work of -the Independent JPEG Group". -(3) Permission for use of this software is granted only if the user accepts -full responsibility for any undesirable consequences; the authors accept -NO LIABILITY for damages of any kind. +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -These conditions apply to any software derived from or based on the IJG code, -not just to the unmodified library. If you use our work, you ought to -acknowledge us. +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -Permission is NOT granted for the use of any IJG author's name or company name -in advertising or publicity relating to this software or products derived from -it. This software may be referred to only as "the Independent JPEG Group's -software". +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz -We specifically permit and encourage the use of this software as the basis of -commercial products, provided that all warranty or liability claims are -assumed by the product vendor. +Copyright © 2009 Red Hat, Inc. +Copyright © 2018 Google, Inc. -The Unix configuration script "configure" was produced with GNU Autoconf. -It is copyright by the Free Software Foundation but is freely distributable. -The same holds for its supporting scripts (config.guess, config.sub, -ltmain.sh). Another support script, install-sh, is copyright by X Consortium -but is also freely distributable. + This is part of HarfBuzz, a text shaping library. -The IJG distribution formerly included code to read and write GIF files. -To avoid entanglement with the Unisys LZW patent (now expired), GIF reading -support has been removed altogether, and the GIF writer has been simplified -to produce "uncompressed GIFs". This technique does not use the LZW -algorithm; the resulting GIF files are larger than usual, but are readable -by all standard GIF decoders. +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -We are required to state that - "The Graphics Interchange Format(c) is the Copyright property of - CompuServe Incorporated. GIF(sm) is a Service Mark property of - CompuServe Incorporated." +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -REFERENCES -========== +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz -We recommend reading one or more of these references before trying to -understand the innards of the JPEG software. +Copyright © 2009,2010 Red Hat, Inc. +Copyright © 2010,2011,2012 Google, Inc. -The best short technical introduction to the JPEG compression algorithm is - Wallace, Gregory K. "The JPEG Still Picture Compression Standard", - Communications of the ACM, April 1991 (vol. 34 no. 4), pp. 30-44. -(Adjacent articles in that issue discuss MPEG motion picture compression, -applications of JPEG, and related topics.) If you don't have the CACM issue -handy, a PDF file containing a revised version of Wallace's article is -available at http://www.ijg.org/files/Wallace.JPEG.pdf. The file (actually -a preprint for an article that appeared in IEEE Trans. Consumer Electronics) -omits the sample images that appeared in CACM, but it includes corrections -and some added material. Note: the Wallace article is copyright ACM and IEEE, -and it may not be used for commercial purposes. + This is part of HarfBuzz, a text shaping library. -A somewhat less technical, more leisurely introduction to JPEG can be found in -"The Data Compression Book" by Mark Nelson and Jean-loup Gailly, published by -M&T Books (New York), 2nd ed. 1996, ISBN 1-55851-434-1. This book provides -good explanations and example C code for a multitude of compression methods -including JPEG. It is an excellent source if you are comfortable reading C -code but don't know much about data compression in general. The book's JPEG -sample code is far from industrial-strength, but when you are ready to look -at a full implementation, you've got one here... +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -The best currently available description of JPEG is the textbook "JPEG Still -Image Data Compression Standard" by William B. Pennebaker and Joan L. -Mitchell, published by Van Nostrand Reinhold, 1993, ISBN 0-442-01272-1. -Price US$59.95, 638 pp. The book includes the complete text of the ISO JPEG -standards (DIS 10918-1 and draft DIS 10918-2). +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -The original JPEG standard is divided into two parts, Part 1 being the actual -specification, while Part 2 covers compliance testing methods. Part 1 is -titled "Digital Compression and Coding of Continuous-tone Still Images, -Part 1: Requirements and guidelines" and has document numbers ISO/IEC IS -10918-1, ITU-T T.81. Part 2 is titled "Digital Compression and Coding of -Continuous-tone Still Images, Part 2: Compliance testing" and has document -numbers ISO/IEC IS 10918-2, ITU-T T.83. +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz -The JPEG standard does not specify all details of an interchangeable file -format. For the omitted details we follow the "JFIF" conventions, revision -1.02. JFIF 1.02 has been adopted as an Ecma International Technical Report -and thus received a formal publication status. It is available as a free -download in PDF format from -http://www.ecma-international.org/publications/techreports/E-TR-098.htm. -A PostScript version of the JFIF document is available at -http://www.ijg.org/files/jfif.ps.gz. There is also a plain text version at -http://www.ijg.org/files/jfif.txt.gz, but it is missing the figures. +Copyright © 2009,2010 Red Hat, Inc. +Copyright © 2010,2011,2012,2013 Google, Inc. -The TIFF 6.0 file format specification can be obtained by FTP from -ftp://ftp.sgi.com/graphics/tiff/TIFF6.ps.gz. The JPEG incorporation scheme -found in the TIFF 6.0 spec of 3-June-92 has a number of serious problems. -IJG does not recommend use of the TIFF 6.0 design (TIFF Compression tag 6). -Instead, we recommend the JPEG design proposed by TIFF Technical Note #2 -(Compression tag 7). Copies of this Note can be obtained from -http://www.ijg.org/files/. It is expected that the next revision -of the TIFF spec will replace the 6.0 JPEG design with the Note's design. -Although IJG's own code does not support TIFF/JPEG, the free libtiff library -uses our library to implement TIFF/JPEG per the Note. + This is part of HarfBuzz, a text shaping library. -ARCHIVE LOCATIONS -================= +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -The "official" archive site for this software is www.ijg.org. -The most recent released version can always be found there in -directory "files". +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -The JPEG FAQ (Frequently Asked Questions) article is a source of some -general information about JPEG. -It is available on the World Wide Web at http://www.faqs.org/faqs/jpeg-faq -and other news.answers archive sites, including the official news.answers -archive at rtfm.mit.edu: ftp://rtfm.mit.edu/pub/usenet/news.answers/jpeg-faq/. -If you don't have Web or FTP access, send e-mail to mail-server@rtfm.mit.edu -with body - send usenet/news.answers/jpeg-faq/part1 - send usenet/news.answers/jpeg-faq/part2 +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz -FILE FORMAT WARS -================ +Copyright © 2009,2010 Red Hat, Inc. +Copyright © 2010,2011,2013 Google, Inc. -The ISO/IEC JTC1/SC29/WG1 standards committee (also known as JPEG, together -with ITU-T SG16) currently promotes different formats containing the name -"JPEG" which are incompatible with original DCT-based JPEG. IJG therefore does -not support these formats (see REFERENCES). Indeed, one of the original -reasons for developing this free software was to help force convergence on -common, interoperable format standards for JPEG files. -Don't use an incompatible file format! -(In any case, our decoder will remain capable of reading existing JPEG -image files indefinitely.) + This is part of HarfBuzz, a text shaping library. -TO DO -===== +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -Please send bug reports, offers of help, etc. to jpeg-info@jpegclub.org. +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- -libtess2 +harfbuzz -Copyright (C) [dates of first publication] Silicon Graphics, Inc. -All Rights Reserved. +Copyright © 2009,2010 Red Hat, Inc. +Copyright © 2011,2012 Google, Inc. -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: + This is part of HarfBuzz, a text shaping library. -The above copyright notice including the dates of first publication and either this -permission notice or a reference to http://oss.sgi.com/projects/FreeB/ shall be -included in all copies or substantial portions of the Software. +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, -INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A -PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL SILICON GRAPHICS, INC. -BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE -OR OTHER DEALINGS IN THE SOFTWARE. +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -Except as contained in this notice, the name of Silicon Graphics, Inc. shall not -be used in advertising or otherwise to promote the sale, use or other dealings in -this Software without prior written authorization from Silicon Graphics, Inc. +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- -libtess2 +harfbuzz -Copyright (c) 2009 Mikko Mononen memon@inside.org +Copyright © 2010 Google, Inc. -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- -libtess2 +harfbuzz -SGI FREE SOFTWARE LICENSE B (Version 2.0, Sept. 18, 2008) -Copyright (C) [dates of first publication] Silicon Graphics, Inc. -All Rights Reserved. +Copyright © 2010 Red Hat, Inc. +Copyright © 2012 Google, Inc. -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: + This is part of HarfBuzz, a text shaping library. -The above copyright notice including the dates of first publication and either this -permission notice or a reference to http://oss.sgi.com/projects/FreeB/ shall be -included in all copies or substantial portions of the Software. +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, -INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A -PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL SILICON GRAPHICS, INC. -BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE -OR OTHER DEALINGS IN THE SOFTWARE. +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -Except as contained in this notice, the name of Silicon Graphics, Inc. shall not -be used in advertising or otherwise to promote the sale, use or other dealings in -this Software without prior written authorization from Silicon Graphics, Inc. +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- -libwebp - -Copyright (c) 2010, Google Inc. All rights reserved. +harfbuzz -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +Copyright © 2010,2011 Google, Inc. - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. + This is part of HarfBuzz, a text shaping library. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. - * Neither the name of Google nor the names of its contributors may - be used to endorse or promote products derived from this software - without specific prior written permission. +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- -libwebp - -Copyright 2010 Google Inc. All Rights Reserved. +harfbuzz -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +Copyright © 2010,2011,2012 Google, Inc. - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. + This is part of HarfBuzz, a text shaping library. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. - * Neither the name of Google nor the names of its contributors may - be used to endorse or promote products derived from this software - without specific prior written permission. +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- -libwebp - -Copyright 2011 Google Inc. All Rights Reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +harfbuzz - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +Copyright © 2010,2011,2013 Google, Inc. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. + This is part of HarfBuzz, a text shaping library. - * Neither the name of Google nor the names of its contributors may - be used to endorse or promote products derived from this software - without specific prior written permission. +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -libwebp +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -Copyright 2012 Google Inc. All Rights Reserved. +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +Copyright © 2010,2012 Google, Inc. - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. + This is part of HarfBuzz, a text shaping library. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. - * Neither the name of Google nor the names of its contributors may - be used to endorse or promote products derived from this software - without specific prior written permission. +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- -libwebp - -Copyright 2013 Google Inc. All Rights Reserved. +harfbuzz -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +Copyright © 2011 Google, Inc. - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. + This is part of HarfBuzz, a text shaping library. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. - * Neither the name of Google nor the names of its contributors may - be used to endorse or promote products derived from this software - without specific prior written permission. +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- -libwebp - -Copyright 2014 Google Inc. All Rights Reserved. +harfbuzz -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +Copyright © 2011 Martin Hosken +Copyright © 2011 SIL International - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. + This is part of HarfBuzz, a text shaping library. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. - * Neither the name of Google nor the names of its contributors may - be used to endorse or promote products derived from this software - without specific prior written permission. +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- -libwebp - -Copyright 2015 Google Inc. All Rights Reserved. +harfbuzz -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +Copyright © 2011 Martin Hosken +Copyright © 2011 SIL International +Copyright © 2011,2012 Google, Inc. - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. + This is part of HarfBuzz, a text shaping library. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. - * Neither the name of Google nor the names of its contributors may - be used to endorse or promote products derived from this software - without specific prior written permission. +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- -libwebp - -Copyright 2016 Google Inc. All Rights Reserved. +harfbuzz -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +Copyright © 2011,2012 Google, Inc. - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. + This is part of HarfBuzz, a text shaping library. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. - * Neither the name of Google nor the names of its contributors may - be used to endorse or promote products derived from this software - without specific prior written permission. +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- -libwebp +harfbuzz -Copyright 2017 Google Inc. All Rights Reserved. +Copyright © 2011,2012 Google, Inc. +Copyright © 2018 Ebrahim Byagowi -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: + This is part of HarfBuzz, a text shaping library. - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz + +Copyright © 2011,2012,2013 Google, Inc. - * Neither the name of Google nor the names of its contributors may - be used to endorse or promote products derived from this software - without specific prior written permission. + This is part of HarfBuzz, a text shaping library. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -libwebp +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -Copyright 2018 Google Inc. All Rights Reserved. +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +Copyright © 2011,2012,2013 Google, Inc. +Copyright © 2021 Khaled Hosny - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. + This is part of HarfBuzz, a text shaping library. - * Neither the name of Google nor the names of its contributors may - be used to endorse or promote products derived from this software - without specific prior written permission. +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -rapidjson +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -Copyright (c) 2006-2013 Alexander Chemeris +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: +Copyright © 2011,2012,2014 Google, Inc. - 1. Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. + This is part of HarfBuzz, a text shaping library. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. - 3. Neither the name of the product nor the names of its contributors may - be used to endorse or promote products derived from this software - without specific prior written permission. +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED -WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO -EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; -OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF -ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- -rapidjson +harfbuzz -Tencent is pleased to support the open source community by making RapidJSON available. +Copyright © 2011,2014 Google, Inc. -Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. + This is part of HarfBuzz, a text shaping library. -If you have downloaded a copy of the RapidJSON binary from Tencent, please note that the RapidJSON binary is licensed under the MIT License. -If you have downloaded a copy of the RapidJSON source code from Tencent, please note that RapidJSON source code is licensed under the MIT License, except for the third-party components listed below which are subject to different license terms. Your integration of RapidJSON into your own projects may require compliance with the MIT License, as well as the other licenses applicable to the third-party components included within RapidJSON. +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -A copy of the MIT License is included in this file. +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -Other dependencies and licenses: +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz -Open Source Software Licensed Under the BSD License: +Copyright © 2012 Google, Inc. -The msinttypes r29 -Copyright (c) 2006-2013 Alexander Chemeris -All rights reserved. + This is part of HarfBuzz, a text shaping library. -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. -* Neither the name of copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz -Terms of the MIT License: +Copyright © 2012 Mozilla Foundation. -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + This is part of HarfBuzz, a text shaping library. -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --------------------------------------------------------------------------------- -rapidjson +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -Tencent is pleased to support the open source community by making RapidJSON available. +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz -Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. +Copyright © 2012,2013 Google, Inc. -If you have downloaded a copy of the RapidJSON binary from Tencent, please note that the RapidJSON binary is licensed under the MIT License. -If you have downloaded a copy of the RapidJSON source code from Tencent, please note that RapidJSON source code is licensed under the MIT License, except for the third-party components listed below which are subject to different license terms. Your integration of RapidJSON into your own projects may require compliance with the MIT License, as well as the other licenses applicable to the third-party components included within RapidJSON. To avoid the problematic JSON license in your own projects, it's sufficient to exclude the bin/jsonchecker/ directory, as it's the only code under the JSON license. -A copy of the MIT License is included in this file. + This is part of HarfBuzz, a text shaping library. -Other dependencies and licenses: +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -Open Source Software Licensed Under the BSD License: +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -The msinttypes r29 -Copyright (c) 2006-2013 Alexander Chemeris -All rights reserved. +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: +Copyright © 2012,2013 Mozilla Foundation. +Copyright © 2012,2013 Google, Inc. -* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. -* Neither the name of copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. + This is part of HarfBuzz, a text shaping library. -THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -Open Source Software Licensed Under the JSON License: +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -json.org -Copyright (c) 2002 JSON.org -All Rights Reserved. +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz -JSON_checker -Copyright (c) 2002 JSON.org -All Rights Reserved. +Copyright © 2012,2017 Google, Inc. +Copyright © 2021 Behdad Esfahbod -Terms of the JSON License: + This is part of HarfBuzz, a text shaping library. -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -The Software shall be used for Good, not Evil. +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +Copyright © 2012,2018 Google, Inc. -Terms of the MIT License: + This is part of HarfBuzz, a text shaping library. -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- -rapidjson - -The MIT License (MIT) +harfbuzz -Copyright (c) 2017 Bart Muzzin +Copyright © 2013 Google, Inc. -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: + This is part of HarfBuzz, a text shaping library. -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -Derived from: +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz -The MIT License (MIT) +Copyright © 2013 Red Hat, Inc. -Copyright (c) 2015 mojmir svoboda + This is part of HarfBuzz, a text shaping library. -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- -root_certificates - -Mozilla Public License -Version 2.0 - -1. Definitions +harfbuzz -1.1. “Contributor” +Copyright © 2014 Google, Inc. -means each individual or legal entity that creates, contributes to the creation of, or owns Covered Software. + This is part of HarfBuzz, a text shaping library. -1.2. “Contributor Version” +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -means the combination of the Contributions of others (if any) used by a Contributor and that particular Contributor’s Contribution. +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -1.3. “Contribution” +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz -means Covered Software of a particular Contributor. +Copyright © 2015 Google, Inc. +Copyright © 2019 Adobe Inc. +Copyright © 2019 Ebrahim Byagowi -1.4. “Covered Software” + This is part of HarfBuzz, a text shaping library. -means Source Code Form to which the initial Contributor has attached the notice in Exhibit A, the Executable Form of such Source Code Form, and Modifications of such Source Code Form, in each case including portions thereof. +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -1.5. “Incompatible With Secondary Licenses” +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -means +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz - a. that the initial Contributor has attached the notice described in Exhibit B to the Covered Software; or +Copyright © 2015 Mozilla Foundation. +Copyright © 2015 Google, Inc. - b. that the Covered Software was made available under the terms of version 1.1 or earlier of the License, but not also under the terms of a Secondary License. + This is part of HarfBuzz, a text shaping library. -1.6. “Executable Form” +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -means any form of the work other than Source Code Form. +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -1.7. “Larger Work” +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz -means a work that combines Covered Software with other material, in a separate file or files, that is not Covered Software. +Copyright © 2015-2019 Ebrahim Byagowi -1.8. “License” + This is part of HarfBuzz, a text shaping library. -means this document. +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -1.9. “Licensable” +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently, any and all of the rights conveyed by this License. +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz -1.10. “Modifications” +Copyright © 2016 Elie Roux +Copyright © 2018 Google, Inc. +Copyright © 2018-2019 Ebrahim Byagowi -means any of the following: + This is part of HarfBuzz, a text shaping library. - a. any file in Source Code Form that results from an addition to, deletion from, or modification of the contents of Covered Software; or +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. - b. any new file in Source Code Form that contains any Covered Software. +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -1.11. “Patent Claims” of a Contributor +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz -means any patent claim(s), including without limitation, method, process, and apparatus claims, in any patent Licensable by such Contributor that would be infringed, but for the grant of the License, by the making, using, selling, offering for sale, having made, import, or transfer of either its Contributions or its Contributor Version. +Copyright © 2016 Google, Inc. -1.12. “Secondary License” + This is part of HarfBuzz, a text shaping library. -means either the GNU General Public License, Version 2.0, the GNU Lesser General Public License, Version 2.1, the GNU Affero General Public License, Version 3.0, or any later versions of those licenses. +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -1.13. “Source Code Form” +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -means the form of the work preferred for making modifications. +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz -1.14. “You” (or “Your”) +Copyright © 2016 Google, Inc. +Copyright © 2018 Ebrahim Byagowi -means an individual or a legal entity exercising rights under this License. For legal entities, “You” includes any entity that controls, is controlled by, or is under common control with You. For purposes of this definition, “control” means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. + This is part of HarfBuzz, a text shaping library. -2. License Grants and Conditions +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -2.1. Grants +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -Each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license: +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz - a. under intellectual property rights (other than patent or trademark) Licensable by such Contributor to use, reproduce, make available, modify, display, perform, distribute, and otherwise exploit its Contributions, either on an unmodified basis, with Modifications, or as part of a Larger Work; and +Copyright © 2016 Google, Inc. +Copyright © 2018 Khaled Hosny +Copyright © 2018 Ebrahim Byagowi - b. under Patent Claims of such Contributor to make, use, sell, offer for sale, have made, import, and otherwise transfer either its Contributions or its Contributor Version. + This is part of HarfBuzz, a text shaping library. -2.2. Effective Date +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -The licenses granted in Section 2.1 with respect to any Contribution become effective for each Contribution on the date the Contributor first distributes such Contribution. +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -2.3. Limitations on Grant Scope +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz -The licenses granted in this Section 2 are the only rights granted under this License. No additional rights or licenses will be implied from the distribution or licensing of Covered Software under this License. Notwithstanding Section 2.1(b) above, no patent license is granted by a Contributor: +Copyright © 2016 Igalia S.L. - a. for any code that a Contributor has removed from Covered Software; or + This is part of HarfBuzz, a text shaping library. - b. for infringements caused by: (i) Your and any other third party’s modifications of Covered Software, or (ii) the combination of its Contributions with other software (except as part of its Contributor Version); or +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. - c. under Patent Claims infringed by Covered Software in the absence of its Contributions. +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -This License does not grant any rights in the trademarks, service marks, or logos of any Contributor (except as may be necessary to comply with the notice requirements in Section 3.4). +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz -2.4. Subsequent Licenses +Copyright © 2017 Google, Inc. -No Contributor makes additional grants as a result of Your choice to distribute the Covered Software under a subsequent version of this License (see Section 10.2) or under the terms of a Secondary License (if permitted under the terms of Section 3.3). + This is part of HarfBuzz, a text shaping library. -2.5. Representation +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -Each Contributor represents that the Contributor believes its Contributions are its original creation(s) or it has sufficient rights to grant the rights to its Contributions conveyed by this License. +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -2.6. Fair Use +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz -This License is not intended to limit any rights You have under applicable copyright doctrines of fair use, fair dealing, or other equivalents. +Copyright © 2017 Google, Inc. +Copyright © 2018 Ebrahim Byagowi -2.7. Conditions + This is part of HarfBuzz, a text shaping library. -Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted in Section 2.1. +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -3. Responsibilities +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -3.1. Distribution of Source Form +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz -All distribution of Covered Software in Source Code Form, including any Modifications that You create or to which You contribute, must be under the terms of this License. You must inform recipients that the Source Code Form of the Covered Software is governed by the terms of this License, and how they can obtain a copy of this License. You may not attempt to alter or restrict the recipients’ rights in the Source Code Form. +Copyright © 2017 Google, Inc. +Copyright © 2019 Facebook, Inc. -3.2. Distribution of Executable Form + This is part of HarfBuzz, a text shaping library. -If You distribute Covered Software in Executable Form then: +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. - a. such Covered Software must also be made available in Source Code Form, as described in Section 3.1, and You must inform recipients of the Executable Form how they can obtain a copy of such Source Code Form by reasonable means in a timely manner, at a charge no more than the cost of distribution to the recipient; and +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. - b. You may distribute such Executable Form under the terms of this License, or sublicense it under different terms, provided that the license for the Executable Form does not attempt to limit or alter the recipients’ rights in the Source Code Form under this License. +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz -3.3. Distribution of a Larger Work +Copyright © 2017,2018 Google, Inc. -You may create and distribute a Larger Work under terms of Your choice, provided that You also comply with the requirements of this License for the Covered Software. If the Larger Work is a combination of Covered Software with a work governed by one or more Secondary Licenses, and the Covered Software is not Incompatible With Secondary Licenses, this License permits You to additionally distribute such Covered Software under the terms of such Secondary License(s), so that the recipient of the Larger Work may, at their option, further distribute the Covered Software under the terms of either this License or such Secondary License(s). + This is part of HarfBuzz, a text shaping library. -3.4. Notices +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -You may not remove or alter the substance of any license notices (including copyright notices, patent notices, disclaimers of warranty, or limitations of liability) contained within the Source Code Form of the Covered Software, except that You may alter any license notices to the extent required to remedy known factual inaccuracies. +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -3.5. Application of Additional Terms +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz -You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Software. However, You may do so only on Your own behalf, and not on behalf of any Contributor. You must make it absolutely clear that any such warranty, support, indemnity, or liability obligation is offered by You alone, and You hereby agree to indemnify every Contributor for any liability incurred by such Contributor as a result of warranty, support, indemnity or liability terms You offer. You may include additional disclaimers of warranty and limitations of liability specific to any jurisdiction. +Copyright © 2018 Ebrahim Byagowi -4. Inability to Comply Due to Statute or Regulation + This is part of HarfBuzz, a text shaping library. -If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Software due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be placed in a text file included with all distributions of the Covered Software under this License. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -5. Termination +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -5.1. The rights granted under this License will terminate automatically if You fail to comply with any of its terms. However, if You become compliant, then the rights granted under this License from a particular Contributor are reinstated (a) provisionally, unless and until such Contributor explicitly and finally terminates Your grants, and (b) on an ongoing basis, if such Contributor fails to notify You of the non-compliance by some reasonable means prior to 60 days after You have come back into compliance. Moreover, Your grants from a particular Contributor are reinstated on an ongoing basis if such Contributor notifies You of the non-compliance by some reasonable means, this is the first time You have received notice of non-compliance with this License from such Contributor, and You become compliant prior to 30 days after Your receipt of the notice. +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz -5.2. If You initiate litigation against any entity by asserting a patent infringement claim (excluding declaratory judgment actions, counter-claims, and cross-claims) alleging that a Contributor Version directly or indirectly infringes any patent, then the rights granted to You by any and all Contributors for the Covered Software under Section 2.1 of this License shall terminate. +Copyright © 2018 Ebrahim Byagowi +Copyright © 2018 Google, Inc. -5.3. In the event of termination under Sections 5.1 or 5.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or Your distributors under this License prior to termination shall survive termination. + This is part of HarfBuzz, a text shaping library. -6. Disclaimer of Warranty +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. - Covered Software is provided under this License on an “as is” basis, without warranty of any kind, either expressed, implied, or statutory, including, without limitation, warranties that the Covered Software is free of defects, merchantable, fit for a particular purpose or non-infringing. The entire risk as to the quality and performance of the Covered Software is with You. Should any Covered Software prove defective in any respect, You (not any Contributor) assume the cost of any necessary servicing, repair, or correction. This disclaimer of warranty constitutes an essential part of this License. No use of any Covered Software is authorized under this License except under this disclaimer. +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -7. Limitation of Liability +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz - Under no circumstances and under no legal theory, whether tort (including negligence), contract, or otherwise, shall any Contributor, or anyone who distributes Covered Software as permitted above, be liable to You for any direct, indirect, special, incidental, or consequential damages of any character including, without limitation, damages for lost profits, loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses, even if such party shall have been informed of the possibility of such damages. This limitation of liability shall not apply to liability for death or personal injury resulting from such party’s negligence to the extent applicable law prohibits such limitation. Some jurisdictions do not allow the exclusion or limitation of incidental or consequential damages, so this exclusion and limitation may not apply to You. +Copyright © 2018 Ebrahim Byagowi +Copyright © 2020 Google, Inc. -8. Litigation + This is part of HarfBuzz, a text shaping library. -Any litigation relating to this License may be brought only in the courts of a jurisdiction where the defendant maintains its principal place of business and such litigation shall be governed by laws of that jurisdiction, without reference to its conflict-of-law provisions. Nothing in this Section shall prevent a party’s ability to bring cross-claims or counter-claims. +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -9. Miscellaneous +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -This License represents the complete agreement concerning the subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not be used to construe this License against a Contributor. +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz -10. Versions of the License +Copyright © 2018 Ebrahim Byagowi. -10.1. New Versions + This is part of HarfBuzz, a text shaping library. -Mozilla Foundation is the license steward. Except as provided in Section 10.3, no one other than the license steward has the right to modify or publish new versions of this License. Each version will be given a distinguishing version number. +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -10.2. Effect of New Versions +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -You may distribute the Covered Software under the terms of the version of the License under which You originally received the Covered Software, or under the terms of any subsequent version published by the license steward. +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz -10.3. Modified Versions +Copyright © 2018 Google, Inc. -If you create software not governed by this License, and you want to create a new license for such software, you may create and use a modified version of this License if you rename the license and remove any references to the name of the license steward (except to note that such modified license differs from this License). + This is part of HarfBuzz, a text shaping library. -10.4. Distributing Source Code Form that is Incompatible With Secondary Licenses +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -If You choose to distribute Source Code Form that is Incompatible With Secondary Licenses under the terms of this version of the License, the notice described in Exhibit B of this License must be attached. +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -Exhibit A - Source Code Form License Notice +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz - This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at https://mozilla.org/MPL/2.0/. +Copyright © 2018 Google, Inc. +Copyright © 2019 Facebook, Inc. -If it is not possible or desirable to put the notice in a particular file, then You may include the notice in a location (such as a LICENSE file in a relevant directory) where a recipient would be likely to look for such a notice. + This is part of HarfBuzz, a text shaping library. -You may add additional accurate notices of copyright ownership. +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -Exhibit B - “Incompatible With Secondary Licenses” Notice +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. - This Source Code Form is “Incompatible With Secondary Licenses”, as defined by the Mozilla Public License, v. 2.0. +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- -root_certificates +harfbuzz -Mozilla Public License Version 2.0 -================================== +Copyright © 2018 Adobe Inc. -1. Definitions + This is part of HarfBuzz, a text shaping library. -1.1. "Contributor" - means each individual or legal entity that creates, contributes to - the creation of, or owns Covered Software. +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -1.2. "Contributor Version" - means the combination of the Contributions of others (if any) used - by a Contributor and that particular Contributor's Contribution. +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -1.3. "Contribution" - means Covered Software of a particular Contributor. +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz -1.4. "Covered Software" - means Source Code Form to which the initial Contributor has attached - the notice in Exhibit A, the Executable Form of such Source Code - Form, and Modifications of such Source Code Form, in each case - including portions thereof. +Copyright © 2018-2019 Ebrahim Byagowi -1.5. "Incompatible With Secondary Licenses" - means + This is part of HarfBuzz, a text shaping library. - (a) that the initial Contributor has attached the notice described - in Exhibit B to the Covered Software; or +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. - (b) that the Covered Software was made available under the terms of - version 1.1 or earlier of the License, but not also under the - terms of a Secondary License. +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -1.6. "Executable Form" - means any form of the work other than Source Code Form. +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz -1.7. "Larger Work" - means a work that combines Covered Software with other material, in - a separate file or files, that is not Covered Software. +Copyright © 2019 Adobe Inc. +Copyright © 2019 Ebrahim Byagowi -1.8. "License" - means this document. + This is part of HarfBuzz, a text shaping library. -1.9. "Licensable" - means having the right to grant, to the maximum extent possible, - whether at the time of the initial grant or subsequently, any and - all of the rights conveyed by this License. +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -1.10. "Modifications" - means any of the following: +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. - (a) any file in Source Code Form that results from an addition to, - deletion from, or modification of the contents of Covered - Software; or +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz - (b) any new file in Source Code Form that contains any Covered - Software. +Copyright © 2019 Adobe, Inc. -1.11. "Patent Claims" of a Contributor - means any patent claim(s), including without limitation, method, - process, and apparatus claims, in any patent Licensable by such - Contributor that would be infringed, but for the grant of the - License, by the making, using, selling, offering for sale, having - made, import, or transfer of either its Contributions or its - Contributor Version. + This is part of HarfBuzz, a text shaping library. -1.12. "Secondary License" - means either the GNU General Public License, Version 2.0, the GNU - Lesser General Public License, Version 2.1, the GNU Affero General - Public License, Version 3.0, or any later versions of those - licenses. +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -1.13. "Source Code Form" - means the form of the work preferred for making modifications. +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -1.14. "You" (or "Your") - means an individual or a legal entity exercising rights under this - License. For legal entities, "You" includes any entity that - controls, is controlled by, or is under common control with You. For - purposes of this definition, "control" means (a) the power, direct - or indirect, to cause the direction or management of such entity, - whether by contract or otherwise, or (b) ownership of more than - fifty percent (50%) of the outstanding shares or beneficial - ownership of such entity. +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz -2. License Grants and Conditions +Copyright © 2019 Ebrahim Byagowi -2.1. Grants + This is part of HarfBuzz, a text shaping library. -Each Contributor hereby grants You a world-wide, royalty-free, -non-exclusive license: +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -(a) under intellectual property rights (other than patent or trademark) - Licensable by such Contributor to use, reproduce, make available, - modify, display, perform, distribute, and otherwise exploit its - Contributions, either on an unmodified basis, with Modifications, or - as part of a Larger Work; and +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz -(b) under Patent Claims of such Contributor to make, use, sell, offer - for sale, have made, import, and otherwise transfer either its - Contributions or its Contributor Version. +Copyright © 2019 Facebook, Inc. -2.2. Effective Date + This is part of HarfBuzz, a text shaping library. -The licenses granted in Section 2.1 with respect to any Contribution -become effective for each Contribution on the date the Contributor first -distributes such Contribution. +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -2.3. Limitations on Grant Scope +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -The licenses granted in this Section 2 are the only rights granted under -this License. No additional rights or licenses will be implied from the -distribution or licensing of Covered Software under this License. -Notwithstanding Section 2.1(b) above, no patent license is granted by a -Contributor: +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz -(a) for any code that a Contributor has removed from Covered Software; - or +Copyright © 2019 Adobe Inc. -(b) for infringements caused by: (i) Your and any other third party's - modifications of Covered Software, or (ii) the combination of its - Contributions with other software (except as part of its Contributor - Version); or + This is part of HarfBuzz, a text shaping library. -(c) under Patent Claims infringed by Covered Software in the absence of - its Contributions. +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -This License does not grant any rights in the trademarks, service marks, -or logos of any Contributor (except as may be necessary to comply with -the notice requirements in Section 3.4). +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -2.4. Subsequent Licenses +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz -No Contributor makes additional grants as a result of Your choice to -distribute the Covered Software under a subsequent version of this -License (see Section 10.2) or under the terms of a Secondary License (if -permitted under the terms of Section 3.3). +Copyright © 2019-2020 Ebrahim Byagowi -2.5. Representation + This is part of HarfBuzz, a text shaping library. -Each Contributor represents that the Contributor believes its -Contributions are its original creation(s) or it has sufficient rights -to grant the rights to its Contributions conveyed by this License. +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -2.6. Fair Use +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -This License is not intended to limit any rights You have under -applicable copyright doctrines of fair use, fair dealing, or other -equivalents. +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz -2.7. Conditions +Copyright © 2020 Ebrahim Byagowi -Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted -in Section 2.1. + This is part of HarfBuzz, a text shaping library. -3. Responsibilities +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -3.1. Distribution of Source Form +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -All distribution of Covered Software in Source Code Form, including any -Modifications that You create or to which You contribute, must be under -the terms of this License. You must inform recipients that the Source -Code Form of the Covered Software is governed by the terms of this -License, and how they can obtain a copy of this License. You may not -attempt to alter or restrict the recipients' rights in the Source Code -Form. +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz -3.2. Distribution of Executable Form +Copyright © 2020 Google, Inc. -If You distribute Covered Software in Executable Form then: + This is part of HarfBuzz, a text shaping library. -(a) such Covered Software must also be made available in Source Code - Form, as described in Section 3.1, and You must inform recipients of - the Executable Form how they can obtain a copy of such Source Code - Form by reasonable means in a timely manner, at a charge no more - than the cost of distribution to the recipient; and +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -(b) You may distribute such Executable Form under the terms of this - License, or sublicense it under different terms, provided that the - license for the Executable Form does not attempt to limit or alter - the recipients' rights in the Source Code Form under this License. +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -3.3. Distribution of a Larger Work +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz -You may create and distribute a Larger Work under terms of Your choice, -provided that You also comply with the requirements of this License for -the Covered Software. If the Larger Work is a combination of Covered -Software with a work governed by one or more Secondary Licenses, and the -Covered Software is not Incompatible With Secondary Licenses, this -License permits You to additionally distribute such Covered Software -under the terms of such Secondary License(s), so that the recipient of -the Larger Work may, at their option, further distribute the Covered -Software under the terms of either this License or such Secondary -License(s). +Copyright © 2021 Behdad Esfahbod -3.4. Notices + This is part of HarfBuzz, a text shaping library. -You may not remove or alter the substance of any license notices -(including copyright notices, patent notices, disclaimers of warranty, -or limitations of liability) contained within the Source Code Form of -the Covered Software, except that You may alter any license notices to -the extent required to remedy known factual inaccuracies. +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -3.5. Application of Additional Terms +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -You may choose to offer, and to charge a fee for, warranty, support, -indemnity or liability obligations to one or more recipients of Covered -Software. However, You may do so only on Your own behalf, and not on -behalf of any Contributor. You must make it absolutely clear that any -such warranty, support, indemnity, or liability obligation is offered by -You alone, and You hereby agree to indemnify every Contributor for any -liability incurred by such Contributor as a result of warranty, support, -indemnity or liability terms You offer. You may include additional -disclaimers of warranty and limitations of liability specific to any -jurisdiction. +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz -4. Inability to Comply Due to Statute or Regulation +Copyright © 2021 Behdad Esfahbod. -If it is impossible for You to comply with any of the terms of this -License with respect to some or all of the Covered Software due to -statute, judicial order, or regulation then You must: (a) comply with -the terms of this License to the maximum extent possible; and (b) -describe the limitations and the code they affect. Such description must -be placed in a text file included with all distributions of the Covered -Software under this License. Except to the extent prohibited by statute -or regulation, such description must be sufficiently detailed for a -recipient of ordinary skill to be able to understand it. + This is part of HarfBuzz, a text shaping library. -5. Termination +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -5.1. The rights granted under this License will terminate automatically -if You fail to comply with any of its terms. However, if You become -compliant, then the rights granted under this License from a particular -Contributor are reinstated (a) provisionally, unless and until such -Contributor explicitly and finally terminates Your grants, and (b) on an -ongoing basis, if such Contributor fails to notify You of the -non-compliance by some reasonable means prior to 60 days after You have -come back into compliance. Moreover, Your grants from a particular -Contributor are reinstated on an ongoing basis if such Contributor -notifies You of the non-compliance by some reasonable means, this is the -first time You have received notice of non-compliance with this License -from such Contributor, and You become compliant prior to 30 days after -Your receipt of the notice. +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -5.2. If You initiate litigation against any entity by asserting a patent -infringement claim (excluding declaratory judgment actions, -counter-claims, and cross-claims) alleging that a Contributor Version -directly or indirectly infringes any patent, then the rights granted to -You by any and all Contributors for the Covered Software under Section -2.1 of this License shall terminate. +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz -5.3. In the event of termination under Sections 5.1 or 5.2 above, all -end user license agreements (excluding distributors and resellers) which -have been validly granted by You or Your distributors under this License -prior to termination shall survive termination. +Copyright © 2021 Google, Inc. -* 6. Disclaimer of Warranty + This is part of HarfBuzz, a text shaping library. -* Covered Software is provided under this License on an "as is" -* basis, without warranty of any kind, either expressed, implied, or -* statutory, including, without limitation, warranties that the -* Covered Software is free of defects, merchantable, fit for a -* particular purpose or non-infringing. The entire risk as to the -* quality and performance of the Covered Software is with You. -* Should any Covered Software prove defective in any respect, You -* (not any Contributor) assume the cost of any necessary servicing, -* repair, or correction. This disclaimer of warranty constitutes an -* essential part of this License. No use of any Covered Software is -* authorized under this License except under this disclaimer. +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -* 7. Limitation of Liability +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -* Under no circumstances and under no legal theory, whether tort -* (including negligence), contract, or otherwise, shall any -* Contributor, or anyone who distributes Covered Software as -* permitted above, be liable to You for any direct, indirect, -* special, incidental, or consequential damages of any character -* including, without limitation, damages for lost profits, loss of -* goodwill, work stoppage, computer failure or malfunction, or any -* and all other commercial damages or losses, even if such party -* shall have been informed of the possibility of such damages. This -* limitation of liability shall not apply to liability for death or -* personal injury resulting from such party's negligence to the -* extent applicable law prohibits such limitation. Some -* jurisdictions do not allow the exclusion or limitation of -* incidental or consequential damages, so this exclusion and -* limitation may not apply to You. +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz -8. Litigation +HarfBuzz is licensed under the so-called "Old MIT" license. Details follow. +For parts of HarfBuzz that are licensed under different licenses see individual +files names COPYING in subdirectories where applicable. -Any litigation relating to this License may be brought only in the -courts of a jurisdiction where the defendant maintains its principal -place of business and such litigation shall be governed by laws of that -jurisdiction, without reference to its conflict-of-law provisions. -Nothing in this Section shall prevent a party's ability to bring -cross-claims or counter-claims. +Copyright © 2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020 Google, Inc. +Copyright © 2018,2019,2020 Ebrahim Byagowi +Copyright © 2019,2020 Facebook, Inc. +Copyright © 2012 Mozilla Foundation +Copyright © 2011 Codethink Limited +Copyright © 2008,2010 Nokia Corporation and/or its subsidiary(-ies) +Copyright © 2009 Keith Stribley +Copyright © 2009 Martin Hosken and SIL International +Copyright © 2007 Chris Wilson +Copyright © 2005,2006,2020,2021 Behdad Esfahbod +Copyright © 2005 David Turner +Copyright © 2004,2007,2008,2009,2010 Red Hat, Inc. +Copyright © 1998-2004 David Turner and Werner Lemberg -9. Miscellaneous +For full copyright notices consult the individual files in the package. -This License represents the complete agreement concerning the subject -matter hereof. If any provision of this License is held to be -unenforceable, such provision shall be reformed only to the extent -necessary to make it enforceable. Any law or regulation which provides -that the language of a contract shall be construed against the drafter -shall not be used to construe this License against a Contributor. +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. -10. Versions of the License +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. -10.1. New Versions +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +json -Mozilla Foundation is the license steward. Except as provided in Section -10.3, no one other than the license steward has the right to modify or -publish new versions of this License. Each version will be given a -distinguishing version number. +MIT License -10.2. Effect of New Versions +Copyright (c) 2013-2022 Niels Lohmann -You may distribute the Covered Software under the terms of the version -of the License under which You originally received the Covered Software, -or under the terms of any subsequent version published by the license -steward. +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: -10.3. Modified Versions +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. -If you create software not governed by this License, and you want to -create a new license for such software, you may create and use a -modified version of this License if you rename the license and remove -any references to the name of the license steward (except to note that -such modified license differs from this License). +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +-------------------------------------------------------------------------------- +angle -10.4. Distributing Source Code Form that is Incompatible With Secondary -Licenses +MIT License -If You choose to distribute Source Code Form that is Incompatible With -Secondary Licenses under the terms of this version of the License, the -notice described in Exhibit B of this License must be attached. +Copyright (c) 2021 e_t -Exhibit A - Source Code Form License Notice +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: - This Source Code Form is subject to the terms of the Mozilla Public - License, v. 2.0. If a copy of the MPL was not distributed with this - file, You can obtain one at http://mozilla.org/MPL/2.0/. +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. -If it is not possible or desirable to put the notice in a particular -file, then You may include the notice in a location (such as a LICENSE -file in a relevant directory) where a recipient would be likely to look -for such a notice. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +-------------------------------------------------------------------------------- +root_certificates -You may add additional accurate notices of copyright ownership. +Mozilla Public License +Version 2.0 -Exhibit B - "Incompatible With Secondary Licenses" Notice +1. Definitions - This Source Code Form is "Incompatible With Secondary Licenses", as - defined by the Mozilla Public License, v. 2.0. --------------------------------------------------------------------------------- -skia +1.1. “Contributor” -Copyright (C) 2014 Google Inc. All rights reserved. +means each individual or legal entity that creates, contributes to the creation of, or owns Covered Software. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +1.2. “Contributor Version” - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +means the combination of the Contributions of others (if any) used by a Contributor and that particular Contributor’s Contribution. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. +1.3. “Contribution” - * Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. +means Covered Software of a particular Contributor. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -skia +1.4. “Covered Software” -Copyright (c) 2011 Google Inc. All rights reserved. +means Source Code Form to which the initial Contributor has attached the notice in Exhibit A, the Executable Form of such Source Code Form, and Modifications of such Source Code Form, in each case including portions thereof. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +1.5. “Incompatible With Secondary Licenses” - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +means - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. + a. that the initial Contributor has attached the notice described in Exhibit B to the Covered Software; or - * Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. + b. that the Covered Software was made available under the terms of version 1.1 or earlier of the License, but not also under the terms of a Secondary License. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -skia +1.6. “Executable Form” -Copyright (c) 2014 Google Inc. +means any form of the work other than Source Code Form. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +1.7. “Larger Work” - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +means a work that combines Covered Software with other material, in a separate file or files, that is not Covered Software. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. +1.8. “License” - * Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. +means this document. + +1.9. “Licensable” -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -skia +means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently, any and all of the rights conveyed by this License. -Copyright (c) 2014-2016 The Khronos Group Inc. +1.10. “Modifications” -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and/or associated documentation files (the "Materials"), -to deal in the Materials without restriction, including without limitation -the rights to use, copy, modify, merge, publish, distribute, sublicense, -and/or sell copies of the Materials, and to permit persons to whom the -Materials are furnished to do so, subject to the following conditions: +means any of the following: -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Materials. --------------------------------------------------------------------------------- -skia + a. any file in Source Code Form that results from an addition to, deletion from, or modification of the contents of Covered Software; or -Copyright 2005 The Android Open Source Project + b. any new file in Source Code Form that contains any Covered Software. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +1.11. “Patent Claims” of a Contributor - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +means any patent claim(s), including without limitation, method, process, and apparatus claims, in any patent Licensable by such Contributor that would be infringed, but for the grant of the License, by the making, using, selling, offering for sale, having made, import, or transfer of either its Contributions or its Contributor Version. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. +1.12. “Secondary License” - * Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. +means either the GNU General Public License, Version 2.0, the GNU Lesser General Public License, Version 2.1, the GNU Affero General Public License, Version 3.0, or any later versions of those licenses. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -skia +1.13. “Source Code Form” -Copyright 2006 The Android Open Source Project +means the form of the work preferred for making modifications. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +1.14. “You” (or “Your”) - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +means an individual or a legal entity exercising rights under this License. For legal entities, “You” includes any entity that controls, is controlled by, or is under common control with You. For purposes of this definition, “control” means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. +2. License Grants and Conditions - * Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. +2.1. Grants -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -skia +Each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license: -Copyright 2006-2012 The Android Open Source Project -Copyright 2012 Mozilla Foundation + a. under intellectual property rights (other than patent or trademark) Licensable by such Contributor to use, reproduce, make available, modify, display, perform, distribute, and otherwise exploit its Contributions, either on an unmodified basis, with Modifications, or as part of a Larger Work; and -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: + b. under Patent Claims of such Contributor to make, use, sell, offer for sale, have made, import, and otherwise transfer either its Contributions or its Contributor Version. - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +2.2. Effective Date - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. +The licenses granted in Section 2.1 with respect to any Contribution become effective for each Contribution on the date the Contributor first distributes such Contribution. - * Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. +2.3. Limitations on Grant Scope -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -skia +The licenses granted in this Section 2 are the only rights granted under this License. No additional rights or licenses will be implied from the distribution or licensing of Covered Software under this License. Notwithstanding Section 2.1(b) above, no patent license is granted by a Contributor: -Copyright 2007 The Android Open Source Project + a. for any code that a Contributor has removed from Covered Software; or -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: + b. for infringements caused by: (i) Your and any other third party’s modifications of Covered Software, or (ii) the combination of its Contributions with other software (except as part of its Contributor Version); or - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. + c. under Patent Claims infringed by Covered Software in the absence of its Contributions. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. +This License does not grant any rights in the trademarks, service marks, or logos of any Contributor (except as may be necessary to comply with the notice requirements in Section 3.4). - * Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. +2.4. Subsequent Licenses -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -skia +No Contributor makes additional grants as a result of Your choice to distribute the Covered Software under a subsequent version of this License (see Section 10.2) or under the terms of a Secondary License (if permitted under the terms of Section 3.3). -Copyright 2008 Google Inc. +2.5. Representation -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +Each Contributor represents that the Contributor believes its Contributions are its original creation(s) or it has sufficient rights to grant the rights to its Contributions conveyed by this License. - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +2.6. Fair Use - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. +This License is not intended to limit any rights You have under applicable copyright doctrines of fair use, fair dealing, or other equivalents. - * Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. +2.7. Conditions -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -skia +Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted in Section 2.1. -Copyright 2008 The Android Open Source Project +3. Responsibilities -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +3.1. Distribution of Source Form - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +All distribution of Covered Software in Source Code Form, including any Modifications that You create or to which You contribute, must be under the terms of this License. You must inform recipients that the Source Code Form of the Covered Software is governed by the terms of this License, and how they can obtain a copy of this License. You may not attempt to alter or restrict the recipients’ rights in the Source Code Form. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. +3.2. Distribution of Executable Form - * Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. +If You distribute Covered Software in Executable Form then: -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -skia + a. such Covered Software must also be made available in Source Code Form, as described in Section 3.1, and You must inform recipients of the Executable Form how they can obtain a copy of such Source Code Form by reasonable means in a timely manner, at a charge no more than the cost of distribution to the recipient; and -Copyright 2009 The Android Open Source Project + b. You may distribute such Executable Form under the terms of this License, or sublicense it under different terms, provided that the license for the Executable Form does not attempt to limit or alter the recipients’ rights in the Source Code Form under this License. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +3.3. Distribution of a Larger Work - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +You may create and distribute a Larger Work under terms of Your choice, provided that You also comply with the requirements of this License for the Covered Software. If the Larger Work is a combination of Covered Software with a work governed by one or more Secondary Licenses, and the Covered Software is not Incompatible With Secondary Licenses, this License permits You to additionally distribute such Covered Software under the terms of such Secondary License(s), so that the recipient of the Larger Work may, at their option, further distribute the Covered Software under the terms of either this License or such Secondary License(s). - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. +3.4. Notices - * Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. +You may not remove or alter the substance of any license notices (including copyright notices, patent notices, disclaimers of warranty, or limitations of liability) contained within the Source Code Form of the Covered Software, except that You may alter any license notices to the extent required to remedy known factual inaccuracies. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -skia +3.5. Application of Additional Terms -Copyright 2009-2015 Google Inc. +You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Software. However, You may do so only on Your own behalf, and not on behalf of any Contributor. You must make it absolutely clear that any such warranty, support, indemnity, or liability obligation is offered by You alone, and You hereby agree to indemnify every Contributor for any liability incurred by such Contributor as a result of warranty, support, indemnity or liability terms You offer. You may include additional disclaimers of warranty and limitations of liability specific to any jurisdiction. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +4. Inability to Comply Due to Statute or Regulation - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Software due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be placed in a text file included with all distributions of the Covered Software under this License. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. +5. Termination - * Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. +5.1. The rights granted under this License will terminate automatically if You fail to comply with any of its terms. However, if You become compliant, then the rights granted under this License from a particular Contributor are reinstated (a) provisionally, unless and until such Contributor explicitly and finally terminates Your grants, and (b) on an ongoing basis, if such Contributor fails to notify You of the non-compliance by some reasonable means prior to 60 days after You have come back into compliance. Moreover, Your grants from a particular Contributor are reinstated on an ongoing basis if such Contributor notifies You of the non-compliance by some reasonable means, this is the first time You have received notice of non-compliance with this License from such Contributor, and You become compliant prior to 30 days after Your receipt of the notice. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -skia +5.2. If You initiate litigation against any entity by asserting a patent infringement claim (excluding declaratory judgment actions, counter-claims, and cross-claims) alleging that a Contributor Version directly or indirectly infringes any patent, then the rights granted to You by any and all Contributors for the Covered Software under Section 2.1 of this License shall terminate. -Copyright 2010 Google Inc. +5.3. In the event of termination under Sections 5.1 or 5.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or Your distributors under this License prior to termination shall survive termination. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +6. Disclaimer of Warranty - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. + Covered Software is provided under this License on an “as is” basis, without warranty of any kind, either expressed, implied, or statutory, including, without limitation, warranties that the Covered Software is free of defects, merchantable, fit for a particular purpose or non-infringing. The entire risk as to the quality and performance of the Covered Software is with You. Should any Covered Software prove defective in any respect, You (not any Contributor) assume the cost of any necessary servicing, repair, or correction. This disclaimer of warranty constitutes an essential part of this License. No use of any Covered Software is authorized under this License except under this disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. +7. Limitation of Liability - * Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. + Under no circumstances and under no legal theory, whether tort (including negligence), contract, or otherwise, shall any Contributor, or anyone who distributes Covered Software as permitted above, be liable to You for any direct, indirect, special, incidental, or consequential damages of any character including, without limitation, damages for lost profits, loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses, even if such party shall have been informed of the possibility of such damages. This limitation of liability shall not apply to liability for death or personal injury resulting from such party’s negligence to the extent applicable law prohibits such limitation. Some jurisdictions do not allow the exclusion or limitation of incidental or consequential damages, so this exclusion and limitation may not apply to You. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -skia +8. Litigation -Copyright 2010 The Android Open Source Project +Any litigation relating to this License may be brought only in the courts of a jurisdiction where the defendant maintains its principal place of business and such litigation shall be governed by laws of that jurisdiction, without reference to its conflict-of-law provisions. Nothing in this Section shall prevent a party’s ability to bring cross-claims or counter-claims. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +9. Miscellaneous - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +This License represents the complete agreement concerning the subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not be used to construe this License against a Contributor. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. +10. Versions of the License - * Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. +10.1. New Versions -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -skia +Mozilla Foundation is the license steward. Except as provided in Section 10.3, no one other than the license steward has the right to modify or publish new versions of this License. Each version will be given a distinguishing version number. -Copyright 2011 Google Inc. +10.2. Effect of New Versions -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +You may distribute the Covered Software under the terms of the version of the License under which You originally received the Covered Software, or under the terms of any subsequent version published by the license steward. - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +10.3. Modified Versions - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. +If you create software not governed by this License, and you want to create a new license for such software, you may create and use a modified version of this License if you rename the license and remove any references to the name of the license steward (except to note that such modified license differs from this License). - * Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. +10.4. Distributing Source Code Form that is Incompatible With Secondary Licenses -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -skia +If You choose to distribute Source Code Form that is Incompatible With Secondary Licenses under the terms of this version of the License, the notice described in Exhibit B of this License must be attached. -Copyright 2011 Google Inc. -Copyright 2012 Mozilla Foundation +Exhibit A - Source Code Form License Notice -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: + This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at https://mozilla.org/MPL/2.0/. - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +If it is not possible or desirable to put the notice in a particular file, then You may include the notice in a location (such as a LICENSE file in a relevant directory) where a recipient would be likely to look for such a notice. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. +You may add additional accurate notices of copyright ownership. - * Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. +Exhibit B - “Incompatible With Secondary Licenses” Notice -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + This Source Code Form is “Incompatible With Secondary Licenses”, as defined by the Mozilla Public License, v. 2.0. -------------------------------------------------------------------------------- -skia +root_certificates -Copyright 2011 The Android Open Source Project +Mozilla Public License Version 2.0 +================================== -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +1. Definitions - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +1.1. "Contributor" + means each individual or legal entity that creates, contributes to + the creation of, or owns Covered Software. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. +1.2. "Contributor Version" + means the combination of the Contributions of others (if any) used + by a Contributor and that particular Contributor's Contribution. - * Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. +1.3. "Contribution" + means Covered Software of a particular Contributor. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -skia +1.4. "Covered Software" + means Source Code Form to which the initial Contributor has attached + the notice in Exhibit A, the Executable Form of such Source Code + Form, and Modifications of such Source Code Form, in each case + including portions thereof. -Copyright 2012 Google Inc. +1.5. "Incompatible With Secondary Licenses" + means -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: + (a) that the initial Contributor has attached the notice described + in Exhibit B to the Covered Software; or - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. + (b) that the Covered Software was made available under the terms of + version 1.1 or earlier of the License, but not also under the + terms of a Secondary License. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. +1.6. "Executable Form" + means any form of the work other than Source Code Form. - * Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. +1.7. "Larger Work" + means a work that combines Covered Software with other material, in + a separate file or files, that is not Covered Software. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -skia +1.8. "License" + means this document. -Copyright 2012 The Android Open Source Project +1.9. "Licensable" + means having the right to grant, to the maximum extent possible, + whether at the time of the initial grant or subsequently, any and + all of the rights conveyed by this License. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +1.10. "Modifications" + means any of the following: + + (a) any file in Source Code Form that results from an addition to, + deletion from, or modification of the contents of Covered + Software; or + + (b) any new file in Source Code Form that contains any Covered + Software. - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +1.11. "Patent Claims" of a Contributor + means any patent claim(s), including without limitation, method, + process, and apparatus claims, in any patent Licensable by such + Contributor that would be infringed, but for the grant of the + License, by the making, using, selling, offering for sale, having + made, import, or transfer of either its Contributions or its + Contributor Version. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. +1.12. "Secondary License" + means either the GNU General Public License, Version 2.0, the GNU + Lesser General Public License, Version 2.1, the GNU Affero General + Public License, Version 3.0, or any later versions of those + licenses. - * Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. +1.13. "Source Code Form" + means the form of the work preferred for making modifications. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -skia +1.14. "You" (or "Your") + means an individual or a legal entity exercising rights under this + License. For legal entities, "You" includes any entity that + controls, is controlled by, or is under common control with You. For + purposes of this definition, "control" means (a) the power, direct + or indirect, to cause the direction or management of such entity, + whether by contract or otherwise, or (b) ownership of more than + fifty percent (50%) of the outstanding shares or beneficial + ownership of such entity. -Copyright 2013 Google Inc. +2. License Grants and Conditions -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +2.1. Grants - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +Each Contributor hereby grants You a world-wide, royalty-free, +non-exclusive license: - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. +(a) under intellectual property rights (other than patent or trademark) + Licensable by such Contributor to use, reproduce, make available, + modify, display, perform, distribute, and otherwise exploit its + Contributions, either on an unmodified basis, with Modifications, or + as part of a Larger Work; and - * Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. +(b) under Patent Claims of such Contributor to make, use, sell, offer + for sale, have made, import, and otherwise transfer either its + Contributions or its Contributor Version. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -skia +2.2. Effective Date -Copyright 2013 The Android Open Source Project +The licenses granted in Section 2.1 with respect to any Contribution +become effective for each Contribution on the date the Contributor first +distributes such Contribution. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +2.3. Limitations on Grant Scope - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +The licenses granted in this Section 2 are the only rights granted under +this License. No additional rights or licenses will be implied from the +distribution or licensing of Covered Software under this License. +Notwithstanding Section 2.1(b) above, no patent license is granted by a +Contributor: - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. +(a) for any code that a Contributor has removed from Covered Software; + or - * Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. +(b) for infringements caused by: (i) Your and any other third party's + modifications of Covered Software, or (ii) the combination of its + Contributions with other software (except as part of its Contributor + Version); or -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -skia +(c) under Patent Claims infringed by Covered Software in the absence of + its Contributions. -Copyright 2014 Google Inc. +This License does not grant any rights in the trademarks, service marks, +or logos of any Contributor (except as may be necessary to comply with +the notice requirements in Section 3.4). -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +2.4. Subsequent Licenses - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +No Contributor makes additional grants as a result of Your choice to +distribute the Covered Software under a subsequent version of this +License (see Section 10.2) or under the terms of a Secondary License (if +permitted under the terms of Section 3.3). - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. +2.5. Representation - * Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. +Each Contributor represents that the Contributor believes its +Contributions are its original creation(s) or it has sufficient rights +to grant the rights to its Contributions conveyed by this License. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -skia +2.6. Fair Use -Copyright 2014 Google Inc. -Copyright 2017 ARM Ltd. +This License is not intended to limit any rights You have under +applicable copyright doctrines of fair use, fair dealing, or other +equivalents. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +2.7. Conditions - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted +in Section 2.1. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. +3. Responsibilities - * Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. +3.1. Distribution of Source Form -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -skia +All distribution of Covered Software in Source Code Form, including any +Modifications that You create or to which You contribute, must be under +the terms of this License. You must inform recipients that the Source +Code Form of the Covered Software is governed by the terms of this +License, and how they can obtain a copy of this License. You may not +attempt to alter or restrict the recipients' rights in the Source Code +Form. -Copyright 2014 The Android Open Source Project +3.2. Distribution of Executable Form -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +If You distribute Covered Software in Executable Form then: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +(a) such Covered Software must also be made available in Source Code + Form, as described in Section 3.1, and You must inform recipients of + the Executable Form how they can obtain a copy of such Source Code + Form by reasonable means in a timely manner, at a charge no more + than the cost of distribution to the recipient; and - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. +(b) You may distribute such Executable Form under the terms of this + License, or sublicense it under different terms, provided that the + license for the Executable Form does not attempt to limit or alter + the recipients' rights in the Source Code Form under this License. - * Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. +3.3. Distribution of a Larger Work -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -skia +You may create and distribute a Larger Work under terms of Your choice, +provided that You also comply with the requirements of this License for +the Covered Software. If the Larger Work is a combination of Covered +Software with a work governed by one or more Secondary Licenses, and the +Covered Software is not Incompatible With Secondary Licenses, this +License permits You to additionally distribute such Covered Software +under the terms of such Secondary License(s), so that the recipient of +the Larger Work may, at their option, further distribute the Covered +Software under the terms of either this License or such Secondary +License(s). -Copyright 2015 Google Inc. +3.4. Notices -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +You may not remove or alter the substance of any license notices +(including copyright notices, patent notices, disclaimers of warranty, +or limitations of liability) contained within the Source Code Form of +the Covered Software, except that You may alter any license notices to +the extent required to remedy known factual inaccuracies. - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +3.5. Application of Additional Terms - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. +You may choose to offer, and to charge a fee for, warranty, support, +indemnity or liability obligations to one or more recipients of Covered +Software. However, You may do so only on Your own behalf, and not on +behalf of any Contributor. You must make it absolutely clear that any +such warranty, support, indemnity, or liability obligation is offered by +You alone, and You hereby agree to indemnify every Contributor for any +liability incurred by such Contributor as a result of warranty, support, +indemnity or liability terms You offer. You may include additional +disclaimers of warranty and limitations of liability specific to any +jurisdiction. - * Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. +4. Inability to Comply Due to Statute or Regulation -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -skia +If it is impossible for You to comply with any of the terms of this +License with respect to some or all of the Covered Software due to +statute, judicial order, or regulation then You must: (a) comply with +the terms of this License to the maximum extent possible; and (b) +describe the limitations and the code they affect. Such description must +be placed in a text file included with all distributions of the Covered +Software under this License. Except to the extent prohibited by statute +or regulation, such description must be sufficiently detailed for a +recipient of ordinary skill to be able to understand it. -Copyright 2015 The Android Open Source Project +5. Termination -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +5.1. The rights granted under this License will terminate automatically +if You fail to comply with any of its terms. However, if You become +compliant, then the rights granted under this License from a particular +Contributor are reinstated (a) provisionally, unless and until such +Contributor explicitly and finally terminates Your grants, and (b) on an +ongoing basis, if such Contributor fails to notify You of the +non-compliance by some reasonable means prior to 60 days after You have +come back into compliance. Moreover, Your grants from a particular +Contributor are reinstated on an ongoing basis if such Contributor +notifies You of the non-compliance by some reasonable means, this is the +first time You have received notice of non-compliance with this License +from such Contributor, and You become compliant prior to 30 days after +Your receipt of the notice. - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +5.2. If You initiate litigation against any entity by asserting a patent +infringement claim (excluding declaratory judgment actions, +counter-claims, and cross-claims) alleging that a Contributor Version +directly or indirectly infringes any patent, then the rights granted to +You by any and all Contributors for the Covered Software under Section +2.1 of this License shall terminate. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. +5.3. In the event of termination under Sections 5.1 or 5.2 above, all +end user license agreements (excluding distributors and resellers) which +have been validly granted by You or Your distributors under this License +prior to termination shall survive termination. - * Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. +* 6. Disclaimer of Warranty -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -skia +* Covered Software is provided under this License on an "as is" +* basis, without warranty of any kind, either expressed, implied, or +* statutory, including, without limitation, warranties that the +* Covered Software is free of defects, merchantable, fit for a +* particular purpose or non-infringing. The entire risk as to the +* quality and performance of the Covered Software is with You. +* Should any Covered Software prove defective in any respect, You +* (not any Contributor) assume the cost of any necessary servicing, +* repair, or correction. This disclaimer of warranty constitutes an +* essential part of this License. No use of any Covered Software is +* authorized under this License except under this disclaimer. -Copyright 2016 Google Inc. +* 7. Limitation of Liability -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +* Under no circumstances and under no legal theory, whether tort +* (including negligence), contract, or otherwise, shall any +* Contributor, or anyone who distributes Covered Software as +* permitted above, be liable to You for any direct, indirect, +* special, incidental, or consequential damages of any character +* including, without limitation, damages for lost profits, loss of +* goodwill, work stoppage, computer failure or malfunction, or any +* and all other commercial damages or losses, even if such party +* shall have been informed of the possibility of such damages. This +* limitation of liability shall not apply to liability for death or +* personal injury resulting from such party's negligence to the +* extent applicable law prohibits such limitation. Some +* jurisdictions do not allow the exclusion or limitation of +* incidental or consequential damages, so this exclusion and +* limitation may not apply to You. - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +8. Litigation - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. +Any litigation relating to this License may be brought only in the +courts of a jurisdiction where the defendant maintains its principal +place of business and such litigation shall be governed by laws of that +jurisdiction, without reference to its conflict-of-law provisions. +Nothing in this Section shall prevent a party's ability to bring +cross-claims or counter-claims. - * Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. +9. Miscellaneous -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -skia +This License represents the complete agreement concerning the subject +matter hereof. If any provision of this License is held to be +unenforceable, such provision shall be reformed only to the extent +necessary to make it enforceable. Any law or regulation which provides +that the language of a contract shall be construed against the drafter +shall not be used to construe this License against a Contributor. -Copyright 2016 Mozilla Foundation +10. Versions of the License -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +10.1. New Versions - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +Mozilla Foundation is the license steward. Except as provided in Section +10.3, no one other than the license steward has the right to modify or +publish new versions of this License. Each version will be given a +distinguishing version number. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. +10.2. Effect of New Versions - * Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. +You may distribute the Covered Software under the terms of the version +of the License under which You originally received the Covered Software, +or under the terms of any subsequent version published by the license +steward. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -skia +10.3. Modified Versions -Copyright 2016 The Android Open Source Project +If you create software not governed by this License, and you want to +create a new license for such software, you may create and use a +modified version of this License if you rename the license and remove +any references to the name of the license steward (except to note that +such modified license differs from this License). -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +10.4. Distributing Source Code Form that is Incompatible With Secondary +Licenses - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +If You choose to distribute Source Code Form that is Incompatible With +Secondary Licenses under the terms of this version of the License, the +notice described in Exhibit B of this License must be attached. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. +Exhibit A - Source Code Form License Notice - * Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. + This Source Code Form is subject to the terms of the Mozilla Public + License, v. 2.0. If a copy of the MPL was not distributed with this + file, You can obtain one at http://mozilla.org/MPL/2.0/. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +If it is not possible or desirable to put the notice in a particular +file, then You may include the notice in a location (such as a LICENSE +file in a relevant directory) where a recipient would be likely to look +for such a notice. + +You may add additional accurate notices of copyright ownership. + +Exhibit B - "Incompatible With Secondary Licenses" Notice + + This Source Code Form is "Incompatible With Secondary Licenses", as + defined by the Mozilla Public License, v. 2.0. -------------------------------------------------------------------------------- -skia +boringssl -Copyright 2017 ARM Ltd. +OpenSSL License -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: + ==================================================================== + Copyright (c) 1998-2011 The OpenSSL Project. All rights reserved. - * Redistributions of source code must retain the above copyright + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright + 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - * Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. + 3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.openssl.org/)" -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -skia + 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + openssl-core@openssl.org. -Copyright 2017 Google Inc. + 5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: + 6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.openssl.org/)" - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. + THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + OF THE POSSIBILITY OF SUCH DAMAGE. + ==================================================================== - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. + This product includes cryptographic software written by Eric Young + (eay@cryptsoft.com). This product includes software written by Tim + Hudson (tjh@cryptsoft.com). - * Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. +Original SSLeay License -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -skia +* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) +* All rights reserved. -Copyright 2018 Google Inc. +* This package is an SSL implementation written +* by Eric Young (eay@cryptsoft.com). +* The implementation was written so as to conform with Netscapes SSL. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +* This library is free for commercial and non-commercial use as long as +* the following conditions are aheared to. The following conditions +* apply to all code found in this distribution, be it the RC4, RSA, +* lhash, DES, etc., code; not just the SSL code. The SSL documentation +* included with this distribution is covered by the same copyright terms +* except that the holder is Tim Hudson (tjh@cryptsoft.com). - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +* Copyright remains Eric Young's, and as such any Copyright notices in +* the code are not to be removed. +* If this package is used in a product, Eric Young should be given attribution +* as the author of the parts of the library used. +* This can be in the form of a textual message at program startup or +* in documentation (online or textual) provided with the package. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions +* are met: +* 1. Redistributions of source code must retain the copyright +* notice, this list of conditions and the following disclaimer. +* 2. Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* 3. All advertising materials mentioning features or use of this software +* must display the following acknowledgement: +* "This product includes cryptographic software written by +* Eric Young (eay@cryptsoft.com)" +* The word 'cryptographic' can be left out if the rouines from the library +* being used are not cryptographic related :-). +* 4. If you include any Windows specific code (or a derivative thereof) from +* the apps directory (application code) you must include an acknowledgement: +* "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. +* THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND +* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +* SUCH DAMAGE. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -skia +* The licence and distribution terms for any publically available version or +* derivative of this code cannot be changed. i.e. this code cannot simply be +* copied and put under another distribution licence +* [including the GNU Public Licence.] -Copyright 2018 Google LLC +ISC license used for completely new code in BoringSSL: -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +/* Copyright (c) 2015, Google Inc. - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY + * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION + * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN + * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. +The code in third_party/fiat carries the MIT license: -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -skia +Copyright (c) 2015-2016 the fiat-crypto authors (see +https://github.com/mit-plv/fiat-crypto/blob/master/AUTHORS). -Copyright 2018 Google LLC. +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +Licenses for support code + +Parts of the TLS test suite are under the Go license. This code is not included +in BoringSSL (i.e. libcrypto and libssl) when compiled, however, so +distributing code linked against BoringSSL does not trigger this license: + +Copyright (c) 2009 The Go Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - - * Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT @@ -14844,733 +14963,655 @@ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -skia +angle +json +rapidjson -Copyright 2018 Google, LLC +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +-------------------------------------------------------------------------------- +libtess2 - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. +SGI FREE SOFTWARE LICENSE B (Version 2.0, Sept. 18, 2008) +Copyright (C) [dates of first publication] Silicon Graphics, Inc. +All Rights Reserved. - * Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +The above copyright notice including the dates of first publication and either this +permission notice or a reference to http://oss.sgi.com/projects/FreeB/ shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL SILICON GRAPHICS, INC. +BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE +OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of Silicon Graphics, Inc. shall not +be used in advertising or otherwise to promote the sale, use or other dealings in +this Software without prior written authorization from Silicon Graphics, Inc. -------------------------------------------------------------------------------- -skia +icu -Copyright 2018 The Android Open Source Project +See Terms of Use +for definitions of Unicode Inc.’s Data Files and Software. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +NOTICE TO USER: Carefully read the following legal agreement. +BY DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING UNICODE INC.'S +DATA FILES ("DATA FILES"), AND/OR SOFTWARE ("SOFTWARE"), +YOU UNEQUIVOCALLY ACCEPT, AND AGREE TO BE BOUND BY, ALL OF THE +TERMS AND CONDITIONS OF THIS AGREEMENT. +IF YOU DO NOT AGREE, DO NOT DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE +THE DATA FILES OR SOFTWARE. - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +COPYRIGHT AND PERMISSION NOTICE - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. +Copyright © 1991-2022 Unicode, Inc. All rights reserved. +Distributed under the Terms of Use in https://www.unicode.org/copyright.html. - * Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Unicode data files and any associated documentation +(the "Data Files") or Unicode software and any associated documentation +(the "Software") to deal in the Data Files or Software +without restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, and/or sell copies of +the Data Files or Software, and to permit persons to whom the Data Files +or Software are furnished to do so, provided that either +(a) this copyright and permission notice appear with all copies +of the Data Files or Software, or +(b) this copyright and permission notice appear in associated +Documentation. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE +WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT OF THIRD PARTY RIGHTS. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS +NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL +DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THE DATA FILES OR SOFTWARE. + +Except as contained in this notice, the name of a copyright holder +shall not be used in advertising or otherwise to promote the sale, +use or other dealings in these Data Files or Software without prior +written authorization of the copyright holder. -------------------------------------------------------------------------------- -skia +rapidjson -Copyright 2019 Google Inc. +Tencent is pleased to support the open source community by making RapidJSON available. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +If you have downloaded a copy of the RapidJSON binary from Tencent, please note that the RapidJSON binary is licensed under the MIT License. +If you have downloaded a copy of the RapidJSON source code from Tencent, please note that RapidJSON source code is licensed under the MIT License, except for the third-party components listed below which are subject to different license terms. Your integration of RapidJSON into your own projects may require compliance with the MIT License, as well as the other licenses applicable to the third-party components included within RapidJSON. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. +A copy of the MIT License is included in this file. - * Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. +Other dependencies and licenses: -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -skia +Open Source Software Licensed Under the BSD License: -Copyright 2019 Google Inc. and Adobe Inc. +The msinttypes r29 +Copyright (c) 2006-2013 Alexander Chemeris +All rights reserved. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. +* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. +* Neither the name of copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. +THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. +Terms of the MIT License: -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- -skia +rapidjson -Copyright 2019 Google LLC +Tencent is pleased to support the open source community by making RapidJSON available. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +If you have downloaded a copy of the RapidJSON binary from Tencent, please note that the RapidJSON binary is licensed under the MIT License. +If you have downloaded a copy of the RapidJSON source code from Tencent, please note that RapidJSON source code is licensed under the MIT License, except for the third-party components listed below which are subject to different license terms. Your integration of RapidJSON into your own projects may require compliance with the MIT License, as well as the other licenses applicable to the third-party components included within RapidJSON. To avoid the problematic JSON license in your own projects, it's sufficient to exclude the bin/jsonchecker/ directory, as it's the only code under the JSON license. +A copy of the MIT License is included in this file. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. +Other dependencies and licenses: - * Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. +Open Source Software Licensed Under the BSD License: -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -skia +The msinttypes r29 +Copyright (c) 2006-2013 Alexander Chemeris +All rights reserved. -Copyright 2019 Google LLC. +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. +* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. +* Neither the name of copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. +Open Source Software Licensed Under the JSON License: + +json.org +Copyright (c) 2002 JSON.org +All Rights Reserved. + +JSON_checker +Copyright (c) 2002 JSON.org +All Rights Reserved. - * Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. +Terms of the JSON License: -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -skia +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: -Copyright 2019 Google, LLC +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +The Software shall be used for Good, not Evil. - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. +Terms of the MIT License: - * Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- -skia +icu -Copyright 2019 The Android Open Source Project +The BSD License +http://opensource.org/licenses/bsd-license.php +Copyright (C) 2006-2008, Google Inc. + +All rights reserved. Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. + Redistributions of source code must retain the above copyright notice, +this list of conditions and the following disclaimer. + Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following +disclaimer in the documentation and/or other materials provided with +the distribution. + Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND +CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +freetype2 - * Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. +The FreeType Project LICENSE -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -skia + 2006-Jan-27 -Copyright 2020 Google Inc. +Copyright 1996-2002, 2006 by +David Turner, Robert Wilhelm, and Werner Lemberg -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +Introduction +============ - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. + The FreeType Project is distributed in several archive packages; + some of them may contain, in addition to the FreeType font engine, + various tools and contributions which rely on, or relate to, the + FreeType Project. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. + This license applies to all files found in such packages, and + which do not fall under their own explicit license. The license + affects thus the FreeType font engine, the test programs, + documentation and makefiles, at the very least. - * Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. + This license was inspired by the BSD, Artistic, and IJG + (Independent JPEG Group) licenses, which all encourage inclusion + and use of free software in commercial and freeware products + alike. As a consequence, its main points are that: -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -skia + o We don't promise that this software works. However, we will be + interested in any kind of bug reports. (`as is' distribution) -Copyright 2020 Google LLC + o You can use this software for whatever you want, in parts or + full form, without having to pay us. (`royalty-free' usage) -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: + o You may not pretend that you wrote this software. If you use + it, or only parts of it, in a program, you must acknowledge + somewhere in your documentation that you have used the + FreeType code. (`credits') - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. + We specifically permit and encourage the inclusion of this + software, with or without modifications, in commercial products. + We disclaim all warranties covering The FreeType Project and + assume no liability related to The FreeType Project. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. + Finally, many people asked us for a preferred form for a + credit/disclaimer to use in compliance with this license. We thus + encourage you to use the following text: - * Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. + Portions of this software are copyright © The FreeType + Project (www.freetype.org). All rights reserved. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -skia + Please replace with the value from the FreeType version you + actually use. -Copyright 2020 Google LLC. +Legal Terms +=========== -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +0. Definitions - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. + Throughout this license, the terms `package', `FreeType Project', + and `FreeType archive' refer to the set of files originally + distributed by the authors (David Turner, Robert Wilhelm, and + Werner Lemberg) as the `FreeType Project', be they named as alpha, + beta or final release. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. + `You' refers to the licensee, or person using the project, where + `using' is a generic term including compiling the project's source + code as well as linking it to form a `program' or `executable'. + This program is referred to as `a program using the FreeType + engine'. - * Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. + This license applies to all files distributed in the original + FreeType Project, including all source code, binaries and + documentation, unless otherwise stated in the file in its + original, unmodified form as distributed in the original archive. + If you are unsure whether or not a particular file is covered by + this license, you must contact us to verify this. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -skia + The FreeType Project is copyright (C) 1996-2000 by David Turner, + Robert Wilhelm, and Werner Lemberg. All rights reserved except as + specified below. -Copyright 2020 Google, LLC +1. No Warranty -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: + THE FREETYPE PROJECT IS PROVIDED `AS IS' WITHOUT WARRANTY OF ANY + KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE. IN NO EVENT WILL ANY OF THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY DAMAGES CAUSED BY THE USE OR THE INABILITY TO + USE, OF THE FREETYPE PROJECT. + +2. Redistribution - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. + This license grants a worldwide, royalty-free, perpetual and + irrevocable right and license to use, execute, perform, compile, + display, copy, create derivative works of, distribute and + sublicense the FreeType Project (in both source and object code + forms) and derivative works thereof for any purpose; and to + authorize others to exercise some or all of the rights granted + herein, subject to the following conditions: - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. + o Redistribution of source code must retain this license file + (`FTL.TXT') unaltered; any additions, deletions or changes to + the original files must be clearly indicated in accompanying + documentation. The copyright notices of the unaltered, + original files must be preserved in all copies of source + files. - * Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. + o Redistribution in binary form must provide a disclaimer that + states that the software is based in part of the work of the + FreeType Team, in the distribution documentation. We also + encourage you to put an URL to the FreeType web page in your + documentation, though this isn't mandatory. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -skia + These conditions apply to any software derived from or based on + the FreeType Project, not just the unmodified files. If you use + our work, you must acknowledge us. However, no fee need be paid + to us. -Copyright 2021 Google Inc. +3. Advertising -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: + Neither the FreeType authors and contributors nor you shall use + the name of the other for commercial, advertising, or promotional + purposes without specific prior written permission. - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. + We suggest, but do not require, that you use one or more of the + following phrases to refer to this software in your documentation + or advertising materials: `FreeType Project', `FreeType Engine', + `FreeType library', or `FreeType Distribution'. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. + As you have not signed this license, you are not required to + accept it. However, as the FreeType Project is copyrighted + material, only this license, or another one contracted with the + authors, grants you the right to use, distribute, and modify it. + Therefore, by using, distributing, or modifying the FreeType + Project, you indicate that you understand and accept all the terms + of this license. - * Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. +4. Contacts -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -skia + There are two mailing lists related to FreeType: -Copyright 2021 Google LLC + o freetype@nongnu.org -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: + Discusses general use and applications of FreeType, as well as + future and wanted additions to the library and distribution. + If you are looking for support, start in this list if you + haven't found anything to help you in the documentation. - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. + o freetype-devel@nongnu.org - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. + Discusses bugs, as well as engine internals, design issues, + specific licenses, porting, etc. - * Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. + Our home page can be found at -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -skia + https://www.freetype.org -Copyright 2021 Google LLC. +--- end of FTL.TXT --- +-------------------------------------------------------------------------------- +boringssl -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +The MIT License (MIT) - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +Copyright (c) 2015-2016 the fiat-crypto authors (see +https://github.com/mit-plv/fiat-crypto/blob/master/AUTHORS). - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: - * Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. -------------------------------------------------------------------------------- -skia - -Copyright 2021 Google, LLC +rapidjson -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +The MIT License (MIT) - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +Copyright (c) 2017 Bart Muzzin - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: - * Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -skia +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. -Copyright 2022 Google Inc. +Derived from: -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +The MIT License (MIT) - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +Copyright (c) 2015 mojmir svoboda - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: - * Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. -------------------------------------------------------------------------------- -skia +fuchsia_sdk -Copyright 2022 Google LLC +The majority of files in this project use the Apache 2.0 License. +There are a few exceptions and their license can be found in the source. +Any license deviations from Apache 2.0 are "more permissive" licenses. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +=========================================================================================== - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - * Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. + 1. Definitions. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -skia + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. -Copyright 2022 Google LLC. + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. - * Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -skia + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). -Copyright 2022 Google, LLC + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. - * Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -skia -vulkanmemoryallocator + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: -Copyright (c) 2011 Google Inc. All rights reserved. + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -skia -zlib + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. -Copyright 2022 The Chromium Authors. All rights reserved. + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -smhasher + END OF TERMS AND CONDITIONS -All MurmurHash source files are placed in the public domain. + APPENDIX: How to apply the Apache License to your work. -The license below applies to all other code in SMHasher: + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. -Copyright (c) 2011 Google, Inc. + Copyright [yyyy] [name of copyright owner] -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. + http://www.apache.org/licenses/LICENSE-2.0 -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. -------------------------------------------------------------------------------- sqlite @@ -15598,593 +15639,550 @@ May you do good and not evil May you find forgiveness for yourself and forgive others May you share freely, never taking more than you give. -------------------------------------------------------------------------------- -tcmalloc - -Copyright (c) 2003, Google Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -tcmalloc - -Copyright (c) 2005, Google Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -vulkan - -Copyright (c) 2018 Google Inc. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -vulkan_memory_allocator - -Copyright (c) 2017-2022 Advanced Micro Devices, Inc. All rights reserved. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. --------------------------------------------------------------------------------- -vulkanmemoryallocator - -Copyright 2018 Google Inc. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +icu - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. +Unicode® Copyright and Terms of Use +For the general privacy policy governing access to this site, see the Unicode Privacy Policy. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -xxhash +A. Unicode Copyright +1. Copyright © 1991-2022 Unicode, Inc. All rights reserved. +B. Definitions +Unicode Data Files ("DATA FILES") include all data files under the directories: +https://www.unicode.org/Public +https://www.unicode.org/reports +https://www.unicode.org/ivd/data -Copyright (C) 2012-2016, Yann Collet +Unicode Data Files do not include PDF online code charts under the directory: +https://www.unicode.org/Public -BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php) +Unicode Software ("SOFTWARE") includes any source code published in the Unicode Standard +or any source code or compiled code under the directories: +https://www.unicode.org/Public/PROGRAMS +https://www.unicode.org/Public/cldr +http://site.icu-project.org/download +C. Terms of Use +1. Certain documents and files on this website contain a legend indicating that "Modification is permitted." Any person is hereby authorized, without fee, to modify such documents and files to create derivative works conforming to the Unicode® Standard, subject to Terms and Conditions herein. +2. Any person is hereby authorized, without fee, to view, use, reproduce, and distribute all documents and files, subject to the Terms and Conditions herein. +3. Further specifications of rights and restrictions pertaining to the use of the Unicode DATA FILES and SOFTWARE can be found in the Unicode Data Files and Software License. +4. Each version of the Unicode Standard has further specifications of rights and restrictions of use. For the book editions (Unicode 5.0 and earlier), these are found on the back of the title page. +5. The Unicode PDF online code charts carry specific restrictions. Those restrictions are incorporated as the first page of each PDF code chart. +6. All other files, including online documentation of the core specification for Unicode 6.0 and later, are covered under these general Terms of Use. +7. No license is granted to "mirror" the Unicode website where a fee is charged for access to the "mirror" site. +8. Modification is not permitted with respect to this document. All copies of this document must be verbatim. +D. Restricted Rights Legend +1. Any technical data or software which is licensed to the United States of America, its agencies and/or instrumentalities under this Agreement is commercial technical data or commercial computer software developed exclusively at private expense as defined in FAR 2.101, or DFARS 252.227-7014 (June 1995), as applicable. For technical data, use, duplication, or disclosure by the Government is subject to restrictions as set forth in DFARS 202.227-7015 Technical Data, Commercial and Items (Nov 1995) and this Agreement. For Software, in accordance with FAR 12-212 or DFARS 227-7202, as applicable, use, duplication or disclosure by the Government is subject to the restrictions set forth in this Agreement. +E.Warranties and Disclaimers +1. This publication and/or website may include technical or typographical errors or other inaccuracies. Changes are periodically added to the information herein; these changes will be incorporated in new editions of the publication and/or website. Unicode, Inc. may make improvements and/or changes in the product(s) and/or program(s) described in this publication and/or website at any time. +2. If this file has been purchased on magnetic or optical media from Unicode, Inc. the sole and exclusive remedy for any claim will be exchange of the defective media within ninety (90) days of original purchase. +3. EXCEPT AS PROVIDED IN SECTION E.2, THIS PUBLICATION AND/OR SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND EITHER EXPRESS, IMPLIED, OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT. UNICODE, INC. AND ITS LICENSORS ASSUME NO RESPONSIBILITY FOR ERRORS OR OMISSIONS IN THIS PUBLICATION AND/OR SOFTWARE OR OTHER DOCUMENTS WHICH ARE REFERENCED BY OR LINKED TO THIS PUBLICATION OR THE UNICODE WEBSITE. +F. Waiver of Damages +1. In no event shall Unicode, Inc. or its licensors be liable for any special, incidental, indirect or consequential damages of any kind, or any damages whatsoever, whether or not Unicode, Inc. was advised of the possibility of the damage, including, without limitation, those resulting from the following: loss of use, data or profits, in connection with the use, modification or distribution of this information or its derivatives. +G. Trademarks & Logos +1. The Unicode Word Mark and the Unicode Logo are trademarks of Unicode, Inc. “The Unicode Consortium” and “Unicode, Inc.” are trade names of Unicode, Inc. Use of the information and materials found on this website indicates your acknowledgement of Unicode, Inc.’s exclusive worldwide rights in the Unicode Word Mark, the Unicode Logo, and the Unicode trade names. +3. The Unicode Consortium Name and Trademark Usage Policy (“Trademark Policy”) are incorporated herein by reference and you agree to abide by the provisions of the Trademark Policy, which may be changed from time to time in the sole discretion of Unicode, Inc. +4. All third party trademarks referenced herein are the property of their respective owners. +H. Miscellaneous +1. Jurisdiction and Venue. This website is operated from a location in the State of California, United States of America. Unicode, Inc. makes no representation that the materials are appropriate for use in other locations. If you access this website from other locations, you are responsible for compliance with local laws. This Agreement, all use of this website and any claims and damages resulting from use of this website are governed solely by the laws of the State of California without regard to any principles which would apply the laws of a different jurisdiction. The user agrees that any disputes regarding this website shall be resolved solely in the courts located in Santa Clara County, California. The user agrees said courts have personal jurisdiction and agree to waive any right to transfer the dispute to any other forum. +2. Modification by Unicode, Inc. Unicode, Inc. shall have the right to modify this Agreement at any time by posting it to this website. The user may not assign any part of this Agreement without Unicode, Inc.’s prior written consent. +3. Taxes. The user agrees to pay any taxes arising from access to this website or use of the information herein, except for those based on Unicode’s net income. +4. Severability. If any provision of this Agreement is declared invalid or unenforceable, the remaining provisions of this Agreement shall remain in effect. +5. Entire Agreement. This Agreement constitutes the entire agreement between the parties. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +EXHIBIT 1 +UNICODE, INC. LICENSE AGREEMENT - DATA FILES AND SOFTWARE -* Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. +See Terms of Use +for definitions of Unicode Inc.’s Data Files and Software. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -xxhash +NOTICE TO USER: Carefully read the following legal agreement. +BY DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING UNICODE INC.'S +DATA FILES ("DATA FILES"), AND/OR SOFTWARE ("SOFTWARE"), +YOU UNEQUIVOCALLY ACCEPT, AND AGREE TO BE BOUND BY, ALL OF THE +TERMS AND CONDITIONS OF THIS AGREEMENT. +IF YOU DO NOT AGREE, DO NOT DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE +THE DATA FILES OR SOFTWARE. -Copyright (C) 2012-2016, Yann Collet. +COPYRIGHT AND PERMISSION NOTICE -BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php) +Copyright © 1991-2022 Unicode, Inc. All rights reserved. +Distributed under the Terms of Use in https://www.unicode.org/copyright.html. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Unicode data files and any associated documentation +(the "Data Files") or Unicode software and any associated documentation +(the "Software") to deal in the Data Files or Software +without restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, and/or sell copies of +the Data Files or Software, and to permit persons to whom the Data Files +or Software are furnished to do so, provided that either +(a) this copyright and permission notice appear with all copies +of the Data Files or Software, or +(b) this copyright and permission notice appear in associated +Documentation. - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. +THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE +WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT OF THIRD PARTY RIGHTS. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS +NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL +DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THE DATA FILES OR SOFTWARE. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +Except as contained in this notice, the name of a copyright holder +shall not be used in advertising or otherwise to promote the sale, +use or other dealings in these Data Files or Software without prior +written authorization of the copyright holder. -------------------------------------------------------------------------------- -zlib +libcxx +libcxxabi -Copyright (C) 1995-2003, 2010 Mark Adler -Copyright (C) 2017 ARM, Inc. +University of Illinois/NCSA +Open Source License -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +Copyright (c) 2009-2019 by the contributors listed in CREDITS.TXT -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +All rights reserved. -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. --------------------------------------------------------------------------------- -zlib +Developed by: -Copyright (C) 1995-2003, 2010, 2014, 2016 Jean-loup Gailly, Mark Adler + LLVM Team -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. + University of Illinois at Urbana-Champaign -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: + http://llvm.org -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. --------------------------------------------------------------------------------- -zlib +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal with +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: -Copyright (C) 1995-2005, 2014, 2016 Jean-loup Gailly, Mark Adler + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimers. -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimers in the + documentation and/or other materials provided with the distribution. -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: + * Neither the names of the LLVM Team, University of Illinois at + Urbana-Champaign, nor the names of its contributors may be used to + endorse or promote products derived from this Software without specific + prior written permission. -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE +SOFTWARE. -------------------------------------------------------------------------------- -zlib +libjpeg-turbo -Copyright (C) 1995-2018 Jean-loup Gailly +libjpeg-turbo note: This file has been modified by The libjpeg-turbo Project +to include only information relevant to libjpeg-turbo, to wordsmith certain +sections, and to remove impolitic language that existed in the libjpeg v8 +README. It is included only for reference. Please see README.md for +information specific to libjpeg-turbo. -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +The Independent JPEG Group's JPEG software +========================================== -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +This distribution contains a release of the Independent JPEG Group's free JPEG +software. You are welcome to redistribute this software and to use it for any +purpose, subject to the conditions under LEGAL ISSUES, below. -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. --------------------------------------------------------------------------------- -zlib +This software is the work of Tom Lane, Guido Vollbeding, Philip Gladstone, +Bill Allombert, Jim Boucher, Lee Crocker, Bob Friesenhahn, Ben Jackson, +Julian Minguillon, Luis Ortiz, George Phillips, Davide Rossi, Ge' Weijers, +and other members of the Independent JPEG Group. -Copyright (C) 1995-2019 Mark Adler +IJG is not affiliated with the ISO/IEC JTC1/SC29/WG1 standards committee +(also known as JPEG, together with ITU-T SG16). -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +DOCUMENTATION ROADMAP +===================== -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +This file contains the following sections: -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. --------------------------------------------------------------------------------- -zlib +OVERVIEW General description of JPEG and the IJG software. +LEGAL ISSUES Copyright, lack of warranty, terms of distribution. +REFERENCES Where to learn more about JPEG. +ARCHIVE LOCATIONS Where to find newer versions of this software. +FILE FORMAT WARS Software *not* to get. +TO DO Plans for future IJG releases. -Copyright (C) 1995-2021 Jean-loup Gailly -detect_data_type() function provided freely by Cosmin Truta, 2006 +Other documentation files in the distribution are: -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +User documentation: + usage.txt Usage instructions for cjpeg, djpeg, jpegtran, + rdjpgcom, and wrjpgcom. + *.1 Unix-style man pages for programs (same info as usage.txt). + wizard.txt Advanced usage instructions for JPEG wizards only. + change.log Version-to-version change highlights. +Programmer and internal documentation: + libjpeg.txt How to use the JPEG library in your own programs. + example.c Sample code for calling the JPEG library. + structure.txt Overview of the JPEG library's internal structure. + coderules.txt Coding style rules --- please read if you contribute code. -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +Please read at least usage.txt. Some information can also be found in the JPEG +FAQ (Frequently Asked Questions) article. See ARCHIVE LOCATIONS below to find +out where to obtain the FAQ article. + +If you want to understand how the JPEG code works, we suggest reading one or +more of the REFERENCES, then looking at the documentation files (in roughly +the order listed) before diving into the code. -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. --------------------------------------------------------------------------------- -zlib +OVERVIEW +======== -Copyright (C) 1995-2022 Jean-loup Gailly and Mark Adler +This package contains C software to implement JPEG image encoding, decoding, +and transcoding. JPEG (pronounced "jay-peg") is a standardized compression +method for full-color and grayscale images. JPEG's strong suit is compressing +photographic images or other types of images that have smooth color and +brightness transitions between neighboring pixels. Images with sharp lines or +other abrupt features may not compress well with JPEG, and a higher JPEG +quality may have to be used to avoid visible compression artifacts with such +images. -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +JPEG is lossy, meaning that the output pixels are not necessarily identical to +the input pixels. However, on photographic content and other "smooth" images, +very good compression ratios can be obtained with no visible compression +artifacts, and extremely high compression ratios are possible if you are +willing to sacrifice image quality (by reducing the "quality" setting in the +compressor.) -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +This software implements JPEG baseline, extended-sequential, and progressive +compression processes. Provision is made for supporting all variants of these +processes, although some uncommon parameter settings aren't implemented yet. +We have made no provision for supporting the hierarchical or lossless +processes defined in the standard. -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. --------------------------------------------------------------------------------- -zlib +We provide a set of library routines for reading and writing JPEG image files, +plus two sample applications "cjpeg" and "djpeg", which use the library to +perform conversion between JPEG and some other popular image file formats. +The library is intended to be reused in other applications. -Copyright (C) 1995-2022 Jean-loup Gailly, Mark Adler +In order to support file conversion and viewing software, we have included +considerable functionality beyond the bare JPEG coding/decoding capability; +for example, the color quantization modules are not strictly part of JPEG +decoding, but they are essential for output to colormapped file formats or +colormapped displays. These extra functions can be compiled out of the +library if not required for a particular application. -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +We have also included "jpegtran", a utility for lossless transcoding between +different JPEG processes, and "rdjpgcom" and "wrjpgcom", two simple +applications for inserting and extracting textual comments in JFIF files. -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +The emphasis in designing this software has been on achieving portability and +flexibility, while also making it fast enough to be useful. In particular, +the software is not intended to be read as a tutorial on JPEG. (See the +REFERENCES section for introductory material.) Rather, it is intended to +be reliable, portable, industrial-strength code. We do not claim to have +achieved that goal in every aspect of the software, but we strive for it. -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. --------------------------------------------------------------------------------- -zlib +We welcome the use of this software as a component of commercial products. +No royalty is required, but we do ask for an acknowledgement in product +documentation, as described under LEGAL ISSUES. -Copyright (C) 1995-2022 Mark Adler +LEGAL ISSUES +============ -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +In plain English: -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +1. We don't promise that this software works. (But if you find any bugs, + please let us know!) +2. You can use this software for whatever you want. You don't have to pay us. +3. You may not pretend that you wrote this software. If you use it in a + program, you must acknowledge somewhere in your documentation that + you've used the IJG code. -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. --------------------------------------------------------------------------------- -zlib +In legalese: -Copyright (C) 1998-2010 Gilles Vollant (minizip) ( http://www.winimage.com/zLibDll/minizip.html ) +The authors make NO WARRANTY or representation, either express or implied, +with respect to this software, its quality, accuracy, merchantability, or +fitness for a particular purpose. This software is provided "AS IS", and you, +its user, assume the entire risk as to its quality and accuracy. -Modifications for Zip64 support -Copyright (C) 2009-2010 Mathias Svensson ( http://result42.com ) +This software is copyright (C) 1991-2016, Thomas G. Lane, Guido Vollbeding. +All Rights Reserved except as specified below. -For more info read MiniZip_info.txt +Permission is hereby granted to use, copy, modify, and distribute this +software (or portions thereof) for any purpose, without fee, subject to these +conditions: +(1) If any part of the source code for this software is distributed, then this +README file must be included, with this copyright and no-warranty notice +unaltered; and any additions, deletions, or changes to the original files +must be clearly indicated in accompanying documentation. +(2) If only executable code is distributed, then the accompanying +documentation must state that "this software is based in part on the work of +the Independent JPEG Group". +(3) Permission for use of this software is granted only if the user accepts +full responsibility for any undesirable consequences; the authors accept +NO LIABILITY for damages of any kind. -Condition of use and distribution are the same than zlib : +These conditions apply to any software derived from or based on the IJG code, +not just to the unmodified library. If you use our work, you ought to +acknowledge us. -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +Permission is NOT granted for the use of any IJG author's name or company name +in advertising or publicity relating to this software or products derived from +it. This software may be referred to only as "the Independent JPEG Group's +software". -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +We specifically permit and encourage the use of this software as the basis of +commercial products, provided that all warranty or liability claims are +assumed by the product vendor. -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. --------------------------------------------------------------------------------- -zlib +The Unix configuration script "configure" was produced with GNU Autoconf. +It is copyright by the Free Software Foundation but is freely distributable. +The same holds for its supporting scripts (config.guess, config.sub, +ltmain.sh). Another support script, install-sh, is copyright by X Consortium +but is also freely distributable. -Copyright (C) 1998-2010 Gilles Vollant (minizip) ( http://www.winimage.com/zLibDll/minizip.html ) +The IJG distribution formerly included code to read and write GIF files. +To avoid entanglement with the Unisys LZW patent (now expired), GIF reading +support has been removed altogether, and the GIF writer has been simplified +to produce "uncompressed GIFs". This technique does not use the LZW +algorithm; the resulting GIF files are larger than usual, but are readable +by all standard GIF decoders. -Modifications of Unzip for Zip64 -Copyright (C) 2007-2008 Even Rouault +We are required to state that + "The Graphics Interchange Format(c) is the Copyright property of + CompuServe Incorporated. GIF(sm) is a Service Mark property of + CompuServe Incorporated." -Modifications for Zip64 support on both zip and unzip -Copyright (C) 2009-2010 Mathias Svensson ( http://result42.com ) +REFERENCES +========== -For more info read MiniZip_info.txt +We recommend reading one or more of these references before trying to +understand the innards of the JPEG software. -Condition of use and distribution are the same than zlib : +The best short technical introduction to the JPEG compression algorithm is + Wallace, Gregory K. "The JPEG Still Picture Compression Standard", + Communications of the ACM, April 1991 (vol. 34 no. 4), pp. 30-44. +(Adjacent articles in that issue discuss MPEG motion picture compression, +applications of JPEG, and related topics.) If you don't have the CACM issue +handy, a PDF file containing a revised version of Wallace's article is +available at http://www.ijg.org/files/Wallace.JPEG.pdf. The file (actually +a preprint for an article that appeared in IEEE Trans. Consumer Electronics) +omits the sample images that appeared in CACM, but it includes corrections +and some added material. Note: the Wallace article is copyright ACM and IEEE, +and it may not be used for commercial purposes. -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +A somewhat less technical, more leisurely introduction to JPEG can be found in +"The Data Compression Book" by Mark Nelson and Jean-loup Gailly, published by +M&T Books (New York), 2nd ed. 1996, ISBN 1-55851-434-1. This book provides +good explanations and example C code for a multitude of compression methods +including JPEG. It is an excellent source if you are comfortable reading C +code but don't know much about data compression in general. The book's JPEG +sample code is far from industrial-strength, but when you are ready to look +at a full implementation, you've got one here... -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +The best currently available description of JPEG is the textbook "JPEG Still +Image Data Compression Standard" by William B. Pennebaker and Joan L. +Mitchell, published by Van Nostrand Reinhold, 1993, ISBN 0-442-01272-1. +Price US$59.95, 638 pp. The book includes the complete text of the ISO JPEG +standards (DIS 10918-1 and draft DIS 10918-2). -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. --------------------------------------------------------------------------------- -zlib +The original JPEG standard is divided into two parts, Part 1 being the actual +specification, while Part 2 covers compliance testing methods. Part 1 is +titled "Digital Compression and Coding of Continuous-tone Still Images, +Part 1: Requirements and guidelines" and has document numbers ISO/IEC IS +10918-1, ITU-T T.81. Part 2 is titled "Digital Compression and Coding of +Continuous-tone Still Images, Part 2: Compliance testing" and has document +numbers ISO/IEC IS 10918-2, ITU-T T.83. -Copyright (C) 2004, 2010 Mark Adler +The JPEG standard does not specify all details of an interchangeable file +format. For the omitted details we follow the "JFIF" conventions, revision +1.02. JFIF 1.02 has been adopted as an Ecma International Technical Report +and thus received a formal publication status. It is available as a free +download in PDF format from +http://www.ecma-international.org/publications/techreports/E-TR-098.htm. +A PostScript version of the JFIF document is available at +http://www.ijg.org/files/jfif.ps.gz. There is also a plain text version at +http://www.ijg.org/files/jfif.txt.gz, but it is missing the figures. -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +The TIFF 6.0 file format specification can be obtained by FTP from +ftp://ftp.sgi.com/graphics/tiff/TIFF6.ps.gz. The JPEG incorporation scheme +found in the TIFF 6.0 spec of 3-June-92 has a number of serious problems. +IJG does not recommend use of the TIFF 6.0 design (TIFF Compression tag 6). +Instead, we recommend the JPEG design proposed by TIFF Technical Note #2 +(Compression tag 7). Copies of this Note can be obtained from +http://www.ijg.org/files/. It is expected that the next revision +of the TIFF spec will replace the 6.0 JPEG design with the Note's design. +Although IJG's own code does not support TIFF/JPEG, the free libtiff library +uses our library to implement TIFF/JPEG per the Note. + +ARCHIVE LOCATIONS +================= -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +The "official" archive site for this software is www.ijg.org. +The most recent released version can always be found there in +directory "files". -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. --------------------------------------------------------------------------------- -zlib +The JPEG FAQ (Frequently Asked Questions) article is a source of some +general information about JPEG. +It is available on the World Wide Web at http://www.faqs.org/faqs/jpeg-faq +and other news.answers archive sites, including the official news.answers +archive at rtfm.mit.edu: ftp://rtfm.mit.edu/pub/usenet/news.answers/jpeg-faq/. +If you don't have Web or FTP access, send e-mail to mail-server@rtfm.mit.edu +with body + send usenet/news.answers/jpeg-faq/part1 + send usenet/news.answers/jpeg-faq/part2 -Copyright (C) 2004-2017 Mark Adler +FILE FORMAT WARS +================ -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +The ISO/IEC JTC1/SC29/WG1 standards committee (also known as JPEG, together +with ITU-T SG16) currently promotes different formats containing the name +"JPEG" which are incompatible with original DCT-based JPEG. IJG therefore does +not support these formats (see REFERENCES). Indeed, one of the original +reasons for developing this free software was to help force convergence on +common, interoperable format standards for JPEG files. +Don't use an incompatible file format! +(In any case, our decoder will remain capable of reading existing JPEG +image files indefinitely.) -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +TO DO +===== -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. +Please send bug reports, offers of help, etc. to jpeg-info@jpegclub.org. -------------------------------------------------------------------------------- -zlib +fuchsia_sdk -Copyright (C) 2004-2019 Mark Adler +musl as a whole is licensed under the following standard MIT license: -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +Copyright © 2005-2014 Rich Felker, et al. -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. --------------------------------------------------------------------------------- -zlib +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. -Copyright (C) 2013 Intel Corporation. All rights reserved. -Authors: - Wajdi Feghali - Jim Guilford - Vinodh Gopal - Erdinc Ozturk - Jim Kukunas +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +Authors/contributors include: -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +Alex Dowad +Alexander Monakov +Anthony G. Basile +Arvid Picciani +Bobby Bingham +Boris Brezillon +Brent Cook +Chris Spiegel +Clément Vasseur +Daniel Micay +Denys Vlasenko +Emil Renner Berthing +Felix Fietkau +Felix Janda +Gianluca Anzolin +Hauke Mehrtens +Hiltjo Posthuma +Isaac Dunham +Jaydeep Patil +Jens Gustedt +Jeremy Huntwork +Jo-Philipp Wich +Joakim Sindholt +John Spencer +Josiah Worcester +Justin Cormack +Khem Raj +Kylie McClain +Luca Barbato +Luka Perkov +M Farkas-Dyck (Strake) +Mahesh Bodapati +Michael Forney +Natanael Copa +Nicholas J. Kain +orc +Pascal Cuoq +Petr Hosek +Pierre Carrier +Rich Felker +Richard Pennington +Shiz +sin +Solar Designer +Stefan Kristiansson +Szabolcs Nagy +Timo Teräs +Trutz Behn +Valentin Ochs +William Haddon -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. --------------------------------------------------------------------------------- -zlib +Portions of this software are derived from third-party works licensed +under terms compatible with the above MIT license: -Copyright (C) 2017 ARM, Inc. -Copyright 2017 The Chromium Authors. All rights reserved. +Much of the math library code (third_party/math/* and +third_party/complex/*, and third_party/include/libm.h) is +Copyright © 1993,2004 Sun Microsystems or +Copyright © 2003-2011 David Schultz or +Copyright © 2003-2009 Steven G. Kargl or +Copyright © 2003-2009 Bruce D. Evans or +Copyright © 2008 Stephen L. Moshier +and labelled as such in comments in the individual source files. All +have been licensed under extremely permissive terms. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +The smoothsort implementation (third_party/smoothsort/qsort.c) is +Copyright © 2011 Valentin Ochs and is licensed under an MIT-style +license. - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. +The x86_64 files in third_party/arch were written by Nicholas J. Kain +and is licensed under the standard MIT terms. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -zlib +All other files which have no copyright comments are original works +produced specifically for use as part of this library, written either +by Rich Felker, the main author of the library, or by one or more +contibutors listed above. Details on authorship of individual files +can be found in the git version control history of the project. The +omission of copyright and license comments in each file is in the +interest of source tree size. -Copyright (c) 2022 The Chromium Authors. All rights reserved. +In addition, permission is hereby granted for all public header files +(include/* and arch/*/bits/*) and crt files intended to be linked into +applications (crt/*, ldso/dlstart.c, and arch/*/crt_arch.h) to omit +the copyright notice and permission notice otherwise required by the +license, and to use these files without any requirement of +attribution. These files include substantial contributions from: -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +Bobby Bingham +John Spencer +Nicholas J. Kain +Rich Felker +Richard Pennington +Stefan Kristiansson +Szabolcs Nagy - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. +all of whom have explicitly granted such permission. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +This file previously contained text expressing a belief that most of +the files covered by the above exception were sufficiently trivial not +to be subject to copyright, resulting in confusion over whether it +negated the permissions granted in the license. In the spirit of +permissive licensing, and of not having licensing issues being an +obstacle to adoption, that text has been removed. -------------------------------------------------------------------------------- zlib diff --git a/sky/tools/create_full_ios_framework.py b/sky/tools/create_full_ios_framework.py index fb3dd707b595c..3d46fc45850e9 100644 --- a/sky/tools/create_full_ios_framework.py +++ b/sky/tools/create_full_ios_framework.py @@ -41,12 +41,6 @@ def main(): parser.add_argument('--simulator-arm64-out-dir', type=str, required=False) parser.add_argument('--strip', action="store_true", default=False) parser.add_argument('--dsym', action="store_true", default=False) - parser.add_argument( - '--strip-bitcode', - dest='strip_bitcode', - action="store_true", - default=False - ) args = parser.parse_args() @@ -201,11 +195,6 @@ def zip_archive(dst): def process_framework(args, dst, framework, framework_binary): - if args.strip_bitcode: - subprocess.check_call([ - 'xcrun', 'bitcode_strip', '-r', framework_binary, '-o', framework_binary - ]) - if args.dsym: dsym_out = os.path.splitext(framework)[0] + '.dSYM' subprocess.check_call([DSYMUTIL, '-o', dsym_out, framework_binary]) diff --git a/sky/tools/create_ios_framework.py b/sky/tools/create_ios_framework.py index 201fe635b9199..e20c010656037 100755 --- a/sky/tools/create_ios_framework.py +++ b/sky/tools/create_ios_framework.py @@ -33,12 +33,6 @@ def main(): parser.add_argument('--simulator-arm64-out-dir', type=str, required=False) parser.add_argument('--strip', action="store_true", default=False) parser.add_argument('--dsym', action="store_true", default=False) - parser.add_argument( - '--strip-bitcode', - dest='strip_bitcode', - action="store_true", - default=False - ) args = parser.parse_args() @@ -113,11 +107,6 @@ def main(): def process_framework(args, framework, framework_binary): - if args.strip_bitcode: - subprocess.check_call([ - 'xcrun', 'bitcode_strip', '-r', framework_binary, '-o', framework_binary - ]) - if args.dsym: dsym_out = os.path.splitext(framework)[0] + '.dSYM' subprocess.check_call([DSYMUTIL, '-o', dsym_out, framework_binary]) diff --git a/sky/tools/flutter_gdb b/sky/tools/flutter_gdb index 78e435eccb44e..ee62dc52fbd6e 100755 --- a/sky/tools/flutter_gdb +++ b/sky/tools/flutter_gdb @@ -223,6 +223,7 @@ def main(): subparsers = parser.add_subparsers(help='sub-command help') parser.add_argument('--adb', type=str, help='path to ADB tool') parser.add_argument('--device', type=str, help='serial number of the target device') + parser.set_defaults(func=lambda args: parser.print_help()) commands = [ GdbClient(), diff --git a/sky/tools/macos.gni b/sky/tools/macos.gni deleted file mode 100644 index f321dda68aba2..0000000000000 --- a/sky/tools/macos.gni +++ /dev/null @@ -1,41 +0,0 @@ -# Copyright 2013 The Flutter Authors. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -import("//flutter/common/config.gni") - -# Copies an input macOS binary to the specified output path. Bitcode segments, -# if any, are stripped. -# -# Example: -# -# strip_bitcode( -# input = "$root_build_dir/gen_snapshot" -# output = "$root_build_dir/gen_snapshot_arm64" -# deps = [ ":gen_snapshot" ] -# ) -# -# TODO(cbracken): https://github.com/flutter/flutter/issues/107884 -# When we stop building with bitcode enabled, this template and the -# strip_bitcode.py script can be deleted and users can call copy() instead. -template("strip_bitcode") { - assert(defined(invoker.input), "The input to strip_bitcode must be defined") - assert(defined(invoker.output), "The output to strip_bitcode most be defined") - action(target_name) { - forward_variables_from(invoker, - [ - "deps", - "metadata", - "visibility", - ]) - script = "//flutter/sky/tools/strip_bitcode.py" - args = [ - "--input", - rebase_path(invoker.input), - "--output", - rebase_path(invoker.output), - ] - inputs = [ invoker.input ] - outputs = [ invoker.output ] - } -} diff --git a/sky/tools/strip_bitcode.py b/sky/tools/strip_bitcode.py deleted file mode 100755 index c5786ad5610fe..0000000000000 --- a/sky/tools/strip_bitcode.py +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env python3 -# -# Copyright 2013 The Flutter Authors. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -import argparse -import os -import subprocess -import sys - - -def main(): - parser = argparse.ArgumentParser( - description='Copies an input macOS binary to the specified output path. ' - 'Bitcode segments, if any, are stripped.' - ) - parser.add_argument( - '--input', - type=str, - required=True, - help='path of input binary to be read' - ) - parser.add_argument( - '--output', - type=str, - required=True, - help='path of output binary to be written' - ) - args = parser.parse_args() - - # Verify input binary exists. - if not os.path.isfile(args.input): - print('Cannot find input binary at %s' % args.input) - sys.exit(1) - - # Copy input path to output path. Strip bitcode segments, if any. - subprocess.check_call([ - 'xcrun', 'bitcode_strip', '-r', args.input, '-o', args.output - ]) - - -if __name__ == '__main__': - sys.exit(main()) diff --git a/testing/BUILD.gn b/testing/BUILD.gn index 3416c67d2cf7c..8ca7c4f0a74a7 100644 --- a/testing/BUILD.gn +++ b/testing/BUILD.gn @@ -141,9 +141,11 @@ if (enable_unittests) { deps = [ ":skia", + "//flutter/flutter_vma:flutter_skia_vma", "//flutter/fml", "//flutter/shell/common", "//flutter/vulkan", + "//flutter/vulkan/procs", ] if (!is_fuchsia) { diff --git a/testing/benchmark/generate_metrics.sh b/testing/benchmark/generate_metrics.sh index 0ea0e590b29ed..3886c595870dc 100644 --- a/testing/benchmark/generate_metrics.sh +++ b/testing/benchmark/generate_metrics.sh @@ -14,4 +14,4 @@ set -ex ./shell_benchmarks --benchmark_format=json > shell_benchmarks.json ./ui_benchmarks --benchmark_format=json > ui_benchmarks.json ./display_list_builder_benchmarks --benchmark_format=json > display_list_builder_benchmarks.json - +./geometry_benchmarks --benchmark_format=json > geometry_benchmarks.json diff --git a/testing/benchmark/upload_metrics.sh b/testing/benchmark/upload_metrics.sh index e5b371bf23e30..a087c947df4be 100644 --- a/testing/benchmark/upload_metrics.sh +++ b/testing/benchmark/upload_metrics.sh @@ -46,3 +46,5 @@ cd "$SCRIPT_DIR" --json ../../../out/host_release/ui_benchmarks.json "$@" "$DART" --disable-dart-dev bin/parse_and_send.dart \ --json ../../../out/host_release/display_list_builder_benchmarks.json "$@" +"$DART" --disable-dart-dev bin/parse_and_send.dart \ + --json ../../../out/host_release/geometry_benchmarks.json "$@" diff --git a/testing/dart/assets_test.dart b/testing/dart/assets_test.dart index 64943c2179a91..198f952f98e7f 100644 --- a/testing/dart/assets_test.dart +++ b/testing/dart/assets_test.dart @@ -21,12 +21,29 @@ void main() { expect(error is Exception, true); }); + test('Loading a file that does not exist returns null', () async { + Object? error; + try { + await ImmutableBuffer.fromFilePath('ThisDoesNotExist'); + } catch (err) { + error = err; + } + expect(error, isNotNull); + expect(error is Exception, true); + }); + test('returns the bytes of a bundled asset', () async { final ImmutableBuffer buffer = await ImmutableBuffer.fromAsset('DashInNooglerHat.jpg'); expect(buffer.length == 354679, true); }); + test('returns the bytes of a file', () async { + final ImmutableBuffer buffer = await ImmutableBuffer.fromFilePath('flutter/lib/ui/fixtures/DashInNooglerHat.jpg'); + + expect(buffer.length == 354679, true); + }); + test('Can load an asset with a space in the key', () async { // This assets actual path is "fixtures/DashInNooglerHat%20WithSpace.jpg" final ImmutableBuffer buffer = await ImmutableBuffer.fromAsset('DashInNooglerHat WithSpace.jpg'); diff --git a/testing/dart/fragment_shader_test.dart b/testing/dart/fragment_shader_test.dart index e8399e762d650..ed12e9939ed9e 100644 --- a/testing/dart/fragment_shader_test.dart +++ b/testing/dart/fragment_shader_test.dart @@ -4,6 +4,7 @@ import 'dart:async'; import 'dart:collection'; +import 'dart:convert' as convert; import 'dart:io'; import 'dart:typed_data'; import 'dart:ui'; @@ -20,6 +21,26 @@ void main() async { return true; }()); + test('impellerc produces reasonable JSON encoded IPLR files', () async { + final Directory directory = shaderDirectory('iplr-json'); + final Object? rawData = convert.json.decode( + File(path.join(directory.path, 'ink_sparkle.frag.iplr')).readAsStringSync()); + + expect(rawData is Map, true); + + final Map data = rawData! as Map; + expect(data['sksl'] is String, true); + expect(data['uniforms'] is List, true); + + final Object? rawUniformData = (data['uniforms']! as List)[0]; + + expect(rawUniformData is Map, true); + + final Map uniformData = rawUniformData! as Map; + + expect(uniformData['location'] is int, true); + }); + test('FragmentShader setSampler throws with out-of-bounds index', () async { final FragmentProgram program = await FragmentProgram.fromAsset( 'blue_green_sampler.frag.iplr', @@ -226,7 +247,7 @@ void main() async { ); final FragmentShader shader = program.fragmentShader(); - for (int i = 0; i < 24; i++) { + for (int i = 0; i < 20; i++) { shader.setFloat(i, i.toDouble()); } diff --git a/testing/dart/isolate_test.dart b/testing/dart/isolate_test.dart index 87a8081a1a59c..c3330fb29d601 100644 --- a/testing/dart/isolate_test.dart +++ b/testing/dart/isolate_test.dart @@ -3,6 +3,7 @@ // found in the LICENSE file. import 'dart:isolate'; +import 'dart:ui'; import 'package:litetest/litetest.dart'; @@ -20,4 +21,14 @@ void main() { } expect(threw, true); }); + + test('UI isolate API throws in a background isolate', () async { + void callUiApi(void message) { + PlatformDispatcher.instance.onReportTimings = (_) {}; + } + final ReceivePort errorPort = ReceivePort(); + await Isolate.spawn(callUiApi, null, onError: errorPort.sendPort); + final List isolateError = await errorPort.first as List; + expect(isolateError[0], 'UI actions are only available on root isolate.'); + }); } diff --git a/testing/display_list_testing.cc b/testing/display_list_testing.cc index 42507471db681..007cd71971481 100644 --- a/testing/display_list_testing.cc +++ b/testing/display_list_testing.cc @@ -302,7 +302,7 @@ std::ostream& DisplayListStreamDispatcher::startl() { } template -std::ostream& DisplayListStreamDispatcher::out_array(std::string name, +std::ostream& DisplayListStreamDispatcher::out_array(std::string name, // NOLINT(performance-unnecessary-value-param) int count, const T array[]) { if (array == nullptr || count < 0) { diff --git a/testing/fuchsia/test_suites.yaml b/testing/fuchsia/test_suites.yaml index 711b7eff700a4..fa33a1503bbc3 100644 --- a/testing/fuchsia/test_suites.yaml +++ b/testing/fuchsia/test_suites.yaml @@ -39,6 +39,22 @@ package: dart_utils_tests-0.far - test_command: run-test-suite fuchsia-pkg://fuchsia.com/dart-jit-runner-integration-test#meta/dart-jit-runner-integration-test.cm packages: + - oot_dart_jit_runner-0.far - dart-jit-runner-integration-test-0.far - - dart_jit_runner-0.far - - gen/flutter/shell/platform/fuchsia/dart_runner/tests/startup_integration_test/dart_jit_runner/dart_jit_echo_server/dart_jit_echo_server/dart_jit_echo_server.far + - gen/flutter/shell/platform/fuchsia/dart_runner/tests/startup_integration_test/dart_echo_server/dart_jit_echo_server/dart_jit_echo_server.far +- test_command: run-test-suite fuchsia-pkg://fuchsia.com/dart-aot-runner-integration-test#meta/dart-aot-runner-integration-test.cm + run_with_dart_aot: 'true' + packages: + - oot_dart_aot_runner-0.far + - dart-aot-runner-integration-test-0.far + - gen/flutter/shell/platform/fuchsia/dart_runner/tests/startup_integration_test/dart_echo_server/dart_aot_echo_server/dart_aot_echo_server.far +- test_command: run-test-suite fuchsia-pkg://fuchsia.com/touch-input-test#meta/touch-input-test.cm + packages: + - touch-input-test-0.far + - oot_flutter_jit_runner-0.far + - gen/flutter/shell/platform/fuchsia/flutter/tests/integration/touch-input/touch-input-view/touch-input-view/touch-input-view.far +- test_command: run-test-suite fuchsia-pkg://fuchsia.com/mouse-input-test#meta/mouse-input-test.cm + packages: + - mouse-input-test-0.far + - oot_flutter_jit_runner-0.far + - gen/flutter/shell/platform/fuchsia/flutter/tests/integration/mouse-input/mouse-input-view/mouse-input-view/mouse-input-view.far diff --git a/testing/impeller_vulkan_test_status.csv b/testing/impeller_vulkan_test_status.csv new file mode 100644 index 0000000000000..517d67ef9f33e --- /dev/null +++ b/testing/impeller_vulkan_test_status.csv @@ -0,0 +1,141 @@ +test,status +CanRenderImage/Vulkan,fail +CanRenderTiledTexture/Vulkan,fail +CanRenderImageRect/Vulkan,fail +CoordinateConversionsAreCorrect/Vulkan,fail +CanRenderDifferencePaths/Vulkan,fail +SaveLayerFiltersScaleWithTransform/Vulkan,fail +CanDrawImage/Vulkan,fail +CanDrawWithMaskBlur/Vulkan,fail +CanDrawWithBlendColorFilter/Vulkan,fail +CanDrawWithColorFilterImageFilter/Vulkan,fail +CanDrawWithImageBlurFilter/Vulkan,fail +CanDrawWithComposeImageFilter/Vulkan,fail +CanClampTheResultingColorOfColorMatrixFilter/Vulkan,fail +SaveLayerWithColorMatrixFiltersAndAlphaDrawCorrectly/Vulkan,fail +SaveLayerWithBlendFiltersAndAlphaDrawCorrectly/Vulkan,fail +CanDrawBackdropFilter/Vulkan,fail +CanDrawNinePatchImage/Vulkan,fail +CanDrawNinePatchImageCenterWidthBiggerThanDest/Vulkan,fail +CanDrawNinePatchImageCenterHeightBiggerThanDest/Vulkan,fail +CanDrawNinePatchImageCenterBiggerThanDest/Vulkan,fail +CanDrawNinePatchImageCornersScaledDown/Vulkan,fail +CanDrawWithMatrixFilter/Vulkan,fail +CanDrawPaintWithColorSource/Vulkan,fail +FilterCoverageRespectsCropRect/Vulkan,fail +Filters/Vulkan,fail +GaussianBlurFilter/Vulkan,fail +MorphologyFilter/Vulkan,fail +DrawAtlasNoColor/Vulkan,fail +DrawAtlasWithColor/Vulkan,fail +DrawAtlasUsesProvidedCullRectForCoverage/Vulkan,fail +DrawAtlasWithOpacity/Vulkan,fail +DrawAtlasNoColorFullSize/Vulkan,fail +ColorMatrixFilterEditable/Vulkan,fail +LinearToSrgbFilter/Vulkan,fail +SrgbToLinearFilter/Vulkan,fail +CanCreateBoxPrimitive/Vulkan,fail +CanRenderPerspectiveCube/Vulkan,fail +CanRenderMultiplePrimitives/Vulkan,fail +CanRenderToTexture/Vulkan,fail +CanBlitTextureToTexture/Vulkan,fail +CanGenerateMipmaps/Vulkan,fail +TheImpeller/Vulkan,fail +InactiveUniforms/Vulkan,fail +CanCreateGlyphAtlas/Vulkan,fail +GlyphAtlasWithOddUniqueGlyphSize/Vulkan,fail +CanRegisterStage/Vulkan,pass +CanCreatePipelineFromRuntimeStage/Vulkan,pass +CanvasCTMCanBeUpdated/Vulkan,pass +CanvasCanPushPopCTM/Vulkan,pass +CanRenderColoredRect/Vulkan,pass +CanRenderStrokes/Vulkan,pass +CanRenderCurvedStrokes/Vulkan,pass +CanRenderClips/Vulkan,pass +CanRenderNestedClips/Vulkan,pass +CanRenderDifferenceClips/Vulkan,pass +ClipsUseCurrentTransform/Vulkan,pass +CanSaveLayerStandalone/Vulkan,pass +CanRenderLinearGradient/Vulkan,pass +CanRenderLinearGradientManyColors/Vulkan,pass +CanRenderLinearGradientWayManyColors/Vulkan,pass +CanRenderLinearGradientManyColorsUnevenStops/Vulkan,pass +CanRenderRadialGradient/Vulkan,pass +CanRenderRadialGradientManyColors/Vulkan,pass +CanRenderSweepGradient/Vulkan,pass +CanRenderSweepGradientManyColors/Vulkan,pass +CanRenderDifferentShapesWithSameColorSource/Vulkan,pass +CanPictureConvertToImage/Vulkan,pass +BlendModeShouldCoverWholeScreen/Vulkan,pass +CanRenderGroupOpacity/Vulkan,pass +CanPerformFullScreenMSAA/Vulkan,pass +CanPerformSkew/Vulkan,pass +CanPerformSaveLayerWithBounds/Vulkan,pass +CanPerformSaveLayerWithBoundsAndLargerIntermediateIsNotAllocated/Vulkan,pass +CanRenderRoundedRectWithNonUniformRadii/Vulkan,pass +CanRenderTextFrame/Vulkan,pass +CanRenderItalicizedText/Vulkan,pass +CanRenderEmojiTextFrame/Vulkan,pass +CanRenderTextInSaveLayer/Vulkan,pass +CanDrawPaint/Vulkan,pass +PaintBlendModeIsRespected/Vulkan,pass +ColorWheel/Vulkan,pass +TransformMultipliesCorrectly/Vulkan,pass +SolidStrokesRenderCorrectly/Vulkan,pass +GradientStrokesRenderCorrectly/Vulkan,pass +CoverageOriginShouldBeAccountedForInSubpasses/Vulkan,fail +DrawRectStrokesRenderCorrectly/Vulkan,pass +SaveLayerDrawsBehindSubsequentEntities/Vulkan,pass +SiblingSaveLayerBoundsAreRespected/Vulkan,pass +CanRenderClippedLayers/Vulkan,pass +CanDrawRect/Vulkan,pass +CanDrawTextBlob/Vulkan,pass +CanDrawCapsAndJoins/Vulkan,pass +CanDrawArc/Vulkan,pass +StrokedPathsDrawCorrectly/Vulkan,pass +CanDrawWithOddPathWinding/Vulkan,pass +CanDrawPoints/Vulkan,pass +CanDrawZeroLengthLine/Vulkan,pass +CanDrawShadow/Vulkan,pass +CanConvertTriangleFanToTriangles/Vulkan,pass +CanDrawZeroWidthLine/Vulkan,pass +CanDrawRectWithLinearToSrgbColorFilter/Vulkan,pass +CanBlendDstOverAndDstCorrectly/Vulkan,pass +CanCreateEntity/Vulkan,pass +EntityPassCoverageRespectsDelegateBoundsHint/Vulkan,pass +EntityPassCoverageRespectsCoverageLimit/Vulkan,pass +CanDrawRect/Vulkan,pass +ThreeStrokesInOnePath/Vulkan,pass +TriangleInsideASquare/Vulkan,pass +StrokeCapAndJoinTest/Vulkan,pass +CubicCurveTest/Vulkan,pass +CubicCurveAndOverlapTest/Vulkan,pass +SolidColorContentsStrokeSetStrokeCapsAndJoins/Vulkan,pass +SolidColorContentsStrokeSetMiterLimit/Vulkan,pass +BlendingModeOptions/Vulkan,pass +BezierCircleScaled/Vulkan,pass +SetBlendMode/Vulkan,pass +ContentsGetBoundsForEmptyPathReturnsNullopt/Vulkan,pass +SolidStrokeCoverageIsCorrect/Vulkan,pass +BorderMaskBlurCoverageIsCorrect/Vulkan,pass +DrawVerticesSolidColorTrianglesWithoutIndices/Vulkan,pass +DrawVerticesLinearGradientWithoutIndices/Vulkan,pass +DrawVerticesSolidColorTrianglesWithIndices/Vulkan,pass +SolidFillCoverageIsCorrect/Vulkan,pass +SolidFillShouldRenderIsCorrect/Vulkan,pass +ClipContentsShouldRenderIsCorrect/Vulkan,pass +RRectShadowTest/Vulkan,pass +ColorMatrixFilterCoverageIsCorrect/Vulkan,pass +LinearToSrgbFilterCoverageIsCorrect/Vulkan,pass +SrgbToLinearFilterCoverageIsCorrect/Vulkan,pass +TTTBlendColor/Vulkan,pass +SdfText/Vulkan,pass +RuntimeEffect/Vulkan,pass +ArrayUniforms/Vulkan,pass +CanCreateCPUBackedTexture/Vulkan,pass +DefaultIndexSize/Vulkan,pass +VertexBufferBuilder/Vulkan,pass +CanCreateComputePass/Vulkan,pass +CanConvertTextBlob/Vulkan,pass +CanCreateRenderContext/Vulkan,pass +LazyAtlasTracksColor/Vulkan,pass diff --git a/testing/run_all_unittests.cc b/testing/run_all_unittests.cc index e6baa80f37849..ae5105fc21e72 100644 --- a/testing/run_all_unittests.cc +++ b/testing/run_all_unittests.cc @@ -18,7 +18,7 @@ #endif // FML_OS_IOS std::optional GetTestTimeoutFromArgs(int argc, char** argv) { - const auto command_line = fml::CommandLineFromArgcArgv(argc, argv); + const auto command_line = fml::CommandLineFromPlatformOrArgcArgv(argc, argv); std::string timeout_seconds; if (!command_line.GetOptionValue("timeout", &timeout_seconds)) { diff --git a/testing/run_tests.py b/testing/run_tests.py index a954a991e859a..23553c156ed03 100755 --- a/testing/run_tests.py +++ b/testing/run_tests.py @@ -17,7 +17,10 @@ import subprocess import sys import time +import csv +import xvfb +script_dir = os.path.dirname(os.path.realpath(__file__)) buildroot_dir = os.path.abspath( os.path.join(os.path.realpath(__file__), '..', '..', '..') ) @@ -305,6 +308,12 @@ def __str__(self): return " ".join(command) +shuffle_flags = [ + "--gtest_repeat=2", + "--gtest_shuffle", +] + + def RunCCTests(build_dir, filter, coverage, capture_core_dump): print("Running Engine Unit-tests.") @@ -314,11 +323,6 @@ def RunCCTests(build_dir, filter, coverage, capture_core_dump): resource.RLIMIT_CORE, (resource.RLIM_INFINITY, resource.RLIM_INFINITY) ) - shuffle_flags = [ - "--gtest_repeat=2", - "--gtest_shuffle", - ] - repeat_flags = [ "--repeat=2", ] @@ -423,10 +427,34 @@ def make_test(name, flags=repeat_flags, extra_env={}): 'impeller_unittests', filter, shuffle_flags, - coverage=coverage + coverage=coverage, + extra_env={ + # See https://developer.apple.com/documentation/metal/diagnosing_metal_programming_issues_early?language=objc + 'MTL_SHADER_VALIDATION': + '1', # Enables all shader validation tests. + 'MTL_SHADER_VALIDATION_GLOBAL_MEMORY': + '1', # Validates accesses to device and constant memory. + 'MTL_SHADER_VALIDATION_THREADGROUP_MEMORY': + '1', # Validates accesses to threadgroup memory. + 'MTL_SHADER_VALIDATION_TEXTURE_USAGE': + '1', # Validates that texture references are not nil. + } ) +def ParseImpellerVulkanFilter(): + test_status_path = os.path.join(script_dir, 'impeller_vulkan_test_status.csv') + gtest_filter = '--gtest_filter="' + with open(test_status_path, 'r') as csvfile: + csvreader = csv.reader(csvfile) + next(csvreader) # Skip header. + for row in csvreader: + if row[1] == 'pass': + gtest_filter += '*%s:' % row[0] + gtest_filter += '"' + return gtest_filter + + def RunEngineBenchmarks(build_dir, filter): print("Running Engine Benchmarks.") @@ -444,6 +472,8 @@ def RunEngineBenchmarks(build_dir, filter): build_dir, 'display_list_builder_benchmarks', filter, icu_flags ) + RunEngineExecutable(build_dir, 'geometry_benchmarks', filter, icu_flags) + if IsLinux(): RunEngineExecutable(build_dir, 'txt_benchmarks', filter, icu_flags) @@ -1052,6 +1082,26 @@ def main(): build_dir, engine_filter, args.coverage, args.engine_capture_core_dump ) + # Use this type to exclusively run impeller vulkan tests. + # TODO (https://github.com/flutter/flutter/issues/113961): Remove this once + # impeller vulkan tests are stable. + if 'impeller-vulkan' in types: + build_name = args.variant + try: + xvfb.StartVirtualX(build_name, build_dir) + vulkan_gtest_filter = ParseImpellerVulkanFilter() + gtest_flags = shuffle_flags + gtest_flags.append(vulkan_gtest_filter) + RunEngineExecutable( + build_dir, + 'impeller_unittests', + engine_filter, + gtest_flags, + coverage=args.coverage + ) + finally: + xvfb.StopVirtualX(build_name) + if 'dart' in types: dart_filter = args.dart_filter.split(',') if args.dart_filter else None tasks = list(GatherDartSmokeTest(build_dir, args.verbose_dart_snapshot)) diff --git a/testing/scenario_app/ios/Scenarios/Scenarios.xcodeproj/project.pbxproj b/testing/scenario_app/ios/Scenarios/Scenarios.xcodeproj/project.pbxproj index af7c7321d3671..feecb3b772466 100644 --- a/testing/scenario_app/ios/Scenarios/Scenarios.xcodeproj/project.pbxproj +++ b/testing/scenario_app/ios/Scenarios/Scenarios.xcodeproj/project.pbxproj @@ -152,6 +152,7 @@ 68D4017B2564859300ECD91A /* ContinuousTexture.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ContinuousTexture.h; sourceTree = ""; }; 68D4017C2564859300ECD91A /* ContinuousTexture.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ContinuousTexture.m; sourceTree = ""; }; F26F15B7268B6B5500EC54D3 /* iPadGestureTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = iPadGestureTests.m; sourceTree = ""; }; + F72114B628EF99F500184A2D /* Info_Impeller.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info_Impeller.plist; sourceTree = ""; }; F769EB52276312BB007AC10F /* golden_platform_view_cliprect_iPhone 8_13.0_simulator.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "golden_platform_view_cliprect_iPhone 8_13.0_simulator.png"; sourceTree = ""; }; F7B464DE2759D0A900079189 /* golden_two_platform_views_with_other_backdrop_filter_iPhone 8_13.0_simulator.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "golden_two_platform_views_with_other_backdrop_filter_iPhone 8_13.0_simulator.png"; sourceTree = ""; }; F7B464DF2759D0A900079189 /* golden_platform_view_iPhone 8_13.0_simulator.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "golden_platform_view_iPhone 8_13.0_simulator.png"; sourceTree = ""; }; @@ -227,6 +228,7 @@ 248D76CB22E388370012F0C1 /* AppDelegate.m */, 248D76D322E388380012F0C1 /* Assets.xcassets */, 248D76D822E388380012F0C1 /* Info.plist */, + F72114B628EF99F500184A2D /* Info_Impeller.plist */, 248D76D922E388380012F0C1 /* main.m */, 0A57B3BB2323C4BD00DD9521 /* ScreenBeforeFlutter.h */, 0A57B3BC2323C4BD00DD9521 /* ScreenBeforeFlutter.m */, diff --git a/testing/scenario_app/ios/Scenarios/Scenarios/Info_Impeller.plist b/testing/scenario_app/ios/Scenarios/Scenarios/Info_Impeller.plist new file mode 100644 index 0000000000000..798a798b4766e --- /dev/null +++ b/testing/scenario_app/ios/Scenarios/Scenarios/Info_Impeller.plist @@ -0,0 +1,47 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIRequiredDeviceCapabilities + + arm64 + + UIRequiresFullScreen + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + FLTEnableImpeller + + + diff --git a/testing/scenario_app/ios/Scenarios/ScenariosUITests/golden_two_platform_views_with_other_backdrop_filter_iPhone 8_13.0_simulator.png b/testing/scenario_app/ios/Scenarios/ScenariosUITests/golden_two_platform_views_with_other_backdrop_filter_iPhone 8_13.0_simulator.png index 307864c09a863..8fbee0e9eac2c 100644 Binary files a/testing/scenario_app/ios/Scenarios/ScenariosUITests/golden_two_platform_views_with_other_backdrop_filter_iPhone 8_13.0_simulator.png and b/testing/scenario_app/ios/Scenarios/ScenariosUITests/golden_two_platform_views_with_other_backdrop_filter_iPhone 8_13.0_simulator.png differ diff --git a/testing/scenario_app/lib/src/locale_initialization.dart b/testing/scenario_app/lib/src/locale_initialization.dart index d6a9afcdae547..2cdfc43f24737 100644 --- a/testing/scenario_app/lib/src/locale_initialization.dart +++ b/testing/scenario_app/lib/src/locale_initialization.dart @@ -43,8 +43,8 @@ class LocaleInitialization extends Scenario { // On the first frame, pretend that it drew a text field. Send the // corresponding semantics tree comprised of 1 node with the locale data // as the label. - window.updateSemantics((SemanticsUpdateBuilder() - ..updateNode( + final SemanticsUpdateBuilder semanticsUpdateBuilder = + SemanticsUpdateBuilder()..updateNode( id: 0, // SemanticsFlag.isTextField. flags: 16, @@ -79,8 +79,11 @@ class LocaleInitialization extends Scenario { childrenInTraversalOrder: Int32List(0), childrenInHitTestOrder: Int32List(0), additionalActions: Int32List(0), - )).build() - ); + ); + + final SemanticsUpdate semanticsUpdate = semanticsUpdateBuilder.build(); + + dispatcher.views.first.updateSemantics(semanticsUpdate); } /// Handle taps. @@ -98,8 +101,8 @@ class LocaleInitialization extends Scenario { // Expand for other test cases. } - window.updateSemantics((SemanticsUpdateBuilder() - ..updateNode( + final SemanticsUpdateBuilder semanticsUpdateBuilder = + SemanticsUpdateBuilder()..updateNode( id: 0, // SemanticsFlag.isTextField. flags: 16, @@ -134,8 +137,12 @@ class LocaleInitialization extends Scenario { childrenInTraversalOrder: Int32List(0), childrenInHitTestOrder: Int32List(0), additionalActions: Int32List(0), - )).build() - ); + ); + + final SemanticsUpdate semanticsUpdate = semanticsUpdateBuilder.build(); + + dispatcher.views.first.updateSemantics(semanticsUpdate); + _tapCount++; } } diff --git a/testing/scenario_app/run_ios_tests.sh b/testing/scenario_app/run_ios_tests.sh index 900ecca04f597..d917015d35d1d 100755 --- a/testing/scenario_app/run_ios_tests.sh +++ b/testing/scenario_app/run_ios_tests.sh @@ -38,8 +38,26 @@ fi defaults write com.apple.iphonesimulator RotateWindowWhenSignaledByGuest -int 1 cd $SRC_DIR/out/$FLUTTER_ENGINE/scenario_app/Scenarios + +echo "Running simulator tests with Skia" +echo "" + set -o pipefail && xcodebuild -sdk iphonesimulator \ -scheme Scenarios \ -destination 'platform=iOS Simulator,OS=13.0,name=iPhone 8' \ clean test \ FLUTTER_ENGINE="$FLUTTER_ENGINE" + +echo "Running simulator tests with Impeller" +echo "" + +# Skip testFontRenderingWhenSuppliedWithBogusFont: https://github.com/flutter/flutter/issues/113250 +# Skip testOneOverlayAndTwoIntersectingOverlays: https://github.com/flutter/flutter/issues/113251 +set -o pipefail && xcodebuild -sdk iphonesimulator \ + -scheme Scenarios \ + -destination 'platform=iOS Simulator,OS=13.0,name=iPhone 8' \ + clean test \ + FLUTTER_ENGINE="$FLUTTER_ENGINE" \ + -skip-testing "ScenariosUITests/BogusFontTextTest/testFontRenderingWhenSuppliedWithBogusFont" \ + -skip-testing "ScenariosUITests/UnobstructedPlatformViewTests/testOneOverlayAndTwoIntersectingOverlays" \ + INFOPLIST_FILE="Scenarios/Info_Impeller.plist" # Plist with FLTEnableImpeller=YES diff --git a/testing/symbols/verify_exported.dart b/testing/symbols/verify_exported.dart index 5634e0b4423c6..76095402c4cdd 100644 --- a/testing/symbols/verify_exported.dart +++ b/testing/symbols/verify_exported.dart @@ -96,9 +96,7 @@ int _checkIos(String outPath, String nmPath, Iterable builds) { final Iterable unexpectedEntries = NmEntry.parse(nmResult.stdout as String).where((NmEntry entry) { return !(((entry.type == '(__DATA,__common)' || entry.type == '(__DATA,__const)') && entry.name.startsWith('_Flutter')) || (entry.type == '(__DATA,__objc_data)' - && (entry.name.startsWith(r'_OBJC_METACLASS_$_Flutter') || entry.name.startsWith(r'_OBJC_CLASS_$_Flutter'))) - // TODO(107887): This should not be neccesary after bitcode support is removed from the engine. - || (entry.type == '(__TEXT,__text)' && entry.name == '___gxx_personality_v0')); + && (entry.name.startsWith(r'_OBJC_METACLASS_$_Flutter') || entry.name.startsWith(r'_OBJC_CLASS_$_Flutter')))); }); if (unexpectedEntries.isNotEmpty) { print('ERROR: $libFlutter exports unexpected symbols:'); diff --git a/testing/test_vulkan_context.cc b/testing/test_vulkan_context.cc index 85c857faa16d0..ea36581add8e2 100644 --- a/testing/test_vulkan_context.cc +++ b/testing/test_vulkan_context.cc @@ -6,9 +6,11 @@ #include #include +#include "flutter/flutter_vma/flutter_skia_vma.h" #include "flutter/fml/logging.h" #include "flutter/shell/common/context_options.h" #include "flutter/testing/test_vulkan_context.h" +#include "flutter/vulkan/vulkan_skia_proc_table.h" #include "flutter/fml/memory/ref_ptr.h" #include "flutter/fml/native_library.h" @@ -81,12 +83,17 @@ TestVulkanContext::TestVulkanContext() { return; } - auto get_proc = vk_->CreateSkiaGetProc(); + auto get_proc = vulkan::CreateSkiaGetProc(vk_); if (get_proc == nullptr) { FML_LOG(ERROR) << "Failed to create Vulkan getProc for Skia."; return; } + sk_sp allocator = + flutter::FlutterSkiaVulkanMemoryAllocator::Make( + VK_MAKE_VERSION(1, 0, 0), application_->GetInstance(), + device_->GetPhysicalDeviceHandle(), device_->GetHandle(), vk_, true); + GrVkExtensions extensions; GrVkBackendContext backend_context = {}; @@ -101,6 +108,7 @@ TestVulkanContext::TestVulkanContext() { backend_context.fVkExtensions = &extensions; backend_context.fGetProc = get_proc; backend_context.fOwnsInstanceAndDevice = false; + backend_context.fMemoryAllocator = allocator; GrContextOptions options = MakeDefaultContextOptions(ContextType::kRender, GrBackendApi::kVulkan); diff --git a/testing/test_vulkan_context.h b/testing/test_vulkan_context.h index 25d212bf05eb1..7e61836550c92 100644 --- a/testing/test_vulkan_context.h +++ b/testing/test_vulkan_context.h @@ -8,9 +8,9 @@ #include "flutter/fml/macros.h" #include "flutter/fml/memory/ref_ptr.h" #include "flutter/testing/test_vulkan_image.h" +#include "flutter/vulkan/procs/vulkan_proc_table.h" #include "flutter/vulkan/vulkan_application.h" #include "flutter/vulkan/vulkan_device.h" -#include "flutter/vulkan/vulkan_proc_table.h" #include "third_party/skia/include/core/SkSize.h" #include "third_party/skia/include/gpu/GrDirectContext.h" diff --git a/testing/test_vulkan_image.h b/testing/test_vulkan_image.h index c8a6a797f385e..e0a030c8169df 100644 --- a/testing/test_vulkan_image.h +++ b/testing/test_vulkan_image.h @@ -6,9 +6,9 @@ #define FLUTTER_TESTING_TEST_VULKAN_IMAGE_H_ #include "flutter/fml/macros.h" -#include "flutter/vulkan/vulkan_handle.h" #include "flutter/fml/memory/ref_ptr.h" +#include "flutter/vulkan/procs/vulkan_handle.h" #include "third_party/skia/include/core/SkSize.h" namespace flutter { diff --git a/testing/xvfb.py b/testing/xvfb.py new file mode 100644 index 0000000000000..b7f6f40411d8b --- /dev/null +++ b/testing/xvfb.py @@ -0,0 +1,154 @@ +# Copyright (c) 2012 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +"""Functions to setup xvfb, which is used by the linux machines. +""" + +import os +import platform +import signal +import subprocess +import tempfile +import time + + +def _XvfbDisplayIndex(_child_build_name): + return '9' + + +def _XvfbPidFilename(child_build_name): + """Returns the filename to the Xvfb pid file. This name is unique for each + builder. This is used by the linux builders.""" + return os.path.join( + tempfile.gettempdir(), + 'xvfb-' + _XvfbDisplayIndex(child_build_name) + '.pid' + ) + + +def StartVirtualX(child_build_name, build_dir): + """Start a virtual X server and set the DISPLAY environment variable so sub + processes will use the virtual X server. Also start openbox. This only works + on Linux and assumes that xvfb and openbox are installed. + + Args: + child_build_name: The name of the build that we use for the pid file. + E.g., webkit-rel-linux. + build_dir: The directory where binaries are produced. If this is non-empty, + we try running xdisplaycheck from |build_dir| to verify our X + connection. + """ + # We use a pid file to make sure we don't have any xvfb processes running + # from a previous test run. + StopVirtualX(child_build_name) + + xdisplaycheck_path = None + if build_dir: + xdisplaycheck_path = os.path.join(build_dir, 'xdisplaycheck') + + display = ':%s' % _XvfbDisplayIndex(child_build_name) + # Note we don't add the optional screen here (+ '.0') + os.environ['DISPLAY'] = display + + # Parts of Xvfb use a hard-coded "/tmp" for its temporary directory. + # This can cause a failure when those parts expect to hardlink against + # files that were created in "TEMPDIR" / "TMPDIR". + # + # See: https://crbug.com/715848 + env = os.environ.copy() + if env.get('TMPDIR') and env['TMPDIR'] != '/tmp': + print('Overriding TMPDIR to "/tmp" for Xvfb, was: %s' % (env['TMPDIR'],)) + env['TMPDIR'] = '/tmp' + + if xdisplaycheck_path and os.path.exists(xdisplaycheck_path): + print('Verifying Xvfb is not running ...') + checkstarttime = time.time() + xdisplayproc = subprocess.Popen([xdisplaycheck_path, '--noserver'], + stdout=subprocess.PIPE, + stderr=subprocess.STDOUT, + env=env) + # Wait for xdisplaycheck to exit. + logs = xdisplayproc.communicate()[0] + if xdisplayproc.returncode == 0: + print('xdisplaycheck says there is a display still running, exiting...') + raise Exception('Display already present.') + + xvfb_lock_filename = '/tmp/.X%s-lock' % _XvfbDisplayIndex(child_build_name) + if os.path.exists(xvfb_lock_filename): + print('Removing stale xvfb lock file %r' % xvfb_lock_filename) + try: + os.unlink(xvfb_lock_filename) + except OSError as e: + print('Removing xvfb lock file failed: %s' % e) + + # Figure out which X server to try. + cmd = 'Xvfb' + + # Start a virtual X server that we run the tests in. This makes it so we can + # run the tests even if we didn't start the tests from an X session. + proc = subprocess.Popen([ + cmd, display, '-screen', '0', '1280x800x24', '-ac', '-dpi', '96', + '-maxclients', '512' + ], + stdout=subprocess.PIPE, + stderr=subprocess.STDOUT, + env=env) + xvfb_pid_filename = _XvfbPidFilename(child_build_name) + open(xvfb_pid_filename, 'w').write(str(proc.pid)) + + # Wait for Xvfb to start up. + time.sleep(10) + + # Verify that Xvfb has started by using xdisplaycheck. + if xdisplaycheck_path and os.path.exists(xdisplaycheck_path): + print('Verifying Xvfb has started...') + checkstarttime = time.time() + xdisplayproc = subprocess.Popen([xdisplaycheck_path], + stdout=subprocess.PIPE, + stderr=subprocess.STDOUT) + # Wait for xdisplaycheck to exit. + logs = xdisplayproc.communicate()[0] + checktime = time.time() - checkstarttime + if xdisplayproc.returncode != 0: + print('xdisplaycheck failed after %d seconds.' % checktime) + print('xdisplaycheck output:') + for l in logs.splitlines(): + print('> %s' % l) + rc = proc.poll() + if rc is None: + print('Xvfb still running, stopping.') + proc.terminate() + else: + print('Xvfb exited, code %d' % rc) + + print('Xvfb output:') + for l in proc.communicate()[0].splitlines(): + print('> %s' % l) + raise Exception(logs) + else: + print('xdisplaycheck succeeded after %d seconds.' % checktime) + print('xdisplaycheck output:') + for l in logs.splitlines(): + print('> %s' % l) + print('...OK') + + # Some ChromeOS tests need a window manager. + subprocess.Popen('openbox', stdout=subprocess.PIPE, stderr=subprocess.STDOUT) + print('Window manager (openbox) started.') + + +def StopVirtualX(child_build_name): + """Try and stop the virtual X server if one was started with StartVirtualX. + When the X server dies, it takes down the window manager with it. + If a virtual x server is not running, this method does nothing.""" + xvfb_pid_filename = _XvfbPidFilename(child_build_name) + if os.path.exists(xvfb_pid_filename): + xvfb_pid = int(open(xvfb_pid_filename).read()) + print('Stopping Xvfb with pid %d ...' % xvfb_pid) + # If the process doesn't exist, we raise an exception that we can ignore. + try: + os.kill(xvfb_pid, signal.SIGKILL) + except OSError: + print('... killing failed, presuming unnecessary.') + os.remove(xvfb_pid_filename) + print('Xvfb pid file removed') diff --git a/third_party/accessibility/ax/ax_node_data.cc b/third_party/accessibility/ax/ax_node_data.cc index 09fb9e7b3d086..f13be3d2e6ef9 100644 --- a/third_party/accessibility/ax/ax_node_data.cc +++ b/third_party/accessibility/ax/ax_node_data.cc @@ -633,6 +633,14 @@ void AXNodeData::SetValue(const std::u16string& value) { SetValue(base::UTF16ToUTF8(value)); } +void AXNodeData::SetTooltip(const std::string& value) { + AddStringAttribute(ax::mojom::StringAttribute::kTooltip, value); +} + +void AXNodeData::SetTooltip(const std::u16string& value) { + SetTooltip(base::UTF16ToUTF8(value)); +} + bool AXNodeData::HasState(ax::mojom::State state_enum) const { return IsFlagSet(state, static_cast(state_enum)); } diff --git a/third_party/accessibility/ax/ax_node_data.h b/third_party/accessibility/ax/ax_node_data.h index 8a54b37c05f26..7af60a2db01ce 100644 --- a/third_party/accessibility/ax/ax_node_data.h +++ b/third_party/accessibility/ax/ax_node_data.h @@ -148,6 +148,10 @@ struct AX_BASE_EXPORT AXNodeData { void SetValue(const std::string& value); void SetValue(const std::u16string& value); + // Adds the tooltip attribute or replaces it if already present. + void SetTooltip(const std::string& value); + void SetTooltip(const std::u16string& value); + // Returns true if the given enum bit is 1. bool HasState(ax::mojom::State state) const; bool HasAction(ax::mojom::Action action) const; diff --git a/third_party/accessibility/ax/platform/ax_platform_node_win.cc b/third_party/accessibility/ax/platform/ax_platform_node_win.cc index 1e649877a800d..dad8d2739806a 100644 --- a/third_party/accessibility/ax/platform/ax_platform_node_win.cc +++ b/third_party/accessibility/ax/platform/ax_platform_node_win.cc @@ -1017,6 +1017,14 @@ IFACEMETHODIMP AXPlatformNodeWin::get_accName(VARIANT var_id, BSTR* name_bstr) { bool has_name = target->HasStringAttribute(ax::mojom::StringAttribute::kName); std::u16string name = target->GetNameAsString16(); + + // Simply appends the tooltip, if any, to the end of the MSAA name. + const std::u16string tooltip = + target->GetString16Attribute(ax::mojom::StringAttribute::kTooltip); + if (!tooltip.empty()) { + AppendTextToString(tooltip, &name); + } + auto status = GetData().GetImageAnnotationStatus(); switch (status) { case ax::mojom::ImageAnnotationStatus::kNone: diff --git a/third_party/tonic/dart_wrappable.h b/third_party/tonic/dart_wrappable.h index 9c155da27e99a..42b1dace5e5ee 100644 --- a/third_party/tonic/dart_wrappable.h +++ b/third_party/tonic/dart_wrappable.h @@ -75,13 +75,10 @@ class DartWrappable { private: \ static const tonic::DartWrapperInfo& dart_wrapper_info_ -#define IMPLEMENT_WRAPPERTYPEINFO(LibraryName, ClassName) \ - static const tonic::DartWrapperInfo \ - kDartWrapperInfo_##LibraryName_##ClassName = { \ - #LibraryName, \ - #ClassName, \ - }; \ - const tonic::DartWrapperInfo& ClassName::dart_wrapper_info_ = \ +#define IMPLEMENT_WRAPPERTYPEINFO(LibraryName, ClassName) \ + static const tonic::DartWrapperInfo \ + kDartWrapperInfo_##LibraryName_##ClassName(#LibraryName, #ClassName); \ + const tonic::DartWrapperInfo& ClassName::dart_wrapper_info_ = \ kDartWrapperInfo_##LibraryName_##ClassName; struct DartConverterWrappable { diff --git a/third_party/tonic/dart_wrapper_info.h b/third_party/tonic/dart_wrapper_info.h index 8333c81d06f70..eba7345a42de3 100644 --- a/third_party/tonic/dart_wrapper_info.h +++ b/third_party/tonic/dart_wrapper_info.h @@ -16,6 +16,9 @@ struct DartWrapperInfo { const char* library_name; const char* interface_name; + DartWrapperInfo(const char* library_name, const char* interface_name) + : library_name(library_name), interface_name(interface_name) {} + private: DartWrapperInfo(const DartWrapperInfo&) = delete; DartWrapperInfo& operator=(const DartWrapperInfo&) = delete; diff --git a/third_party/tonic/tests/fixtures/tonic_test.dart b/third_party/tonic/tests/fixtures/tonic_test.dart index 117fa42eb148d..38c5fb0707c77 100644 --- a/third_party/tonic/tests/fixtures/tonic_test.dart +++ b/third_party/tonic/tests/fixtures/tonic_test.dart @@ -13,9 +13,11 @@ class SomeClass { SomeClass(this.i); } -void giveObjectToNative(Object someObject) native 'GiveObjectToNative'; +@pragma('vm:external-name', 'GiveObjectToNative') +external void giveObjectToNative(Object someObject); -void signalDone() native 'SignalDone'; +@pragma('vm:external-name', 'SignalDone') +external void signalDone(); @pragma('vm:entry-point') void callGiveObjectToNative() { diff --git a/third_party/txt/benchmarks/txt_run_all_benchmarks.cc b/third_party/txt/benchmarks/txt_run_all_benchmarks.cc index 6e7f2d8fb0c7b..9f4027e2a5f9a 100644 --- a/third_party/txt/benchmarks/txt_run_all_benchmarks.cc +++ b/third_party/txt/benchmarks/txt_run_all_benchmarks.cc @@ -23,7 +23,7 @@ // We will use a custom main to allow custom font directories for consistency. int main(int argc, char** argv) { ::benchmark::Initialize(&argc, argv); - fml::CommandLine cmd = fml::CommandLineFromArgcArgv(argc, argv); + fml::CommandLine cmd = fml::CommandLineFromPlatformOrArgcArgv(argc, argv); txt::SetCommandLine(cmd); txt::SetFontDir(flutter::testing::GetFixturesPath()); if (txt::GetFontDir().length() <= 0) { diff --git a/third_party/txt/tests/render_test.cc b/third_party/txt/tests/render_test.cc index 17e4fc43a6960..17730da022e4a 100644 --- a/third_party/txt/tests/render_test.cc +++ b/third_party/txt/tests/render_test.cc @@ -19,6 +19,9 @@ #include #include "flutter/fml/logging.h" +#include "third_party/skia/include/core/SkBitmap.h" +#include "third_party/skia/include/core/SkCanvas.h" +#include "third_party/skia/include/core/SkEncodedImageFormat.h" #include "third_party/skia/include/core/SkImageEncoder.h" #include "third_party/skia/include/core/SkStream.h" #include "txt/asset_font_manager.h" diff --git a/third_party/txt/tests/txt_run_all_unittests.cc b/third_party/txt/tests/txt_run_all_unittests.cc index 0e791c3c67fa1..f0d2bcf54f6ce 100644 --- a/third_party/txt/tests/txt_run_all_unittests.cc +++ b/third_party/txt/tests/txt_run_all_unittests.cc @@ -26,7 +26,7 @@ int main(int argc, char** argv) { fml::InstallCrashHandler(); - fml::CommandLine cmd = fml::CommandLineFromArgcArgv(argc, argv); + fml::CommandLine cmd = fml::CommandLineFromPlatformOrArgcArgv(argc, argv); txt::SetCommandLine(cmd); txt::SetFontDir(flutter::testing::GetFixturesPath()); if (txt::GetFontDir().length() <= 0) { diff --git a/tools/activate_emsdk.py b/tools/activate_emsdk.py index ad9a8bc131db5..30fd1b0d6d904 100644 --- a/tools/activate_emsdk.py +++ b/tools/activate_emsdk.py @@ -21,14 +21,16 @@ def main(): try: subprocess.check_call([ sys.executable, EMSDK_PATH, 'install', EMSDK_VERSION - ]) + ], + stdout=subprocess.DEVNULL) except subprocess.CalledProcessError: print('Failed to install emsdk') return 1 try: subprocess.check_call([ sys.executable, EMSDK_PATH, 'activate', EMSDK_VERSION - ]) + ], + stdout=subprocess.DEVNULL) except subprocess.CalledProcessError: print('Failed to activate emsdk') return 1 diff --git a/tools/android_lint/project.xml b/tools/android_lint/project.xml index af48aa0b7c75c..7c83d368f2449 100644 --- a/tools/android_lint/project.xml +++ b/tools/android_lint/project.xml @@ -113,6 +113,7 @@ + diff --git a/tools/clang_tidy/lib/clang_tidy.dart b/tools/clang_tidy/lib/clang_tidy.dart index b1af4486dde48..6625c35278177 100644 --- a/tools/clang_tidy/lib/clang_tidy.dart +++ b/tools/clang_tidy/lib/clang_tidy.dart @@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -import 'dart:convert' show jsonDecode; -import 'dart:io' as io show Directory, File, stderr, stdout; +import 'dart:convert' show LineSplitter, jsonDecode; +import 'dart:io' as io show File, stderr, stdout; import 'package:meta/meta.dart'; import 'package:path/path.dart' as path; @@ -134,8 +134,7 @@ class ClangTidy { final _ComputeJobsResult computeJobsResult = await _computeJobs( changedFileBuildCommands, - options.repoPath, - options.checks, + options, ); final int computeResult = computeJobsResult.sawMalformed ? 1 : 0; final List jobs = computeJobsResult.jobs; @@ -193,15 +192,14 @@ class ClangTidy { Future<_ComputeJobsResult> _computeJobs( List commands, - io.Directory repoPath, - String? checks, + Options options, ) async { bool sawMalformed = false; final List jobs = []; for (final Command command in commands) { final String relativePath = path.relative( command.filePath, - from: repoPath.parent.path, + from: options.repoPath.parent.path, ); final LintAction action = await command.lintAction; switch (action) { @@ -217,7 +215,7 @@ class ClangTidy { break; case LintAction.lint: _outSink.writeln('🔶 linting $relativePath'); - jobs.add(command.createLintJob(checks, options.fix)); + jobs.add(command.createLintJob(options)); break; case LintAction.skipThirdParty: _outSink.writeln('🔷 ignoring $relativePath (third_party)'); @@ -230,6 +228,27 @@ class ClangTidy { return _ComputeJobsResult(jobs, sawMalformed); } + static Iterable _trimGenerator(String output) sync* { + const LineSplitter splitter = LineSplitter(); + final List lines = splitter.convert(output); + bool isPrintingError = false; + for (final String line in lines) { + if (line.contains(': error:') || line.contains(': warning:')) { + isPrintingError = true; + yield line; + } else if (line == ':') { + isPrintingError = false; + } else if (isPrintingError) { + yield line; + } + } + } + + /// Visible for testing. + /// Function for trimming raw clang-tidy output. + @visibleForTesting + static String trimOutput(String output) => _trimGenerator(output).join('\n'); + Future _runJobs(List jobs) async { int result = 0; final ProcessPool pool = ProcessPool(); @@ -238,10 +257,13 @@ class ClangTidy { continue; } _errSink.writeln('❌ Failures for ${job.name}:'); - _errSink.writeln(job.result.stdout); - final Exception? exception = job.exception; - if (exception != null) { - _errSink.writeln(exception); + if (!job.printOutput) { + final Exception? exception = job.exception; + if (exception != null) { + _errSink.writeln(trimOutput(exception.toString())); + } else { + _errSink.writeln(trimOutput(job.result.stdout)); + } } result = 1; } diff --git a/tools/clang_tidy/lib/src/command.dart b/tools/clang_tidy/lib/src/command.dart index 522e46f39c74e..278d6da154b9c 100644 --- a/tools/clang_tidy/lib/src/command.dart +++ b/tools/clang_tidy/lib/src/command.dart @@ -9,6 +9,8 @@ import 'package:meta/meta.dart'; import 'package:path/path.dart' as path; import 'package:process_runner/process_runner.dart'; +import 'options.dart'; + /// The url prefix for issues that must be attached to the directive in files /// that disables linting. const String issueUrlPrefix = 'https://github.com/flutter/flutter/issues'; @@ -129,12 +131,14 @@ class Command { } /// The job for the process runner for the lint needed for this command. - WorkerJob createLintJob(String? checks, bool fix) { + WorkerJob createLintJob(Options options) { final List args = [ filePath, - if (checks != null) - checks, - if (fix) ...[ + if (options.warningsAsErrors != null) + '--warnings-as-errors=${options.warningsAsErrors}', + if (options.checks != null) + options.checks!, + if (options.fix) ...[ '--fix', '--format-style=file', ], @@ -145,6 +149,7 @@ class Command { [tidyPath, ...args], workingDirectory: directory, name: 'clang-tidy on $filePath', + printOutput: options.verbose, ); } } diff --git a/tools/clang_tidy/lib/src/options.dart b/tools/clang_tidy/lib/src/options.dart index 1b07bcf0deb37..e10ca99b66ad1 100644 --- a/tools/clang_tidy/lib/src/options.dart +++ b/tools/clang_tidy/lib/src/options.dart @@ -10,6 +10,16 @@ import 'package:path/path.dart' as path; // Path to root of the flutter/engine repository containing this script. final String _engineRoot = path.dirname(path.dirname(path.dirname(path.dirname(path.fromUri(io.Platform.script))))); + +/// Adds warnings as errors for only specific runs. This is helpful if migrating one platform at a time. +String? _platformSpecificWarningsAsErrors(ArgResults options) { + if (options['target-variant'] == 'host_debug' && io.Platform.isMacOS) { + return options['mac-host-warnings-as-errors'] as String?; + } + return null; +} + + /// A class for organizing the options to the Engine linter, and the files /// that it operates on. class Options { @@ -23,6 +33,7 @@ class Options { this.lintHead = false, this.fix = false, this.errorMessage, + this.warningsAsErrors, StringSink? errSink, }) : checks = checksArg.isNotEmpty ? '--checks=$checksArg' : null, _errSink = errSink ?? io.stderr; @@ -64,6 +75,7 @@ class Options { lintHead: options['lint-head'] as bool, fix: options['fix'] as bool, errSink: errSink, + warningsAsErrors: _platformSpecificWarningsAsErrors(options), ); } @@ -134,6 +146,9 @@ class Options { valueHelp: 'host_debug|android_debug_unopt|ios_debug|ios_debug_sim_unopt', defaultsTo: 'host_debug', ) + ..addOption('mac-host-warnings-as-errors', + help: + 'checks that will be treated as errors when running debug_host on mac.') ..addOption( 'src-dir', help: 'Path to the engine src directory. Cannot be used with --compile-commands.', @@ -159,11 +174,13 @@ class Options { /// The root of the flutter/engine repository. final io.Directory repoPath = io.Directory(_engineRoot); - /// Arguments to plumb through to clang-tidy formatted as a command line - /// argument. + /// Argument sent as `warnings-as-errors` to clang-tidy. + final String? warningsAsErrors; + + /// Checks argument as supplied to the command-line. final String checksArg; - /// Check arguments to plumb through to clang-tidy. + /// Check argument to be supplied to the clang-tidy subprocess. final String? checks; /// Whether all files should be linted. diff --git a/tools/clang_tidy/test/clang_tidy_test.dart b/tools/clang_tidy/test/clang_tidy_test.dart index 76e8eeab820a0..06301f398e0cc 100644 --- a/tools/clang_tidy/test/clang_tidy_test.dart +++ b/tools/clang_tidy/test/clang_tidy_test.dart @@ -6,9 +6,38 @@ import 'dart:io' as io show File, Platform, stderr; import 'package:clang_tidy/clang_tidy.dart'; import 'package:clang_tidy/src/command.dart'; +import 'package:clang_tidy/src/options.dart'; import 'package:litetest/litetest.dart'; import 'package:process_runner/process_runner.dart'; +// Recorded locally from clang-tidy. +const String _tidyOutput = ''' +/runtime.dart_isolate.o" in /Users/aaclarke/dev/engine/src/out/host_debug exited with code 1 +3467 warnings generated. +/Users/aaclarke/dev/engine/src/flutter/runtime/dart_isolate.cc:167:32: error: std::move of the const variable 'dart_entrypoint_args' has no effect; remove std::move() or make the variable non-const [performance-move-const-arg,-warnings-as-errors] + std::move(dart_entrypoint_args))) { + ^~~~~~~~~~ ~ +Suppressed 3474 warnings (3466 in non-user code, 8 NOLINT). +Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. +1 warning treated as error +: +3467 warnings generated. +Suppressed 3474 warnings (3466 in non-user code, 8 NOLINT). +Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. +1 warning treated as error + + + +'''; + +const String _tidyTrimmedOutput = ''' +/Users/aaclarke/dev/engine/src/flutter/runtime/dart_isolate.cc:167:32: error: std::move of the const variable 'dart_entrypoint_args' has no effect; remove std::move() or make the variable non-const [performance-move-const-arg,-warnings-as-errors] + std::move(dart_entrypoint_args))) { + ^~~~~~~~~~ ~ +Suppressed 3474 warnings (3466 in non-user code, 8 NOLINT). +Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. +1 warning treated as error'''; + Future main(List args) async { if (args.isEmpty) { io.stderr.writeln( @@ -36,6 +65,10 @@ Future main(List args) async { expect(errBuffer.toString(), contains('Usage: ')); }); + test('trimmed clang-tidy output', () { + expect(_tidyTrimmedOutput, equals(ClangTidy.trimOutput(_tidyOutput))); + }); + test('Error when --compile-commands and --target-variant are used together', () async { final StringBuffer outBuffer = StringBuffer(); final StringBuffer errBuffer = StringBuffer(); @@ -228,14 +261,17 @@ Future main(List args) async { expect(commands, isNotEmpty); final Command command = commands.first; expect(command.tidyPath, contains('clang/bin/clang-tidy')); - final WorkerJob jobNoFix = command.createLintJob(null, false); + final Options noFixOptions = Options(buildCommandsPath: io.File('.')); + expect(noFixOptions.fix, isFalse); + final WorkerJob jobNoFix = command.createLintJob(noFixOptions); expect(jobNoFix.command[0], endsWith('../../buildtools/mac-x64/clang/bin/clang-tidy')); expect(jobNoFix.command[1], endsWith(filePath.replaceAll('/', io.Platform.pathSeparator))); expect(jobNoFix.command[2], '--'); expect(jobNoFix.command[3], ''); expect(jobNoFix.command[4], endsWith(filePath)); - final WorkerJob jobWithFix = command.createLintJob(null, true); + final Options fixOptions = Options(buildCommandsPath: io.File('.'), fix: true); + final WorkerJob jobWithFix = command.createLintJob(fixOptions); expect(jobWithFix.command[0], endsWith('../../buildtools/mac-x64/clang/bin/clang-tidy')); expect(jobWithFix.command[1], endsWith(filePath.replaceAll('/', io.Platform.pathSeparator))); expect(jobWithFix.command[2], '--fix'); diff --git a/tools/dia_dll.py b/tools/dia_dll.py index 8d367ca691620..5438af756f05f 100644 --- a/tools/dia_dll.py +++ b/tools/dia_dll.py @@ -44,7 +44,12 @@ def GetDiaDll(): msvs_version = vs_toolchain.GetVisualStudioVersion() if bool(int(os.environ.get('DEPOT_TOOLS_WIN_TOOLCHAIN', '1'))): - dia_path = os.path.join(win_sdk_dir, '..', 'DIA SDK', 'bin', 'amd64') + # Depot tools .zip layout: + # \- DIA SDK + # \- Windows Kits + # \- 10 + # \- ... # Location of `DEPOT_TOOLS_WIN_TOOLCHAIN` + dia_path = os.path.join(win_sdk_dir, '..', '..', 'DIA SDK', 'bin', 'amd64') else: if 'GYP_MSVS_OVERRIDE_PATH' in os.environ: vs_path = os.environ['GYP_MSVS_OVERRIDE_PATH'] diff --git a/tools/fuchsia/devshell/build_and_copy_to_fuchsia.sh b/tools/fuchsia/devshell/build_and_copy_to_fuchsia.sh index 1fa9340a4527b..4aca3f4d7d253 100755 --- a/tools/fuchsia/devshell/build_and_copy_to_fuchsia.sh +++ b/tools/fuchsia/devshell/build_and_copy_to_fuchsia.sh @@ -109,7 +109,10 @@ engine-info "Copying the patched SDK (dart:ui, dart:zircon, dart:fuchsia) to Fuc cp -ra "${fuchsia_out_dir}"/flutter_runner_patched_sdk/* "$FUCHSIA_DIR"/prebuilt/third_party/flutter/"${fuchsia_cpu}"/release/aot/flutter_runner_patched_sdk/ engine-info "Registering debug symbols..." -"$ENGINE_DIR"/fuchsia/sdk/linux/tools/x64/symbol-index add "${fuchsia_out_dir}"/.build-id "${fuchsia_out_dir}" +# .jiri_root/bin/ffx needs to run from $FUCHSIA_DIR. +pushd $FUCHSIA_DIR +"$FUCHSIA_DIR"/.jiri_root/bin/ffx debug symbol-index add "${fuchsia_out_dir}"/.build-id --build-dir "${fuchsia_out_dir}" +popd # $FUCHSIA_DIR if [[ "${runtime_mode}" == release ]] then diff --git a/tools/fuchsia/devshell/run_integration_test.sh b/tools/fuchsia/devshell/run_integration_test.sh index 637fc8b9a1899..f3b86ad9130e7 100755 --- a/tools/fuchsia/devshell/run_integration_test.sh +++ b/tools/fuchsia/devshell/run_integration_test.sh @@ -47,6 +47,8 @@ shift # past argument # Ensure we know about the test and look up its packages. # The first package listed here should be the main package for the test # (the package that gets passed to `ffx test run`). +# Note: You do not need to include oot_flutter_jit_runner-0.far, the script +# automatically publishes it. test_packages= case $test_name in embedder) @@ -57,6 +59,9 @@ case $test_name in engine-warning "This test currently hangs because the Dart view hasn't been implemented yet. https://fxbug.dev/107917" test_packages=("text-input-test-0.far" "text-input-view.far") ;; + touch-input) + test_packages=("touch-input-test-0.far" "touch-input-view.far") + ;; *) engine-error "Unknown test name $test_name. You may need to add it to $0" exit 1 @@ -164,11 +169,12 @@ do rm -r "${far_debug_dir}" done -engine-info "Registering debug symbols..." -"$ENGINE_DIR"/fuchsia/sdk/linux/tools/x64/symbol-index add "${fuchsia_out_dir}"/.build-id "${fuchsia_out_dir}" - +# .jiri_root/bin/ffx needs to run from $FUCHSIA_DIR. pushd $FUCHSIA_DIR +engine-info "Registering debug symbols..." +"$FUCHSIA_DIR"/.jiri_root/bin/ffx debug symbol-index add "${fuchsia_out_dir}"/.build-id --build-dir "${fuchsia_out_dir}" + if [[ "$skip_fuchsia_build" -eq 0 ]] then engine-info "Building Fuchsia in terminal.x64 mode... (to skip this, run with --skip-fuchsia-build)" diff --git a/tools/fuchsia/devshell/run_unit_tests.sh b/tools/fuchsia/devshell/run_unit_tests.sh index 30364cb28c26d..653ce9a3d6553 100755 --- a/tools/fuchsia/devshell/run_unit_tests.sh +++ b/tools/fuchsia/devshell/run_unit_tests.sh @@ -80,7 +80,10 @@ engine-info "Building ${fuchsia_out_dir_name}..." ${ninja_cmd} -C "${fuchsia_out_dir}" fuchsia_tests engine-info "Registering debug symbols..." -"${ENGINE_DIR}"/fuchsia/sdk/linux/tools/x64/symbol-index add "${fuchsia_out_dir}"/.build-id "${fuchsia_out_dir}" +# .jiri_root/bin/ffx needs to run from $FUCHSIA_DIR. +pushd $FUCHSIA_DIR +"$FUCHSIA_DIR"/.jiri_root/bin/ffx debug symbol-index add "${fuchsia_out_dir}"/.build-id --build-dir "${fuchsia_out_dir}" +popd # $FUCHSIA_DIR test_packages="$(find ${fuchsia_out_dir} -name "${package_filter}")" diff --git a/tools/fuchsia/gn-sdk/symbol_index.gni b/tools/fuchsia/gn-sdk/symbol_index.gni index ec83676e40e81..dd92770b8911b 100644 --- a/tools/fuchsia/gn-sdk/symbol_index.gni +++ b/tools/fuchsia/gn-sdk/symbol_index.gni @@ -4,6 +4,11 @@ import("config/config.gni") +# TODO(akbiggs): Delete this, symbol-index no longer exists, it has been +# replaced with ffx debug symbol-index. I don't think this build rule is being +# used because it would be failing if it was, so it can probably be removed +# safely. +# # Template for running the symbol-index tool for registering symbols with the symbolizer. # # Parameters diff --git a/tools/fuchsia/target_api_level b/tools/fuchsia/target_api_level index ec635144f6004..f599e28b8ab0d 100644 --- a/tools/fuchsia/target_api_level +++ b/tools/fuchsia/target_api_level @@ -1 +1 @@ -9 +10 diff --git a/tools/gn b/tools/gn index a2b365c0970dc..54317fa19da02 100755 --- a/tools/gn +++ b/tools/gn @@ -21,6 +21,8 @@ SRC_ROOT = os.path.dirname( def get_out_dir(args): if args.target_os is not None: target_dir = [args.target_os] + elif args.web: + target_dir = ['wasm'] else: target_dir = ['host'] @@ -251,17 +253,15 @@ def to_gn_args(args): # If building for WASM, set the GN args using 'to_gn_wasm_args' as most # of the Flutter SDK specific arguments are unused. - if args.target_os == 'wasm': + if args.target_os == 'wasm' or args.web: to_gn_wasm_args(args, gn_args) return gn_args - if args.bitcode: - if args.target_os != 'ios': - raise Exception('Bitcode is only supported for iOS') - if runtime_mode != 'release': - gn_args['bitcode_marker'] = True + gn_args['flutter_build_web_sdk'] = args.build_web_sdk + gn_args['full_dart_sdk'] = args.full_dart_sdk + if args.build_web_sdk or args.full_dart_sdk: + gn_args['build_canvaskit'] = args.build_canvaskit - gn_args['enable_bitcode'] = args.bitcode if args.enable_unittests: gn_args['enable_unittests'] = args.enable_unittests @@ -335,12 +335,17 @@ def to_gn_args(args): gn_args['host_cpu'] = cpu gn_args['target_cpu'] = cpu - # macOS host builds (whether x64 or arm64) must currently be built under - # Rosetta on Apple Silicon Macs. - # TODO(cbracken): https://github.com/flutter/flutter/issues/103386 if is_host_build(args) and gn_args['host_os'] == 'mac': + # macOS host builds (whether x64 or arm64) must currently be built under + # Rosetta on Apple Silicon Macs. + # TODO(cbracken): https://github.com/flutter/flutter/issues/103386 gn_args['host_cpu'] = 'x64' + # macOS unit tests include Vulkan headers which reference Metal types + # introduced in macOS 10.14. + gn_args['mac_sdk_min'] = '10.14' + gn_args['mac_deployment_target'] = '10.14.0' + # macOS target builds (whether x64 or arm64) must currently be built under # Rosetta on Apple Silicon Macs. # TODO(cbracken): https://github.com/flutter/flutter/issues/103386 @@ -366,7 +371,6 @@ def to_gn_args(args): gn_args['embedder_for_target'] = args.embedder_for_target gn_args['dart_lib_export_symbols'] = False gn_args['flutter_runtime_mode'] = runtime_mode - gn_args['full_dart_sdk'] = args.full_dart_sdk gn_args['dart_version_git_info'] = not args.no_dart_version_git_info gn_args['dart_lib_export_symbols'] = False @@ -432,18 +436,17 @@ def to_gn_args(args): gn_args['skia_use_metal'] = True gn_args['shell_enable_metal'] = True - # Enable Vulkan on all platforms except for Android and iOS. This is just + # Enable Vulkan on all platforms except for iOS. This is just # to save on mobile binary size, as there's no reason the Vulkan embedder # features can't work on these platforms. - if args.target_os not in ['android', 'ios']: + if args.target_os not in ['ios']: gn_args['skia_use_vulkan'] = True - gn_args['skia_vulkan_memory_allocator_dir' - ] = '//third_party/vulkan_memory_allocator' + gn_args['skia_use_vma'] = False gn_args['shell_enable_vulkan'] = True # Disable VMA's use of std::shared_mutex in environments where the # standard library doesn't support it. if args.target_os == 'ios' or sys.platform.startswith(('cygwin', 'win')): - gn_args['skia_disable_vma_stl_shared_mutex'] = True + gn_args['disable_vma_stl_shared_mutex'] = True # We should not need a special case for x86, but this seems to introduce text relocations # even with -fPIC everywhere. @@ -544,12 +547,6 @@ def to_gn_args(args): if args.prebuilt_impellerc is not None: gn_args['impeller_use_prebuilt_impellerc'] = args.prebuilt_impellerc - # Vulkan support is WIP, see: https://github.com/flutter/flutter/issues/107357 - if args.enable_impeller_vulkan: - gn_args['impeller_enable_opengles'] = False - gn_args['impeller_enable_vulkan'] = True - gn_args['skia_use_vma'] = False - # ANGLE is exclusively used for: # - Windows at runtime # - Non-fuchsia host unit tests (is_host_build evaluates to false). @@ -562,6 +559,13 @@ def to_gn_args(args): get_host_os() == 'win'): # Do not build unnecessary parts of the ANGLE tree. gn_args['angle_build_all'] = False + gn_args['angle_has_astc_encoder'] = False + # Force ANGLE context checks on Windows to prevent crashes. + # TODO(loic-sharma): Remove this once ANGLE crashes have been fixed. + # https://github.com/flutter/flutter/issues/114107 + if get_host_os() == 'win': + gn_args['angle_force_context_check_every_call'] = True + # Requires RTTI. We may want to build this in debug modes, punting on that # for now. gn_args['angle_enable_vulkan_validation_layers'] = False @@ -611,7 +615,9 @@ def to_gn_wasm_args(args, gn_args): gn_args['skia_use_libheif'] = False gn_args['skia_enable_fontmgr_custom_directory'] = False gn_args['skia_enable_fontmgr_custom_embedded'] = True - gn_args['skia_enable_fontmgr_custom_empty'] = False + gn_args['skia_enable_fontmgr_custom_empty'] = True + gn_args['skia_fontmgr_factory' + ] = '//third_party/skia:fontmgr_custom_empty_factory' gn_args['skia_enable_skshaper'] = True gn_args['skia_enable_skparagraph'] = True gn_args['skia_canvaskit_force_tracing'] = False @@ -625,7 +631,7 @@ def to_gn_wasm_args(args, gn_args): gn_args['skia_canvaskit_enable_matrix_helper'] = False gn_args['skia_canvaskit_enable_canvas_bindings'] = False gn_args['skia_canvaskit_enable_font'] = True - gn_args['skia_canvaskit_enable_embedded_font'] = True + gn_args['skia_canvaskit_enable_embedded_font'] = False gn_args['skia_canvaskit_enable_alias_font'] = True gn_args['skia_canvaskit_legacy_draw_vertices_blend_mode'] = False gn_args['skia_canvaskit_enable_debugger'] = False @@ -634,6 +640,13 @@ def to_gn_wasm_args(args, gn_args): gn_args['skia_canvaskit_enable_webgpu'] = False is_profile_build = args.runtime_mode == 'profile' or args.runtime_mode == 'debug' gn_args['skia_canvaskit_profile_build'] = is_profile_build + gn_args['flutter_prebuilt_dart_sdk'] = True + + # TODO(jacksongardner): Make this based off of the input argument rather + # than forced to true, once the recipes are updated. + # https://github.com/flutter/flutter/issues/113303 + gn_args['build_canvaskit'] = True + gn_args['flutter_build_web_sdk'] = True def parse_args(args): @@ -709,6 +722,7 @@ def parse_args(args): parser.add_argument( '--wasm', dest='target_os', action='store_const', const='wasm' ) + parser.add_argument('--web', action='store_true', default=False) parser.add_argument( '--windows', dest='target_os', action='store_const', const='win' ) @@ -832,6 +846,26 @@ def parse_args(args): '--no-full-dart-sdk', dest='full_dart_sdk', action='store_false' ) + parser.add_argument( + '--build-web-sdk', + default=False, + action='store_true', + help='build the flutter web sdk' + ) + parser.add_argument( + '--no-build-web-sdk', dest='build_web_sdk', action='store_false' + ) + + parser.add_argument( + '--build-canvaskit', + default=False, + action='store_true', + help='build canvaskit from source' + ) + parser.add_argument( + '--no-build-canvaskit', dest='build_canvaskit', action='store_false' + ) + parser.add_argument( '--ide', default='', @@ -881,13 +915,6 @@ def parse_args(args): help='Do not build the example embedders using the Embedder API.' ) - parser.add_argument( - '--bitcode', - default=False, - action='store_true', - help='Enable bitcode for iOS targets. On debug runtime modes, this will be a marker only.' - ) - parser.add_argument( '--stripped', default=True, @@ -934,6 +961,8 @@ def parse_args(args): help='Absolute path to a prebuilt impellerc. ' + 'Do not use this outside of CI or with impellerc from a different engine version.' ) + + # This is currently a no-op, will be removed shortly. parser.add_argument( '--enable-impeller-vulkan', default=False, @@ -982,16 +1011,17 @@ def main(argv): '--export-compile-commands', ] - if args.ide != '': - command.append('--ide=%s' % args.ide) - elif sys.platform == 'darwin': - # On the Mac, generate an Xcode project by default. - command.append('--ide=xcode') - command.append('--xcode-project=flutter_engine') - command.append('--xcode-build-system=new') - elif sys.platform.startswith('win'): - # On Windows, generate a Visual Studio project. - command.append('--ide=vs') + if not args.web: + if args.ide != '': + command.append('--ide=%s' % args.ide) + elif sys.platform == 'darwin': + # On the Mac, generate an Xcode project by default. + command.append('--ide=xcode') + command.append('--xcode-project=flutter_engine') + command.append('--xcode-build-system=new') + elif sys.platform.startswith('win'): + # On Windows, generate a Visual Studio project. + command.append('--ide=vs') command.append('--export-compile-commands=default') diff --git a/tools/licenses/lib/main.dart b/tools/licenses/lib/main.dart index 1dc47f2e4669d..8ce7366dab5c6 100644 --- a/tools/licenses/lib/main.dart +++ b/tools/licenses/lib/main.dart @@ -54,7 +54,7 @@ abstract class _RepositoryLicensedFile extends _RepositoryFile { static final RegExp _readmeNamePattern = RegExp(r'\b_*(?:readme|contributing|patents)_*\b', caseSensitive: false); static final RegExp _buildTimePattern = RegExp(r'^(?!.*gen$)(?:CMakeLists\.txt|(?:pkgdata)?Makefile(?:\.inc)?(?:\.am|\.in|)|configure(?:\.ac|\.in)?|config\.(?:sub|guess)|.+\.m4|install-sh|.+\.sh|.+\.bat|.+\.pyc?|.+\.pl|icu-configure|.+\.gypi?|.*\.gni?|.+\.mk|.+\.cmake|.+\.gradle|.+\.yaml|pubspec\.lock|\.packages|vms_make\.com|pom\.xml|\.project|source\.properties|.+\.obj|.+\.autopkg|Brewfile)$', caseSensitive: false); static final RegExp _docsPattern = RegExp(r'^(?:INSTALL|NEWS|OWNERS|AUTHORS|ChangeLog(?:\.rst|\.[0-9]+)?|.+\.txt|.+\.md|.+\.log|.+\.css|.+\.1|doxygen\.config|Doxyfile|.+\.spec(?:\.in)?)$', caseSensitive: false); - static final RegExp _devPattern = RegExp(r'^(?:codereview\.settings|.+\.~|.+\.~[0-9]+~|\.clang-format|swift\.swiftformat|\.gitattributes|\.landmines|\.DS_Store|\.travis\.yml|\.cirrus\.yml|\.cache|\.mailmap)$', caseSensitive: false); + static final RegExp _devPattern = RegExp(r'^(?:codereview\.settings|.+\.~|.+\.~[0-9]+~|\.clang-format|swift\.swiftformat|\.gitattributes|\.landmines|\.DS_Store|\.travis\.yml|\.cirrus\.yml|\.cache|\.mailmap|CODEOWNERS|TESTOWNERS)$', caseSensitive: false); static final RegExp _testsPattern = RegExp(r'^(?:tj(?:bench|example)test\.(?:java\.)?in|example\.c)$', caseSensitive: false); // The ICU library has sample code that will never get linked. static final RegExp _icuSamplesPattern = RegExp(r'.*(?:icu\/source\/samples).*$', caseSensitive: false); @@ -2854,16 +2854,19 @@ Future _collectLicensesForComponent(_RepositoryDirectory componentRoot, { } sink.writeln('UNUSED LICENSES:\n'); - final List unusedLicenses = licenses + final List rawUnusedLicenses = licenses .where((License license) => !license.isUsed) + .toList(); + rawUnusedLicenses.sort((License a, License b) => a.toStringBody().compareTo(b.toStringBody())); + final List unusedLicenses = rawUnusedLicenses .map((License license) => license.toString()) .toList(); - unusedLicenses.sort(); sink.writeln(unusedLicenses.join('\n\n')); sink.writeln('~' * 80); sink.writeln('USED LICENSES:\n'); final List usedLicenses = licenses.where((License license) => license.isUsed).toList(); + usedLicenses.sort((License a, License b) => a.toStringBody().compareTo(b.toStringBody())); final List output = usedLicenses.map((License license) => license.toString()).toList(); for (int index = 0; index < output.length; index += 1) { // The strings we look for here are strings which we do not expect to see in @@ -2907,8 +2910,6 @@ Future _collectLicensesForComponent(_RepositoryDirectory componentRoot, { throw 'Unexpected indecisiveness found in: ${usedLicenses[index].origin}'; } } - - output.sort(); sink.writeln(output.join('\n\n')); sink.writeln('Total license count: ${licenses.length}'); @@ -2968,12 +2969,14 @@ Future main(List arguments) async { } progress.label = 'Dumping results...'; progress.flush(); - final List output = licenses + final List sortedLicenses = licenses .where((License license) => license.isUsed) + .toList(); + sortedLicenses.sort((License a, License b) => a.toStringBody().compareTo(b.toStringBody())); + final List output = sortedLicenses .map((License license) => license.toStringFormal()) .whereNotNull() .toList(); - output.sort(); print(output.join('\n${"-" * 80}\n')); progress.label = 'Done.'; progress.flush(); diff --git a/tools/licenses/lib/patterns.dart b/tools/licenses/lib/patterns.dart index c467461939a6f..4797236bc1745 100644 --- a/tools/licenses/lib/patterns.dart +++ b/tools/licenses/lib/patterns.dart @@ -1649,7 +1649,7 @@ final List csLicenses = [ r'^(?:\1\2)?GNU General Public License for more details.\n' r'^(?:\1\2)?\n*' r'^(?:\1\2)?You should have received a copy of the GNU General Public License\n' - r'^(?:\1\2)?along with this program. If not, see . \*/\n' + r'^(?:\1\2)?along with this program. If not, see . \*/\n' r'^(?:\1\2)?\n*' + kIndent + r'As a special exception, you may create a larger work that contains\n' diff --git a/vulkan/BUILD.gn b/vulkan/BUILD.gn index 3992b361d3c35..015996e55d1d7 100644 --- a/vulkan/BUILD.gn +++ b/vulkan/BUILD.gn @@ -27,16 +27,12 @@ source_set("vulkan") { "vulkan_debug_report.h", "vulkan_device.cc", "vulkan_device.h", - "vulkan_handle.cc", - "vulkan_handle.h", "vulkan_image.cc", "vulkan_image.h", - "vulkan_interface.cc", - "vulkan_interface.h", "vulkan_native_surface.cc", "vulkan_native_surface.h", - "vulkan_proc_table.cc", - "vulkan_proc_table.h", + "vulkan_skia_proc_table.cc", + "vulkan_skia_proc_table.h", "vulkan_surface.cc", "vulkan_surface.h", "vulkan_swapchain.h", @@ -57,6 +53,8 @@ source_set("vulkan") { } deps = [ + "procs", + "//flutter/flutter_vma:flutter_skia_vma", "//flutter/fml", "//third_party/skia", ] diff --git a/vulkan/procs/BUILD.gn b/vulkan/procs/BUILD.gn new file mode 100644 index 0000000000000..0362e58f87d8e --- /dev/null +++ b/vulkan/procs/BUILD.gn @@ -0,0 +1,21 @@ +# Copyright 2013 The Flutter Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +source_set("procs") { + sources = [ + "vulkan_handle.cc", + "vulkan_handle.h", + "vulkan_interface.cc", + "vulkan_interface.h", + "vulkan_proc_table.cc", + "vulkan_proc_table.h", + ] + + deps = [ "//flutter/fml" ] + + public_configs = [ + "//flutter/vulkan:vulkan_config", + "//flutter:config", + ] +} diff --git a/vulkan/vulkan_handle.cc b/vulkan/procs/vulkan_handle.cc similarity index 81% rename from vulkan/vulkan_handle.cc rename to vulkan/procs/vulkan_handle.cc index eb15d9ff13147..9582984c3d75e 100644 --- a/vulkan/vulkan_handle.cc +++ b/vulkan/procs/vulkan_handle.cc @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "vulkan_handle.h" +#include "flutter/vulkan/procs/vulkan_handle.h" namespace vulkan { diff --git a/vulkan/vulkan_handle.h b/vulkan/procs/vulkan_handle.h similarity index 92% rename from vulkan/vulkan_handle.h rename to vulkan/procs/vulkan_handle.h index eb53a063d9cf0..cf33394b491f2 100644 --- a/vulkan/vulkan_handle.h +++ b/vulkan/procs/vulkan_handle.h @@ -2,14 +2,13 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef FLUTTER_VULKAN_VULKAN_HANDLE_H_ -#define FLUTTER_VULKAN_VULKAN_HANDLE_H_ +#pragma once #include #include "flutter/fml/logging.h" #include "flutter/fml/macros.h" -#include "vulkan_interface.h" +#include "flutter/vulkan/procs/vulkan_interface.h" namespace vulkan { @@ -77,5 +76,3 @@ class VulkanHandle { }; } // namespace vulkan - -#endif // FLUTTER_VULKAN_VULKAN_HANDLE_H_ diff --git a/vulkan/vulkan_interface.cc b/vulkan/procs/vulkan_interface.cc similarity index 98% rename from vulkan/vulkan_interface.cc rename to vulkan/procs/vulkan_interface.cc index e10f47730da32..ab15206c0f1de 100644 --- a/vulkan/vulkan_interface.cc +++ b/vulkan/procs/vulkan_interface.cc @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "vulkan_interface.h" +#include "flutter/vulkan/procs/vulkan_interface.h" namespace vulkan { diff --git a/vulkan/vulkan_interface.h b/vulkan/procs/vulkan_interface.h similarity index 78% rename from vulkan/vulkan_interface.h rename to vulkan/procs/vulkan_interface.h index 03218c9621b2a..089ae829eb8f9 100644 --- a/vulkan/vulkan_interface.h +++ b/vulkan/procs/vulkan_interface.h @@ -2,8 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef FLUTTER_VULKAN_VULKAN_INTERFACE_H_ -#define FLUTTER_VULKAN_VULKAN_INTERFACE_H_ +#pragma once #include @@ -25,9 +24,13 @@ #endif // VK_USE_PLATFORM_FUCHSIA #endif // OS_FUCHSIA -#if !VULKAN_LINK_STATICALLY -#define VK_NO_PROTOTYPES 1 -#endif // !VULKAN_LINK_STATICALLY +// TODO(dnfield): vulkan_metal.h has some unguarded availability checks for +// macOS 10.13. We can remove this if we bump to 10.14 or if that gets fixed +// upstream, but fixing it upstream will take some time to flow through to +// ANGLE's DEPS. +#ifdef VK_USE_PLATFORM_METAL_EXT +#undef VK_USE_PLATFORM_METAL_EXT +#endif // VK_USE_PLATFORM_METAL_EXT #include @@ -47,5 +50,3 @@ namespace vulkan { std::string VulkanResultToString(VkResult result); } // namespace vulkan - -#endif // FLUTTER_VULKAN_VULKAN_INTERFACE_H_ diff --git a/vulkan/vulkan_proc_table.cc b/vulkan/procs/vulkan_proc_table.cc similarity index 76% rename from vulkan/vulkan_proc_table.cc rename to vulkan/procs/vulkan_proc_table.cc index a4c21bf2d7065..b4eb57032e33d 100644 --- a/vulkan/vulkan_proc_table.cc +++ b/vulkan/procs/vulkan_proc_table.cc @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "vulkan_proc_table.h" +#include "flutter/vulkan/procs/vulkan_proc_table.h" #include @@ -14,6 +14,14 @@ return false; \ } +#define ACQUIRE_PROC_EITHER(name, name2, context) \ + if (!(name = AcquireProc("vk" #name, context)) && \ + !(name2 = AcquireProc("vk" #name2, context))) { \ + FML_DLOG(INFO) << "Could not acquire proc: vk" << #name << ", or proc: vk" \ + << #name2; \ + return false; \ + } + namespace vulkan { VulkanProcTable::VulkanProcTable() : VulkanProcTable("libvulkan.so"){}; @@ -26,9 +34,9 @@ VulkanProcTable::VulkanProcTable(const char* so_path) } VulkanProcTable::VulkanProcTable( - std::function get_instance_proc_addr) + PFN_vkGetInstanceProcAddr get_instance_proc_addr) : handle_(nullptr), acquired_mandatory_proc_addresses_(false) { - GetInstanceProcAddr = std::move(get_instance_proc_addr); + GetInstanceProcAddr = get_instance_proc_addr; acquired_mandatory_proc_addresses_ = SetupLoaderProcAddresses(); } @@ -57,13 +65,7 @@ bool VulkanProcTable::SetupGetInstanceProcAddress() { return true; } - GetInstanceProcAddr = reinterpret_cast( -#if VULKAN_LINK_STATICALLY - &vkGetInstanceProcAddr -#else // VULKAN_LINK_STATICALLY - const_cast(handle_->ResolveSymbol("vkGetInstanceProcAddr")) -#endif // VULKAN_LINK_STATICALLY - ); + GetInstanceProcAddr = NativeGetInstanceProcAddr(); if (!GetInstanceProcAddr) { FML_DLOG(WARNING) << "Could not acquire vkGetInstanceProcAddr."; return false; @@ -72,6 +74,20 @@ bool VulkanProcTable::SetupGetInstanceProcAddress() { return true; } +PFN_vkGetInstanceProcAddr VulkanProcTable::NativeGetInstanceProcAddr() const { + if (GetInstanceProcAddr) { + return GetInstanceProcAddr; + } + +#if VULKAN_LINK_STATICALLY + return &vkGetInstanceProcAddr; +#else // VULKAN_LINK_STATICALLY + auto instance_proc = + const_cast(handle_->ResolveSymbol("vkGetInstanceProcAddr")); + return reinterpret_cast(instance_proc); +#endif // VULKAN_LINK_STATICALLY +} + bool VulkanProcTable::SetupLoaderProcAddresses() { VulkanHandle null_instance(VK_NULL_HANDLE, nullptr); @@ -92,6 +108,11 @@ bool VulkanProcTable::SetupInstanceProcAddresses( ACQUIRE_PROC(GetDeviceProcAddr, handle); ACQUIRE_PROC(GetPhysicalDeviceFeatures, handle); ACQUIRE_PROC(GetPhysicalDeviceQueueFamilyProperties, handle); + ACQUIRE_PROC(GetPhysicalDeviceProperties, handle); + ACQUIRE_PROC(GetPhysicalDeviceMemoryProperties, handle); + ACQUIRE_PROC_EITHER(GetPhysicalDeviceMemoryProperties2, + GetPhysicalDeviceMemoryProperties2KHR, handle); + #if FML_OS_ANDROID ACQUIRE_PROC(GetPhysicalDeviceSurfaceCapabilitiesKHR, handle); ACQUIRE_PROC(GetPhysicalDeviceSurfaceFormatsKHR, handle); @@ -142,6 +163,23 @@ bool VulkanProcTable::SetupDeviceProcAddresses( ACQUIRE_PROC(ResetCommandBuffer, handle); ACQUIRE_PROC(ResetFences, handle); ACQUIRE_PROC(WaitForFences, handle); + ACQUIRE_PROC(MapMemory, handle); + ACQUIRE_PROC(UnmapMemory, handle); + ACQUIRE_PROC(FlushMappedMemoryRanges, handle); + ACQUIRE_PROC(InvalidateMappedMemoryRanges, handle); + ACQUIRE_PROC(BindBufferMemory, handle); + ACQUIRE_PROC(GetBufferMemoryRequirements, handle); + ACQUIRE_PROC(CreateBuffer, handle); + ACQUIRE_PROC(DestroyBuffer, handle); + ACQUIRE_PROC(CmdCopyBuffer, handle); + + ACQUIRE_PROC_EITHER(GetBufferMemoryRequirements2, + GetBufferMemoryRequirements2KHR, handle); + ACQUIRE_PROC_EITHER(GetImageMemoryRequirements2, + GetImageMemoryRequirements2KHR, handle); + ACQUIRE_PROC_EITHER(BindBufferMemory2, BindBufferMemory2KHR, handle); + ACQUIRE_PROC_EITHER(BindImageMemory2, BindImageMemory2KHR, handle); + #ifndef TEST_VULKAN_PROCS #if FML_OS_ANDROID ACQUIRE_PROC(AcquireNextImageKHR, handle); @@ -171,7 +209,7 @@ bool VulkanProcTable::OpenLibraryHandle(const char* path) { handle_ = fml::NativeLibrary::Create(path); #endif // VULKAN_LINK_STATICALLY if (!handle_) { - FML_DLOG(WARNING) << "Could not open Vulkan library handle: " << path; + FML_DLOG(ERROR) << "Could not open Vulkan library handle: " << path; return false; } return true; @@ -204,22 +242,4 @@ PFN_vkVoidFunction VulkanProcTable::AcquireProc( return GetDeviceProcAddr(device, proc_name); } -GrVkGetProc VulkanProcTable::CreateSkiaGetProc() const { - if (!IsValid()) { - return nullptr; - } - - return [this](const char* proc_name, VkInstance instance, VkDevice device) { - if (device != VK_NULL_HANDLE) { - auto result = - AcquireProc(proc_name, VulkanHandle{device, nullptr}); - if (result != nullptr) { - return result; - } - } - - return AcquireProc(proc_name, VulkanHandle{instance, nullptr}); - }; -} - } // namespace vulkan diff --git a/vulkan/vulkan_proc_table.h b/vulkan/procs/vulkan_proc_table.h similarity index 79% rename from vulkan/vulkan_proc_table.h rename to vulkan/procs/vulkan_proc_table.h index 93b4d0a3bfdd2..3092bed159a5d 100644 --- a/vulkan/vulkan_proc_table.h +++ b/vulkan/procs/vulkan_proc_table.h @@ -2,17 +2,14 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef FLUTTER_VULKAN_VULKAN_PROC_TABLE_H_ -#define FLUTTER_VULKAN_VULKAN_PROC_TABLE_H_ +#pragma once #include "flutter/fml/macros.h" #include "flutter/fml/memory/ref_counted.h" #include "flutter/fml/memory/ref_ptr.h" #include "flutter/fml/native_library.h" -#include "third_party/skia/include/core/SkRefCnt.h" -#include "third_party/skia/include/gpu/vk/GrVkBackendContext.h" -#include "vulkan_handle.h" -#include "vulkan_interface.h" +#include "flutter/vulkan/procs/vulkan_handle.h" +#include "flutter/vulkan/procs/vulkan_interface.h" namespace vulkan { @@ -50,8 +47,7 @@ class VulkanProcTable : public fml::RefCountedThreadSafe { VulkanProcTable(); explicit VulkanProcTable(const char* so_path); - explicit VulkanProcTable( - std::function get_instance_proc_addr); + explicit VulkanProcTable(PFN_vkGetInstanceProcAddr get_instance_proc_addr); ~VulkanProcTable(); bool HasAcquiredMandatoryProcAddresses() const; @@ -66,9 +62,7 @@ class VulkanProcTable : public fml::RefCountedThreadSafe { bool SetupDeviceProcAddresses(const VulkanHandle& device); - GrVkGetProc CreateSkiaGetProc() const; - - std::function GetInstanceProcAddr = nullptr; + PFN_vkGetInstanceProcAddr GetInstanceProcAddr = nullptr; #define DEFINE_PROC(name) Proc name; @@ -113,6 +107,30 @@ class VulkanProcTable : public fml::RefCountedThreadSafe { DEFINE_PROC(ResetCommandBuffer); DEFINE_PROC(ResetFences); DEFINE_PROC(WaitForFences); + DEFINE_PROC(GetPhysicalDeviceProperties); + DEFINE_PROC(GetPhysicalDeviceMemoryProperties); + DEFINE_PROC(MapMemory); + DEFINE_PROC(UnmapMemory); + DEFINE_PROC(FlushMappedMemoryRanges); + DEFINE_PROC(InvalidateMappedMemoryRanges); + DEFINE_PROC(BindBufferMemory); + DEFINE_PROC(GetBufferMemoryRequirements); + DEFINE_PROC(CreateBuffer); + DEFINE_PROC(DestroyBuffer); + DEFINE_PROC(CmdCopyBuffer); + + DEFINE_PROC(GetPhysicalDeviceMemoryProperties2); + DEFINE_PROC(GetPhysicalDeviceMemoryProperties2KHR); + + DEFINE_PROC(GetBufferMemoryRequirements2); + DEFINE_PROC(GetBufferMemoryRequirements2KHR); + DEFINE_PROC(GetImageMemoryRequirements2); + DEFINE_PROC(GetImageMemoryRequirements2KHR); + DEFINE_PROC(BindBufferMemory2); + DEFINE_PROC(BindBufferMemory2KHR); + DEFINE_PROC(BindImageMemory2); + DEFINE_PROC(BindImageMemory2KHR); + #ifndef TEST_VULKAN_PROCS #if FML_OS_ANDROID DEFINE_PROC(GetPhysicalDeviceSurfaceCapabilitiesKHR); @@ -136,6 +154,15 @@ class VulkanProcTable : public fml::RefCountedThreadSafe { #undef DEFINE_PROC + PFN_vkGetInstanceProcAddr NativeGetInstanceProcAddr() const; + + PFN_vkVoidFunction AcquireProc( + const char* proc_name, + const VulkanHandle& instance) const; + + PFN_vkVoidFunction AcquireProc(const char* proc_name, + const VulkanHandle& device) const; + private: fml::RefPtr handle_; bool acquired_mandatory_proc_addresses_; @@ -146,15 +173,8 @@ class VulkanProcTable : public fml::RefCountedThreadSafe { bool SetupGetInstanceProcAddress(); bool SetupLoaderProcAddresses(); bool CloseLibraryHandle(); - PFN_vkVoidFunction AcquireProc( - const char* proc_name, - const VulkanHandle& instance) const; - PFN_vkVoidFunction AcquireProc(const char* proc_name, - const VulkanHandle& device) const; FML_DISALLOW_COPY_AND_ASSIGN(VulkanProcTable); }; } // namespace vulkan - -#endif // FLUTTER_VULKAN_VULKAN_PROC_TABLE_H_ diff --git a/vulkan/vulkan_application.cc b/vulkan/vulkan_application.cc index c04522c54d8f6..47cbf3ec29eca 100644 --- a/vulkan/vulkan_application.cc +++ b/vulkan/vulkan_application.cc @@ -7,8 +7,8 @@ #include #include +#include "flutter/vulkan/procs/vulkan_proc_table.h" #include "vulkan_device.h" -#include "vulkan_proc_table.h" #include "vulkan_utilities.h" namespace vulkan { diff --git a/vulkan/vulkan_application.h b/vulkan/vulkan_application.h index 3abb558b512ef..06c437caffe0e 100644 --- a/vulkan/vulkan_application.h +++ b/vulkan/vulkan_application.h @@ -10,8 +10,8 @@ #include #include "flutter/fml/macros.h" +#include "flutter/vulkan/procs/vulkan_handle.h" #include "vulkan_debug_report.h" -#include "vulkan_handle.h" namespace vulkan { diff --git a/vulkan/vulkan_backbuffer.cc b/vulkan/vulkan_backbuffer.cc index b8b62aedbeb9f..5baf465b539dc 100644 --- a/vulkan/vulkan_backbuffer.cc +++ b/vulkan/vulkan_backbuffer.cc @@ -6,9 +6,9 @@ #include +#include "flutter/vulkan/procs/vulkan_proc_table.h" #include "third_party/skia/include/gpu/vk/GrVkTypes.h" #include "vulkan/vulkan.h" -#include "vulkan_proc_table.h" namespace vulkan { diff --git a/vulkan/vulkan_backbuffer.h b/vulkan/vulkan_backbuffer.h index 095b6d1aa69ea..c485be6d2d1e5 100644 --- a/vulkan/vulkan_backbuffer.h +++ b/vulkan/vulkan_backbuffer.h @@ -9,10 +9,10 @@ #include "flutter/fml/compiler_specific.h" #include "flutter/fml/macros.h" +#include "flutter/vulkan/procs/vulkan_handle.h" #include "third_party/skia/include/core/SkSize.h" #include "third_party/skia/include/core/SkSurface.h" #include "vulkan_command_buffer.h" -#include "vulkan_handle.h" namespace vulkan { diff --git a/vulkan/vulkan_command_buffer.cc b/vulkan/vulkan_command_buffer.cc index 8b767808b7ba0..d8412d6c931e8 100644 --- a/vulkan/vulkan_command_buffer.cc +++ b/vulkan/vulkan_command_buffer.cc @@ -4,7 +4,7 @@ #include "vulkan_command_buffer.h" -#include "vulkan_proc_table.h" +#include "flutter/vulkan/procs/vulkan_proc_table.h" namespace vulkan { diff --git a/vulkan/vulkan_command_buffer.h b/vulkan/vulkan_command_buffer.h index 05b9bbd6d8801..fe037543e3051 100644 --- a/vulkan/vulkan_command_buffer.h +++ b/vulkan/vulkan_command_buffer.h @@ -7,7 +7,7 @@ #include "flutter/fml/compiler_specific.h" #include "flutter/fml/macros.h" -#include "vulkan_handle.h" +#include "flutter/vulkan/procs/vulkan_handle.h" namespace vulkan { diff --git a/vulkan/vulkan_debug_report.h b/vulkan/vulkan_debug_report.h index e3a62a986d13b..ba7e7e48d2483 100644 --- a/vulkan/vulkan_debug_report.h +++ b/vulkan/vulkan_debug_report.h @@ -6,9 +6,9 @@ #define FLUTTER_VULKAN_VULKAN_DEBUG_REPORT_H_ #include "flutter/fml/macros.h" -#include "vulkan_handle.h" -#include "vulkan_interface.h" -#include "vulkan_proc_table.h" +#include "flutter/vulkan/procs/vulkan_handle.h" +#include "flutter/vulkan/procs/vulkan_interface.h" +#include "flutter/vulkan/procs/vulkan_proc_table.h" namespace vulkan { diff --git a/vulkan/vulkan_device.cc b/vulkan/vulkan_device.cc index 16126133bbe66..5325d6d52418c 100644 --- a/vulkan/vulkan_device.cc +++ b/vulkan/vulkan_device.cc @@ -8,8 +8,8 @@ #include #include +#include "flutter/vulkan/procs/vulkan_proc_table.h" #include "third_party/skia/include/gpu/vk/GrVkBackendContext.h" -#include "vulkan_proc_table.h" #include "vulkan_surface.h" #include "vulkan_utilities.h" diff --git a/vulkan/vulkan_device.h b/vulkan/vulkan_device.h index 767624c01ebde..559c4fab9d570 100644 --- a/vulkan/vulkan_device.h +++ b/vulkan/vulkan_device.h @@ -9,7 +9,7 @@ #include "flutter/fml/compiler_specific.h" #include "flutter/fml/macros.h" -#include "vulkan_handle.h" +#include "flutter/vulkan/procs/vulkan_handle.h" namespace vulkan { diff --git a/vulkan/vulkan_image.cc b/vulkan/vulkan_image.cc index ccd69fee9c181..c258aca56c2f3 100644 --- a/vulkan/vulkan_image.cc +++ b/vulkan/vulkan_image.cc @@ -4,8 +4,8 @@ #include "vulkan_image.h" +#include "flutter/vulkan/procs/vulkan_proc_table.h" #include "vulkan_command_buffer.h" -#include "vulkan_proc_table.h" namespace vulkan { diff --git a/vulkan/vulkan_image.h b/vulkan/vulkan_image.h index cdab2faeaca06..21d4997018773 100644 --- a/vulkan/vulkan_image.h +++ b/vulkan/vulkan_image.h @@ -7,7 +7,7 @@ #include "flutter/fml/compiler_specific.h" #include "flutter/fml/macros.h" -#include "vulkan_handle.h" +#include "flutter/vulkan/procs/vulkan_handle.h" namespace vulkan { diff --git a/vulkan/vulkan_native_surface.h b/vulkan/vulkan_native_surface.h index 0cf3c33fa5431..33884c611207a 100644 --- a/vulkan/vulkan_native_surface.h +++ b/vulkan/vulkan_native_surface.h @@ -6,9 +6,9 @@ #define FLUTTER_VULKAN_VULKAN_NATIVE_SURFACE_H_ #include "flutter/fml/macros.h" +#include "flutter/vulkan/procs/vulkan_handle.h" +#include "flutter/vulkan/procs/vulkan_proc_table.h" #include "third_party/skia/include/core/SkSize.h" -#include "vulkan_handle.h" -#include "vulkan_proc_table.h" namespace vulkan { diff --git a/vulkan/vulkan_native_surface_android.h b/vulkan/vulkan_native_surface_android.h index 6a7fbec33444c..2a4eec03f6220 100644 --- a/vulkan/vulkan_native_surface_android.h +++ b/vulkan/vulkan_native_surface_android.h @@ -17,7 +17,7 @@ class VulkanNativeSurfaceAndroid : public VulkanNativeSurface { public: /// Create a native surface from the valid ANativeWindow reference. Ownership /// of the ANativeWindow is assumed by this instance. - VulkanNativeSurfaceAndroid(ANativeWindow* native_window); + explicit VulkanNativeSurfaceAndroid(ANativeWindow* native_window); ~VulkanNativeSurfaceAndroid(); diff --git a/vulkan/vulkan_provider.h b/vulkan/vulkan_provider.h index e32e99b917446..cfbc48fe9f61f 100644 --- a/vulkan/vulkan_provider.h +++ b/vulkan/vulkan_provider.h @@ -5,7 +5,8 @@ #ifndef FLUTTER_VULKAN_VULKAN_PROVIDER_H_ #define FLUTTER_VULKAN_VULKAN_PROVIDER_H_ -#include "vulkan_handle.h" +#include "flutter/vulkan/procs/vulkan_handle.h" +#include "flutter/vulkan/procs/vulkan_proc_table.h" namespace vulkan { diff --git a/vulkan/vulkan_skia_proc_table.cc b/vulkan/vulkan_skia_proc_table.cc new file mode 100644 index 0000000000000..71977fd269d93 --- /dev/null +++ b/vulkan/vulkan_skia_proc_table.cc @@ -0,0 +1,28 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "flutter/vulkan/vulkan_skia_proc_table.h" + +namespace vulkan { + +GrVkGetProc CreateSkiaGetProc(const fml::RefPtr& vk) { + if (!vk || !vk->IsValid()) { + return nullptr; + } + + return [vk](const char* proc_name, VkInstance instance, VkDevice device) { + if (device != VK_NULL_HANDLE) { + auto result = + vk->AcquireProc(proc_name, VulkanHandle{device, nullptr}); + if (result != nullptr) { + return result; + } + } + + return vk->AcquireProc(proc_name, + VulkanHandle{instance, nullptr}); + }; +} + +} // namespace vulkan diff --git a/vulkan/vulkan_skia_proc_table.h b/vulkan/vulkan_skia_proc_table.h new file mode 100644 index 0000000000000..9ed988ea51598 --- /dev/null +++ b/vulkan/vulkan_skia_proc_table.h @@ -0,0 +1,15 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#pragma once + +#include "flutter/vulkan/procs/vulkan_proc_table.h" + +#include "third_party/skia/include/gpu/vk/GrVkBackendContext.h" + +namespace vulkan { + +GrVkGetProc CreateSkiaGetProc(const fml::RefPtr& vk); + +} // namespace vulkan diff --git a/vulkan/vulkan_surface.h b/vulkan/vulkan_surface.h index a214b8d917683..3455425c27631 100644 --- a/vulkan/vulkan_surface.h +++ b/vulkan/vulkan_surface.h @@ -6,8 +6,8 @@ #define FLUTTER_VULKAN_VULKAN_SURFACE_H_ #include "flutter/fml/macros.h" +#include "flutter/vulkan/procs/vulkan_handle.h" #include "third_party/skia/include/core/SkSize.h" -#include "vulkan_handle.h" namespace vulkan { diff --git a/vulkan/vulkan_swapchain.cc b/vulkan/vulkan_swapchain.cc index 8735dcfd8d970..7e8126e631f0c 100644 --- a/vulkan/vulkan_swapchain.cc +++ b/vulkan/vulkan_swapchain.cc @@ -4,13 +4,16 @@ #include "vulkan_swapchain.h" +#include "flutter/vulkan/procs/vulkan_proc_table.h" + +#include "third_party/skia/include/core/SkColorSpace.h" #include "third_party/skia/include/gpu/GrBackendSurface.h" #include "third_party/skia/include/gpu/GrDirectContext.h" #include "third_party/skia/include/gpu/vk/GrVkTypes.h" + #include "vulkan_backbuffer.h" #include "vulkan_device.h" #include "vulkan_image.h" -#include "vulkan_proc_table.h" #include "vulkan_surface.h" namespace vulkan { @@ -147,11 +150,11 @@ VulkanSwapchain::VulkanSwapchain(const VulkanProcTable& p_vk, return; } - swapchain_ = {swapchain, [this](VkSwapchainKHR swapchain) { - FML_ALLOW_UNUSED_LOCAL(device_.WaitIdle()); - vk.DestroySwapchainKHR(device_.GetHandle(), swapchain, - nullptr); - }}; + swapchain_ = VulkanHandle{ + swapchain, [this](VkSwapchainKHR swapchain) { + FML_ALLOW_UNUSED_LOCAL(device_.WaitIdle()); + vk.DestroySwapchainKHR(device_.GetHandle(), swapchain, nullptr); + }}; if (!CreateSwapchainImages( skia_context, format_infos[format_index].color_type_, @@ -275,7 +278,11 @@ bool VulkanSwapchain::CreateSwapchainImages(GrDirectContext* skia_context, backbuffers_.emplace_back(std::move(backbuffer)); // Populate the image. - auto vulkan_image = std::make_unique(image); + VulkanHandle image_handle = VulkanHandle{ + image, [this](VkImage image) { + vk.DestroyImage(device_.GetHandle(), image, nullptr); + }}; + auto vulkan_image = std::make_unique(std::move(image_handle)); if (!vulkan_image->IsValid()) { return false; diff --git a/vulkan/vulkan_swapchain.h b/vulkan/vulkan_swapchain.h index b617b659d04fb..6d3c6788e5da6 100644 --- a/vulkan/vulkan_swapchain.h +++ b/vulkan/vulkan_swapchain.h @@ -11,9 +11,9 @@ #include "flutter/fml/compiler_specific.h" #include "flutter/fml/macros.h" +#include "flutter/vulkan/procs/vulkan_handle.h" #include "third_party/skia/include/core/SkSize.h" #include "third_party/skia/include/core/SkSurface.h" -#include "vulkan_handle.h" namespace vulkan { diff --git a/vulkan/vulkan_utilities.h b/vulkan/vulkan_utilities.h index 666494c146647..cc43da1380a76 100644 --- a/vulkan/vulkan_utilities.h +++ b/vulkan/vulkan_utilities.h @@ -9,8 +9,8 @@ #include #include "flutter/fml/macros.h" -#include "vulkan_handle.h" -#include "vulkan_proc_table.h" +#include "flutter/vulkan/procs/vulkan_handle.h" +#include "flutter/vulkan/procs/vulkan_proc_table.h" namespace vulkan { diff --git a/vulkan/vulkan_window.cc b/vulkan/vulkan_window.cc index 53c8adb703203..a7067fff3f907 100644 --- a/vulkan/vulkan_window.cc +++ b/vulkan/vulkan_window.cc @@ -9,6 +9,8 @@ #include #include +#include "flutter/flutter_vma/flutter_skia_vma.h" +#include "flutter/vulkan/vulkan_skia_proc_table.h" #include "third_party/skia/include/gpu/GrDirectContext.h" #include "vulkan_application.h" #include "vulkan_device.h" @@ -80,6 +82,12 @@ VulkanWindow::VulkanWindow(const sk_sp& context, return; } + // Needs to happen before GrDirectContext is created. + memory_allocator_ = flutter::FlutterSkiaVulkanMemoryAllocator::Make( + application_->GetAPIVersion(), application_->GetInstance(), + logical_device_->GetPhysicalDeviceHandle(), logical_device_->GetHandle(), + vk, true); + // Create the Skia GrDirectContext. if (!skia_gr_context_ && !CreateSkiaGrContext()) { @@ -131,7 +139,7 @@ bool VulkanWindow::CreateSkiaGrContext() { } bool VulkanWindow::CreateSkiaBackendContext(GrVkBackendContext* context) { - auto getProc = vk->CreateSkiaGetProc(); + auto getProc = CreateSkiaGetProc(vk); if (getProc == nullptr) { return false; @@ -154,6 +162,7 @@ bool VulkanWindow::CreateSkiaBackendContext(GrVkBackendContext* context) { context->fFeatures = skia_features; context->fGetProc = std::move(getProc); context->fOwnsInstanceAndDevice = false; + context->fMemoryAllocator = memory_allocator_; return true; } diff --git a/vulkan/vulkan_window.h b/vulkan/vulkan_window.h index bbaba38d47e1b..1a0509025481e 100644 --- a/vulkan/vulkan_window.h +++ b/vulkan/vulkan_window.h @@ -10,14 +10,15 @@ #include #include +#include "flutter/flutter_vma/flutter_skia_vma.h" #include "flutter/fml/compiler_specific.h" #include "flutter/fml/macros.h" +#include "flutter/vulkan/procs/vulkan_proc_table.h" #include "third_party/skia/include/core/SkRefCnt.h" #include "third_party/skia/include/core/SkSize.h" #include "third_party/skia/include/core/SkSurface.h" #include "third_party/skia/include/gpu/GrDirectContext.h" #include "third_party/skia/include/gpu/vk/GrVkBackendContext.h" -#include "vulkan_proc_table.h" namespace vulkan { @@ -63,6 +64,7 @@ class VulkanWindow { std::unique_ptr logical_device_; std::unique_ptr surface_; std::unique_ptr swapchain_; + sk_sp memory_allocator_; sk_sp skia_gr_context_; bool CreateSkiaGrContext(); diff --git a/wasm/BUILD.gn b/wasm/BUILD.gn index 7d799fe9186c9..f4d6a54ee5e76 100644 --- a/wasm/BUILD.gn +++ b/wasm/BUILD.gn @@ -6,7 +6,11 @@ # //flutter/BUILD.gn pulls in Flutter SDK dependencies which will crash # when the target CPU is WASM. +import("//flutter/common/config.gni") + # This is the default target when building when the target CPU is WASM. group("wasm") { - deps = [ "//third_party/skia/modules/canvaskit" ] + if (flutter_build_web_sdk) { + deps = [ "//flutter/web_sdk" ] + } } diff --git a/web_sdk/BUILD.gn b/web_sdk/BUILD.gn index 1c653d5b91db1..41bed6e4a4389 100644 --- a/web_sdk/BUILD.gn +++ b/web_sdk/BUILD.gn @@ -6,9 +6,10 @@ import("//flutter/build/zip_bundle.gni") import("//flutter/common/config.gni") import("//third_party/dart/build/dart/dart_action.gni") -sdk_dill = "$root_out_dir/flutter_web_sdk/kernel/flutter_ddc_sdk.dill" -sdk_dill_sound = - "$root_out_dir/flutter_web_sdk/kernel/flutter_ddc_sdk_sound.dill" +declare_args() { + build_canvaskit = false + archive_flutter_web_sdk = true +} dart_sdk_package_config = "//third_party/dart/.dart_tool/package_config.json" @@ -21,15 +22,14 @@ web_ui_sources = exec_script("//third_party/dart/tools/list_dart_files.py", group("web_sdk") { deps = [ - ":flutter_dartdevc_canvaskit_html_kernel_sdk", - ":flutter_dartdevc_canvaskit_html_kernel_sdk_sound", - ":flutter_dartdevc_canvaskit_kernel_sdk", - ":flutter_dartdevc_canvaskit_kernel_sdk_sound", - ":flutter_dartdevc_kernel_sdk", - ":flutter_dartdevc_kernel_sdk_outline", - ":flutter_dartdevc_kernel_sdk_outline_sound", - ":flutter_dartdevc_kernel_sdk_sound", + ":flutter_ddc_modules", + ":flutter_legacy_platform_dills", + ":flutter_web_platforms", ] + + if (archive_flutter_web_sdk && !is_fuchsia) { + deps += [ ":flutter_web_sdk_archive" ] + } } template("sdk_rewriter") { @@ -153,7 +153,6 @@ template("_dartdevc") { ":web_engine_library", ":web_ui_library", ":web_ui_library_sources", - "//flutter:dart_sdk", ] script = "//build/gn_run_binary.py" @@ -184,7 +183,7 @@ template("_dartdevc") { ":web_engine_library", ":web_ui_library", ":web_ui_library_sources", - "//flutter:dart_sdk", + "//third_party/dart:create_sdk", "//third_party/dart/pkg:pkg_files_stamp", "//third_party/dart/utils/dartdevc:dartdevc_files_stamp", "//third_party/dart/utils/dartdevc:dartdevc_sdk_patch_stamp", @@ -215,7 +214,6 @@ template("_kernel_worker") { ":web_engine_library", ":web_ui_library", ":web_ui_library_sources", - "//flutter:dart_sdk", ] script = "//build/gn_run_binary.py" @@ -247,7 +245,7 @@ template("_kernel_worker") { ":web_engine_library", ":web_ui_library", ":web_ui_library_sources", - "//flutter:dart_sdk", + "//third_party/dart:create_sdk", "//third_party/dart/pkg:pkg_files_stamp", "//third_party/dart/utils/dartdevc:dartdevc_files_stamp", "//third_party/dart/utils/dartdevc:dartdevc_sdk_patch_stamp", @@ -260,384 +258,371 @@ template("_kernel_worker") { } } -# Compile the unsound DDC SDK's summary. -_kernel_worker("flutter_dartdevc_kernel_sdk_outline") { - inputs = [ "sdk_rewriter.dart" ] + web_ui_sources - - outputs = [ sdk_dill ] - - args = [ - "--no-sound-null-safety", - "--summary-only", - "--target", - "ddc", - "--packages-file", - "file:///" + rebase_path(dart_sdk_package_config), - "--multi-root-scheme", - "org-dartlang-sdk", - "--multi-root", - "file:///" + rebase_path("$root_out_dir"), - "--libraries-file", - "org-dartlang-sdk:///flutter_web_sdk/libraries.json", - "--output", - rebase_path(sdk_dill), - "--source", - "dart:core", - - # Additional Flutter web dart libraries - "--source", - "dart:ui", - "--source", - "dart:_engine", - ] +template("_compile_platform") { + assert(defined(invoker.sound_null_safety), + "sound_null_safety must be defined for $target_name") + assert(defined(invoker.kernel_target), + "kernel_target must be defined for $target_name") + assert(defined(invoker.summary_only), + "summary_only must be defined for $target_name") + assert(defined(invoker.output_dill), + "output_dill must be defined for $target_name") + _kernel_worker(target_name) { + inputs = [ "sdk_rewriter.dart" ] + web_ui_sources + + outputs = [ invoker.output_dill ] + + if (invoker.sound_null_safety) { + args = [ "--sound-null-safety" ] + } else { + args = [ "--no-sound-null-safety" ] + } + + if (invoker.summary_only) { + args += [ "--summary-only" ] + } else { + args += [ "--no-summary-only" ] + } + args += [ + "--target", + "${invoker.kernel_target}", + "--packages-file", + "file:///" + rebase_path(dart_sdk_package_config), + "--multi-root-scheme", + "org-dartlang-sdk", + "--multi-root", + "file:///" + rebase_path("$root_out_dir/flutter_web_sdk"), + "--libraries-file", + "org-dartlang-sdk:///libraries.json", + "--output", + rebase_path(invoker.output_dill), + "--source", + "dart:core", + + # Additional Flutter web dart libraries + "--source", + "dart:ui", + "--source", + "dart:_engine", + "--source", + "dart:_skwasm_stub", + ] + if (flutter_prebuilt_dart_sdk) { + args += [ + "--multi-root", + "file:///" + rebase_path("$host_prebuilt_dart_sdk/.."), + ] + } else { + args += [ + "--multi-root", + "file:///" + rebase_path("$root_out_dir"), + ] + } + + if (defined(invoker.extra_args)) { + args += invoker.extra_args + } + } } -# Compiles the unsound html only renderer. -_dartdevc("flutter_dartdevc_kernel_sdk") { - inputs = [ "sdk_rewriter.dart" ] + web_ui_sources +# Compile the unsound DDC SDK's summary. +_compile_platform("flutter_dartdevc_kernel_sdk_outline") { + sound_null_safety = false + kernel_target = "ddc" + summary_only = true + output_dill = "$root_out_dir/flutter_web_sdk/kernel/flutter_ddc_sdk.dill" +} - packages = dart_sdk_package_config +# Compile the sound DDC SDK's summary. +_compile_platform("flutter_dartdevc_kernel_sdk_outline_sound") { + sound_null_safety = true + kernel_target = "ddc" + summary_only = true + output_dill = + "$root_out_dir/flutter_web_sdk/kernel/flutter_ddc_sdk_sound.dill" +} - outputs = [ - "$root_out_dir/flutter_web_sdk/kernel/amd/dart_sdk.js", - "$root_out_dir/flutter_web_sdk/kernel/amd/dart_sdk.js.map", - "$root_out_dir/flutter_web_sdk/kernel/legacy/dart_sdk.js", - "$root_out_dir/flutter_web_sdk/kernel/legacy/dart_sdk.js.map", +group("flutter_legacy_platform_dills") { + public_deps = [ + ":flutter_dartdevc_kernel_sdk_outline", + ":flutter_dartdevc_kernel_sdk_outline_sound", ] +} - args = [ - "--no-sound-null-safety", - "--compile-sdk", - "dart:core", - - # Additional Flutter web dart libraries - "dart:ui", - "dart:_engine", - "--no-summarize", - "--packages", - "file:///" + rebase_path(dart_sdk_package_config), - "--multi-root-scheme", - "org-dartlang-sdk", - "--multi-root", - "file:///" + rebase_path("$root_out_dir"), - "--multi-root-output-path", - rebase_path("$root_out_dir/"), - "--libraries-file", - "org-dartlang-sdk:///flutter_web_sdk/libraries.json", - "--inline-source-map", - "-DFLUTTER_WEB_USE_SKIA=false", - "-DFLUTTER_WEB_AUTO_DETECT=false", - "--modules", - "amd", - "-o", - rebase_path("$root_out_dir/flutter_web_sdk/kernel/amd/dart_sdk.js"), - "--modules", - "legacy", - "-o", - rebase_path("$root_out_dir/flutter_web_sdk/kernel/legacy/dart_sdk.js"), +template("_flutter_web_platform") { + assert(defined(invoker.output_dir), + "output_dir must be defined for $target_name") + assert(defined(invoker.use_skia), + "use_skia must be defined for $target_name") + assert(defined(invoker.auto_detect), + "auto_detect must be defined for $target_name") + + define_flags = [ + "-DFLUTTER_WEB_USE_SKIA=${invoker.use_skia}", + "-DFLUTTER_WEB_AUTO_DETECT=${invoker.auto_detect}", ] + + _compile_platform("${target_name}_ddc_sound") { + sound_null_safety = true + kernel_target = "ddc" + summary_only = true + output_dill = "${invoker.output_dir}/ddc_outline_sound.dill" + extra_args = define_flags + } + _compile_platform("${target_name}_ddc_unsound") { + sound_null_safety = false + kernel_target = "ddc" + summary_only = true + output_dill = "${invoker.output_dir}/ddc_outline.dill" + extra_args = define_flags + } + _compile_platform("${target_name}_dart2js_sound") { + sound_null_safety = true + kernel_target = "dart2js" + summary_only = false + output_dill = "${invoker.output_dir}/dart2js_platform.dill" + extra_args = define_flags + } + _compile_platform("${target_name}_dart2js_unsound") { + sound_null_safety = true + kernel_target = "dart2js" + summary_only = false + output_dill = "${invoker.output_dir}/dart2js_platform_unsound.dill" + extra_args = define_flags + } + + group(target_name) { + public_deps = [ + ":${target_name}_dart2js_sound", + ":${target_name}_dart2js_unsound", + ":${target_name}_ddc_sound", + ":${target_name}_ddc_unsound", + ] + } } -# Compiles the unsound canvaskit only renderer. -_dartdevc("flutter_dartdevc_canvaskit_kernel_sdk") { - inputs = [ "sdk_rewriter.dart" ] + web_ui_sources +_flutter_web_platform("flutter_auto_platform") { + output_dir = "$root_out_dir/flutter_web_sdk/kernel/platforms/auto" + use_skia = true + auto_detect = true +} - packages = dart_sdk_package_config +_flutter_web_platform("flutter_html_platform") { + output_dir = "$root_out_dir/flutter_web_sdk/kernel/platforms/html" + use_skia = false + auto_detect = false +} - outputs = [ - "$root_out_dir/flutter_web_sdk/kernel/amd-canvaskit/dart_sdk.js", - "$root_out_dir/flutter_web_sdk/kernel/amd-canvaskit/dart_sdk.js.map", - "$root_out_dir/flutter_web_sdk/kernel/legacy-canvaskit/dart_sdk.js", - "$root_out_dir/flutter_web_sdk/kernel/legacy-canvaskit/dart_sdk.js.map", - ] +_flutter_web_platform("flutter_canvaskit_platform") { + output_dir = "$root_out_dir/flutter_web_sdk/kernel/platforms/canvaskit" + use_skia = true + auto_detect = false +} - args = [ - "--no-sound-null-safety", - "--compile-sdk", - "dart:core", - - # Additional Flutter web dart libraries - "dart:ui", - "dart:_engine", - "--no-summarize", - "--packages", - "file:///" + rebase_path(dart_sdk_package_config), - "--multi-root-scheme", - "org-dartlang-sdk", - "--multi-root", - "file:///" + rebase_path("$root_out_dir"), - "--multi-root-output-path", - rebase_path("$root_out_dir/"), - "--libraries-file", - "org-dartlang-sdk:///flutter_web_sdk/libraries.json", - "--inline-source-map", - "-DFLUTTER_WEB_USE_SKIA=true", - "-DFLUTTER_WEB_AUTO_DETECT=false", - "--modules", - "amd", - "-o", - rebase_path( - "$root_out_dir/flutter_web_sdk/kernel/amd-canvaskit/dart_sdk.js"), - "--modules", - "legacy", - "-o", - rebase_path( - "$root_out_dir/flutter_web_sdk/kernel/legacy-canvaskit/dart_sdk.js"), +group("flutter_web_platforms") { + public_deps = [ + ":flutter_auto_platform", + ":flutter_canvaskit_platform", + ":flutter_html_platform", ] } -# Compiles the unsound autodetect renderer. -_dartdevc("flutter_dartdevc_canvaskit_html_kernel_sdk") { - inputs = [ "sdk_rewriter.dart" ] + web_ui_sources +template("_compile_ddc_modules") { + assert(defined(invoker.sound_null_safety), + "sound_null_safety must be defined for $target_name") + assert(defined(invoker.use_skia), + "use_skia must be defined for $target_name") + assert(defined(invoker.auto_detect), + "auto_detect must be defined for $target_name") - packages = dart_sdk_package_config + _dartdevc(target_name) { + inputs = [ "sdk_rewriter.dart" ] + web_ui_sources - outputs = [ - "$root_out_dir/flutter_web_sdk/kernel/amd-canvaskit-html/dart_sdk.js", - "$root_out_dir/flutter_web_sdk/kernel/amd-canvaskit-html/dart_sdk.js.map", - "$root_out_dir/flutter_web_sdk/kernel/legacy-canvaskit-html/dart_sdk.js", - "$root_out_dir/flutter_web_sdk/kernel/legacy-canvaskit-html/dart_sdk.js.map", - ] + packages = dart_sdk_package_config - args = [ - "--no-sound-null-safety", - "--compile-sdk", - "dart:core", - - # Additional Flutter web dart libraries - "dart:ui", - "dart:_engine", - "--no-summarize", - "--packages", - "file:///" + rebase_path(dart_sdk_package_config), - "--multi-root-scheme", - "org-dartlang-sdk", - "--multi-root", - "file:///" + rebase_path("$root_out_dir"), - "--multi-root-output-path", - rebase_path("$root_out_dir/"), - "--libraries-file", - "org-dartlang-sdk:///flutter_web_sdk/libraries.json", - "--inline-source-map", - "-DFLUTTER_WEB_USE_SKIA=true", - "-DFLUTTER_WEB_AUTO_DETECT=true", - "--modules", - "amd", - "-o", - rebase_path( - "$root_out_dir/flutter_web_sdk/kernel/amd-canvaskit-html/dart_sdk.js"), - "--modules", - "legacy", - "-o", - rebase_path( - "$root_out_dir/flutter_web_sdk/kernel/legacy-canvaskit-html/dart_sdk.js"), - ] -} + name_suffix = "" + if (invoker.use_skia) { + name_suffix += "-canvaskit" + } + if (invoker.auto_detect) { + name_suffix += "-html" + } + if (invoker.sound_null_safety) { + name_suffix += "-sound" + } -# Compiles the sound html only renderer. -_dartdevc("flutter_dartdevc_kernel_sdk_sound") { - inputs = [ "sdk_rewriter.dart" ] + web_ui_sources + amd_js_path = + "$root_out_dir/flutter_web_sdk/kernel/amd${name_suffix}/dart_sdk.js" + legacy_js_path = + "$root_out_dir/flutter_web_sdk/kernel/legacy${name_suffix}/dart_sdk.js" + + outputs = [ + amd_js_path, + amd_js_path + ".map", + legacy_js_path, + legacy_js_path + ".map", + ] - packages = dart_sdk_package_config + if (invoker.sound_null_safety) { + args = [ "--sound-null-safety" ] + } else { + args = [ "--no-sound-null-safety" ] + } - outputs = [ - "$root_out_dir/flutter_web_sdk/kernel/amd-sound/dart_sdk.js", - "$root_out_dir/flutter_web_sdk/kernel/amd-sound/dart_sdk.js.map", - "$root_out_dir/flutter_web_sdk/kernel/legacy-sound/dart_sdk.js", - "$root_out_dir/flutter_web_sdk/kernel/legacy-sound/dart_sdk.js.map", - ] + args += [ + "--compile-sdk", + "dart:core", + + # Additional Flutter web dart libraries + "dart:ui", + "dart:_engine", + "dart:_skwasm_stub", + "--no-summarize", + "--packages", + "file:///" + rebase_path(dart_sdk_package_config), + "--multi-root-scheme", + "org-dartlang-sdk", + "--multi-root", + "file:///" + rebase_path("$root_out_dir/flutter_web_sdk"), + "--multi-root-output-path", + rebase_path("$root_out_dir/"), + "--libraries-file", + "org-dartlang-sdk:///libraries.json", + "--inline-source-map", + "-DFLUTTER_WEB_USE_SKIA=${invoker.use_skia}", + "-DFLUTTER_WEB_AUTO_DETECT=${invoker.auto_detect}", + "--modules", + "amd", + "-o", + rebase_path(amd_js_path), + "--modules", + "legacy", + "-o", + rebase_path(legacy_js_path), + ] + if (flutter_prebuilt_dart_sdk) { + args += [ + "--multi-root", + "file:///" + rebase_path("$host_prebuilt_dart_sdk/.."), + ] + } else { + args += [ + "--multi-root", + "file:///" + rebase_path("$root_out_dir"), + ] + } + } +} - args = [ - "--sound-null-safety", - "--compile-sdk", - "dart:core", - - # Additional Flutter web dart libraries - "dart:ui", - "dart:_engine", - "--no-summarize", - "--packages", - "file:///" + rebase_path(dart_sdk_package_config), - "--multi-root-scheme", - "org-dartlang-sdk", - "--multi-root", - "file:///" + rebase_path("$root_out_dir"), - "--multi-root-output-path", - rebase_path("$root_out_dir/"), - "--libraries-file", - "org-dartlang-sdk:///flutter_web_sdk/libraries.json", - "--inline-source-map", - "-DFLUTTER_WEB_USE_SKIA=false", - "-DFLUTTER_WEB_AUTO_DETECT=false", - "--modules", - "amd", - "-o", - rebase_path("$root_out_dir/flutter_web_sdk/kernel/amd-sound/dart_sdk.js"), - "--modules", - "legacy", - "-o", - rebase_path( - "$root_out_dir/flutter_web_sdk/kernel/legacy-sound/dart_sdk.js"), - ] +# Compiles the unsound html only renderer. +_compile_ddc_modules("flutter_dartdevc_kernel_sdk") { + sound_null_safety = false + use_skia = false + auto_detect = false } -# Compiles the sound canvaskit only renderer. -_dartdevc("flutter_dartdevc_canvaskit_kernel_sdk_sound") { - inputs = [ "sdk_rewriter.dart" ] + web_ui_sources +# Compiles the unsound canvaskit only renderer. +_compile_ddc_modules("flutter_dartdevc_canvaskit_kernel_sdk") { + sound_null_safety = false + use_skia = true + auto_detect = false +} - packages = dart_sdk_package_config +# Compiles the unsound autodetect renderer. +_compile_ddc_modules("flutter_dartdevc_canvaskit_html_kernel_sdk") { + sound_null_safety = false + use_skia = true + auto_detect = true +} - outputs = [ - "$root_out_dir/flutter_web_sdk/kernel/amd-canvaskit-sound/dart_sdk.js", - "$root_out_dir/flutter_web_sdk/kernel/amd-canvaskit-sound/dart_sdk.js.map", - "$root_out_dir/flutter_web_sdk/kernel/legacy-canvaskit-sound/dart_sdk.js", - "$root_out_dir/flutter_web_sdk/kernel/legacy-canvaskit-sound/dart_sdk.js.map", - ] +# Compiles the sound html only renderer. +_compile_ddc_modules("flutter_dartdevc_kernel_sdk_sound") { + sound_null_safety = true + use_skia = false + auto_detect = false +} - args = [ - "--sound-null-safety", - "--compile-sdk", - "dart:core", - - # Additional Flutter web dart libraries - "dart:ui", - "dart:_engine", - "--no-summarize", - "--packages", - "file:///" + rebase_path(dart_sdk_package_config), - "--multi-root-scheme", - "org-dartlang-sdk", - "--multi-root", - "file:///" + rebase_path("$root_out_dir"), - "--multi-root-output-path", - rebase_path("$root_out_dir/"), - "--libraries-file", - "org-dartlang-sdk:///flutter_web_sdk/libraries.json", - "--inline-source-map", - "-DFLUTTER_WEB_USE_SKIA=true", - "-DFLUTTER_WEB_AUTO_DETECT=false", - "--modules", - "amd", - "-o", - rebase_path( - "$root_out_dir/flutter_web_sdk/kernel/amd-canvaskit-sound/dart_sdk.js"), - "--modules", - "legacy", - "-o", - rebase_path( - "$root_out_dir/flutter_web_sdk/kernel/legacy-canvaskit-sound/dart_sdk.js"), - ] +# Compiles the sound canvaskit only renderer. +_compile_ddc_modules("flutter_dartdevc_canvaskit_kernel_sdk_sound") { + sound_null_safety = true + use_skia = true + auto_detect = false } # Compiles the sound autodetect renderer. -_dartdevc("flutter_dartdevc_canvaskit_html_kernel_sdk_sound") { - inputs = [ "sdk_rewriter.dart" ] + web_ui_sources - - packages = dart_sdk_package_config - - outputs = [ - "$root_out_dir/flutter_web_sdk/kernel/amd-canvaskit-html-sound/dart_sdk.js", - "$root_out_dir/flutter_web_sdk/kernel/amd-canvaskit-html-sound/dart_sdk.js.map", - "$root_out_dir/flutter_web_sdk/kernel/legacy-canvaskit-html-sound/dart_sdk.js", - "$root_out_dir/flutter_web_sdk/kernel/legacy-canvaskit-html-sound/dart_sdk.js.map", - ] - - args = [ - "--sound-null-safety", - "--compile-sdk", - "dart:core", - - # Additional Flutter web dart libraries - "dart:ui", - "dart:_engine", - "--no-summarize", - "--packages", - "file:///" + rebase_path(dart_sdk_package_config), - "--multi-root-scheme", - "org-dartlang-sdk", - "--multi-root", - "file:///" + rebase_path("$root_out_dir"), - "--multi-root-output-path", - rebase_path("$root_out_dir/"), - "--libraries-file", - "org-dartlang-sdk:///flutter_web_sdk/libraries.json", - "--inline-source-map", - "-DFLUTTER_WEB_USE_SKIA=false", - "-DFLUTTER_WEB_AUTO_DETECT=true", - "--modules", - "amd", - "-o", - rebase_path( - "$root_out_dir/flutter_web_sdk/kernel/amd-canvaskit-html-sound/dart_sdk.js"), - "--modules", - "legacy", - "-o", - rebase_path( - "$root_out_dir/flutter_web_sdk/kernel/legacy-canvaskit-html-sound/dart_sdk.js"), - ] +_compile_ddc_modules("flutter_dartdevc_canvaskit_html_kernel_sdk_sound") { + sound_null_safety = true + use_skia = true + auto_detect = true } -# Compile the sound DDC SDK's summary. -_kernel_worker("flutter_dartdevc_kernel_sdk_outline_sound") { - inputs = [ "sdk_rewriter.dart" ] + web_ui_sources - - outputs = [ sdk_dill_sound ] - - args = [ - "--sound-null-safety", - "--summary-only", - "--target", - "ddc", - "--packages-file", - "file:///" + rebase_path(dart_sdk_package_config), - "--multi-root-scheme", - "org-dartlang-sdk", - "--multi-root", - "file:///" + rebase_path("$root_out_dir"), - "--libraries-file", - "org-dartlang-sdk:///flutter_web_sdk/libraries.json", - "--output", - rebase_path(sdk_dill_sound), - "--source", - "dart:core", - - # Additional Flutter web dart libraries - "--source", - "dart:ui", - "--source", - "dart:_engine", +group("flutter_ddc_modules") { + public_deps = [ + ":flutter_dartdevc_canvaskit_html_kernel_sdk", + ":flutter_dartdevc_canvaskit_html_kernel_sdk_sound", + ":flutter_dartdevc_canvaskit_kernel_sdk", + ":flutter_dartdevc_canvaskit_kernel_sdk_sound", + ":flutter_dartdevc_kernel_sdk", + ":flutter_dartdevc_kernel_sdk_sound", ] } # Archives Flutter Web SDK if (!is_fuchsia) { zip_bundle_from_file("flutter_web_sdk_archive") { - output = "flutter-web-sdk-${full_platform_name}.zip" + if (target_os == "wasm") { + output = "flutter-web-sdk.zip" + } else { + # TODO(jacksongardner): remove this once we stop making platform-specific + # flutter_web_sdk archives. + # https://github.com/flutter/flutter/issues/113303 + output = "flutter-web-sdk-${full_platform_name}.zip" + } deps = [ - ":flutter_dartdevc_canvaskit_html_kernel_sdk", - ":flutter_dartdevc_canvaskit_html_kernel_sdk_sound", - ":flutter_dartdevc_canvaskit_kernel_sdk", - ":flutter_dartdevc_canvaskit_kernel_sdk_sound", - ":flutter_dartdevc_kernel_sdk", - ":flutter_dartdevc_kernel_sdk_outline", - ":flutter_dartdevc_kernel_sdk_outline_sound", - ":flutter_dartdevc_kernel_sdk_sound", + ":flutter_ddc_modules", + ":flutter_legacy_platform_dills", + ":flutter_web_platforms", ":skwasm_impl_library", ":skwasm_stub_library", ":web_engine_library", ":web_ui_library", ":web_ui_library_sources", ] - sources = get_target_outputs(":flutter_dartdevc_canvaskit_html_kernel_sdk") - sources += - get_target_outputs(":flutter_dartdevc_canvaskit_html_kernel_sdk_sound") + + if (build_canvaskit) { + deps += [ "//third_party/skia/modules/canvaskit" ] + } + + # flutter_ddc_modules + sources = get_target_outputs(":flutter_dartdevc_kernel_sdk") sources += get_target_outputs(":flutter_dartdevc_canvaskit_kernel_sdk") + sources += get_target_outputs(":flutter_dartdevc_canvaskit_html_kernel_sdk") + sources += get_target_outputs(":flutter_dartdevc_kernel_sdk_sound") sources += get_target_outputs(":flutter_dartdevc_canvaskit_kernel_sdk_sound") - sources += get_target_outputs(":flutter_dartdevc_kernel_sdk") + sources += + get_target_outputs(":flutter_dartdevc_canvaskit_html_kernel_sdk_sound") + + # flutter_legacy_platform_dills sources += get_target_outputs(":flutter_dartdevc_kernel_sdk_outline") sources += get_target_outputs(":flutter_dartdevc_kernel_sdk_outline_sound") - sources += get_target_outputs(":flutter_dartdevc_kernel_sdk_sound") + + # flutter_web_platforms + sources += get_target_outputs(":flutter_auto_platform_ddc_sound") + sources += get_target_outputs(":flutter_auto_platform_ddc_unsound") + sources += get_target_outputs(":flutter_auto_platform_dart2js_sound") + sources += get_target_outputs(":flutter_auto_platform_dart2js_unsound") + + sources += get_target_outputs(":flutter_html_platform_ddc_sound") + sources += get_target_outputs(":flutter_html_platform_ddc_unsound") + sources += get_target_outputs(":flutter_html_platform_dart2js_sound") + sources += get_target_outputs(":flutter_html_platform_dart2js_unsound") + + sources += get_target_outputs(":flutter_canvaskit_platform_ddc_sound") + sources += get_target_outputs(":flutter_canvaskit_platform_ddc_unsound") + sources += get_target_outputs(":flutter_canvaskit_platform_dart2js_sound") + sources += get_target_outputs(":flutter_canvaskit_platform_dart2js_unsound") + sources += get_target_outputs(":web_ui_library") sources += get_target_outputs(":web_ui_library_sources") sources += get_target_outputs(":skwasm_stub_library") @@ -652,6 +637,18 @@ if (!is_fuchsia) { }, ] } + if (build_canvaskit) { + tmp_files += [ + { + source = rebase_path("$root_out_dir/canvaskit.js") + destination = "canvaskit/canvaskit.js" + }, + { + source = rebase_path("$root_out_dir/canvaskit.wasm") + destination = "canvaskit/canvaskit.wasm" + }, + ] + } files = tmp_files } } diff --git a/web_sdk/pubspec.yaml b/web_sdk/pubspec.yaml index bd2d22bba6c72..7ffa0caef09fa 100644 --- a/web_sdk/pubspec.yaml +++ b/web_sdk/pubspec.yaml @@ -10,4 +10,4 @@ dependencies: dev_dependencies: analyzer: 4.3.1 - test: 1.21.4 + test: 1.22.0 diff --git a/web_sdk/web_engine_tester/pubspec.yaml b/web_sdk/web_engine_tester/pubspec.yaml index 25219b1071327..4e0dbbeae1ae7 100644 --- a/web_sdk/web_engine_tester/pubspec.yaml +++ b/web_sdk/web_engine_tester/pubspec.yaml @@ -7,7 +7,7 @@ environment: dependencies: js: 0.6.4 stream_channel: 2.1.0 - test: 1.17.7 + test: 1.22.0 webkit_inspection_protocol: 1.0.0 stack_trace: 1.10.0 ui: diff --git a/web_sdk/web_test_utils/lib/environment.dart b/web_sdk/web_test_utils/lib/environment.dart index fb3df30ea7ba5..96702b210acba 100644 --- a/web_sdk/web_test_utils/lib/environment.dart +++ b/web_sdk/web_test_utils/lib/environment.dart @@ -41,21 +41,17 @@ class Environment { required this.webUiRootDir, required this.engineSrcDir, required this.engineToolsDir, - required this.outDir, }); static Environment _prepareEnvironmentFromEngineDir( io.File self, io.Directory engineSrcDir) { final io.Directory engineToolsDir = io.Directory(pathlib.join(engineSrcDir.path, 'flutter', 'tools')); - final io.Directory outDir = - io.Directory(pathlib.join(engineSrcDir.path, 'out')); final io.Directory webUiRootDir = io.Directory( pathlib.join(engineSrcDir.path, 'flutter', 'lib', 'web_ui')); for (final io.Directory expectedDirectory in [ engineSrcDir, - outDir, webUiRootDir ]) { if (!expectedDirectory.existsSync()) { @@ -68,7 +64,6 @@ class Environment { webUiRootDir: webUiRootDir, engineSrcDir: engineSrcDir, engineToolsDir: engineToolsDir, - outDir: outDir, ); } @@ -84,11 +79,6 @@ class Environment { /// Path to the engine's "tools" directory. final io.Directory engineToolsDir; - /// Path to the engine's "out" directory. - /// - /// This is where you'll find the ninja output, such as the Dart SDK. - final io.Directory outDir; - /// Path to where github.com/flutter/engine is checked out inside the engine workspace. io.Directory get flutterDirectory => io.Directory(pathlib.join(engineSrcDir.path, 'flutter')); diff --git a/web_sdk/web_test_utils/pubspec.yaml b/web_sdk/web_test_utils/pubspec.yaml index 592663a159228..03aac1e7e629a 100644 --- a/web_sdk/web_test_utils/pubspec.yaml +++ b/web_sdk/web_test_utils/pubspec.yaml @@ -9,7 +9,7 @@ dependencies: crypto: 3.0.1 image: 3.0.1 js: 0.6.4 - meta: 1.3.0 + meta: ^1.7.0 path: 1.8.0 process: 4.2.3 skia_gold_client: